跳转到主要内容

OpenSSL库的Python封装模块

项目描述

Stable Docs https://github.com/pyca/pyopenssl/workflows/CI/badge.svg?branch=main Test coverage

注意:Python密码学权威机构强烈建议在可能的情况下使用pyca/cryptography。如果你使用pyOpenSSL进行除了建立TLS连接以外的任何事情,你应该转向cryptography并去除你的pyOpenSSL依赖。

对OpenSSL库子集的高层包装。包括

  • SSL.Connection对象,封装了Python可移植套接字的方法

  • 用Python编写的回调函数

  • 广泛的错误处理机制,反映了OpenSSL的错误代码

……以及更多。

你可以在文档中找到更多信息。开发在GitHub上进行。

讨论

如果你遇到错误,你可以在我们的问题追踪器中报告它们。

我们维护一个cryptography-dev邮件列表,用于用户和开发讨论。

你还可以加入#pycairc.libera.chat上提问或参与。

发布信息

24.2.1 (2024-07-20)

不兼容的更改

弃用

更改

  • 修改了更改日志,以删除Sphinx特定的restructured text字符串。

24.2.0 (2024-07-20)

不兼容的更改

弃用

  • 弃用了OpenSSL.crypto.X509ReqOpenSSL.crypto.load_certificate_requestOpenSSL.crypto.dump_certificate_request。相反,应该使用cryptography.x509.CertificateSigningRequestcryptography.x509.CertificateSigningRequestBuildercryptography.x509.load_der_x509_csrcryptography.x509.load_pem_x509_csr

更改

  • SSL模块添加了类型提示。#1308

  • OpenSSL.crypto.PKey.from_cryptography_key修改为接受公钥和私钥EC、ED25519、ED448密钥。#1310

24.1.0 (2024-03-09)

不兼容的更改

  • 移除了弃用的OpenSSL.crypto.PKCS12OpenSSL.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_pkcs7OpenSSL.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_crlOpenSSL.crypto.dump_crl

  • 弃用了OpenSSL.crypto.signOpenSSL.crypto.verify

  • 弃用了OpenSSL.crypto.X509Extension

更改

  • 修改了OpenSSL.crypto.X509Store.add_crl,现在除了弃用的OpenSSL.crypto.CRL参数外,还接受cryptographyx509.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_timeoutOpenSSL.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_*

更改

  • 添加了 OpenSSL.SSL.Connection.set_verifyOpenSSL.SSL.Connection.get_verify_mode 以覆盖上下文对象的验证标志。 #1073

  • 添加了 OpenSSL.SSL.Connection.use_certificateOpenSSL.SSL.Connection.use_privatekey 以在每个连接上设置证书(而不仅仅是上下文中) #1121

22.0.0 (2022-01-29)

不兼容的更改

  • 移除对 Python 2.7 的支持。 #1047

  • 现在 cryptography 的最小版本为 35.0。

弃用

更改

  • 暴露了一些 DTLS 基本操作的包装器。 #1026

21.0.0 (2021-09-28)

不兼容的更改

  • 现在 cryptography 的最小版本为 3.3。

  • 移除对 Python 3.5 的支持

弃用

更改

  • 当设置无效的 ALPN 值时引发错误。 #993

  • 添加了 OpenSSL.SSL.Context.set_min_proto_versionOpenSSL.SSL.Context.set_max_proto_version 以设置支持的最低和最高 TLS 版本 #985

  • 更新了 to_cryptographyfrom_cryptography 方法以支持即将发布的 cryptography 版本,而不会引发弃用警告。 #1030

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_callbackOpenSSL.SSL.Context.set_npn_select_callbackOpenSSL.SSL.Connection.get_next_proto_negotiated

  • 移除对 Python 3.4 的支持

  • 移除对 OpenSSL 1.0.1 和 1.0.2 的支持

弃用

  • 弃用了 OpenSSL.crypto.load_pkcs7OpenSSL.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_privatekeyOpenSSL.crypto.dump_privatekey 中的私钥密码中的空字节可能导致截断或产生零长度密钥错误的问题。 #947

19.1.0 (2019-11-18)

不兼容的更改

  • 移除了已弃用的 ContextTypeConnectionTypePKeyTypeX509NameTypeX509ReqTypeX509TypeX509StoreTypeCRLTypePKCS7TypePKCS12TypeNetscapeSPKIType 别名。请使用不带 Type 后缀的类。 #814

  • 由于 macOS 上的间接依赖问题,最低 cryptography 版本现在是 2.8。 #875

弃用

  • 弃用了 OpenSSL.SSL.Context.set_npn_advertise_callbackOpenSSL.SSL.Context.set_npn_select_callbackOpenSSL.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 握手在不使用应用程序协议的情况下完成。

完整更改日志.

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分布

pyopenssl-24.2.1.tar.gz (184.3 kB 查看哈希)

上传时间

构建分布

pyOpenSSL-24.2.1-py3-none-any.whl (58.4 kB 查看哈希)

上传时间 Python 3

由以下支持