<PackageReference Include="BouncyCastle.Cryptography" Version="2.3.0" />

PopoSigningKey

public class PopoSigningKey : Asn1Encodable
using Org.BouncyCastle.Asn1.X509; namespace Org.BouncyCastle.Asn1.Crmf { public class PopoSigningKey : Asn1Encodable { private readonly PopoSigningKeyInput m_poposkInput; private readonly AlgorithmIdentifier m_algorithmIdentifier; private readonly DerBitString m_signature; public virtual PopoSigningKeyInput PoposkInput => m_poposkInput; public virtual AlgorithmIdentifier AlgorithmIdentifier => m_algorithmIdentifier; public virtual DerBitString Signature => m_signature; public static PopoSigningKey GetInstance(object obj) { if (obj == null) return null; PopoSigningKey popoSigningKey = obj as PopoSigningKey; if (popoSigningKey != null) return popoSigningKey; return new PopoSigningKey(Asn1Sequence.GetInstance(obj)); } public static PopoSigningKey GetInstance(Asn1TaggedObject obj, bool isExplicit) { return new PopoSigningKey(Asn1Sequence.GetInstance(obj, isExplicit)); } private PopoSigningKey(Asn1Sequence seq) { int num = 0; Asn1TaggedObject asn1TaggedObject = seq[num] as Asn1TaggedObject; if (asn1TaggedObject != null) { num++; m_poposkInput = PopoSigningKeyInput.GetInstance(Asn1Utilities.GetContextBaseUniversal(asn1TaggedObject, 0, false, 16)); } m_algorithmIdentifier = AlgorithmIdentifier.GetInstance(seq[num++]); m_signature = DerBitString.GetInstance(seq[num]); } public PopoSigningKey(PopoSigningKeyInput poposkIn, AlgorithmIdentifier aid, DerBitString signature) { m_poposkInput = poposkIn; m_algorithmIdentifier = aid; m_signature = signature; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.AddOptionalTagged(false, 0, m_poposkInput); asn1EncodableVector.Add(m_algorithmIdentifier); asn1EncodableVector.Add(m_signature); return new DerSequence(asn1EncodableVector); } } }