<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" />

CertificationRequest

using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Pkcs { public class CertificationRequest : Asn1Encodable { protected CertificationRequestInfo reqInfo; protected AlgorithmIdentifier sigAlgId; protected DerBitString sigBits; public AlgorithmIdentifier SignatureAlgorithm => sigAlgId; public DerBitString Signature => sigBits; public static CertificationRequest GetInstance(object obj) { if (obj == null) return null; CertificationRequest certificationRequest = obj as CertificationRequest; if (certificationRequest != null) return certificationRequest; return new CertificationRequest(Asn1Sequence.GetInstance(obj)); } public static CertificationRequest GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new CertificationRequest(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static CertificationRequest GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new CertificationRequest(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } protected CertificationRequest() { } public CertificationRequest(CertificationRequestInfo requestInfo, AlgorithmIdentifier algorithm, DerBitString signature) { reqInfo = requestInfo; sigAlgId = algorithm; sigBits = signature; } internal CertificationRequest(Asn1Sequence seq) { if (seq.Count != 3) throw new ArgumentException("Wrong number of elements in sequence", "seq"); reqInfo = CertificationRequestInfo.GetInstance(seq[0]); sigAlgId = AlgorithmIdentifier.GetInstance(seq[1]); sigBits = DerBitString.GetInstance(seq[2]); } public CertificationRequestInfo GetCertificationRequestInfo() { return reqInfo; } public byte[] GetSignatureOctets() { return sigBits.GetOctets(); } public override Asn1Object ToAsn1Object() { return new DerSequence(reqInfo, sigAlgId, sigBits); } } }