diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-07-18 12:06:03 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-07-18 12:06:03 +0700 |
commit | 913eada3ad9394f1327a1feb80a3261f7c6e55bb (patch) | |
tree | 6366c1e196ad2ac249edf12a4d41d52ee2d28629 /crypto/src/asn1/cms | |
parent | Refactoring around PrivateKeyInfo (diff) | |
download | BouncyCastle.NET-ed25519-913eada3ad9394f1327a1feb80a3261f7c6e55bb.tar.xz |
Deprecated Asn1TaggedObject.GetObject and refactor
Diffstat (limited to 'crypto/src/asn1/cms')
-rw-r--r-- | crypto/src/asn1/cms/ContentInfo.cs | 4 | ||||
-rw-r--r-- | crypto/src/asn1/cms/Evidence.cs | 4 | ||||
-rw-r--r-- | crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs | 14 | ||||
-rw-r--r-- | crypto/src/asn1/cms/Time.cs | 4 |
4 files changed, 9 insertions, 17 deletions
diff --git a/crypto/src/asn1/cms/ContentInfo.cs b/crypto/src/asn1/cms/ContentInfo.cs index 847df6dd8..c8f9fc65b 100644 --- a/crypto/src/asn1/cms/ContentInfo.cs +++ b/crypto/src/asn1/cms/ContentInfo.cs @@ -37,11 +37,11 @@ namespace Org.BouncyCastle.Asn1.Cms if (seq.Count > 1) { - Asn1TaggedObject tagged = (Asn1TaggedObject) seq[1]; + Asn1TaggedObject tagged = Asn1TaggedObject.GetInstance(seq[1], Asn1Tags.ContextSpecific); if (!tagged.IsExplicit() || tagged.TagNo != 0) throw new ArgumentException("Bad tag for 'content'", "seq"); - content = tagged.GetObject(); + content = tagged.GetExplicitBaseObject(); } } diff --git a/crypto/src/asn1/cms/Evidence.cs b/crypto/src/asn1/cms/Evidence.cs index 2e39054d6..54d498cb9 100644 --- a/crypto/src/asn1/cms/Evidence.cs +++ b/crypto/src/asn1/cms/Evidence.cs @@ -41,14 +41,14 @@ namespace Org.BouncyCastle.Asn1.Cms return evidence; if (obj is Asn1TaggedObject taggedObject) - return new Evidence(taggedObject); + return new Evidence(Asn1Utilities.CheckTagClass(taggedObject, Asn1Tags.ContextSpecific)); throw new ArgumentException("Unknown object in GetInstance: " + Platform.GetTypeName(obj), "obj"); } public static Evidence GetInstance(Asn1TaggedObject obj, bool isExplicit) { - return GetInstance(obj.GetObject()); // must be explicitly tagged + return Asn1Utilities.GetInstanceFromChoice(obj, isExplicit, GetInstance); } public virtual TimeStampTokenEvidence TstEvidence diff --git a/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs b/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs index 01c5a31a1..6b4c0488e 100644 --- a/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs +++ b/crypto/src/asn1/cms/OriginatorIdentifierOrKey.cs @@ -40,17 +40,9 @@ namespace Org.BouncyCastle.Asn1.Cms * @exception ArgumentException if the object held by the * tagged object cannot be converted. */ - public static OriginatorIdentifierOrKey GetInstance( - Asn1TaggedObject o, - bool explicitly) + public static OriginatorIdentifierOrKey GetInstance(Asn1TaggedObject o, bool explicitly) { - if (!explicitly) - { - throw new ArgumentException( - "Can't implicitly tag OriginatorIdentifierOrKey"); - } - - return GetInstance(o.GetObject()); + return Asn1Utilities.GetInstanceFromChoice(o, explicitly, GetInstance); } /** @@ -78,7 +70,7 @@ namespace Org.BouncyCastle.Asn1.Cms return new OriginatorIdentifierOrKey(originatorPublicKey); if (o is Asn1TaggedObject taggedObject) - return new OriginatorIdentifierOrKey(taggedObject); + return new OriginatorIdentifierOrKey(Asn1Utilities.CheckTagClass(taggedObject, Asn1Tags.ContextSpecific)); throw new ArgumentException("Invalid OriginatorIdentifierOrKey: " + Platform.GetTypeName(o)); } diff --git a/crypto/src/asn1/cms/Time.cs b/crypto/src/asn1/cms/Time.cs index 19bc1a633..f41433ddd 100644 --- a/crypto/src/asn1/cms/Time.cs +++ b/crypto/src/asn1/cms/Time.cs @@ -22,9 +22,9 @@ namespace Org.BouncyCastle.Asn1.Cms throw new ArgumentException("unknown object in factory: " + Platform.GetTypeName(obj), nameof(obj)); } - public static Time GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) + public static Time GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { - return GetInstance(taggedObject.GetObject()); + return Asn1Utilities.GetInstanceFromChoice(taggedObject, declaredExplicit, GetInstance); } private readonly Asn1Object m_timeObject; |