我们如何在 windows store + C# 中存储和检索包含私钥的证书
How can we store and retrieve a certificate containing private key in a windows store + C#
在我的 Windows 应用程序中,我将获得包含私钥的证书。 public 钥匙在我这里。我想将此证书安全地存储在 Windows 安全文件夹中,并且可以在需要时访问它。请帮我做这件事。任何示例程序。
我找到了如何使用私钥存储证书的解决方案。
byte[] byteKey = DecodePrivateKey(Convert.FromBase64String(cryptoCertificateKey));
RSAParameters rsaParam = DecodeRSAPrivateKeyToRSAParam(byteKey);
var cspParams = new CspParameters
{
ProviderType = 1,
Flags = CspProviderFlags.UseUserProtectedKey | CspProviderFlags.NoPrompt};
using (X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine))
{
store.Open(OpenFlags.ReadWrite);
using (RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(cspParams))
{
rsaProvider.ImportParameters(rsaParam);
rsaProvider.PersistKeyInCsp = true;
X509Certificate2 x509Certificate = new X509Certificate2(cryptoCertificate, "123",
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable |
X509KeyStorageFlags.PersistKeySet);
store.Add(x509Certificate);
}}
但是我没有得到如何使用密码保护私钥的解决方案
在我的 Windows 应用程序中,我将获得包含私钥的证书。 public 钥匙在我这里。我想将此证书安全地存储在 Windows 安全文件夹中,并且可以在需要时访问它。请帮我做这件事。任何示例程序。
我找到了如何使用私钥存储证书的解决方案。
byte[] byteKey = DecodePrivateKey(Convert.FromBase64String(cryptoCertificateKey));
RSAParameters rsaParam = DecodeRSAPrivateKeyToRSAParam(byteKey);
var cspParams = new CspParameters
{
ProviderType = 1,
Flags = CspProviderFlags.UseUserProtectedKey | CspProviderFlags.NoPrompt};
using (X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine))
{
store.Open(OpenFlags.ReadWrite);
using (RSACryptoServiceProvider rsaProvider = new RSACryptoServiceProvider(cspParams))
{
rsaProvider.ImportParameters(rsaParam);
rsaProvider.PersistKeyInCsp = true;
X509Certificate2 x509Certificate = new X509Certificate2(cryptoCertificate, "123",
X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable |
X509KeyStorageFlags.PersistKeySet);
store.Add(x509Certificate);
}}
但是我没有得到如何使用密码保护私钥的解决方案