我试图在我的应用程序中使用pkcs11来访问智能卡。这是“列表槽”命令的输出-
root@penguin:~/src/tools$ pkcs11-tool -L
Available slots:
Slot 0 (0xffffffffffffffff): Virtual hotplug slot
(empty)我有两个问题
如果没有,我可以做些什么来将令牌/设备添加到可用的插槽0?
发布于 2017-11-28 00:39:46
您将需要一个“模块”,这是一个动态加载的库,它与特定的智能卡接口。如果您的智能卡可以使用OpenSC (例如,PIV模式下的Yubikey ),您可以使用OpenSC模块,它通常在/usr/lib/x86_64-linux-gnu/opensc-pkcs11.so上使用,或者在macOS系统上使用/Library/OpenSC/lib/opensc-pkcs11.dylib。如果您没有物理智能卡,并且只想使用PKCS#11 API,则可以安装和使用SoftHSM,它在软件中模拟PKCS#11设备。在使用SoftHSM之前,您需要对它进行一点配置,以创建必要的插槽。SoftHSM模块通常位于Linux系统上的/usr/lib/x86_64-linux-gnu/softhsm/libsofthsm2.so。您需要在每次执行--module时指定pkcs11-tool。
下面是如何设置和使用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如果您正在使用硬件智能卡,通常您将有一组固定的插槽。
https://stackoverflow.com/questions/47521988
复制相似问题