【发布时间】:2013-12-14 00:21:46
【问题描述】:
在 C# 中使用 RSACryptoServiceProvider 对数据进行签名时,我需要确保导入的证书具有强密钥保护和高安全级别,以要求用户每次使用密钥签名时都输入密码。这是签名代码的快速简化示例:
X509Store myCurrentUserStore = new X509Store(StoreName.My, StoreLocation.CurrentUser);
myCurrentUserStore.Open(OpenFlags.MaxAllowed);
X509Certificate2 currentCertificate = myCurrentUserStore.Certificates[4];
RSACryptoServiceProvider key = new RSACryptoServiceProvider();
key.FromXmlString(currentCertificate.PrivateKey.ToXmlString(true));
byte[] signedData = Encoding.UTF8.GetBytes(originalFileContent);
byte[] signature = key.SignData(signedData, CryptoConfig2.CreateFromName("SHA256CryptoServiceProvider") as HashAlgorithm);
那么检查证书是如何安装的最好的方法是什么,以便在没有安装具有高安全级别的强私钥保护时显示错误消息?
【问题讨论】:
标签: c# x509 x509certificate2 rsacryptoserviceprovider