我正在尝试使用供应商提供的 PKCS#11 函数与 HSM 进行交互。 我使用以下一系列函数来生成 key 、加密和解密数据。 以下序列效果很好。
C_Initialize
C_OpenSession
C_Login
C_GenerateKey//3DES KEY
C_EncryptInit
C_Encrypt
C_DecryptInit
C_Decrypt
C_Logout
C_CloseSession
我的问题:
在使用 C_Logout 和 C_CloseSession 之后,有没有办法通过重新登录并使用相同的登录凭据再次打开 session 来再次使用相同的 KEY(之前生成的)?
当我使用 C_CreateObject 时,它会创建 session 对象并在使用 C_CloseSession 时销毁它吗?
最佳答案
Question: After using C_Logout & C_CloseSession is there a way to reuse same KEY(generated earlier) again by logging back and opening session again with same login credentials?
是的,只需将 CKA_TOKEN
设置为 CK_TRUE
并使用 CKA_LABEL
提供标签以使用 C_FindObjects
搜索它.
Question: When I use C_CreateObject does it create session object and destroy it on using C_CloseSession?
嗯,是的,根据 PKCS#11 规范(v2.20、10.4、表 21):
CKA_TOKEN
isCK_TRUE
if object is a token object;CK_FALSE
if object is a session object. Default isCK_FALSE
.
请注意,您的 token 可能不允许设置所有可能的属性或属性组合,并且可能有内存和其他限制。
关于c - 在 PKCS#11 中使用 key 对象句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410567/