首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Cryptoki.C_OpenSession有时与高速加工断开?

为什么Cryptoki.C_OpenSession有时与高速加工断开?
EN

Stack Overflow用户
提问于 2018-10-12 17:04:37
回答 1查看 356关注 0票数 1

我创建了一个web服务isAlive来检查是否可以使用Cryptoki创建与HSM软件的会话,我使用SoapUI自动执行我的web服务,所以我每40年代循环执行我的服务,但是经过多次调用之后,我无法连接到我的应用程序:这是我用来连接到HSM的代码的一部分。

代码语言:javascript
复制
// create session handle 
        CK_SESSION_HANDLE session= new CK_SESSION_HANDLE();

        // return code
        CK_RV retcode;

        // get session
        retcode=Cryptoki.C_OpenSession(safeNetSlot, CKF.RW_SESSION, null, null, session);
        checkRetCode(retcode, "Could not open session on HSM");

        log.debug("Session [{}]",session.longValue());

        // do login 
        final String recovHsmPassword = PasswordManagement.recoverPassword(hsmPassword);
        retcode=Cryptoki.C_Login(session, CKU.USER, recovHsmPassword.getBytes(), recovHsmPassword.length());
        checkRetCode(retcode, "Could not login as user");

在执行服务期间,我观察日志,发现session.longValue()随着每次调用而递增:

这是日志:

代码语言:javascript
复制
    INFO 5056 --- [nio-8191-exec-5] ccom.test.app.V1Controler  : Request for isAlive API
    DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService  : Session [1]
    INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler  : Request for isAlive API
    DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService  : Session [2]
    INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler  : Request for isAlive API
    DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService  : Session [3]
    INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler  : Request for isAlive API
                                                     ......
    INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler  : Request for isAlive API     
    DEBUG 5056 --- [nio-8191-exec-5] com.test.app.hsm.HsmService  : Session [1176]
INFO 5056 --- [nio-8191-exec-5] com.test.app.V1Controler  : Request for isAlive API
2018-08-14 10:39:06.550 ERROR 1 --- [nio-8443-exec-3] com.test.app.hsm.HsmService  : HSM return error [MSG_ERROR general error] 

我问是否有人知道Cryptoki.C_OpenSession是如何工作的,以及为什么我与HSM断开连接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-13 14:04:15

一般来说,HSM有一定数量的会话可用。目前您正在打开会话,但永远不会用C_CloseSession关闭它们。您应该将会话当作资源来处理,并且资源可能是稀疏的。

请注意,还有一个名为C_TokenInfo的函数可用于检查令牌状态。确保您使用的是正确的工作函数。你不想在不需要的时候使用密码。

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

https://stackoverflow.com/questions/52784082

复制
相关文章

相似问题

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