diff options
Diffstat (limited to 'crypto/src/asn1/cmp/CertifiedKeyPair.cs')
-rw-r--r-- | crypto/src/asn1/cmp/CertifiedKeyPair.cs | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/crypto/src/asn1/cmp/CertifiedKeyPair.cs b/crypto/src/asn1/cmp/CertifiedKeyPair.cs index e26c5c629..9c7fd8175 100644 --- a/crypto/src/asn1/cmp/CertifiedKeyPair.cs +++ b/crypto/src/asn1/cmp/CertifiedKeyPair.cs @@ -18,7 +18,7 @@ namespace Org.BouncyCastle.Asn1.Cmp public static CertifiedKeyPair GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { - return GetInstance(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); + return new CertifiedKeyPair(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } private readonly CertOrEncCert m_certOrEncCert; @@ -33,20 +33,22 @@ namespace Org.BouncyCastle.Asn1.Cmp { if (seq.Count == 2) { - Asn1TaggedObject tagged = Asn1TaggedObject.GetInstance(seq[1]); + Asn1TaggedObject tagged = Asn1TaggedObject.GetInstance(seq[1], Asn1Tags.ContextSpecific); if (tagged.TagNo == 0) { - m_privateKey = EncryptedKey.GetInstance(tagged.GetObject()); + m_privateKey = EncryptedKey.GetInstance(tagged.GetExplicitBaseObject()); } else { - m_publicationInfo = PkiPublicationInfo.GetInstance(tagged.GetObject()); + m_publicationInfo = PkiPublicationInfo.GetInstance(tagged.GetExplicitBaseObject()); } } else { - m_privateKey = EncryptedKey.GetInstance(Asn1TaggedObject.GetInstance(seq[1]).GetObject()); - m_publicationInfo = PkiPublicationInfo.GetInstance(Asn1TaggedObject.GetInstance(seq[2]).GetObject()); + m_privateKey = EncryptedKey.GetInstance( + Asn1TaggedObject.GetInstance(seq[1], Asn1Tags.ContextSpecific).GetExplicitBaseObject()); + m_publicationInfo = PkiPublicationInfo.GetInstance( + Asn1TaggedObject.GetInstance(seq[2], Asn1Tags.ContextSpecific).GetExplicitBaseObject()); } } } @@ -92,7 +94,8 @@ namespace Org.BouncyCastle.Asn1.Cmp */ public override Asn1Object ToAsn1Object() { - Asn1EncodableVector v = new Asn1EncodableVector(m_certOrEncCert); + Asn1EncodableVector v = new Asn1EncodableVector(3); + v.Add(m_certOrEncCert); v.AddOptionalTagged(true, 0, m_privateKey); v.AddOptionalTagged(true, 1, m_publicationInfo); return new DerSequence(v); |