Files
SuperVPN/output/Libraries/BouncyCastle.Crypto/Org/BouncyCastle/Asn1/Crmf/CertRequest.cs
2025-10-09 09:57:24 +09:00

59 lines
1.3 KiB
C#

namespace Org.BouncyCastle.Asn1.Crmf;
public class CertRequest : Asn1Encodable
{
private readonly DerInteger certReqId;
private readonly CertTemplate certTemplate;
private readonly Controls controls;
public virtual DerInteger CertReqID => certReqId;
public virtual CertTemplate CertTemplate => certTemplate;
public virtual Controls Controls => controls;
private CertRequest(Asn1Sequence seq)
{
certReqId = DerInteger.GetInstance(seq[0]);
certTemplate = CertTemplate.GetInstance(seq[1]);
if (seq.Count > 2)
{
controls = Controls.GetInstance(seq[2]);
}
}
public static CertRequest GetInstance(object obj)
{
if (obj is CertRequest)
{
return (CertRequest)obj;
}
if (obj != null)
{
return new CertRequest(Asn1Sequence.GetInstance(obj));
}
return null;
}
public CertRequest(int certReqId, CertTemplate certTemplate, Controls controls)
: this(new DerInteger(certReqId), certTemplate, controls)
{
}
public CertRequest(DerInteger certReqId, CertTemplate certTemplate, Controls controls)
{
this.certReqId = certReqId;
this.certTemplate = certTemplate;
this.controls = controls;
}
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(certReqId, certTemplate);
asn1EncodableVector.AddOptional(controls);
return new DerSequence(asn1EncodableVector);
}
}