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

Pfx

public class Pfx : Asn1Encodable
using System; namespace Org.BouncyCastle.Asn1.Pkcs { public class Pfx : Asn1Encodable { private readonly ContentInfo m_contentInfo; private readonly MacData m_macData; public ContentInfo AuthSafe => m_contentInfo; public MacData MacData => m_macData; public static Pfx GetInstance(object obj) { if (obj == null) return null; Pfx pfx = obj as Pfx; if (pfx != null) return pfx; return new Pfx(Asn1Sequence.GetInstance(obj)); } public static Pfx GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new Pfx(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static Pfx GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new Pfx(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private Pfx(Asn1Sequence seq) { int count = seq.Count; if (count < 2 || count > 3) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); if (!DerInteger.GetInstance(seq[0]).HasValue(3)) throw new ArgumentException("wrong version for PFX PDU"); m_contentInfo = ContentInfo.GetInstance(seq[1]); m_macData = ((count <= 2) ? null : MacData.GetInstance(seq[2])); } public Pfx(ContentInfo contentInfo, MacData macData) { if (contentInfo == null) throw new ArgumentNullException("contentInfo"); m_contentInfo = contentInfo; m_macData = macData; } public override Asn1Object ToAsn1Object() { if (m_macData != null) return new BerSequence(DerInteger.Three, m_contentInfo, m_macData); return new BerSequence(DerInteger.Three, m_contentInfo); } } }