Python中的模块pkcs11
我试图使用Python中的pkcs11,但遇到了一个问题。我看过很多例子,它们都是从相同的代码开始的。然而,当我执行它时,console在代码的第三行中引发错误 代码:Python中的模块pkcs11,python,pkcs#11,keyerror,Python,Pkcs#11,Keyerror,我试图使用Python中的pkcs11,但遇到了一个问题。我看过很多例子,它们都是从相同的代码开始的。然而,当我执行它时,console在代码的第三行中引发错误 代码: import pkcs11 import os # Initialise our PKCS#11 library lib = pkcs11.lib(os.environ['PKCS11_MODULE']) token = lib.get_token(token_label='DEMO') 行中出现错误: lib = pkcs1
import pkcs11
import os
# Initialise our PKCS#11 library
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')
行中出现错误:
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/UserDict.py", line 40, in __getitem__
raise KeyError(key)
KeyError: 'PKCS11_MODULE'
pkcs11包装了一个本机库。它希望在PKCS11_模块环境变量给定的路径中找到该库 您应该将该环境变量设置为安装本机组件的位置
$ export PKCS11_MODULE='/some/path'
$ python myscript.py
要解决此问题,您必须在windows a文件中添加驱动程序的路径。在linux a文件中添加.dll。因此,如下所示:
import pkcs11
lib = pkcs11.lib("C:/Windows/System32/eps2003csp11.dll")
for slot in lib.get_slots():
token = slot.get_token()
print(token)
if token.label == '...':
break
在我的例子中,我使用usb令牌。这样,结果就是所连接令牌的用户名 Python模块本身并不实现PKSC11。它只是完成实际工作的模块的Python包装器。看起来你还没有安装。看看