Cryptography 如何使用pkcs11工具创建插槽?
我正在尝试在我的应用程序中使用pkcs11来访问智能卡。以下是“列表插槽”命令的输出-Cryptography 如何使用pkcs11工具创建插槽?,cryptography,pkcs#11,Cryptography,Pkcs#11,我正在尝试在我的应用程序中使用pkcs11来访问智能卡。以下是“列表插槽”命令的输出- root@penguin:~/src/tools$ pkcs11-tool -L Available slots: Slot 0 (0xffffffffffffffff): Virtual hotplug slot (empty) 我有两个问题 如何模拟假卡,使插槽0中有一个令牌/设备,我可以访问 我可以创建其他插槽并向其中添加令牌/设备吗 如果没有,我可以如何将令牌/设备添加到可用插槽0?您需要一个“
root@penguin:~/src/tools$ pkcs11-tool -L
Available slots:
Slot 0 (0xffffffffffffffff): Virtual hotplug slot
(empty)
我有两个问题
/usr/lib/x86_64-linux-gnu/OpenSC-pkcs11.so
,或者macOS系统上的/Library/OpenSC/lib/OpenSC-pkcs11.dylib
。如果您没有物理智能卡,只想使用PKCS#11 API,您可以安装并使用它,它在软件中模拟PKCS#11设备。在使用SoftHSM之前,需要对其进行一点配置,以创建必要的插槽。SoftHSM模块通常位于linux系统上的/usr/lib/x86_64-linux-gnu/SoftHSM/libsofthsm2。每次执行pkcs11工具时,都需要指定--module
以下是如何设置和使用SoftHSMv2的示例:
mkdir softhsm
cd softhsm
echo "directories.tokendir = $PWD/" > softhsm2.conf
export SOFTHSM2_CONF=$PWD/softhsm2.conf
pkcs11-tool -L --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so
默认情况下,SoftHSMv2将有一个插槽。在第一个插槽中初始化令牌后,它将自动添加第二个插槽,依此类推
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so -L
Available slots:
Slot 0 (0x0): SoftHSM slot 0
token state: uninitialized
$ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so --init-token --label my_token
Using slot 0 with a present token (0x0)
Please enter the new SO PIN:
Please enter the new SO PIN (again):
Token successfully initialized
membrane:~ $ pkcs11-tool --module /usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so -L
Available slots:
Slot 0 (0x0): SoftHSM slot 0
token label : my_token
token manufacturer : SoftHSM project
token model : SoftHSM v2
token flags : rng, login required, token initialized, other flags=0x20
hardware version : 2.0
firmware version : 2.0
serial num : 5bed215e0df0d1f1
Slot 1 (0x1): SoftHSM slot 1
token state: uninitialized
如果您使用的是硬件智能卡,通常您会有一组固定的插槽。我尝试安装SoftHSM,但认为没有帮助,因为我看到了相同的输出(没有可用的插槽) : root@penguin:~/src/tools$pkcs11 tool-L--module/usr/lib/softhsm/libsofthsm.so可用插槽:没有空位@jshaYou提到-在使用SoftHSM之前,您需要稍微配置一下它,以创建必要的插槽-执行此操作的步骤是什么?有趣的是,如果我使用-softhsm2 util--show slots,我会看到插槽。但不能使用pkcs11工具-L--module/usr/lib/softhsm/libsofthsm.so。这是为什么?设置softhsm的说明在上面的“下面是一个如何设置和使用SoftHSMv2的示例”下。我不确定为什么你看不到pkcs11工具的插槽;这对我有用!您确定为pkcs11工具提供了正确的模块路径吗?您是否在这两种情况下都正确导出了SOFTHSM2_CONF环境变量?