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

EdiPartyName

public class EdiPartyName : Asn1Encodable
using Org.BouncyCastle.Asn1.X500; using System; namespace Org.BouncyCastle.Asn1.X509 { public class EdiPartyName : Asn1Encodable { private readonly DirectoryString m_nameAssigner; private readonly DirectoryString m_partyName; public DirectoryString NameAssigner => m_nameAssigner; public DirectoryString PartyName => m_partyName; public static EdiPartyName GetInstance(object obj) { if (obj == null) return null; EdiPartyName ediPartyName = obj as EdiPartyName; if (ediPartyName != null) return ediPartyName; return new EdiPartyName(Asn1Sequence.GetInstance(obj)); } public static EdiPartyName GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new EdiPartyName(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private EdiPartyName(Asn1Sequence seq) { int count = seq.Count; int sequencePosition = 0; if (count < 1 || count > 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_nameAssigner = Asn1Utilities.ReadOptionalContextTagged(seq, ref sequencePosition, 0, true, DirectoryString.GetTagged); m_partyName = Asn1Utilities.ReadContextTagged(seq, ref sequencePosition, 1, true, DirectoryString.GetTagged); if (sequencePosition != count) throw new ArgumentException("Unexpected elements in sequence", "seq"); } public EdiPartyName(DirectoryString nameAssigner, DirectoryString partyName) { m_nameAssigner = nameAssigner; if (partyName == null) throw new ArgumentNullException("partyName"); m_partyName = partyName; } public override Asn1Object ToAsn1Object() { if (m_nameAssigner != null) return new DerSequence(m_nameAssigner, m_partyName); return new DerSequence(m_partyName); } } }