OpenSSL库的Python封装模块
项目描述
注意:Python密码学权威机构强烈建议在可能的情况下使用pyca/cryptography。如果你使用pyOpenSSL进行除了建立TLS连接以外的任何事情,你应该转向cryptography并去除你的pyOpenSSL依赖。
对OpenSSL库子集的高层包装。包括
SSL.Connection对象,封装了Python可移植套接字的方法
用Python编写的回调函数
广泛的错误处理机制,反映了OpenSSL的错误代码
……以及更多。
讨论
如果你遇到错误,你可以在我们的问题追踪器中报告它们。
我们维护一个cryptography-dev邮件列表,用于用户和开发讨论。
你还可以加入#pyca在irc.libera.chat上提问或参与。
发布信息
24.2.1 (2024-07-20)
不兼容的更改
弃用
更改
修改了更改日志,以删除Sphinx特定的restructured text字符串。
24.2.0 (2024-07-20)
不兼容的更改
弃用
弃用了OpenSSL.crypto.X509Req、OpenSSL.crypto.load_certificate_request、OpenSSL.crypto.dump_certificate_request。相反,应该使用cryptography.x509.CertificateSigningRequest、cryptography.x509.CertificateSigningRequestBuilder、cryptography.x509.load_der_x509_csr或cryptography.x509.load_pem_x509_csr。
更改
24.1.0 (2024-03-09)
不兼容的更改
移除了弃用的OpenSSL.crypto.PKCS12和OpenSSL.crypto.NetscapeSPKI。可以由cryptography包中的PKCS#12 API替代OpenSSL.crypto.PKCS12。
弃用
更改
24.0.0 (2024-01-22)
不兼容的更改
弃用
更改
添加了OpenSSL.SSL.Connection.get_selected_srtp_profile以确定协商了哪个SRTP配置文件。#1279。
23.3.0 (2023-10-25)
不兼容的更改
停止支持Python 3.6。
现在最低的cryptography版本是41.0.5。
移除了已弃用3年的OpenSSL.crypto.load_pkcs7和OpenSSL.crypto.load_pkcs12。
添加了OpenSSL.SSL.OP_LEGACY_SERVER_CONNECT以允许OpenSSL和未修补的服务器之间的不安全重协商。#1234。
弃用
弃用了OpenSSL.crypto.PKCS12(本应与OpenSSL.crypto.load_pkcs12同时弃用)。
弃用了OpenSSL.crypto.NetscapeSPKI。
弃用了OpenSSL.crypto.CRL。
弃用了OpenSSL.crypto.Revoked。
弃用了OpenSSL.crypto.load_crl和OpenSSL.crypto.dump_crl。
弃用了OpenSSL.crypto.sign和OpenSSL.crypto.verify。
弃用了OpenSSL.crypto.X509Extension。
更改
修改了OpenSSL.crypto.X509Store.add_crl,现在除了弃用的OpenSSL.crypto.CRL参数外,还接受cryptography的x509.CertificateRevocationList参数。
修改了test_set_default_verify_paths测试,以便在没有网络连接的情况下跳过。
23.2.0 (2023-05-30)
不兼容的更改
移除了X509StoreFlags.NOTIFY_POLICY。#1213。
弃用
更改
cryptography 的最大版本已提升至 41.0.x。
现在在 OpenSSL.crypto.X509Req.set_version 中拒绝无效版本。
向 OpenSSL.SSL 添加了 X509VerificationCodes。 #1202。
23.1.1 (2023-03-28)
不兼容的更改
弃用
更改
解决了 OpenSSL 3.1.0 中的一个问题,该问题导致在 OpenSSL 不认识简短名称时,X509Extension.get_short_name 会抛出异常。 #1204。
23.1.0 (2023-03-24)
不兼容的更改
弃用
更改
cryptography 的最大版本已提升至 40.0.x。
添加了 OpenSSL.SSL.Connection.DTLSv1_get_timeout 和 OpenSSL.SSL.Connection.DTLSv1_handle_timeout 以支持 DTLS 超时 #1180。
23.0.0 (2023-01-01)
不兼容的更改
弃用
更改
添加了 OpenSSL.SSL.X509StoreFlags.PARTIAL_CHAIN 常量,允许用户在部分证书链上执行证书验证。 #1166
cryptography 的最大版本已提升至 39.0.x。
22.1.0 (2022-09-25)
不兼容的更改
移除对 SSLv2 和 SSLv3 的支持。
现在 cryptography 的最小版本为 38.0.x(并且我们现在将版本锁定在 cryptography 主版本上,以防止未来的破坏)
重构了 OpenSSL.crypto.X509StoreContextError 异常,改变了其内部属性。 #1133
弃用
OpenSSL.SSL.SSLeay_version 已弃用,改为 OpenSSL.SSL.OpenSSL_version。常量 OpenSSL.SSL.SSLEAY_* 已弃用,改为 OpenSSL.SSL.OPENSSL_*。
更改
22.0.0 (2022-01-29)
不兼容的更改
移除对 Python 2.7 的支持。 #1047
现在 cryptography 的最小版本为 35.0。
弃用
更改
21.0.0 (2021-09-28)
不兼容的更改
现在 cryptography 的最小版本为 3.3。
移除对 Python 3.5 的支持
弃用
更改
20.0.1 (2020-12-15)
不兼容的更改
弃用
更改
修复了与 OpenSSL 1.1.0 的兼容性问题。
20.0.0 (2020-11-27)
不兼容的更改
现在 cryptography 的最小版本为 3.2。
移除了已弃用的 OpenSSL.tsafe 模块。
移除了已弃用的 OpenSSL.SSL.Context.set_npn_advertise_callback、OpenSSL.SSL.Context.set_npn_select_callback 和 OpenSSL.SSL.Connection.get_next_proto_negotiated。
移除对 Python 3.4 的支持
移除对 OpenSSL 1.0.1 和 1.0.2 的支持
弃用
弃用了 OpenSSL.crypto.load_pkcs7 和 OpenSSL.crypto.load_pkcs12。
更改
向 OpenSSL.crypto.X509StoreContext() 添加了一个新的可选 chain 参数,其中可以指定额外的未信任证书以帮助构建链。 #948
添加了 OpenSSL.crypto.X509Store.load_locations 以设置用于验证的受信任证书文件包和/或目录。 #943
添加了 Context.set_keylog_callback 以记录密钥材料。 #910
添加了 OpenSSL.SSL.Connection.get_verified_chain 以获取对等方的验证证书链。 #894。
在 Context.set_verify 中将验证回调设置为可选。如果省略,则使用 OpenSSL 的默认验证。 #933
修复了 OpenSSL.crypto.load_privatekey 和 OpenSSL.crypto.dump_privatekey 中的私钥密码中的空字节可能导致截断或产生零长度密钥错误的问题。 #947
19.1.0 (2019-11-18)
不兼容的更改
弃用
弃用了 OpenSSL.SSL.Context.set_npn_advertise_callback、OpenSSL.SSL.Context.set_npn_select_callback 和 OpenSSL.SSL.Connection.get_next_proto_negotiated。应使用 ALPN 代替。 #820
更改
通过使用 cffi 的 from_buffer 支持在 SSL.Connection.send() 中使用 bytearray。 #852
OpenSSL.SSL.Context.set_alpn_select_callback 可以返回新的 NO_OVERLAPPING_PROTOCOLS 信号值,以允许 TLS 握手在不使用应用程序协议的情况下完成。
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。