如何在Python中使用PKCS11签署文件?

时间:2013-04-29 21:17:15

标签: python django token digital-signature pkcs#11

如何在Python中使用PKCS11签署文件?

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

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

2 个答案:

答案 0 :(得分:3)

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

此外,pycrypto没有PKCS#11支持。主要的选择也没有。即使您使用其中一个OpenSSL包装器,OpenSSL的常规版本本身也没有编译的PKCS#11支持。您需要为特定硬件(或多个)指定实现PKCS#11的.dll / .so / .dylib这样的libs)在配置时并构建OpenSSL。

最重要的是,如果您正在进行PKCS#11,您可能需要的其中一个部分是与智能卡和其他硬件令牌交互的方式,并且pycrypto根本不会执行该部分

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

答案 1 :(得分:0)

python-pkcs11是你想要使用的。有signing and verifying的文档。