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

Org.BouncyCastle.Pkcs.Pkcs12Store

public class Pkcs12Store
namespace Org.BouncyCastle.Pkcs { public class Pkcs12Store { public const string IgnoreUselessPasswordProperty = "Org.BouncyCastle.Pkcs12.IgnoreUselessPassword"; public IEnumerable<string> Aliases { get; } public int Count { get; } protected virtual void LoadKeyBag(PrivateKeyInfo privKeyInfo, Asn1Set bagAttributes); protected virtual void LoadPkcs8ShroudedKeyBag(EncryptedPrivateKeyInfo encPrivKeyInfo, Asn1Set bagAttributes, char[] password, bool wrongPkcs12Zero); public void Load(Stream input, char[] password); public AsymmetricKeyEntry GetKey(string alias); public bool IsCertificateEntry(string alias); public bool IsKeyEntry(string alias); public bool ContainsAlias(string alias); public X509CertificateEntry GetCertificate(string alias); public string GetCertificateAlias(X509Certificate cert); public X509CertificateEntry[] GetCertificateChain(string alias); public void SetCertificateEntry(string alias, X509CertificateEntry certEntry); public void SetFriendlyName(string alias, string newFriendlyName); public void SetKeyEntry(string alias, AsymmetricKeyEntry keyEntry, X509CertificateEntry[] chain); public void DeleteEntry(string alias); public bool IsEntryOfType(string alias, Type entryType); public void Save(Stream stream, char[] password, SecureRandom random); } }