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

OtherInfo

public class OtherInfo : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.X9 { public class OtherInfo : Asn1Encodable { private readonly KeySpecificInfo m_keyInfo; private readonly Asn1OctetString m_partyAInfo; private readonly Asn1OctetString m_suppPubInfo; public KeySpecificInfo KeyInfo => m_keyInfo; public Asn1OctetString PartyAInfo => m_partyAInfo; public Asn1OctetString SuppPubInfo => m_suppPubInfo; public static OtherInfo GetInstance(object obj) { if (obj == null) return null; OtherInfo otherInfo = obj as OtherInfo; if (otherInfo != null) return otherInfo; return new OtherInfo(Asn1Sequence.GetInstance(obj)); } public static OtherInfo GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new OtherInfo(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static OtherInfo GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new OtherInfo(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } [Obsolete("Use 'GetInstance' instead")] public OtherInfo(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 2 || count > 3) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_keyInfo = KeySpecificInfo.GetInstance(seq[sequencePosition++]); m_partyAInfo = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, Asn1OctetString.GetTagged); m_suppPubInfo = Asn1Utilities.ReadContextTagged(seq, ref sequencePosition, 2, true, Asn1OctetString.GetTagged); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public OtherInfo(KeySpecificInfo keyInfo, Asn1OctetString partyAInfo, Asn1OctetString suppPubInfo) { if (keyInfo == null) throw new ArgumentNullException("keyInfo"); m_keyInfo = keyInfo; m_partyAInfo = partyAInfo; if (suppPubInfo == null) throw new ArgumentNullException("suppPubInfo"); m_suppPubInfo = suppPubInfo; } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(3); asn1EncodableVector.Add(m_keyInfo); asn1EncodableVector.AddOptionalTagged(true, 0, m_partyAInfo); asn1EncodableVector.Add(new DerTaggedObject(2, m_suppPubInfo)); return new DerSequence(asn1EncodableVector); } } }