diff options
Diffstat (limited to 'crypto/src/asn1/cms/KeyTransRecipientInfo.cs')
-rw-r--r-- | crypto/src/asn1/cms/KeyTransRecipientInfo.cs | 72 |
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); } } |