diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-07-20 13:01:32 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-07-20 13:01:32 +0700 |
commit | 2af5fb18597085a765f59e6a808bf79155560359 (patch) | |
tree | d07f82c69f7edb122d58294c4be49088059366d4 /crypto/src/asn1/crmf/CertReqMsg.cs | |
parent | Add more MQV OIDs (diff) | |
download | BouncyCastle.NET-ed25519-2af5fb18597085a765f59e6a808bf79155560359.tar.xz |
Refactoring in Asn1.Crmf
Diffstat (limited to 'crypto/src/asn1/crmf/CertReqMsg.cs')
-rw-r--r-- | crypto/src/asn1/crmf/CertReqMsg.cs | 82 |
1 files changed, 34 insertions, 48 deletions
diff --git a/crypto/src/asn1/crmf/CertReqMsg.cs b/crypto/src/asn1/crmf/CertReqMsg.cs index ba9cfd389..1832a34cc 100644 --- a/crypto/src/asn1/crmf/CertReqMsg.cs +++ b/crypto/src/asn1/crmf/CertReqMsg.cs @@ -5,13 +5,27 @@ namespace Org.BouncyCastle.Asn1.Crmf public class CertReqMsg : Asn1Encodable { - private readonly CertRequest certReq; - private readonly ProofOfPossession popo; - private readonly Asn1Sequence regInfo; + public static CertReqMsg GetInstance(object obj) + { + if (obj == null) + return null; + if (obj is CertReqMsg certReqMsg) + return certReqMsg; + return new CertReqMsg(Asn1Sequence.GetInstance(obj)); + } + + public static CertReqMsg GetInstance(Asn1TaggedObject obj, bool isExplicit) + { + return new CertReqMsg(Asn1Sequence.GetInstance(obj, isExplicit)); + } + + private readonly CertRequest m_certReq; + private readonly ProofOfPossession m_pop; + private readonly Asn1Sequence m_regInfo; private CertReqMsg(Asn1Sequence seq) { - certReq = CertRequest.GetInstance(seq[0]); + m_certReq = CertRequest.GetInstance(seq[0]); for (int pos = 1; pos < seq.Count; ++pos) { @@ -19,70 +33,41 @@ namespace Org.BouncyCastle.Asn1.Crmf if (o is Asn1TaggedObject || o is ProofOfPossession) { - popo = ProofOfPossession.GetInstance(o); + m_pop = ProofOfPossession.GetInstance(o); } else { - regInfo = Asn1Sequence.GetInstance(o); + m_regInfo = Asn1Sequence.GetInstance(o); } } } - public static CertReqMsg GetInstance(object obj) - { - if (obj is CertReqMsg) - return (CertReqMsg)obj; - - if (obj != null) - return new CertReqMsg(Asn1Sequence.GetInstance(obj)); - - return null; - } - - public static CertReqMsg GetInstance( - Asn1TaggedObject obj, - bool isExplicit) - { - return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit)); - } - /** * Creates a new CertReqMsg. * @param certReq CertRequest * @param popo may be null * @param regInfo may be null */ - public CertReqMsg( - CertRequest certReq, - ProofOfPossession popo, - AttributeTypeAndValue[] regInfo) + public CertReqMsg(CertRequest certReq, ProofOfPossession popo, AttributeTypeAndValue[] regInfo) { - if (certReq == null) - throw new ArgumentNullException("certReq"); - - this.certReq = certReq; - this.popo = popo; + this.m_certReq = certReq ?? throw new ArgumentNullException(nameof(certReq)); + this.m_pop = popo; if (regInfo != null) { - this.regInfo = new DerSequence(regInfo); + this.m_regInfo = new DerSequence(regInfo); } } - public virtual CertRequest CertReq - { - get { return certReq; } - } + public virtual CertRequest CertReq => m_certReq; - public virtual ProofOfPossession Popo - { - get { return popo; } - } + public virtual ProofOfPossession Pop => m_pop; - public virtual AttributeTypeAndValue[] GetRegInfo() - { - return regInfo?.MapElements(AttributeTypeAndValue.GetInstance); - } + [Obsolete("Use 'Pop' instead")] + public virtual ProofOfPossession Popo => m_pop; + + public virtual AttributeTypeAndValue[] GetRegInfo() => + m_regInfo?.MapElements(AttributeTypeAndValue.GetInstance); /** * <pre> @@ -96,8 +81,9 @@ namespace Org.BouncyCastle.Asn1.Crmf */ public override Asn1Object ToAsn1Object() { - Asn1EncodableVector v = new Asn1EncodableVector(certReq); - v.AddOptional(popo, regInfo); + Asn1EncodableVector v = new Asn1EncodableVector(2); + v.Add(m_certReq); + v.AddOptional(m_pop, m_regInfo); return new DerSequence(v); } } |