2

如何PKCS11在 Python 中签署文件?

我正在寻找一种.txt使用“加密令牌接口”对文件进行签名的方法,但我还没有找到解决方案。

我的第一个想法是使用pycrypto,但文档没有提到这一点。

4

2 回答 2

6

pycrypto是一个低级模块,它为您提供构建密码系统所需的所有部分,而不是完整的密码系统实现。

此外,pycrypto不支持 PKCS#11。主要的替代品也没有。即使您使用其中一个 OpenSSL 包装器,OpenSSL 的正常构建本身也没有编译 PKCS#11 支持。您需要为您的特定硬件(或多个此类库)在配置时构建 OpenSSL。

最重要的是,如果您正在执行 PKCS#11,您可能需要的其中一个部分是一种与智能卡和其他硬件令牌接口的方法,并且pycrypto根本不做那部分。

您可能想要使用更高级别的库,内置硬件支持,例如pykcs11. 这包含了一个 C 库,该库知道如何使用来自不同供应商的各种不同硬件来执行 Windows 内置 PKCS#11 和跨平台 PKCS#11。希望您可以只使用高级 API;您可能需要使用低级 API(或者甚至组合两个库——例如,您可能想要使用pykcs11生成密钥对,然后使用pycrypto私钥对某些内容进行签名)。

于 2013-04-29T21:30:36.897 回答
1

python-pkcs11是您想要使用的。有关于签名和验证的文档。

于 2017-01-27T01:08:22.017 回答