summary refs log tree commit diff
path: root/crypto/src/asn1/cms/KeyTransRecipientInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/asn1/cms/KeyTransRecipientInfo.cs')
-rw-r--r--crypto/src/asn1/cms/KeyTransRecipientInfo.cs72
1 files changed, 25 insertions, 47 deletions
diff --git a/crypto/src/asn1/cms/KeyTransRecipientInfo.cs b/crypto/src/asn1/cms/KeyTransRecipientInfo.cs
index 1d9825b02..2274d1631 100644
--- a/crypto/src/asn1/cms/KeyTransRecipientInfo.cs
+++ b/crypto/src/asn1/cms/KeyTransRecipientInfo.cs
@@ -1,7 +1,6 @@
 using System;
 
 using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
 
 namespace Org.BouncyCastle.Asn1.Cms
 {
@@ -26,59 +25,40 @@ namespace Org.BouncyCastle.Asn1.Cms
 #pragma warning restore CS0618 // Type or member is obsolete
         }
 
-        private DerInteger          version;
-        private RecipientIdentifier rid;
-        private AlgorithmIdentifier keyEncryptionAlgorithm;
-        private Asn1OctetString     encryptedKey;
+        private readonly DerInteger m_version;
+        private readonly RecipientIdentifier m_rid;
+        private readonly AlgorithmIdentifier m_keyEncryptionAlgorithm;
+        private readonly Asn1OctetString m_encryptedKey;
 
-		public KeyTransRecipientInfo(
-            RecipientIdentifier rid,
-            AlgorithmIdentifier keyEncryptionAlgorithm,
-            Asn1OctetString     encryptedKey)
+        public KeyTransRecipientInfo(RecipientIdentifier rid, AlgorithmIdentifier keyEncryptionAlgorithm,
+            Asn1OctetString encryptedKey)
         {
-            if (rid.ToAsn1Object() is Asn1TaggedObject)
-            {
-                this.version = DerInteger.Two;
-            }
-            else
-            {
-                this.version = DerInteger.Zero;
-            }
-
-			this.rid = rid;
-            this.keyEncryptionAlgorithm = keyEncryptionAlgorithm;
-            this.encryptedKey = encryptedKey;
+            m_rid = rid ?? throw new ArgumentNullException(nameof(rid));
+            m_keyEncryptionAlgorithm = keyEncryptionAlgorithm ?? throw new ArgumentNullException(nameof(keyEncryptionAlgorithm));
+            m_encryptedKey = encryptedKey ?? throw new ArgumentNullException(nameof(encryptedKey));
+            m_version = rid.IsTagged ? DerInteger.Two : DerInteger.Zero;
         }
 
         [Obsolete("Use 'GetInstance' instead")]
-        public KeyTransRecipientInfo(
-            Asn1Sequence seq)
+        public KeyTransRecipientInfo(Asn1Sequence seq)
         {
-            this.version = (DerInteger) seq[0];
-            this.rid = RecipientIdentifier.GetInstance(seq[1]);
-            this.keyEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(seq[2]);
-            this.encryptedKey = (Asn1OctetString) seq[3];
+            int count = seq.Count;
+            if (count != 4)
+                throw new ArgumentException("Bad sequence size: " + count, nameof(seq));
+
+            m_version = DerInteger.GetInstance(seq[0]);
+            m_rid = RecipientIdentifier.GetInstance(seq[1]);
+            m_keyEncryptionAlgorithm = AlgorithmIdentifier.GetInstance(seq[2]);
+            m_encryptedKey = Asn1OctetString.GetInstance(seq[3]);
         }
 
-		public DerInteger Version
-		{
-			get { return version; }
-		}
+        public DerInteger Version => m_version;
 
-		public RecipientIdentifier RecipientIdentifier
-		{
-			get { return rid; }
-		}
+        public RecipientIdentifier RecipientIdentifier => m_rid;
 
-		public AlgorithmIdentifier KeyEncryptionAlgorithm
-		{
-			get { return keyEncryptionAlgorithm; }
-		}
+        public AlgorithmIdentifier KeyEncryptionAlgorithm => m_keyEncryptionAlgorithm;
 
-		public Asn1OctetString EncryptedKey
-		{
-			get { return encryptedKey; }
-		}
+        public Asn1OctetString EncryptedKey => m_encryptedKey;
 
 		/**
          * Produce an object suitable for an Asn1OutputStream.
@@ -91,9 +71,7 @@ namespace Org.BouncyCastle.Asn1.Cms
          * }
          * </pre>
          */
-        public override Asn1Object ToAsn1Object()
-        {
-			return new DerSequence(version, rid, keyEncryptionAlgorithm, encryptedKey);
-        }
+        public override Asn1Object ToAsn1Object() =>
+			new DerSequence(m_version, m_rid, m_keyEncryptionAlgorithm, m_encryptedKey);
     }
 }