首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.Net HSM的nShield密码服务提供程序错误

使用.Net HSM的nShield密码服务提供程序错误
EN

Stack Overflow用户
提问于 2014-04-07 14:51:11
回答 1查看 1.7K关注 0票数 2

我正在尝试使用来自泰勒斯的nShield来在其上生成一对非对称密钥。我在msdn上找到了以下示例

代码语言:javascript
复制
CspParameters csp = new CspParameters(1, "eToken Base Cryptographic Provider");
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;
try
{
    RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp); 
            key = rsa.ToXmlString(true);

}
catch(Exception ex )
{
    string s = ex.Message;
}

我可以使用KeySafe成功地连接并在高速机床上生成密钥对.上面的代码引发以下异常:

代码语言:javascript
复制
System.Security.Cryptography.CryptographicException      
"Invalid Signature."    System.Security.Cryptography.CryptographicException

我觉得我没有在CspParameters构造函数中设置正确的第二个参数。这就是它在这个例子中所说的:

代码语言:javascript
复制
 // The 1st parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider Types. 
 // The 2nd parameter comes from HKEY_LOCAL_MACHINE\Software\Microsoft\Cryptography\Defaults\Provider.

我没有看到任何nCipher、nShield、Thales或诸如此类的东西。

编辑:

工作测试:

代码语言:javascript
复制
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
byte[] data = Encoding.ASCII.GetBytes("string");
byte[] enc = rsa.Encrypt(data, false);
String dec = Encoding.ASCII.GetString(rsa.Decrypt(enc, false));
key = rsa.ToXmlString(true);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-07 16:47:58

您需要运行nCipher CSP安装向导,该向导位于“启动”>“所有程序”>“nCipher”下,以便在操作系统中注册nCipher CSP。在此之后,注册表项将可用,您将能够从它们中读取确切的CSP名称。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22915870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档