69 lines
1.4 KiB
C#
69 lines
1.4 KiB
C#
using System;
|
|
using Org.BouncyCastle.Asn1.X509;
|
|
|
|
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 is CertificationRequest)
|
|
{
|
|
return (CertificationRequest)obj;
|
|
}
|
|
if (obj != null)
|
|
{
|
|
return new CertificationRequest((Asn1Sequence)obj);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
protected CertificationRequest()
|
|
{
|
|
}
|
|
|
|
public CertificationRequest(CertificationRequestInfo requestInfo, AlgorithmIdentifier algorithm, DerBitString signature)
|
|
{
|
|
reqInfo = requestInfo;
|
|
sigAlgId = algorithm;
|
|
sigBits = signature;
|
|
}
|
|
|
|
[Obsolete("Use 'GetInstance' instead")]
|
|
public 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);
|
|
}
|
|
}
|