diff --git a/crypto/src/asn1/crmf/CertId.cs b/crypto/src/asn1/crmf/CertId.cs
index f0cc94691..c63c21ca8 100644
--- a/crypto/src/asn1/crmf/CertId.cs
+++ b/crypto/src/asn1/crmf/CertId.cs
@@ -1,48 +1,37 @@
-using System;
-
-using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
+using Org.BouncyCastle.Asn1.X509;
namespace Org.BouncyCastle.Asn1.Crmf
{
public class CertId
: Asn1Encodable
{
- private readonly GeneralName issuer;
- private readonly DerInteger serialNumber;
-
- private CertId(Asn1Sequence seq)
- {
- issuer = GeneralName.GetInstance(seq[0]);
- serialNumber = DerInteger.GetInstance(seq[1]);
- }
-
public static CertId GetInstance(object obj)
{
- if (obj is CertId)
- return (CertId)obj;
-
- if (obj is Asn1Sequence)
- return new CertId((Asn1Sequence)obj);
-
- throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj");
+ if (obj == null)
+ return null;
+ if (obj is CertId certID)
+ return certID;
+ return new CertId(Asn1Sequence.GetInstance(obj));
}
public static CertId GetInstance(Asn1TaggedObject obj, bool isExplicit)
{
- return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit));
+ return new CertId(Asn1Sequence.GetInstance(obj, isExplicit));
}
- public virtual GeneralName Issuer
- {
- get { return issuer; }
- }
+ private readonly GeneralName m_issuer;
+ private readonly DerInteger m_serialNumber;
- public virtual DerInteger SerialNumber
+ private CertId(Asn1Sequence seq)
{
- get { return serialNumber; }
+ m_issuer = GeneralName.GetInstance(seq[0]);
+ m_serialNumber = DerInteger.GetInstance(seq[1]);
}
+ public virtual GeneralName Issuer => m_issuer;
+
+ public virtual DerInteger SerialNumber => m_serialNumber;
+
/**
* <pre>
* CertId ::= SEQUENCE {
@@ -51,9 +40,6 @@ namespace Org.BouncyCastle.Asn1.Crmf
* </pre>
* @return a basic ASN.1 object representation.
*/
- public override Asn1Object ToAsn1Object()
- {
- return new DerSequence(issuer, serialNumber);
- }
+ public override Asn1Object ToAsn1Object() => new DerSequence(m_issuer, m_serialNumber);
}
}
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);
}
}
diff --git a/crypto/src/asn1/crmf/PKMacValue.cs b/crypto/src/asn1/crmf/PKMacValue.cs
index e104c08dd..67e5ce6cc 100644
--- a/crypto/src/asn1/crmf/PKMacValue.cs
+++ b/crypto/src/asn1/crmf/PKMacValue.cs
@@ -1,8 +1,5 @@
-using System;
-
-using Org.BouncyCastle.Asn1.Cmp;
+using Org.BouncyCastle.Asn1.Cmp;
using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
namespace Org.BouncyCastle.Asn1.Crmf
{
@@ -12,29 +9,27 @@ namespace Org.BouncyCastle.Asn1.Crmf
public class PKMacValue
: Asn1Encodable
{
- private readonly AlgorithmIdentifier algID;
- private readonly DerBitString macValue;
-
- private PKMacValue(Asn1Sequence seq)
+ public static PKMacValue GetInstance(object obj)
{
- this.algID = AlgorithmIdentifier.GetInstance(seq[0]);
- this.macValue = DerBitString.GetInstance(seq[1]);
+ if (obj == null)
+ return null;
+ if (obj is PKMacValue pkMacValue)
+ return pkMacValue;
+ return new PKMacValue(Asn1Sequence.GetInstance(obj));
}
- public static PKMacValue GetInstance(object obj)
+ public static PKMacValue GetInstance(Asn1TaggedObject obj, bool isExplicit)
{
- if (obj is PKMacValue)
- return (PKMacValue)obj;
-
- if (obj is Asn1Sequence)
- return new PKMacValue((Asn1Sequence)obj);
-
- throw new ArgumentException("Invalid object: " + Platform.GetTypeName(obj), "obj");
+ return new PKMacValue(Asn1Sequence.GetInstance(obj, isExplicit));
}
- public static PKMacValue GetInstance(Asn1TaggedObject obj, bool isExplicit)
+ private readonly AlgorithmIdentifier m_algID;
+ private readonly DerBitString m_macValue;
+
+ private PKMacValue(Asn1Sequence seq)
{
- return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit));
+ m_algID = AlgorithmIdentifier.GetInstance(seq[0]);
+ m_macValue = DerBitString.GetInstance(seq[1]);
}
/**
@@ -42,9 +37,7 @@ namespace Org.BouncyCastle.Asn1.Crmf
* @param params parameters for password-based MAC
* @param value MAC of the DER-encoded SubjectPublicKeyInfo
*/
- public PKMacValue(
- PbmParameter pbmParams,
- DerBitString macValue)
+ public PKMacValue(PbmParameter pbmParams, DerBitString macValue)
: this(new AlgorithmIdentifier(CmpObjectIdentifiers.passwordBasedMac, pbmParams), macValue)
{
}
@@ -54,23 +47,15 @@ namespace Org.BouncyCastle.Asn1.Crmf
* @param aid CMPObjectIdentifiers.passwordBasedMAC, with PBMParameter
* @param value MAC of the DER-encoded SubjectPublicKeyInfo
*/
- public PKMacValue(
- AlgorithmIdentifier algID,
- DerBitString macValue)
+ public PKMacValue(AlgorithmIdentifier algID, DerBitString macValue)
{
- this.algID = algID;
- this.macValue = macValue;
+ m_algID = algID;
+ m_macValue = macValue;
}
- public virtual AlgorithmIdentifier AlgID
- {
- get { return algID; }
- }
+ public virtual AlgorithmIdentifier AlgID => m_algID;
- public virtual DerBitString MacValue
- {
- get { return macValue; }
- }
+ public virtual DerBitString MacValue => m_macValue;
/**
* <pre>
@@ -82,9 +67,6 @@ namespace Org.BouncyCastle.Asn1.Crmf
* </pre>
* @return a basic ASN.1 object representation.
*/
- public override Asn1Object ToAsn1Object()
- {
- return new DerSequence(algID, macValue);
- }
+ public override Asn1Object ToAsn1Object() => new DerSequence(m_algID, m_macValue);
}
}
diff --git a/crypto/src/asn1/crmf/PopoSigningKey.cs b/crypto/src/asn1/crmf/PopoSigningKey.cs
index c4b0594f7..2d30e1a67 100644
--- a/crypto/src/asn1/crmf/PopoSigningKey.cs
+++ b/crypto/src/asn1/crmf/PopoSigningKey.cs
@@ -1,32 +1,10 @@
-using System;
-
-using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
+using Org.BouncyCastle.Asn1.X509;
namespace Org.BouncyCastle.Asn1.Crmf
{
public class PopoSigningKey
: Asn1Encodable
{
- private readonly PopoSigningKeyInput poposkInput;
- private readonly AlgorithmIdentifier algorithmIdentifier;
- private readonly DerBitString signature;
-
- private PopoSigningKey(Asn1Sequence seq)
- {
- int index = 0;
-
- if (seq[index] is Asn1TaggedObject tagObj)
- {
- index++;
-
- poposkInput = PopoSigningKeyInput.GetInstance(
- Asn1Utilities.GetContextBaseUniversal(tagObj, 0, false, Asn1Tags.Sequence));
- }
- algorithmIdentifier = AlgorithmIdentifier.GetInstance(seq[index++]);
- signature = DerBitString.GetInstance(seq[index]);
- }
-
public static PopoSigningKey GetInstance(object obj)
{
if (obj == null)
@@ -38,7 +16,26 @@ namespace Org.BouncyCastle.Asn1.Crmf
public static PopoSigningKey GetInstance(Asn1TaggedObject obj, bool isExplicit)
{
- return GetInstance(Asn1Sequence.GetInstance(obj, isExplicit));
+ return new PopoSigningKey(Asn1Sequence.GetInstance(obj, isExplicit));
+ }
+
+ private readonly PopoSigningKeyInput m_poposkInput;
+ private readonly AlgorithmIdentifier m_algorithmIdentifier;
+ private readonly DerBitString m_signature;
+
+ private PopoSigningKey(Asn1Sequence seq)
+ {
+ int index = 0;
+
+ if (seq[index] is Asn1TaggedObject tagObj)
+ {
+ index++;
+
+ m_poposkInput = PopoSigningKeyInput.GetInstance(
+ Asn1Utilities.GetContextBaseUniversal(tagObj, 0, false, Asn1Tags.Sequence));
+ }
+ m_algorithmIdentifier = AlgorithmIdentifier.GetInstance(seq[index++]);
+ m_signature = DerBitString.GetInstance(seq[index]);
}
/**
@@ -49,30 +46,18 @@ namespace Org.BouncyCastle.Asn1.Crmf
* @param signature a signature over the DER-encoded value of poposkIn,
* or the DER-encoded value of certReq if poposkIn is null.
*/
- public PopoSigningKey(
- PopoSigningKeyInput poposkIn,
- AlgorithmIdentifier aid,
- DerBitString signature)
+ public PopoSigningKey(PopoSigningKeyInput poposkIn, AlgorithmIdentifier aid, DerBitString signature)
{
- this.poposkInput = poposkIn;
- this.algorithmIdentifier = aid;
- this.signature = signature;
+ m_poposkInput = poposkIn;
+ m_algorithmIdentifier = aid;
+ m_signature = signature;
}
- public virtual PopoSigningKeyInput PoposkInput
- {
- get { return poposkInput; }
- }
+ public virtual PopoSigningKeyInput PoposkInput => m_poposkInput;
- public virtual AlgorithmIdentifier AlgorithmIdentifier
- {
- get { return algorithmIdentifier; }
- }
+ public virtual AlgorithmIdentifier AlgorithmIdentifier => m_algorithmIdentifier;
- public virtual DerBitString Signature
- {
- get { return signature; }
- }
+ public virtual DerBitString Signature => m_signature;
/**
* <pre>
@@ -96,9 +81,9 @@ namespace Org.BouncyCastle.Asn1.Crmf
public override Asn1Object ToAsn1Object()
{
Asn1EncodableVector v = new Asn1EncodableVector(3);
- v.AddOptionalTagged(false, 0, poposkInput);
- v.Add(algorithmIdentifier);
- v.Add(signature);
+ v.AddOptionalTagged(false, 0, m_poposkInput);
+ v.Add(m_algorithmIdentifier);
+ v.Add(m_signature);
return new DerSequence(v);
}
}
diff --git a/crypto/src/asn1/crmf/PopoSigningKeyInput.cs b/crypto/src/asn1/crmf/PopoSigningKeyInput.cs
index 2853e9486..865ed669d 100644
--- a/crypto/src/asn1/crmf/PopoSigningKeyInput.cs
+++ b/crypto/src/asn1/crmf/PopoSigningKeyInput.cs
@@ -1,16 +1,27 @@
-using System;
-
-using Org.BouncyCastle.Asn1.X509;
-using Org.BouncyCastle.Utilities;
+using Org.BouncyCastle.Asn1.X509;
namespace Org.BouncyCastle.Asn1.Crmf
{
public class PopoSigningKeyInput
: Asn1Encodable
{
- private readonly GeneralName sender;
- private readonly PKMacValue publicKeyMac;
- private readonly SubjectPublicKeyInfo publicKey;
+ public static PopoSigningKeyInput GetInstance(object obj)
+ {
+ if (obj == null)
+ return null;
+ if (obj is PopoSigningKeyInput popoSigningKeyInput)
+ return popoSigningKeyInput;
+ return new PopoSigningKeyInput(Asn1Sequence.GetInstance(obj));
+ }
+
+ public static PopoSigningKeyInput GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
+ {
+ return new PopoSigningKeyInput(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
+ }
+
+ private readonly GeneralName m_sender;
+ private readonly PKMacValue m_publicKeyMac;
+ private readonly SubjectPublicKeyInfo m_publicKey;
private PopoSigningKeyInput(Asn1Sequence seq)
{
@@ -18,64 +29,37 @@ namespace Org.BouncyCastle.Asn1.Crmf
if (authInfo is Asn1TaggedObject tagObj)
{
- sender = GeneralName.GetInstance(Asn1Utilities.GetExplicitContextBaseObject(tagObj, 0));
+ m_sender = GeneralName.GetInstance(Asn1Utilities.GetExplicitContextBaseObject(tagObj, 0));
}
else
{
- publicKeyMac = PKMacValue.GetInstance(authInfo);
+ m_publicKeyMac = PKMacValue.GetInstance(authInfo);
}
- publicKey = SubjectPublicKeyInfo.GetInstance(seq[1]);
- }
-
- public static PopoSigningKeyInput GetInstance(object obj)
- {
- if (obj == null)
- return null;
- if (obj is PopoSigningKeyInput popoSigningKeyInput)
- return popoSigningKeyInput;
- return new PopoSigningKeyInput(Asn1Sequence.GetInstance(obj));
- }
-
- public static PopoSigningKeyInput GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit)
- {
- return GetInstance(Asn1Sequence.GetInstance(taggedObject, declaredExplicit));
+ m_publicKey = SubjectPublicKeyInfo.GetInstance(seq[1]);
}
/** Creates a new PopoSigningKeyInput with sender name as authInfo. */
- public PopoSigningKeyInput(
- GeneralName sender,
- SubjectPublicKeyInfo spki)
+ public PopoSigningKeyInput(GeneralName sender, SubjectPublicKeyInfo spki)
{
- this.sender = sender;
- this.publicKey = spki;
+ m_sender = sender;
+ m_publicKey = spki;
}
/** Creates a new PopoSigningKeyInput using password-based MAC. */
- public PopoSigningKeyInput(
- PKMacValue pkmac,
- SubjectPublicKeyInfo spki)
+ public PopoSigningKeyInput(PKMacValue pkmac, SubjectPublicKeyInfo spki)
{
- this.publicKeyMac = pkmac;
- this.publicKey = spki;
+ m_publicKeyMac = pkmac;
+ m_publicKey = spki;
}
/** Returns the sender field, or null if authInfo is publicKeyMac */
- public virtual GeneralName Sender
- {
- get { return sender; }
- }
+ public virtual GeneralName Sender => m_sender;
/** Returns the publicKeyMac field, or null if authInfo is sender */
- public virtual PKMacValue PublicKeyMac
- {
- get { return publicKeyMac; }
- }
+ public virtual PKMacValue PublicKeyMac => m_publicKeyMac;
- public virtual SubjectPublicKeyInfo PublicKey
- {
- get { return publicKey; }
- }
+ public virtual SubjectPublicKeyInfo PublicKey => m_publicKey;
/**
* <pre>
@@ -97,16 +81,16 @@ namespace Org.BouncyCastle.Asn1.Crmf
{
Asn1EncodableVector v = new Asn1EncodableVector(2);
- if (sender != null)
+ if (m_sender != null)
{
- v.Add(new DerTaggedObject(false, 0, sender));
+ v.Add(new DerTaggedObject(false, 0, m_sender));
}
else
{
- v.Add(publicKeyMac);
+ v.Add(m_publicKeyMac);
}
- v.Add(publicKey);
+ v.Add(m_publicKey);
return new DerSequence(v);
}
diff --git a/crypto/src/crmf/CertificateRequestMessage.cs b/crypto/src/crmf/CertificateRequestMessage.cs
index 36149c791..d71e85e1f 100644
--- a/crypto/src/crmf/CertificateRequestMessage.cs
+++ b/crypto/src/crmf/CertificateRequestMessage.cs
@@ -130,7 +130,7 @@ namespace Org.BouncyCastle.Crmf
/// <returns>true if proof-of-possession is present, false otherwise.</returns>
public bool HasProofOfPossession
{
- get { return certReqMsg.Popo != null; }
+ get { return certReqMsg.Pop != null; }
}
/// <summary>
@@ -139,7 +139,7 @@ namespace Org.BouncyCastle.Crmf
/// <returns>one of: popRaVerified, popSigningKey, popKeyEncipherment, popKeyAgreement</returns>
public int ProofOfPossession
{
- get { return certReqMsg.Popo.Type; }
+ get { return certReqMsg.Pop.Type; }
}
/// <summary>
@@ -151,7 +151,7 @@ namespace Org.BouncyCastle.Crmf
{
get
{
- ProofOfPossession pop = certReqMsg.Popo;
+ ProofOfPossession pop = certReqMsg.Pop;
if (pop.Type == popSigningKey)
{
@@ -173,7 +173,7 @@ namespace Org.BouncyCastle.Crmf
/// <exception cref="InvalidOperationException">if POP not appropriate.</exception>
public bool IsValidSigningKeyPop(IVerifierFactoryProvider verifierProvider)
{
- ProofOfPossession pop = certReqMsg.Popo;
+ ProofOfPossession pop = certReqMsg.Pop;
if (pop.Type == popSigningKey)
{
PopoSigningKey popoSign = PopoSigningKey.GetInstance(pop.Object);
diff --git a/crypto/test/src/cmp/test/ProtectedMessageTest.cs b/crypto/test/src/cmp/test/ProtectedMessageTest.cs
index 7f6001d81..e2df4eb40 100644
--- a/crypto/test/src/cmp/test/ProtectedMessageTest.cs
+++ b/crypto/test/src/cmp/test/ProtectedMessageTest.cs
@@ -108,7 +108,7 @@ namespace Org.BouncyCastle.Cmp.Tests
ProtectedPkiMessage msg = new ProtectedPkiMessage(new GeneralPkiMessage(certRequestMsg.ToAsn1Message().GetDerEncoded()));
CertReqMessages reqMsgs = CertReqMessages.GetInstance(msg.Body.Content);
CertReqMsg reqMsg = reqMsgs.ToCertReqMsgArray()[0];
- IsEquals(ProofOfPossession.TYPE_KEY_ENCIPHERMENT, reqMsg.Popo.Type);
+ IsEquals(ProofOfPossession.TYPE_KEY_ENCIPHERMENT, reqMsg.Pop.Type);
}
[Test]
|