尝试设置DSACryptoServiceProvider以用于接受DSA签名的HSM上的DSA签名时出现此错误:
"指定的加密服务提供程序(CSP)不支持此密钥算法。"
调用堆栈:
at System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType,CspParameters parameters,Boolean randomKeyContainer,Int32 dwKeySize,SafeProvHandle& safeProvHandle,SafeKeyHandle& safeKeyHandle) 在System.Security.Cryptography.DSACryptoServiceProvider.GetKeyPair() 在Controller.cs中的ProjektDemoHSM.Controller.setDSAAlgo(Dictionary`2 listProp):第788行
代码:
CSP = new CspParameters(1, "Luna Cryptographic Services for Microsoft Windows");
l.788 : DSAcsp = new DSACryptoServiceProvider(CSP);
我确信CSP
接受DSA
为:(我省了所有支持的算法列表)
c:\Program Files\SafeNet\LunaClient\KSP>certutil -csp "Luna Cryptographic Services for Microsoft Windows" -csptest
Signature Algorithms:
DSA
Asymmetric Algorithms:
DSA
CertUtil: -csptest command completed successfully.
如果有人知道什么可能导致这样的错误,我很有意思。仅供参考,我正在.NET 3.5
上运行,并尝试使用HSM Luna SA。我使用RSACryptoServiceProvider
或ECDsaCng
没有问题,但是``DSA刚刚工作。提前谢谢!