如何在Python中使用PKCS11
签署文件?
我正在寻找一种使用“加密令牌接口”来签署.txt
文件的方法,但我还没有找到解决方案。
我的第一个想法是使用pycrypto
,但文档中没有提到这一点。
答案 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的文档。