Python S/MIME工具包
项目描述
Python S/MIME工具包
此库实现了S/MIME处理器。它仅支持使用公钥RSA加密的S/MIME消息,在AES128-CBC、AES192-CBC或AES256-CBC模式下。
ASN.1实现不依赖于pyasn1,因为它在创建和读取CMS(密码消息语法)时太不完整。相反,此项目使用了asn1crypto。
此实现不再使用已弃用的pycrypto;相反,它已切换到更现代的cryptography库。它不再是“纯Python”(因为后者有依赖关系),但至少它还能工作。
需求
Python 2.7或Python 3.5+
cryptography
asn1crypto
示例
以下代码加载Alice的公钥(PEM格式),并使用它加密S/MIME格式的电子邮件
import sys import smime message = [ 'To: "Alice" <alice@foo.com>', 'From: "Bob" <bob@bar.com>', 'Subject: A message from python', '', 'Now you see me.' ] with open('alice-public-key.pem', 'rb') as pem: print(smime.encrypt('\n'.join(message), pem.read()))
输出
To: "Alice" <alice@foo.com> From: "Bob" <bob@bar.com> Subject: A message from python MIME-Version: 1.0 Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=smime.p7m <base64-enveloped-data>
可以使用OpenSSL从命令行进行解密
$ openssl smime -decrypt -in smime.p7m -inkey alice-private-key.pem
OpenSSL期望上述的< cite >smime.p7m cite>文件应采用DER或PEM格式。后者应包含在< cite >——–BEGIN PKCS7——– cite>和< cite >——–END PKCS7——– cite>之间,内容应以base64编码,就像上述命令的输出一样。示例
-----BEGIN PKCS7----- MIIBdgYJKoZIhvcNAQcDoIIBZzCCAWMCAQAxgb4wgbsCAQAwJjASMRAwDgYDVQQD EwdDYXJsUlNBAhBGNGvHgABWvBHTbi7EELOwMAsGCSqGSIb3DQEBAQSBgCVAQwNg LmJ5ESYxOM1YbOLz2gvzWY1Fk+LZZiylYe7+o1/e/MjtzNwhnu+8vziFwHbXEH1Y jndIbUxiLyXb3omtNDunRICQin5bdo6BI7oE0MufUSqMjk0YUk8UQeNCiUfK89PR RfDclb1/sM3XZ7mUJa2OzpnuQIWec3MuJ3k4MIGcBgkqhkiG9w0BBwEwHQYJYIZI AWUDBAEqBBCVZVOt2lxSzmd+Ti1M372xgHDR0+ToLk1MJeTTtmJdnnNNH6631PN0 i3NJeJBKDDs4onI8xywqFtJP0of6GPoTGV/7D2vkgO2+jhCBTrzjYczbdOhh6Z5X o0i/81NPSoaLhrfwKMQvT7sXX7c9YdbTjyglyGqhXUN8h+mIRlP9IStD -----END PKCS7-----
请记住,上述格式仅用于测试使用OpenSSL的加密。不要在电子邮件中采用此类封装。
许可证
本软件遵循Apache License 2.0许可。有关完整的许可文本,请参阅顶层分发目录中的LICENSE文件。
版本管理
本软件遵循语义版本控制
变更
0.1.0b1 (2019-01-06)
初始发布。
项目详情
< span >发布历史记录 span> < span class="reset-text margin-top"> < a href="/help/#project-release-notifications">发布通知 a> | < a href="/rss/project/smime-py23/releases.xml">RSS源 < i class="fa fa-rss" aria-hidden="true"> span>
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
< a href="https://files.pythonhosted.org/packages/0b/29/35c7d188b35af6819301b2909581d258e712df60c965f4ee50ac01a0f99d/smime-py23-0.1.0b1.tar.gz"> smime-py23-0.1.0b1.tar.gz (93.6 kB < a href="#copy-hash-modal-fa8b8b44-72f8-4de9-b563-e1d2e9bdad0b">查看哈希值)
构建分发
< a href="https://files.pythonhosted.org/packages/a7/36/a5d12a3973bade2e979123557cf072142f054e67c8d9c932e6a8dd7e2455/smime_py23-0.1.0b1-py2.py3-none-any.whl"> smime_py23-0.1.0b1-py2.py3-none-any.whl (22.2 kB < a href="#copy-hash-modal-cf35ac84-5534-42ac-8bdb-26efcfccca93">查看哈希值)
< i class="fa fa-times" aria-hidden="true"> < span class="sr-only">关闭
< a href="https://pip.pythonlang.cn/en/stable/topics/secure-installs/#hash-checking-mode" title="外部链接" target="_blank" rel="noopener">哈希值 for smime-py23-0.1.0b1.tar.gz
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4a736d2cbfdeda9717dacd5f3e7a1f785a0e00a59d38906fb14444968111e66 |
|
MD5 | 5359226e83a3d433e561fd47a7e22bbf |
|
BLAKE2b-256 | 0b2935c7d188b35af6819301b2909581d258e712df60c965f4ee50ac01a0f99d |
< i class="fa fa-times" aria-hidden="true"> < span class="sr-only">关闭
< a href="https://pip.pythonlang.cn/en/stable/topics/secure-installs/#hash-checking-mode" title="外部链接" target="_blank" rel="noopener">哈希值 for smime_py23-0.1.0b1-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 140482a271904dcf2e12439397fb6d737300c2fdac0adf407060a5b5c1fbf5fc |
|
MD5 | e6f2dc5be2eaa4ff6623f42c813c1a41 |
|
BLAKE2b-256 | a736a5d12a3973bade2e979123557cf072142f054e67c8d9c932e6a8dd7e2455 |