在二进制文件上进行s/mime签名的非常糟糕的工具。可能不安全。
poor-smime-sign的Python项目详细描述
为任意内容生成s/mime签名的工具很差,可能也不安全。
一个简单的例子:
>>>smime_sign(...signer_cert_path="/path/to/files/signer.cert",...signer_key_path="/path/to/files/signer.pem",...recipient_cert_path="/path/to/files/recipient.cert",...content="test",...output_format="PEM",...)
功能
- 做S/mime签名。
- 验证S/mime签名。
为什么?
这个实用程序库只有一个目的-为 python2和3上的s/mime签名,目前缺少任何 为此目的的适当图书馆。
它构建的主要用例是:在工作中,我们的系统必须生成 Apple Passbook Pass文件,包括S/mime 签名。目前它是使用M2Crypto.SMIME完成的。而那 很好-我们想迁移到Python3号,不幸的是 M2Crypto不完全受支持。smime_sign是穷人的 这个问题的解决办法。
在内部,这只不过是调用openssl smime,所以 可能也想看看它的文档。
为什么不呢?
- 这可能是不安全的。
- 如果您要签署大的文本块,这可能会很慢。
api
smime_sign(signer_cert_path, signer_key_path, cert_path, recipient_cert_path, content, output_format)
为中的content生成并返回签名字符串 output_format。
所有*_path参数都必须是绝对的 路径。
content必须是字符串,而不是路径。
为存折清单生成签名的示例:
>>>manifest_json="..."# JSON string with `manifest.json` content>>>signature=smime_sign(...signer_cert_path="/path/to/files/signer.cert",...signer_key_path="/path/to/files/signer.pem",...cert_path="/path/to/files/intermediate.cert",...recipient_cert_path=None,...content=manifest_json,...output_format="DER",...)
smime_verify(signer_cert_path, content_path, signature_path, signature_format)
根据位于signature_path的签名验证content_path文件。
注意:添加此函数只是为了在测试中提供帮助。
历史记录
2.0.3(2016-09-13)
- 将许可证从AGPLv3更改为MIT。
2.0.2(2016-01-07)
- 修复pypi上的文档呈现
2.0.1(2016-01-07)
- 添加了对传递中间证书的支持。
- 使收件人证书成为可选证书。
- smime_sign的参数结构已更改,因此主版本会增加。
1.0.0(2015-11-27)
- pypi上的第一个版本。