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

EncryptedPrivateKeyInfo

using Org.BouncyCastle.Asn1.X509; using System; namespace Org.BouncyCastle.Asn1.Pkcs { public class EncryptedPrivateKeyInfo : Asn1Encodable { private readonly AlgorithmIdentifier m_encryptionAlgorithm; private readonly Asn1OctetString m_encryptedData; public AlgorithmIdentifier EncryptionAlgorithm => m_encryptionAlgorithm; public static EncryptedPrivateKeyInfo GetInstance(object obj) { if (obj == null) return null; EncryptedPrivateKeyInfo encryptedPrivateKeyInfo = obj as EncryptedPrivateKeyInfo; if (encryptedPrivateKeyInfo != null) return encryptedPrivateKeyInfo; return new EncryptedPrivateKeyInfo(Asn1Sequence.GetInstance(obj)); } public static EncryptedPrivateKeyInfo GetInstance(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new EncryptedPrivateKeyInfo(Asn1Sequence.GetInstance(taggedObject, declaredExplicit)); } public static EncryptedPrivateKeyInfo GetTagged(Asn1TaggedObject taggedObject, bool declaredExplicit) { return new EncryptedPrivateKeyInfo(Asn1Sequence.GetTagged(taggedObject, declaredExplicit)); } private EncryptedPrivateKeyInfo(Asn1Sequence seq) { int count = seq.Count; if (count != 2) throw new ArgumentException("Bad sequence size: " + count.ToString(), "seq"); m_encryptionAlgorithm = AlgorithmIdentifier.GetInstance(seq[0]); m_encryptedData = Asn1OctetString.GetInstance(seq[1]); } public EncryptedPrivateKeyInfo(AlgorithmIdentifier algId, byte[] encoding) { if (algId == null) throw new ArgumentNullException("algId"); m_encryptionAlgorithm = algId; m_encryptedData = DerOctetString.FromContents(encoding); } public byte[] GetEncryptedData() { return m_encryptedData.GetOctets(); } public override Asn1Object ToAsn1Object() { return new DerSequence(m_encryptionAlgorithm, m_encryptedData); } } }