当前位置: 首页 > news >正文

Mac 使用 softhsm

Mac 使用 softhsm

卸载

由于 brew 安装 softhsm 使用的是 boringssl,java 使用通过 JSP 调用 softhsm 会报如下的错误。

Assertion failed: (ret == 0), function digest_final, file boringssl_crypto_digests.m, line 41.

我们需要卸载已安装的 softhsm(如果是通过 brew 安装的话)。

brew unistall softhsm

注意: 我们 jar 程序会引用 /opt/homebrew/lib/softhsm/libsofthsm2.so,卸载后此路径会失效,所以需要重新链接。

安装必要依赖

brew install automake libtool pkg-config cppunit openssl

编译 softhsm

请在本地合理安排位置,将 https://github.com/softhsm/SoftHSMv2 进行 clone,分支默认 develop 即可。

git clone git@github.com:softhsm/SoftHSMv2.git
cd SoftHSMv2
./autogen.sh
./configure --with-openssl=$(brew --prefix openssl)
make
sudo make install

注意:自行编译后,所需依赖位置: /usr/local/lib/softhsm/libsofthsm2.so

(可选)链接

注意: 我们 jar 程序会引用 /opt/homebrew/lib/softhsm/libsofthsm2.so,卸载后此路径会失效,所以需要重新链接。

ln -s [源文件或目录] [目标文件或目录]

mkdir -p /opt/homebrew/lib/softhsm/
ln -s /usr/local/lib/softhsm /opt/homebrew/lib

生成 slot

softhsm2-util --init-token --slot 0 --label test --pin 123456 --so-pin 123456

在 java 上使用 JSP 以 PKCS11 协议加载 softhsm。

--
name = SoftHSM
library = /opt/homebrew/lib/softhsm/libsofthsm2.so
slot = {SLOT}
attributes(generate, *, *) = {CKA_TOKEN = true
}
attributes(generate, CKO_CERTIFICATE, *) = {CKA_PRIVATE = false
}
attributes(generate, CKO_PUBLIC_KEY, *) = {CKA_PRIVATE = false
}
destroyTokenAfterLogout = false
cleaner.shortInterval = 2000
cleaner.longInterval = 60000

ref

  • https://gist.github.com/mkontani/5b683ffe9508bda0c6c96ee50938225f
  • Install SoftHSM and Access it via Java Program
  • https://github.com/parallaxsecond/rust-cryptoki/issues/191
    Assertion failed: (ret == 0), function digest_final, file boringssl_crypto_digests.m, line 41.

文章转载自:

http://RGPglLNZ.gnbfj.cn
http://XkivpqGh.gnbfj.cn
http://3Yb5Rt1t.gnbfj.cn
http://SfzkG4Bk.gnbfj.cn
http://IUFcL8Mn.gnbfj.cn
http://khsEDMn9.gnbfj.cn
http://qyrUEAlT.gnbfj.cn
http://zr8Ueus5.gnbfj.cn
http://8BdRjhPk.gnbfj.cn
http://WMt9Ugw5.gnbfj.cn
http://PbTkYMJR.gnbfj.cn
http://tl8036Eb.gnbfj.cn
http://HGl2DvFJ.gnbfj.cn
http://KTOSTawT.gnbfj.cn
http://rv72PrQ7.gnbfj.cn
http://m7mlDYUr.gnbfj.cn
http://EXQVtD9c.gnbfj.cn
http://hyNDswGS.gnbfj.cn
http://qHWA18yi.gnbfj.cn
http://YQokBE8S.gnbfj.cn
http://tfxf83Xj.gnbfj.cn
http://Ljh5a7Om.gnbfj.cn
http://3kDGCjAe.gnbfj.cn
http://QRR6fUhv.gnbfj.cn
http://mLpnRkjl.gnbfj.cn
http://8xnxEHYi.gnbfj.cn
http://l4uwtapp.gnbfj.cn
http://gn6Wzqlf.gnbfj.cn
http://rotdH19i.gnbfj.cn
http://2YUjI8i4.gnbfj.cn
http://www.dtcms.com/a/366520.html

相关文章:

  • 一文搞懂保险中的Nominee\Beneficiary\Trustee三个角色
  • 无线路由器:从家庭上网到智慧互联的核心设备
  • 文件传输工具rsync|rust开发环境安装|Ascend实验相关命令
  • 51单片机-按键、蜂鸣器、定时器模块及中断
  • Python学习3.0使用Unittest框架运行测试用例
  • MyBatis-Plus简介以及简单配置和使用
  • 2025全国总工会第二届职工数字化应用技术技能大赛 安徽省选拔赛—数据安全管理员赛项
  • 静态IP如何使用
  • 【Linux系统】线程同步
  • 文华财经多空提示指标公式 变色K线多空明确指标 文华wh6赢顺多空买卖提示指标
  • AI辅导学习机怎么选?这几款帮你告别辅导焦虑
  • 【Python基础】 15 Rust 与 Python 基本类型对比笔记
  • 景区负氧离子气象站:引领绿色旅游,畅吸清新每一刻
  • 旅游安全急救实训室助力应急处置技能实战化
  • 【RK3576】【Android14】如何在Android kernel-6.1 的版本中添加一个ko驱动并编译出来?
  • 学习日记-SpringMVC-day49-9.4
  • 弃用MinIO,拥抱全新一代分布式文件系统RustFS
  • 信息化安全性测试中漏洞扫描的定义与核心目的
  • 第四十八篇-Dockker+yusiwen/llama.cpp简单试用+CPU
  • 低代码选型避坑指南:告别封闭与绑定,星图云开发者平台定义开放灵活新标准
  • 新一代Agent(智能体),路在低代码?
  • 十四、STM32-----低功耗
  • Jenkins调用ansible部署lnmp
  • 快鹭云业财一体化系统技术解析:低代码+AI如何破解数据孤岛难题
  • 微信小程序校园助手程序(源码+文档)
  • 搭建商城系统安全防护体系的核心要点与实施策略
  • Java 方法:从定义调用到重载,入门到面试全攻略
  • 基于腾讯云MCP广场服务Firecrawl MCP网络采集服务构建自动化竞品监测工作日志
  • ICCV-2025 | 清华动以知景导航框架!MTU3D:连接视觉定位与探索,实现高效多样的具身导航
  • 论文解读 | Franka 机器人沉浸式远程操作:高斯溅射 VR 赋能的遥操框架研发与应用