crypto.dll 错误 'C_Initialize - This object is not connected to a module.'

crypto.dll error 'C_Initialize - This object is not connected to a module.'

我在尝试访问时遇到此错误。如何使用 crypto.dll 库在 .NET C# 中访问 HSM?

signature.addKeyInfo(new ECertificate(cert.getEncoded()));
var c = HsmManager.getInstance().getSigner("MyPassword", cert);
static Module pkcs11Module = Module.getInstance(@"C:\Program Files\SafeNet\Protect Toolkit 5\Protect Toolkit C SDK\bin\sw\cryptoki.dll");

[MethodImpl(MethodImplOptions.Synchronized)]
public static HsmManager getInstance() { 
   pkcs11Module.initialize(null);
   Slot[] slots = pkcs11Module.getSlotList(true);   
}

我解决了我的问题。

解决方案:HSM 设备驱动程序是 x86 位的。我尝试使用 x86 位 PKCS#11,即使客户端计算机是 x64。 (我之前试过x64)

然后将 x86 位库导入到我的项目中,它成功了!