问题标签 [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.
java - SoftHSM 无法获得证书
在 SoftHsm (v2.4.0) 中,我注意到如果您在同一令牌中没有相应的私钥,则无法提取自签名证书。我使用 OpenSSL 生成了证书,然后使用softhsm2-util --import将其导入。
我正在使用 Java 与 SoftHSM 交互,如果私钥不存在,则调用KeyStore.getCertificate(label)返回null 。这是一个错误还是一个正常的密码学问题?我试图在网上寻找,但没有找到任何东西......
digital-signature - Pkcs11Exception:方法 C_GetSessionInfo 返回 CKR_CRYPTOKI_NOT_INITIALIZED
我们使用 Thales nShield HSM 存储私钥,相应的公钥存储在证书存储中。
我们写的逻辑如下:
- 搜索一个有效的插槽并在第一次调用时为其打开一个会话,它可以为多个请求提供服务。
- 半小时后过期。在未过期期间,如果它收到任何服务请求。
- 现在,即使它没有过期,当我们尝试检查 sessionInfo 时,它也会给出以下消息:
方法 C_GetSessionInfo 返回 CKR_CRYPTOKI_NOT_INITIALIZED
请帮忙。提前致谢。
以下是对上述查询的补充。
我们创建了一个类,它封装了所有 Pkcs11Interop 使用,并暴露了一些方法,如下所示。
openssl - 带有 ECC 密钥的 engine_pkcs11 和 softhsm
我有 softhsm-v2.5.0-rc1,其中导入了 ec 密钥。现在,当我尝试使用 pkcs11 引擎从 openssl CLI 使用这些密钥时,它会失败。
SoftHSM 版本
/li>SoftHSM 令牌初始化
/li>pkcs8 格式的 ECC 密钥
/li>将密钥导入softhsm
/li>获取私钥的 pkcs11 url
/li>尝试使用 openssl 引擎访问密钥。
/li>
====
只是为了完整性,执行完全相同的步骤,但对于 RSA 密钥工作正常
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.
- Checkout the fabric-ca v1.3.0
- 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
- 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 default
PKCS11BCCSP
java - 为什么 Cryptoki.C_OpenSession 有时会与 HSM 断开连接
我创建了一个 web 服务 isAlive 来检查我是否可以使用 Cryptoki 创建与 HSM 软件的会话,我使用 SoapUI 自动执行我的 web 服务,所以我每 40 秒循环执行一次我的服务,它运行良好但经过一个数字在我重新启动我的应用程序之前,我无法连接到我的 HSM:这是我用来连接到 HSM 的代码部分
在执行我的服务期间,我查看日志,我发现 session.longValue() 每次调用都会增加:
这是日志:
我问是否有人知道 Cryptoki.C_OpenSession 的工作原理以及为什么我从 HSM 断开连接
pkcs#11 - 以非 root 用户身份通过 softhsm2 创建令牌时出错“无法初始化库”
在以非 root 用户身份通过 softhsm2-util 初始化令牌时,我收到以下错误:
我怎样才能解决这个问题?
hyperledger-fabric - 对等节点开始抛出找不到默认的pkcs11 BCCSP错误
我正在尝试在启用 SoftHSM 的情况下运行 Hyperledger Fabric peer。Fabric-ca-server 已经在启用 SoftHSM 的情况下运行,并且所有证书都是在启用 HSM 的情况下生成的。
最初,当我尝试运行 fabric-ca-server 时,它抛出了相同的错误Could not find default
PKCS11 BCCSP
。
然后我发现有些人建议从源代码构建,它修复了这个错误。
现在,当我运行peer node start
命令引导对等方时,我面临同样的错误。
上的BCCSP
内容core.yaml
如下:
我运行时的错误peer node start
:
我正在使用以下对等版本:
java - 没有安装的提供程序支持此密钥:sun.security.pkcs11.P11Key$P11SecretKey while using SoftHSM2 AES Key
我愿意使用存储在 softHSM2 软件中的 AES 密钥来加密/解密数据。
我正在使用以下代码创建我的密钥:
这是 pkcs11.cfg
我的密钥已正确添加,这是输出:
现在我想使用这个密钥来加密/解密。这是要加密的代码:
和解密功能:
但我提出了以下异常:
两个 cipher.init 调用都引发了异常,请注意,如果我正在创建这样的 AES 密钥(在 softHSM2 之外),则此代码运行良好:
可能是我错过了什么?
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 行
c# - 找到对象后如何更新特定属性。收到错误方法 C_SetAttributeValue 返回 CKR_ATTRIBUTE_READ_ONLY
我试图在找到对象后更新属性。尝试过不同的案例。
我的创建代码:
我的修改代码是: