diff options
Diffstat (limited to 'crypto/src/asn1/esf/OcspListID.cs')
-rw-r--r-- | crypto/src/asn1/esf/OcspListID.cs | 86 |
1 files changed, 37 insertions, 49 deletions
diff --git a/crypto/src/asn1/esf/OcspListID.cs b/crypto/src/asn1/esf/OcspListID.cs index 974962571..06eb99fc4 100644 --- a/crypto/src/asn1/esf/OcspListID.cs +++ b/crypto/src/asn1/esf/OcspListID.cs @@ -1,57 +1,51 @@ using System; using System.Collections.Generic; -using Org.BouncyCastle.Utilities; - namespace Org.BouncyCastle.Asn1.Esf { - /// <remarks> - /// RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition - /// <code> - /// OcspListID ::= SEQUENCE { - /// ocspResponses SEQUENCE OF OcspResponsesID - /// } - /// </code> - /// </remarks> - public class OcspListID + /// <remarks> + /// RFC 3126: 4.2.2 Complete Revocation Refs Attribute Definition + /// <code> + /// OcspListID ::= SEQUENCE { + /// ocspResponses SEQUENCE OF OcspResponsesID + /// } + /// </code> + /// </remarks> + public class OcspListID : Asn1Encodable { - private readonly Asn1Sequence m_ocspResponses; - - public static OcspListID GetInstance(object obj) - { - if (obj == null) - return null; - - if (obj is OcspListID ocspListID) - return ocspListID; - - if (obj is Asn1Sequence asn1Sequence) - return new OcspListID(asn1Sequence); - - throw new ArgumentException("Unknown object in 'OcspListID' factory: " + Platform.GetTypeName(obj), - nameof(obj)); - } - - private OcspListID(Asn1Sequence seq) + public static OcspListID GetInstance(object obj) + { + if (obj == null) + return null; + if (obj is OcspListID ocspListID) + return ocspListID; + return new OcspListID(Asn1Sequence.GetInstance(obj)); + } + + public static OcspListID GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) + { + return new OcspListID(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); + } + + private readonly Asn1Sequence m_ocspResponses; + + private OcspListID(Asn1Sequence seq) { - if (seq == null) - throw new ArgumentNullException(nameof(seq)); - if (seq.Count != 1) - throw new ArgumentException("Bad sequence size: " + seq.Count, nameof(seq)); - - m_ocspResponses = (Asn1Sequence)seq[0].ToAsn1Object(); + int count = seq.Count; + if (count != 1) + throw new ArgumentException("Bad sequence size: " + count, nameof(seq)); - // Validate - m_ocspResponses.MapElements(element => OcspResponsesID.GetInstance(element.ToAsn1Object())); - } + m_ocspResponses = Asn1Sequence.GetInstance(seq[0]); + m_ocspResponses.MapElements(OcspResponsesID.GetInstance); // Validate + } - public OcspListID(params OcspResponsesID[] ocspResponses) + public OcspListID(params OcspResponsesID[] ocspResponses) { if (ocspResponses == null) throw new ArgumentNullException(nameof(ocspResponses)); - m_ocspResponses = new DerSequence(ocspResponses); + m_ocspResponses = DerSequence.FromElements(ocspResponses); } public OcspListID(IEnumerable<OcspResponsesID> ocspResponses) @@ -59,17 +53,11 @@ namespace Org.BouncyCastle.Asn1.Esf if (ocspResponses == null) throw new ArgumentNullException(nameof(ocspResponses)); - m_ocspResponses = new DerSequence(Asn1EncodableVector.FromEnumerable(ocspResponses)); + m_ocspResponses = DerSequence.FromVector(Asn1EncodableVector.FromEnumerable(ocspResponses)); } - public OcspResponsesID[] GetOcspResponses() - { - return m_ocspResponses.MapElements(element => OcspResponsesID.GetInstance(element.ToAsn1Object())); - } + public OcspResponsesID[] GetOcspResponses() => m_ocspResponses.MapElements(OcspResponsesID.GetInstance); - public override Asn1Object ToAsn1Object() - { - return new DerSequence(m_ocspResponses); - } + public override Asn1Object ToAsn1Object() => new DerSequence(m_ocspResponses); } } |