diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2024-06-05 18:33:27 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2024-06-05 18:33:27 +0700 |
commit | 215f7bad529b793fc0369fec0dad541d1f93ca7e (patch) | |
tree | b56e5bf37b9124b1a1ff2e6bd8c21e246d508638 /crypto/src/asn1/cmp/RootCaKeyUpdateContent.cs | |
parent | ASN.1: GetOptional method for all universal types (diff) | |
download | BouncyCastle.NET-ed25519-215f7bad529b793fc0369fec0dad541d1f93ca7e.tar.xz |
Refactoring in Asn1.Cmp
Diffstat (limited to 'crypto/src/asn1/cmp/RootCaKeyUpdateContent.cs')
-rw-r--r-- | crypto/src/asn1/cmp/RootCaKeyUpdateContent.cs | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/crypto/src/asn1/cmp/RootCaKeyUpdateContent.cs b/crypto/src/asn1/cmp/RootCaKeyUpdateContent.cs index f00090f23..c9782bfd9 100644 --- a/crypto/src/asn1/cmp/RootCaKeyUpdateContent.cs +++ b/crypto/src/asn1/cmp/RootCaKeyUpdateContent.cs @@ -47,30 +47,16 @@ namespace Org.BouncyCastle.Asn1.Cmp private RootCaKeyUpdateContent(Asn1Sequence seq) { - if (seq.Count < 1 || seq.Count > 3) - throw new ArgumentException("expected sequence of 1 to 3 elements only"); + int count = seq.Count, pos = 0; + if (count < 1 || count > 3) + throw new ArgumentException("Bad sequence size: " + count, nameof(seq)); - CmpCertificate newWithNew = CmpCertificate.GetInstance(seq[0]); - CmpCertificate newWithOld = null; - CmpCertificate oldWithNew = null; + m_newWithNew = CmpCertificate.GetInstance(seq[pos++]); + m_newWithOld = Asn1Utilities.ReadOptionalContextTagged(seq, ref pos, 0, true, CmpCertificate.GetInstance); + m_oldWithNew = Asn1Utilities.ReadOptionalContextTagged(seq, ref pos, 1, true, CmpCertificate.GetInstance); - for (int pos = 1; pos < seq.Count; ++pos) - { - Asn1TaggedObject ato = Asn1TaggedObject.GetInstance(seq[pos]); - - if (ato.HasContextTag(0)) - { - newWithOld = CmpCertificate.GetInstance(ato, true); - } - else if (ato.HasContextTag(1)) - { - oldWithNew = CmpCertificate.GetInstance(ato, true); - } - } - - m_newWithNew = newWithNew; - m_newWithOld = newWithOld; - m_oldWithNew = oldWithNew; + if (pos != count) + throw new ArgumentException("Unexpected elements in sequence", nameof(seq)); } public virtual CmpCertificate NewWithNew => m_newWithNew; |