<PackageReference Include="BouncyCastle.Cryptography" Version="2.7.0-beta.98" />

DerOtherInfo

public sealed class DerOtherInfo
using Org.BouncyCastle.Asn1; using Org.BouncyCastle.Asn1.X509; namespace Org.BouncyCastle.Crypto.Utilities { public sealed class DerOtherInfo { public sealed class Builder { private readonly AlgorithmIdentifier m_algorithmID; private readonly Asn1OctetString m_partyUInfo; private readonly Asn1OctetString m_partyVInfo; private Asn1TaggedObject m_suppPubInfo; private Asn1TaggedObject m_suppPrivInfo; public Builder(AlgorithmIdentifier algorithmID, byte[] partyUInfo, byte[] partyVInfo) { m_algorithmID = algorithmID; m_partyUInfo = DerUtilities.GetOctetString(partyUInfo); m_partyVInfo = DerUtilities.GetOctetString(partyVInfo); } public Builder WithSuppPubInfo(byte[] suppPubInfo) { m_suppPubInfo = new DerTaggedObject(false, 0, DerUtilities.GetOctetString(suppPubInfo)); return this; } public Builder WithSuppPrivInfo(byte[] suppPrivInfo) { m_suppPrivInfo = new DerTaggedObject(false, 1, DerUtilities.GetOctetString(suppPrivInfo)); return this; } public DerOtherInfo Build() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(5); asn1EncodableVector.Add(m_algorithmID); asn1EncodableVector.Add(m_partyUInfo); asn1EncodableVector.Add(m_partyVInfo); asn1EncodableVector.AddOptional(m_suppPubInfo); asn1EncodableVector.AddOptional(m_suppPrivInfo); return new DerOtherInfo(new DerSequence(asn1EncodableVector)); } } private readonly DerSequence m_sequence; private DerOtherInfo(DerSequence sequence) { m_sequence = sequence; } public byte[] GetEncoded() { return m_sequence.GetEncoded(); } } }