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);
}
}
}