static Module pkcs11Module = Module.getInstance(@"C:\Program Files (x86)\SafeNet\Protect Toolkit 5\Protect Toolkit C SDK\bin\sw\cryptoki.dll");
public HsmManager()
{
try
{
pkcs11Module.initialize(null);
Slot[] terminals = pkcs11Module.getSlotList(true);
Slot s;
Token token = terminals[0].Token;
Session session = token.openSession(false, false, null, null);
char[] pass = new char[] { '1', '2', '3', '4' };
session.login(true, pass);}}
我使用pkcs11库在c#中使用hsm设备进行密封过程(不使用任何其他库)。错误消息是Message =“CKR_USER_PIN_NOT_INITIALIZED”有什么问题?谢谢
我对cryptoki一无所知,但我会尽力回答:
看看PKCS#11标准。
CKR_USER_PIN_NOT_INITIALIZED:该值只能由C_Login返回。它表示尚未使用C_InitPIN初始化普通用户的PIN。
换句话说,您的令牌没有PIN。
尝试初始化PIN或尝试在登录呼叫中发送空PIN(可能“有一些方法可以让用户通过Cryptoki库发送PIN而无需对令牌进行身份验证”)