diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2021-11-20 18:44:07 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2021-11-20 18:44:07 +0700 |
commit | fe0abc8e4f4eb407a7fff3e5d567a51ce49a4baf (patch) | |
tree | 33f1beb1702c99430a033cd52b568b283319c487 /crypto/src/asn1/Asn1Utilities.cs | |
parent | ASN:1 tagged object parser updates from bc-java (diff) | |
download | BouncyCastle.NET-ed25519-fe0abc8e4f4eb407a7fff3e5d567a51ce49a4baf.tar.xz |
ASN.1: Tagged object parser improvements
- add DLTaggedObjectParser - refactoring of Asn1InputStream/Asn1StreamParser
Diffstat (limited to 'crypto/src/asn1/Asn1Utilities.cs')
-rw-r--r-- | crypto/src/asn1/Asn1Utilities.cs | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/crypto/src/asn1/Asn1Utilities.cs b/crypto/src/asn1/Asn1Utilities.cs index 8a6d931c0..5605d4c54 100644 --- a/crypto/src/asn1/Asn1Utilities.cs +++ b/crypto/src/asn1/Asn1Utilities.cs @@ -289,5 +289,41 @@ namespace Org.BouncyCastle.Asn1 return TryParseBaseUniversal(taggedObjectParser, Asn1Tags.ContextSpecific, tagNo, declaredExplicit, baseTagNo); } + + + /* + * Wrappers for Asn1TaggedObjectParser.ParseExplicitBaseObject + */ + + /// <exception cref="IOException"/> + public static IAsn1Convertible ParseExplicitBaseObject(Asn1TaggedObjectParser taggedObjectParser, int tagClass, + int tagNo) + { + return CheckTag(taggedObjectParser, tagClass, tagNo).ParseExplicitBaseObject(); + } + + /// <exception cref="IOException"/> + public static IAsn1Convertible ParseExplicitContextBaseObject(Asn1TaggedObjectParser taggedObjectParser, + int tagNo) + { + return ParseExplicitBaseObject(taggedObjectParser, Asn1Tags.ContextSpecific, tagNo); + } + + /// <exception cref="IOException"/> + public static IAsn1Convertible TryParseExplicitBaseObject(Asn1TaggedObjectParser taggedObjectParser, + int tagClass, int tagNo) + { + if (!taggedObjectParser.HasTag(tagClass, tagNo)) + return null; + + return taggedObjectParser.ParseExplicitBaseObject(); + } + + /// <exception cref="IOException"/> + public static IAsn1Convertible TryParseExplicitContextBaseObject(Asn1TaggedObjectParser taggedObjectParser, + int tagNo) + { + return TryParseExplicitBaseObject(taggedObjectParser, Asn1Tags.ContextSpecific, tagNo); + } } } |