diff options
Diffstat (limited to 'crypto/src/asn1/cmp/PbmParameter.cs')
-rw-r--r-- | crypto/src/asn1/cmp/PbmParameter.cs | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/crypto/src/asn1/cmp/PbmParameter.cs b/crypto/src/asn1/cmp/PbmParameter.cs index aeb91d7d0..8119e4faf 100644 --- a/crypto/src/asn1/cmp/PbmParameter.cs +++ b/crypto/src/asn1/cmp/PbmParameter.cs @@ -1,4 +1,6 @@ -using Org.BouncyCastle.Asn1.X509; +using System; + +using Org.BouncyCastle.Asn1.X509; namespace Org.BouncyCastle.Asn1.Cmp { @@ -43,6 +45,10 @@ namespace Org.BouncyCastle.Asn1.Cmp private PbmParameter(Asn1Sequence seq) { + int count = seq.Count; + if (count != 4) + throw new ArgumentException("Bad sequence size: " + count, nameof(seq)); + m_salt = Asn1OctetString.GetInstance(seq[0]); m_owf = AlgorithmIdentifier.GetInstance(seq[1]); m_iterationCount = DerInteger.GetInstance(seq[2]); @@ -57,10 +63,10 @@ namespace Org.BouncyCastle.Asn1.Cmp public PbmParameter(Asn1OctetString salt, AlgorithmIdentifier owf, DerInteger iterationCount, AlgorithmIdentifier mac) { - m_salt = salt; - m_owf = owf; - m_iterationCount = iterationCount; - m_mac = mac; + m_salt = salt ?? throw new ArgumentNullException(nameof(salt)); + m_owf = owf ?? throw new ArgumentNullException(nameof(owf)); + m_iterationCount = iterationCount ?? throw new ArgumentNullException(nameof(iterationCount)); + m_mac = mac ?? throw new ArgumentNullException(nameof(mac)); } public virtual DerInteger IterationCount => m_iterationCount; |