首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Python的模块pkcs#11

来自Python的模块pkcs#11
EN

Stack Overflow用户
提问于 2019-02-06 17:10:03
回答 2查看 1.3K关注 0票数 0

我正在尝试使用Python中的pkcs11,但我遇到了一个问题。我看过很多示例,它们都以相同的代码开头。但是,当我执行它时,console在代码的第三行中抛出错误。

代码:

代码语言:javascript
复制
import pkcs11
import os
# Initialise our PKCS#11 library
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])
token = lib.get_token(token_label='DEMO')

行错误:

代码语言:javascript
复制
lib = pkcs11.lib(os.environ['PKCS11_MODULE'])

错误:

代码语言:javascript
复制
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'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-06 17:27:12

pkcs11包装了一个本机库。它期望在PKCS11_MODULE环境变量给定的路径中找到该库。

您应该将该环境变量设置为安装本机组件的位置。

代码语言:javascript
复制
$ export PKCS11_MODULE='/some/path'
$ python myscript.py
票数 1
EN

Stack Overflow用户

发布于 2020-02-28 06:20:17

要解决这个问题,你必须添加你的驱动程序的路径(在windows中是文件.dll,在linux中是文件.so),如下所示:

代码语言:javascript
复制
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 token。这样,结果就是连接的令牌的用户名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54549999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档