如何使用Python中的PKCS11对文件进行签名?

如何使用Python中的PKCS11对文件进行签名?,python,django,token,digital-signature,pkcs#11,Python,Django,Token,Digital Signature,Pkcs#11,如何使用Python中的PKCS11对文件进行签名 我正在寻找一种使用“加密令牌接口”对.txt文件进行签名的方法,但我还没有找到解决方案 我的第一个想法是使用pycrypto,但文档中没有提到这一点。pycrypto是一个低级模块,它为您提供了构建密码系统所需的所有部分,而不是完整的密码系统实现 另外,pycrypto不支持PKCS#11。主要的替代方案也是如此。即使您使用其中一个OpenSSL包装器,OpenSSL的正常构建本身也没有编译的PKCS#11支持。您需要在配置时为特定硬件(或多个

如何使用Python中的
PKCS11
对文件进行签名

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


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

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

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

最重要的是,如果你在做PKCS#11,你可能需要一种与智能卡和其他硬件令牌接口的方法,
pycrypto
根本不做这一部分


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

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

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

最重要的是,如果你在做PKCS#11,你可能需要一种与智能卡和其他硬件令牌接口的方法,
pycrypto
根本不做这一部分


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

是您想要使用的。上有文档。

是您想要使用的。有文档说明。

我发现的示例不适用于web(我可能错了)。我的同事向我展示了如何使用
Groovy
(这是可能的)。我正在寻找一个解决方案的网络development@Guilherme当前位置如果您需要更多帮助,请提供更多信息。你在谈论哪些例子?它们如何不适用于web?你的同事在Groovy中向你展示了什么?对不起,我不应该在信息有限的情况下回答这个问题。我的应用程序的主要需求是通过“加密令牌接口”实现的
数字签名
。。。我想在Django做一个web应用程序。如果我不能使用django,我将开始研究如何在Groovy中开发“web应用程序”,因为我的同事在我查看
pykcs11
中的示例时,找到了一种用“java.security.KeyStore”解决问题的方法,在我看来,这是一个非常具体的脚本,提到了DLL之类的东西。例如,这是
Groovy
中的行代码,我想知道如何在
Django
KeyStore pKstore=KeyStore.getInstance(“Windows MY”,“SunMSCAPI”)
pycrypto没有以任何方式包装openssl。我发现的示例不适用于web(我可能错了)。我的同事向我展示了如何使用
Groovy
(这是可能的)。我正在寻找一个解决方案的网络development@Guilherme当前位置如果您需要更多帮助,请提供更多信息。你在谈论哪些例子?它们如何不适用于web?你的同事在Groovy中向你展示了什么?对不起,我不应该在信息有限的情况下回答这个问题。我的应用程序的主要需求是通过“加密令牌接口”实现的
数字签名
。。。我想在Django做一个web应用程序。如果我不能使用django,我将开始研究如何在Groovy中开发“web应用程序”,因为我的同事在我查看
pykcs11
中的示例时,找到了一种用“java.security.KeyStore”解决问题的方法,在我看来,这是一个非常具体的脚本,提到了DLL之类的东西。例如,这是
Groovy
中的行代码,我想知道如何在
Django
KeyStore pKstore=KeyStore.getInstance(“Windows MY”,“SunMSCAPI”)pycrypto没有以任何方式包装openssl。我的应用程序的主要需求是通过“加密令牌接口”进行数字签名。。。例如,这是Groovy中的行代码,我想知道如何在Django KeyStore pKstore=KeyStore.getInstance(“Windows MY”,“SunMSCAPI”);我的应用程序的主要需求是“加密令牌接口”的数字签名。。。例如,这是Groovy中的行代码,我想知道如何在Django KeyStore pKstore=KeyStore.getInstance(“Windows MY”,“SunMSCAPI”);