我正在开发一个UWP应用程序,我需要使用存储在USB密钥上的证书对数据进行签名。
这是我的代码的一部分:
X509Certificate2 myCertificate;
using (var privateKey = cert.GetRSAPrivateKey())
{
if (privateKey == null)
{
return null;
}
[...]
var signedData = privateKey.SignData(dataToBeSigned, algoToUsedToHashData, RSASignaturePadding.Pkcs1);
}
我们使用了供应商提供的USB密钥测试了我们的代码,效果很好。但是我们的一位客户正在使用tuntrust(http://www.tuntrust.tn/)的密钥。使用这些键,测试privateKey == null
在 UWP 项目中(在appxmanifest中检查了相应的容量)是正确的,因此我们无法对数据进行签名,但在 > WPF 项目。
我已经按照此处的建议尝试了certutil -user -repairstore my ""
命令行:https://stackoverflow.com/a/36734804/2367226,但效果不佳...
有什么办法解决这个问题吗?