Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用LunaProvider在HSM中并发签名抛出CKR\u数据\u无效_Java_Signature_Hsm - Fatal编程技术网

Java 使用LunaProvider在HSM中并发签名抛出CKR\u数据\u无效

Java 使用LunaProvider在HSM中并发签名抛出CKR\u数据\u无效,java,signature,hsm,Java,Signature,Hsm,当我同时尝试在HSM内使用同一密钥进行签名时,某些签名会失败,并出现以下错误: com.safenetinc.luna.exception.lunaCryptokieException:函数“C_Sign”返回0x20(CKR_数据_无效) 只有一个线程和一个jar实例,我没有错误。 我拥有的线程越多,签名失败的频率就越高。 重要的一点是,如果每个线程只有两个实例,那么问题也会发生。 我正在使用Luna JSP提供程序。 该算法是SHA256与ECDSA 我也尝试了令牌连接,但结果相同。 我在c

当我同时尝试在HSM内使用同一密钥进行签名时,某些签名会失败,并出现以下错误: com.safenetinc.luna.exception.lunaCryptokieException:函数“C_Sign”返回0x20(CKR_数据_无效)

只有一个线程和一个jar实例,我没有错误。 我拥有的线程越多,签名失败的频率就越高。 重要的一点是,如果每个线程只有两个实例,那么问题也会发生。

我正在使用Luna JSP提供程序。 该算法是SHA256与ECDSA

我也尝试了令牌连接,但结果相同。 我在crystoki.ini中检查超时,失败发生在超时之前。 即使密钥库或私钥只有一个,我也有这个问题

线程生成器:

publicstaticvoidmain(字符串[]args){
run(DccHsmTest.class,args);

对于(inti=0;i最后,一次简单的重启就解决了这个问题。
现在,我必须找出这个问题是由于在我的代码中错误地使用了HSM,还是由于其他开发人员的测试(其他项目使用了HSM)

最后,简单的重新启动就解决了这个问题。
现在我必须找出这个问题是由于在我的代码中错误地使用了HSM,还是由于其他开发人员的测试(其他项目使用了HSM)

您是否检查了多线程代码没有引起任何争用,是否可以发布该代码而不是上面的单线程代码。
CHALLENGE
静态变量有一个大数据争用条件,因为它在线程之间共享。请删除
static
修饰符,然后再次运行测试。@Augusto它不会改变ge anything.static不应该是个问题,它只是我们在签名中插入的值,而且问题是由signature.sign()引发的,而不是由使用Luna中间件(或任何其他PKCS#11记录器)捆绑的“CKlog”PKCS#11日志实用程序的更新()引发的,这可能有助于揭示问题是否在java方面(cryptoki正在获取无效数据)或在cryptoki端(在提供正确数据时失败)…祝你好运!你检查过你的多线程代码没有引起任何争用吗?你能发布该代码而不是上面的单线程代码吗?
CHALLENGE
静态变量有一个大数据争用条件,因为它在线程之间共享。删除
static
修饰符,然后再次运行测试。@Augusto it doesn不会更改任何内容。使用静态文件应该不会有问题,这只是我们在签名中插入的值,而且问题是由signature.sign()引发的,而不是由使用Luna中间件(或任何其他PKCS#11记录器)捆绑的“CKlog”PKCS#11日志实用程序的更新()引发的,这可能有助于揭示问题是否在java方面(cryptoki正在获取无效数据)或在cryptoki端(在提供正确数据时失败)…祝你好运!