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

Gui*_*rme 1 python django token digital-signature pkcs#11

如何PKCS11在 Python 中签署文件?

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

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

aba*_*ert 5

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

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

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

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