diff options
Diffstat (limited to 'crypto/src/asn1/esf/OtherSigningCertificate.cs')
-rw-r--r-- | crypto/src/asn1/esf/OtherSigningCertificate.cs | 84 |
1 files changed, 31 insertions, 53 deletions
diff --git a/crypto/src/asn1/esf/OtherSigningCertificate.cs b/crypto/src/asn1/esf/OtherSigningCertificate.cs index a4f4a0727..aa1dcbf99 100644 --- a/crypto/src/asn1/esf/OtherSigningCertificate.cs +++ b/crypto/src/asn1/esf/OtherSigningCertificate.cs @@ -17,111 +17,89 @@ namespace Org.BouncyCastle.Asn1.Esf public class OtherSigningCertificate : Asn1Encodable { - private readonly Asn1Sequence certs; - private readonly Asn1Sequence policies; + private readonly Asn1Sequence m_certs; + private readonly Asn1Sequence m_policies; - public static OtherSigningCertificate GetInstance( - object obj) + public static OtherSigningCertificate GetInstance(object obj) { - if (obj == null || obj is OtherSigningCertificate) - return (OtherSigningCertificate) obj; + if (obj == null) + return null; + + if (obj is OtherSigningCertificate otherSigningCertificate) + return otherSigningCertificate; - if (obj is Asn1Sequence) - return new OtherSigningCertificate((Asn1Sequence) obj); + if (obj is Asn1Sequence asn1Sequence) + return new OtherSigningCertificate(asn1Sequence); - throw new ArgumentException( - "Unknown object in 'OtherSigningCertificate' factory: " - + Platform.GetTypeName(obj), - "obj"); + throw new ArgumentException("Unknown object in 'OtherSigningCertificate' factory: " + Platform.GetTypeName(obj), + nameof(obj)); } - private OtherSigningCertificate( - Asn1Sequence seq) + private OtherSigningCertificate(Asn1Sequence seq) { if (seq == null) - throw new ArgumentNullException("seq"); + throw new ArgumentNullException(nameof(seq)); if (seq.Count < 1 || seq.Count > 2) - throw new ArgumentException("Bad sequence size: " + seq.Count, "seq"); + throw new ArgumentException("Bad sequence size: " + seq.Count, nameof(seq)); - this.certs = Asn1Sequence.GetInstance(seq[0].ToAsn1Object()); + m_certs = Asn1Sequence.GetInstance(seq[0].ToAsn1Object()); if (seq.Count > 1) { - this.policies = Asn1Sequence.GetInstance(seq[1].ToAsn1Object()); + m_policies = Asn1Sequence.GetInstance(seq[1].ToAsn1Object()); } } - public OtherSigningCertificate( - params OtherCertID[] certs) + public OtherSigningCertificate(params OtherCertID[] certs) : this(certs, null) { } - public OtherSigningCertificate( - OtherCertID[] certs, - params PolicyInformation[] policies) + public OtherSigningCertificate(OtherCertID[] certs, params PolicyInformation[] policies) { if (certs == null) - throw new ArgumentNullException("certs"); + throw new ArgumentNullException(nameof(certs)); - this.certs = new DerSequence(certs); + m_certs = new DerSequence(certs); if (policies != null) { - this.policies = new DerSequence(policies); + m_policies = new DerSequence(policies); } } - public OtherSigningCertificate( - IEnumerable<OtherCertID> certs) + public OtherSigningCertificate(IEnumerable<OtherCertID> certs) : this(certs, null) { } - public OtherSigningCertificate( - IEnumerable<OtherCertID> certs, - IEnumerable<PolicyInformation> policies) + public OtherSigningCertificate(IEnumerable<OtherCertID> certs, IEnumerable<PolicyInformation> policies) { if (certs == null) - throw new ArgumentNullException("certs"); + throw new ArgumentNullException(nameof(certs)); - this.certs = new DerSequence( - Asn1EncodableVector.FromEnumerable(certs)); + m_certs = new DerSequence(Asn1EncodableVector.FromEnumerable(certs)); if (policies != null) { - this.policies = new DerSequence( - Asn1EncodableVector.FromEnumerable(policies)); + m_policies = new DerSequence(Asn1EncodableVector.FromEnumerable(policies)); } } public OtherCertID[] GetCerts() { - OtherCertID[] cs = new OtherCertID[certs.Count]; - for (int i = 0; i < certs.Count; ++i) - { - cs[i] = OtherCertID.GetInstance(certs[i].ToAsn1Object()); - } - return cs; + return m_certs.MapElements(element => OtherCertID.GetInstance(element.ToAsn1Object())); } public PolicyInformation[] GetPolicies() { - if (policies == null) - return null; - - PolicyInformation[] ps = new PolicyInformation[policies.Count]; - for (int i = 0; i < policies.Count; ++i) - { - ps[i] = PolicyInformation.GetInstance(policies[i].ToAsn1Object()); - } - return ps; + return m_policies?.MapElements(element => PolicyInformation.GetInstance(element.ToAsn1Object())); } public override Asn1Object ToAsn1Object() { - Asn1EncodableVector v = new Asn1EncodableVector(certs); - v.AddOptional(policies); + Asn1EncodableVector v = new Asn1EncodableVector(m_certs); + v.AddOptional(m_policies); return new DerSequence(v); } } |