summary refs log tree commit diff
path: root/crypto
diff options
context:
space:
mode:
authorPeter Dettman <peter.dettman@bouncycastle.org>2023-03-13 11:18:57 +0700
committerPeter Dettman <peter.dettman@bouncycastle.org>2023-03-13 11:18:57 +0700
commit9b6a49d24e163898a87db80bf33c7d47642d6338 (patch)
treed9f7fb113d71512311f4f3e5e64d990d372743fe /crypto
parentRefactoring in Asn1 classes (diff)
downloadBouncyCastle.NET-ed25519-9b6a49d24e163898a87db80bf33c7d47642d6338.tar.xz
Report unsupported tags
Diffstat (limited to 'crypto')
-rw-r--r--crypto/src/asn1/Asn1InputStream.cs4
-rw-r--r--crypto/src/asn1/Asn1TaggedObject.cs5
-rw-r--r--crypto/src/asn1/Asn1UniversalTypes.cs7
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;
             }