summary refs log tree commit diff
path: root/crypto/src/asn1/cms/SignerIdentifier.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/cms/SignerIdentifier.cs')
-rw-r--r--crypto/src/asn1/cms/SignerIdentifier.cs50
1 files changed, 25 insertions, 25 deletions
diff --git a/crypto/src/asn1/cms/SignerIdentifier.cs b/crypto/src/asn1/cms/SignerIdentifier.cs
index 9edf6a8c8..17f3f08c2 100644
--- a/crypto/src/asn1/cms/SignerIdentifier.cs
+++ b/crypto/src/asn1/cms/SignerIdentifier.cs
@@ -7,6 +7,31 @@ namespace Org.BouncyCastle.Asn1.Cms
     public class SignerIdentifier
         : Asn1Encodable, IAsn1Choice
     {
+        public static SignerIdentifier GetInstance(object o)
+        {
+            if (o == null)
+                return null;
+
+            if (o is SignerIdentifier signerIdentifier)
+                return signerIdentifier;
+
+            if (o is IssuerAndSerialNumber issuerAndSerialNumber)
+                return new SignerIdentifier(issuerAndSerialNumber);
+
+            if (o is Asn1OctetString octetString)
+                return new SignerIdentifier(octetString);
+
+            if (o is Asn1Object asn1Object)
+                return new SignerIdentifier(asn1Object);
+
+            throw new ArgumentException("Illegal object in SignerIdentifier: " + Platform.GetTypeName(o), nameof(o));
+        }
+
+        public static SignerIdentifier GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
+        {
+            return Asn1Utilities.GetInstanceFromChoice(taggedObject, declaredExplicit, GetInstance);
+        }
+
         private Asn1Encodable id;
 
 		public SignerIdentifier(
@@ -27,31 +52,6 @@ namespace Org.BouncyCastle.Asn1.Cms
             this.id = id;
         }
 
-		/**
-         * return a SignerIdentifier object from the given object.
-         *
-         * @param o the object we want converted.
-         * @exception ArgumentException if the object cannot be converted.
-         */
-        public static SignerIdentifier GetInstance(
-            object o)
-        {
-            if (o == null || o is SignerIdentifier)
-                return (SignerIdentifier) o;
-
-			if (o is IssuerAndSerialNumber)
-                return new SignerIdentifier((IssuerAndSerialNumber) o);
-
-			if (o is Asn1OctetString)
-                return new SignerIdentifier((Asn1OctetString) o);
-
-			if (o is Asn1Object)
-                return new SignerIdentifier((Asn1Object) o);
-
-			throw new ArgumentException(
-                "Illegal object in SignerIdentifier: " + Platform.GetTypeName(o));
-        }
-
 		public bool IsTagged
 		{
 			get { return (id is Asn1TaggedObject); }