是否有一个python模块可以通过证书存储中的RSA密钥对对数据进行签名和验证? 我尝试用C++加密验证和验证,效果良好。cryptoAPI使用windows上存储(个人)的证书来执行此操作。我可以在不导出私钥或输入密码短语的情况下通过python做同样的事情吗

是否有一个python模块可以通过证书存储中的RSA密钥对对数据进行签名和验证? 我尝试用C++加密验证和验证,效果良好。cryptoAPI使用windows上存储(个人)的证书来执行此操作。我可以在不导出私钥或输入密码短语的情况下通过python做同样的事情吗,python,cryptography,x509certificate,cryptoapi,Python,Cryptography,X509certificate,Cryptoapi,我尝试了pycrypto、oscrypto、wincertstore模块,但他们无法做到这一点。您可以使用ctypes访问Crypt32dll 提供了一个好主意,但是是用python 2.5编写的,因此请参阅中的教程以获取信息和参考 具有openssl的所有功能,并有一整套用于处理x509证书的工具。另外1)PyCrypto已被弃用;改用pycryptome。2) 这个问题与主题无关,这就是为什么我必须投票关闭它。@Legoroj我找不到相关的API来请求“我的”证书存储中的证书来签名和验证签名

我尝试了pycrypto、oscrypto、wincertstore模块,但他们无法做到这一点。

您可以使用ctypes访问
Crypt32
dll


提供了一个好主意,但是是用python 2.5编写的,因此请参阅中的教程以获取信息和参考

具有openssl的所有功能,并有一整套用于处理x509证书的工具。另外1)PyCrypto已被弃用;改用pycryptome。2) 这个问题与主题无关,这就是为什么我必须投票关闭它。@Legoroj我找不到相关的API来请求“我的”证书存储中的证书来签名和验证签名。你能给我看看那一页吗?为什么这个问题是离题的呢?嗯。刚刚发现你可以列出所有内置
ssl
lib的证书
ssl.enum\u证书(store\u name)
其中store name是
CA
ROOT
MY
。我想是最后一次-这有帮助吗?它返回列表。您可以搜索这些证书,然后将证书从商店中加载?@legoroj这当然对签名部分没有帮助。请注意,签名不是证书的功能。但是,Microsoft将存储中的私钥视为证书的一部分。这是一个愚蠢的设计错误——不幸的是,在他们的API中有很多未指定的API。@阿萨姆:好吧,这很难,但我现在能想到的唯一解决方案似乎是;编写自定义的C++扩展。我编写了一个自定义的C++扩展,它工作了。我也试过ctypes,它太麻烦了……
ctypes
可能会让人沮丧,不是吗!