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

MQVuserKeyingMaterial

using System; namespace Org.BouncyCastle.Asn1.Cms.Ecc { public class MQVuserKeyingMaterial : Asn1Encodable { private readonly OriginatorPublicKey m_ephemeralPublicKey; private readonly Asn1OctetString m_addedukm; public OriginatorPublicKey EphemeralPublicKey => m_ephemeralPublicKey; public Asn1OctetString AddedUkm => m_addedukm; public static MQVuserKeyingMaterial GetInstance(object obj) { if (obj == null) return null; MQVuserKeyingMaterial mQVuserKeyingMaterial = obj as MQVuserKeyingMaterial; if (mQVuserKeyingMaterial != null) return mQVuserKeyingMaterial; return new MQVuserKeyingMaterial(Asn1Sequence.GetInstance(obj)); } public static MQVuserKeyingMaterial GetInstance(Asn1TaggedObject obj, bool isExplicit) { return new MQVuserKeyingMaterial(Asn1Sequence.GetInstance(obj, isExplicit)); } public static MQVuserKeyingMaterial GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new MQVuserKeyingMaterial(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } public MQVuserKeyingMaterial(OriginatorPublicKey ephemeralPublicKey, Asn1OctetString addedukm) { if (ephemeralPublicKey == null) throw new ArgumentNullException("ephemeralPublicKey"); m_ephemeralPublicKey = ephemeralPublicKey; m_addedukm = addedukm; } private MQVuserKeyingMaterial(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 1 || count > 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_ephemeralPublicKey = OriginatorPublicKey.GetInstance(seq[sequencePosition++]); m_addedukm = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, Asn1OctetString.GetTagged); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public override Asn1Object ToAsn1Object() { Asn1EncodableVector asn1EncodableVector = new Asn1EncodableVector(2); asn1EncodableVector.Add(m_ephemeralPublicKey); asn1EncodableVector.AddOptionalTagged(true, 0, m_addedukm); return new DerSequence(asn1EncodableVector); } } }