PopoSigningKey
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);
}
}
}