问题标签 [softhsm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
800 浏览

java - SoftHSM 无法获得证书

在 SoftHsm (v2.4.0) 中,我注意到如果您在同一令牌中没有相应的私钥,则无法提取自签名证书。我使用 OpenSSL 生成了证书,然后使用softhsm2-util --import将其导入。

我正在使用 Java 与 SoftHSM 交互,如果私钥不存在,则调用KeyStore.getCertificate(label)返回null 。这是一个错误还是一个正常的密码学问题?我试图在网上寻找,但没有找到任何东西......

0 投票
1 回答
3088 浏览

digital-signature - Pkcs11Exception:方法 C_GetSessionInfo 返回 CKR_CRYPTOKI_NOT_INITIALIZED

我们使用 Thales nShield HSM 存储私钥,相应的公钥存储在证书存储中。

我们写的逻辑如下:

  1. 搜索一个有效的插槽并在第一次调用时为其打开一个会话,它可以为多个请求提供服务。
  2. 半小时后过期。在未过期期间,如果它收到任何服务请求。
  3. 现在,即使它没有过期,当我们尝试检查 sessionInfo 时,它也会给出以下消息:

方法 C_GetSessionInfo 返回 CKR_CRYPTOKI_NOT_INITIALIZED

请帮忙。提前致谢。

以下是对上述查询的补充。

我们创建了一个类,它封装了所有 Pkcs11Interop 使用,并暴露了一些方法,如下所示。

0 投票
0 回答
1010 浏览

openssl - 带有 ECC 密钥的 engine_pkcs11 和 softhsm

我有 softhsm-v2.5.0-rc1,其中导入了 ec 密钥。现在,当我尝试使用 pkcs11 引擎从 openssl CLI 使用这些密钥时,它会失败。

  1. SoftHSM 版本

    /li>
  2. SoftHSM 令牌初始化

    /li>
  3. pkcs8 格式的 ECC 密钥

    /li>
  4. 将密钥导入softhsm

    /li>
  5. 获取私钥的 pkcs11 url

    /li>
  6. 尝试使用 openssl 引擎访问密钥。

    /li>

====

只是为了完整性,执行完全相同的步骤,但对于 RSA 密钥工作正常

0 投票
2 回答
583 浏览

hyperledger-fabric - fabric-ca-server is not able to start with softhsm configuration

I have enabled the PKCS11 in fabric ca , but when starting the fabric-ca-server natively then throwing below error. Please note it works fine with default SW option.

  1. Checkout the fabric-ca v1.3.0
  2. Update BCCSP property as below

bccsp: default: PKCS11 pkcs11: library: /usr/local/lib/softhsm/libsofthsm2.so pin: daily123 label: org1label hash: SHA2 security: 256 filekeystore: # The directory used for the software file-based keystore keystore: msp/keystore

  1. Run server with command ./fabric-ca-server start -b admin:adminpw -d

Error2018/10/12 07:27:01 [INFO] Configuration file location: /opt/gopath/bin/fabric-ca-server-config.yaml 2018/10/12 07:27:01 [INFO] Starting server in home directory: /opt/gopath/bin 2018/10/12 07:27:01 [INFO] Server Version: 1.3.0 2018/10/12 07:27:01 [INFO] Server Levels: &{Identity:1 Affiliation:1 Certificate:1 Credential:1 RAInfo:1 Nonce:1} 2018/10/12 07:27:01 [DEBUG] Making server filenames absolute 2018/10/12 07:27:01 [DEBUG] Initializing default CA in directory /opt/gopath/bin 2018/10/12 07:27:01 [DEBUG] Init CA with home /opt/gopath/bin and config {Version:1.3.0 Cfg:{Identities:{AllowRemove:false} Affiliations:{AllowRemove:false}} CA:{Name: Keyfile: Certfile:ca-cert.pem Chainfile:ca-chain.pem} Signing:0xc4204ce7d0 CSR:{CN:fabric-ca-server Names:[{C:US ST:North Carolina L: O:Hyperledger OU:Fabric SerialNumber:}] Hosts:[safenet localhost] KeyRequest:0xc4204b1ac0 CA:0xc4204b1b40 SerialNumber:} Registry:{MaxEnrollments:-1 Identities:[{ Name:**** Pass:**** Type:client Affiliation: MaxEnrollments:0 Attrs:map[hf.Registrar.Roles:* hf.Registrar.DelegateRoles:* hf.Revoker:1 hf.IntermediateCA:1 hf.GenCRL:1 hf.Registrar.Attributes:* hf.AffiliationMgr:1] }]} Affiliations:map[org2:[department1] org1:[department1 department2]] LDAP:{ Enabled:false URL:ldap://****:****@<host>:<port>/<base> UserFilter:(uid=%s) GroupFilter:(memberUid=%s) Attribute:{[uid member] [{ }] map[groups:[{ }]]} TLS:{false [] { }} } DB:{ Type:sqlite3 Datasource:fabric-ca-server.db TLS:{false [] { }} } CSP:0xc4204de060 Client:<nil> Intermediate:{ParentServer:{ URL: CAName: } TLS:{Enabled:false CertFiles:[] Client:{KeyFile: CertFile:}} Enrollment:{ Name: Secret:**** CAName: AttrReqs:[] Profile: Label: CSR:<nil> Type:x509 }} CRL:{Expiry:24h0m0s} Idemix:{IssuerPublicKeyfile: IssuerSecretKeyfile: RevocationPublicKeyfile: RevocationPrivateKeyfile: RHPoolSize:1000 NonceExpiration:15s NonceSweepInterval:15m}} 2018/10/12 07:27:01 [DEBUG] CA Home Directory: /opt/gopath/bin 2018/10/12 07:27:01 [DEBUG] Checking configuration file version '1.3.0' against server version: '1.3.0' 2018/10/12 07:27:01 [DEBUG] Initializing BCCSP: &{ProviderName:PKCS11 SwOpts:<nil> PluginOpts:<nil>} 2018/10/12 07:27:01 [DEBUG] Closing server DBs Error: Failed to initialize BCCSP Factories: %!s(<nil>) Could not find defaultPKCS11BCCSP

0 投票
1 回答
258 浏览

java - 为什么 Cryptoki.C_OpenSession 有时会与 HSM 断开连接

我创建了一个 web 服务 isAlive 来检查我是否可以使用 Cryptoki 创建与 HSM 软件的会话,我使用 SoapUI 自动执行我的 web 服务,所以我每 40 秒循环执行一次我的服务,它运行良好但经过一个数字在我重新启动我的应用程序之前,我无法连接到我的 HSM:这是我用来连接到 HSM 的代码部分

在执行我的服务期间,我查看日志,我发现 session.longValue() 每次调用都会增加:

这是日志:

我问是否有人知道 Cryptoki.C_OpenSession 的工作原理以及为什么我从 HSM 断开连接

0 投票
1 回答
1644 浏览

pkcs#11 - 以非 root 用户身份通过​​ softhsm2 创建令牌时出错“无法初始化库”

在以非 root 用户身份通过​​ softhsm2-util 初始化令牌时,我收到以下错误:

我怎样才能解决这个问题?

0 投票
1 回答
1065 浏览

hyperledger-fabric - 对等节点开始抛出找不到默认的pkcs11 BCCSP错误

我正在尝试在启用 SoftHSM 的情况下运行 Hyperledger Fabric peer。Fabric-ca-server 已经在启用 SoftHSM 的情况下运行,并且所有证书都是在启用 HSM 的情况下生成的。

最初,当我尝试运行 fabric-ca-server 时,它抛出了相同的错误Could not find defaultPKCS11 BCCSP

然后我发现有些人建议从源代码构建,它修复了这个错误。

现在,当我运行peer node start命令引导对等方时,我面临同样的错误。

上的BCCSP内容core.yaml如下:

我运行时的错误peer node start

我正在使用以下对等版本:

0 投票
1 回答
1022 浏览

java - 没有安装的提供程序支持此密钥:sun.security.pkcs11.P11Key$P11SecretKey while using SoftHSM2 AES Key

我愿意使用存储在 softHSM2 软件中的 AES 密钥来加密/解密数据。

我正在使用以下代码创建我的密钥:

这是 pkcs11.cfg

我的密钥已正确添加,这是输出:

现在我想使用这个密钥来加密/解密。这是要加密的代码:

和解密功能:

但我提出了以下异常:

两个 cipher.init 调用都引发了异常,请注意,如果我正在创建这样的 AES 密钥(在 softHSM2 之外),则此代码运行良好:

可能是我错过了什么?

0 投票
1 回答
243 浏览

c# - Softhsm2 出现 pkcs11interop 错误。对于 UInt32,值太大或太小

我有以下通过 pkcs11interop 库进行 softhsm2 测试的代码

我得到的错误堆栈跟踪是

\Pkcs11Interop-master\Pkcs11Interop-master\src\PkcsTestWindowsApp\Class1.cs:C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master\ 中 PkcsTestWindowsApp.Form1.button1_Click(Object sender, EventArgs e) 的第 15 行src\PkcsTestWindowsApp\Form1.cs:第 27 行 System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ButtonBase.WndProc(Message& m) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)在 System.Windows.Forms.Button.WndProc(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 在 System.Windows.Forms.Control.ControlNativeWindow。WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 在 System.Windows.Forms.Application .ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 在 System.Windows.Forms。 Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() in C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop- master\src\PkcsTestWindowsApp\Program.cs:第 19 行m) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 在 System.Windows.Forms.Application.ComponentManager 的 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)。 System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application.ThreadContext .RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master\src \PkcsTestWindowsApp\Program.cs:第 19 行m) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 在 System.Windows.Forms.Application.ComponentManager 的 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)。 System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application.ThreadContext .RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master\src \PkcsTestWindowsApp\Program.cs:第 19 行NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager .FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)在 System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master\src\PkcsTestWindowsApp\Program.cs:line 19NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager .FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)在 System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master\src\PkcsTestWindowsApp\Program.cs:line 19IntPtr lparam) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 在System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application.Run(Form mainForm ) 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master\src\PkcsTestWindowsApp\Program.cs:line 19 中的 PkcsTestWindowsApp.Program.Main()IntPtr lparam) 在 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 在 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 在System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application.Run(Form mainForm ) 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master\src\PkcsTestWindowsApp\Program.cs:line 19 中的 PkcsTestWindowsApp.Program.Main()ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application .ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master \src\PkcsTestWindowsApp\Program.cs:第 19 行ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData) 在 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 在 System.Windows.Forms.Application .ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\Pkcs11Interop-master \src\PkcsTestWindowsApp\Program.cs:第 19 行Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\ Pkcs11Interop-master\src\PkcsTestWindowsApp\Program.cs:第 19 行Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(Form mainForm) at PkcsTestWindowsApp.Program.Main() 在 C:\Users\kashahid\Downloads\Pkcs11Interop-master\ Pkcs11Interop-master\src\PkcsTestWindowsApp\Program.cs:第 19 行

https://github.com/Pkcs11Interop/Pkcs11Interop

0 投票
2 回答
333 浏览

c# - 找到对象后如何更新特定属性。收到错误方法 C_SetAttributeValue 返回 CKR_ATTRIBUTE_READ_ONLY

我试图在找到对象后更新属性。尝试过不同的案例。

我的创建代码:

我的修改代码是: