Report unsupported tags
3 files changed, 13 insertions, 3 deletions
diff --git a/crypto/src/asn1/Asn1InputStream.cs b/crypto/src/asn1/Asn1InputStream.cs
index b4a87eae1..9ac9a6b02 100644
--- a/crypto/src/asn1/Asn1InputStream.cs
+++ b/crypto/src/asn1/Asn1InputStream.cs
@@ -433,7 +433,11 @@ namespace Org.BouncyCastle.Asn1
return DerVideotexString.CreatePrimitive(bytes);
case Asn1Tags.VisibleString:
return DerVisibleString.CreatePrimitive(bytes);
+
+ case Asn1Tags.Real:
+ case Asn1Tags.EmbeddedPdv:
case Asn1Tags.Time:
+ case Asn1Tags.UnrestrictedString:
case Asn1Tags.Date:
case Asn1Tags.TimeOfDay:
case Asn1Tags.DateTime:
diff --git a/crypto/src/asn1/Asn1TaggedObject.cs b/crypto/src/asn1/Asn1TaggedObject.cs
index 314170750..ea882f31d 100644
--- a/crypto/src/asn1/Asn1TaggedObject.cs
+++ b/crypto/src/asn1/Asn1TaggedObject.cs
@@ -294,9 +294,8 @@ namespace Org.BouncyCastle.Asn1
public Asn1Object GetBaseUniversal(bool declaredExplicit, int tagNo)
{
- Asn1UniversalType universalType = Asn1UniversalTypes.Get(tagNo);
- if (null == universalType)
- throw new ArgumentException("unsupported UNIVERSAL tag number: " + tagNo, nameof(tagNo));
+ Asn1UniversalType universalType = Asn1UniversalTypes.Get(tagNo)
+ ?? throw new ArgumentException("unsupported UNIVERSAL tag number: " + tagNo, nameof(tagNo));
return GetBaseUniversal(declaredExplicit, universalType);
}
diff --git a/crypto/src/asn1/Asn1UniversalTypes.cs b/crypto/src/asn1/Asn1UniversalTypes.cs
index f5b5d0498..0ca20fc9c 100644
--- a/crypto/src/asn1/Asn1UniversalTypes.cs
+++ b/crypto/src/asn1/Asn1UniversalTypes.cs
@@ -65,7 +65,14 @@ namespace Org.BouncyCastle.Asn1
case Asn1Tags.Real:
case Asn1Tags.EmbeddedPdv:
+ case Asn1Tags.Time:
case Asn1Tags.UnrestrictedString:
+ case Asn1Tags.Date:
+ case Asn1Tags.TimeOfDay:
+ case Asn1Tags.DateTime:
+ case Asn1Tags.Duration:
+ case Asn1Tags.ObjectIdentifierIri:
+ case Asn1Tags.RelativeOidIri:
default:
return null;
}
|