<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

CertRequest

public class CertRequest : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.Crmf { public class CertRequest : Asn1Encodable { private readonly DerInteger m_certReqId; private readonly CertTemplate m_certTemplate; private readonly Controls m_controls; public virtual DerInteger CertReqID => m_certReqId; public virtual CertTemplate CertTemplate => m_certTemplate; public virtual Controls Controls => m_controls; public static CertRequest GetInstance(object obj) { if (obj == null) return null; CertRequest certRequest = obj as CertRequest; if (certRequest != null) return certRequest; return new CertRequest(Asn1Sequence.GetInstance(obj)); } public static CertRequest GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new CertRequest(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static CertRequest GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new CertRequest(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private CertRequest(Asn1Sequence seq) { int count = seq.Count; if (count < 2 || count > 3) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); int sequencePosition = 0; m_certReqId = DerInteger.GetInstance(seq[sequencePosition++]); m_certTemplate = CertTemplate.GetInstance(seq[sequencePosition++]); m_controls = Asn1Utilities.ReadOptional(seq, ref sequencePosition, Controls.GetOptional); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public CertRequest(int certReqId, CertTemplate certTemplate, Controls controls) : this(new DerInteger(certReqId), certTemplate, controls) { } public CertRequest(DerInteger certReqId, CertTemplate certTemplate, Controls controls) { if (certReqId == null) throw new ArgumentNullException("certReqId"); m_certReqId = certReqId; if (certTemplate == null) throw new ArgumentNullException("certTemplate"); m_certTemplate = certTemplate; m_controls = controls; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.Add(m_certReqId, m_certTemplate); asn1EncodableVector.AddOptional(m_controls); return new DerSequence(asn1EncodableVector); } } }