pyOpenSSL 24.2.1__tar.gz → 24.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/CHANGELOG.rst +25 -0
  2. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/INSTALL.rst +0 -5
  3. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/MANIFEST.in +1 -1
  4. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/PKG-INFO +28 -6
  5. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/README.rst +0 -4
  6. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/api/crypto.rst +3 -33
  7. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/api/ssl.rst +0 -10
  8. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/conf.py +6 -5
  9. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/pyproject.toml +7 -2
  10. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/setup.py +2 -1
  11. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/SSL.py +365 -182
  12. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/_util.py +5 -3
  13. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/crypto.py +162 -745
  14. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/rand.py +8 -0
  15. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/version.py +1 -1
  16. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/pyOpenSSL.egg-info/PKG-INFO +28 -6
  17. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/pyOpenSSL.egg-info/SOURCES.txt +0 -1
  18. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/pyOpenSSL.egg-info/requires.txt +1 -1
  19. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/test_crypto.py +56 -608
  20. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/test_ssl.py +165 -102
  21. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tox.ini +1 -10
  22. pyopenssl-24.2.1/tests/memdbg.py +0 -89
  23. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/CODE_OF_CONDUCT.rst +0 -0
  24. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/CONTRIBUTING.rst +0 -0
  25. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/LICENSE +0 -0
  26. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/ChangeLog_old.txt +0 -0
  27. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/Makefile +0 -0
  28. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/Quotes +0 -0
  29. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/README +0 -0
  30. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/api.rst +0 -0
  31. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/backward-compatibility.rst +0 -0
  32. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/changelog.rst +0 -0
  33. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/images/pyopenssl-brand.png +0 -0
  34. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/images/pyopenssl-icon.png +0 -0
  35. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/images/pyopenssl-logo.png +0 -0
  36. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/images/pyopenssl.svg +0 -0
  37. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/index.rst +0 -0
  38. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/install.rst +0 -0
  39. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/internals.rst +0 -0
  40. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/introduction.rst +0 -0
  41. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/doc/make.bat +0 -0
  42. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/setup.cfg +0 -0
  43. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/__init__.py +1 -1
  44. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/debug.py +0 -0
  45. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/OpenSSL/py.typed +0 -0
  46. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/pyOpenSSL.egg-info/dependency_links.txt +0 -0
  47. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/src/pyOpenSSL.egg-info/top_level.txt +0 -0
  48. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/__init__.py +0 -0
  49. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/conftest.py +0 -0
  50. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/test_debug.py +0 -0
  51. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/test_rand.py +0 -0
  52. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/test_util.py +0 -0
  53. {pyopenssl-24.2.1 → pyopenssl-24.3.0}/tests/util.py +0 -0
@@ -4,6 +4,31 @@ Changelog
4
4
  Versions are year-based with a strict backward-compatibility policy.
5
5
  The third digit is only for regressions.
6
6
 
7
+ 24.3.0 (2024-11-27)
8
+ -------------------
9
+
10
+ Backward-incompatible changes:
11
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
12
+
13
+ - Removed the deprecated ``OpenSSL.crypto.CRL``, ``OpenSSL.crypto.Revoked``, ``OpenSSL.crypto.dump_crl``, and ``OpenSSL.crypto.load_crl``. ``cryptography.x509``'s CRL functionality should be used instead.
14
+ - Removed the deprecated ``OpenSSL.crypto.sign`` and ``OpenSSL.crypto.verify``. ``cryptography.hazmat.primitives.asymmetric``'s signature APIs should be used instead.
15
+
16
+ Deprecations:
17
+ ^^^^^^^^^^^^^
18
+
19
+ - Deprecated ``OpenSSL.rand`` - callers should use ``os.urandom()`` instead.
20
+ - Deprecated ``add_extensions`` and ``get_extensions`` on ``OpenSSL.crypto.X509Req`` and ``OpenSSL.crypto.X509``. These should have been deprecated at the same time ``X509Extension`` was. Users should use pyca/cryptography's X.509 APIs instead.
21
+ - Deprecated ``OpenSSL.crypto.get_elliptic_curves`` and ``OpenSSL.crypto.get_elliptic_curve``, as well as passing the reult of them to ``OpenSSL.SSL.Context.set_tmp_ecdh``, users should instead pass curves from ``cryptography``.
22
+ - Deprecated passing ``X509`` objects to ``OpenSSL.SSL.Context.use_certificate``, ``OpenSSL.SSL.Connection.use_certificate``, ``OpenSSL.SSL.Context.add_extra_chain_cert``, and ``OpenSSL.SSL.Context.add_client_ca``, users should instead pass ``cryptography.x509.Certificate`` instances. This is in preparation for deprecating pyOpenSSL's ``X509`` entirely.
23
+ - Deprecated passing ``PKey`` objects to ``OpenSSL.SSL.Context.use_privatekey`` and ``OpenSSL.SSL.Connection.use_privatekey``, users should instead pass ``cryptography`` priate key instances. This is in preparation for deprecating pyOpenSSL's ``PKey`` entirely.
24
+
25
+ Changes:
26
+ ^^^^^^^^
27
+
28
+ * ``cryptography`` maximum version has been increased to 44.0.x.
29
+ * ``OpenSSL.SSL.Connection.get_certificate``, ``OpenSSL.SSL.Connection.get_peer_certificate``, ``OpenSSL.SSL.Connection.get_peer_cert_chain``, and ``OpenSSL.SSL.Connection.get_verified_chain`` now take an ``as_cryptography`` keyword-argument. When ``True`` is passed then ``cryptography.x509.Certificate`` are returned, instead of ``OpenSSL.crypto.X509``. In the future, passing ``False`` (the default) will be deprecated.
30
+
31
+
7
32
  24.2.1 (2024-07-20)
8
33
  -------------------
9
34
 
@@ -23,11 +23,6 @@ Supported OpenSSL Versions
23
23
  --------------------------
24
24
 
25
25
  pyOpenSSL supports the same platforms and releases as the upstream cryptography project `does <https://cryptography.io/en/latest/installation/#supported-platforms>`_.
26
- Currently that means:
27
-
28
- - 1.1.0
29
- - 1.1.1
30
- - 3.0
31
26
 
32
27
  You can always find out the versions of pyOpenSSL, cryptography, and the linked OpenSSL by running ``python -m OpenSSL.debug``.
33
28
 
@@ -1,5 +1,5 @@
1
1
  include LICENSE MANIFEST.in *.rst tox.ini .coveragerc src/OpenSSL/py.typed
2
- exclude codecov.yml .readthedocs.yml mypy.ini
2
+ exclude .readthedocs.yml mypy.ini
3
3
  recursive-include tests *.py
4
4
  recursive-include doc *
5
5
  prune doc/_build
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyOpenSSL
3
- Version: 24.2.1
3
+ Version: 24.3.0
4
4
  Summary: Python wrapper module around the OpenSSL library
5
5
  Home-page: https://pyopenssl.org/
6
6
  Author: The pyOpenSSL developers
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.9
20
20
  Classifier: Programming Language :: Python :: 3.10
21
21
  Classifier: Programming Language :: Python :: 3.11
22
22
  Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
23
24
  Classifier: Programming Language :: Python :: Implementation :: CPython
24
25
  Classifier: Programming Language :: Python :: Implementation :: PyPy
25
26
  Classifier: Topic :: Security :: Cryptography
@@ -27,7 +28,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
28
  Classifier: Topic :: System :: Networking
28
29
  Requires-Python: >=3.7
29
30
  License-File: LICENSE
30
- Requires-Dist: cryptography<44,>=41.0.5
31
+ Requires-Dist: cryptography<45,>=41.0.5
31
32
  Provides-Extra: test
32
33
  Requires-Dist: pytest-rerunfailures; extra == "test"
33
34
  Requires-Dist: pretend; extra == "test"
@@ -47,10 +48,6 @@ pyOpenSSL -- A Python wrapper around the OpenSSL library
47
48
  .. image:: https://github.com/pyca/pyopenssl/workflows/CI/badge.svg?branch=main
48
49
  :target: https://github.com/pyca/pyopenssl/actions?query=workflow%3ACI+branch%3Amain
49
50
 
50
- .. image:: https://codecov.io/github/pyca/pyopenssl/branch/main/graph/badge.svg
51
- :target: https://codecov.io/github/pyca/pyopenssl
52
- :alt: Test coverage
53
-
54
51
  **Note:** The Python Cryptographic Authority **strongly suggests** the use of `pyca/cryptography`_
55
52
  where possible. If you are using pyOpenSSL for anything other than making a TLS connection
56
53
  **you should move to cryptography and drop your pyOpenSSL dependency**.
@@ -87,6 +84,31 @@ You can also join ``#pyca`` on ``irc.libera.chat`` to ask questions or get invol
87
84
  Release Information
88
85
  ===================
89
86
 
87
+ 24.3.0 (2024-11-27)
88
+ -------------------
89
+
90
+ Backward-incompatible changes:
91
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
92
+
93
+ - Removed the deprecated ``OpenSSL.crypto.CRL``, ``OpenSSL.crypto.Revoked``, ``OpenSSL.crypto.dump_crl``, and ``OpenSSL.crypto.load_crl``. ``cryptography.x509``'s CRL functionality should be used instead.
94
+ - Removed the deprecated ``OpenSSL.crypto.sign`` and ``OpenSSL.crypto.verify``. ``cryptography.hazmat.primitives.asymmetric``'s signature APIs should be used instead.
95
+
96
+ Deprecations:
97
+ ^^^^^^^^^^^^^
98
+
99
+ - Deprecated ``OpenSSL.rand`` - callers should use ``os.urandom()`` instead.
100
+ - Deprecated ``add_extensions`` and ``get_extensions`` on ``OpenSSL.crypto.X509Req`` and ``OpenSSL.crypto.X509``. These should have been deprecated at the same time ``X509Extension`` was. Users should use pyca/cryptography's X.509 APIs instead.
101
+ - Deprecated ``OpenSSL.crypto.get_elliptic_curves`` and ``OpenSSL.crypto.get_elliptic_curve``, as well as passing the reult of them to ``OpenSSL.SSL.Context.set_tmp_ecdh``, users should instead pass curves from ``cryptography``.
102
+ - Deprecated passing ``X509`` objects to ``OpenSSL.SSL.Context.use_certificate``, ``OpenSSL.SSL.Connection.use_certificate``, ``OpenSSL.SSL.Context.add_extra_chain_cert``, and ``OpenSSL.SSL.Context.add_client_ca``, users should instead pass ``cryptography.x509.Certificate`` instances. This is in preparation for deprecating pyOpenSSL's ``X509`` entirely.
103
+ - Deprecated passing ``PKey`` objects to ``OpenSSL.SSL.Context.use_privatekey`` and ``OpenSSL.SSL.Connection.use_privatekey``, users should instead pass ``cryptography`` priate key instances. This is in preparation for deprecating pyOpenSSL's ``PKey`` entirely.
104
+
105
+ Changes:
106
+ ^^^^^^^^
107
+
108
+ * ``cryptography`` maximum version has been increased to 44.0.x.
109
+ * ``OpenSSL.SSL.Connection.get_certificate``, ``OpenSSL.SSL.Connection.get_peer_certificate``, ``OpenSSL.SSL.Connection.get_peer_cert_chain``, and ``OpenSSL.SSL.Connection.get_verified_chain`` now take an ``as_cryptography`` keyword-argument. When ``True`` is passed then ``cryptography.x509.Certificate`` are returned, instead of ``OpenSSL.crypto.X509``. In the future, passing ``False`` (the default) will be deprecated.
110
+
111
+
90
112
  24.2.1 (2024-07-20)
91
113
  -------------------
92
114
 
@@ -9,10 +9,6 @@ pyOpenSSL -- A Python wrapper around the OpenSSL library
9
9
  .. image:: https://github.com/pyca/pyopenssl/workflows/CI/badge.svg?branch=main
10
10
  :target: https://github.com/pyca/pyopenssl/actions?query=workflow%3ACI+branch%3Amain
11
11
 
12
- .. image:: https://codecov.io/github/pyca/pyopenssl/branch/main/graph/badge.svg
13
- :target: https://codecov.io/github/pyca/pyopenssl
14
- :alt: Test coverage
15
-
16
12
  **Note:** The Python Cryptographic Authority **strongly suggests** the use of `pyca/cryptography`_
17
13
  where possible. If you are using pyOpenSSL for anything other than making a TLS connection
18
14
  **you should move to cryptography and drop your pyOpenSSL dependency**.
@@ -6,7 +6,9 @@
6
6
  .. py:module:: OpenSSL.crypto
7
7
  :synopsis: Generic cryptographic module
8
8
 
9
- .. note::
9
+ .. danger::
10
+
11
+ **This module is pending deprecation, use pyca/cryptography instead.**
10
12
 
11
13
  `pyca/cryptography`_ is likely a better choice than using this module.
12
14
  It contains a complete set of cryptographic primitives as well as a significantly better and more powerful X509 API.
@@ -61,20 +63,6 @@ Public keys
61
63
 
62
64
  .. autofunction:: load_publickey
63
65
 
64
- Certificate revocation lists
65
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66
-
67
- .. autofunction:: dump_crl
68
-
69
- .. autofunction:: load_crl
70
-
71
- Signing and verifying signatures
72
- --------------------------------
73
-
74
- .. autofunction:: sign
75
-
76
- .. autofunction:: verify
77
-
78
66
 
79
67
  .. _openssl-x509:
80
68
 
@@ -170,24 +158,6 @@ X509Extension objects
170
158
  :special-members:
171
159
  :exclude-members: __weakref__
172
160
 
173
- .. _crl:
174
-
175
- CRL objects
176
- -----------
177
-
178
- .. autoclass:: CRL
179
- :members:
180
- :special-members:
181
- :exclude-members: __weakref__
182
-
183
- .. _revoked:
184
-
185
- Revoked objects
186
- ---------------
187
-
188
- .. autoclass:: Revoked
189
- :members:
190
-
191
161
  Exceptions
192
162
  ----------
193
163
 
@@ -150,22 +150,12 @@ Context, Connection.
150
150
  .. autofunction:: OpenSSL_version
151
151
 
152
152
 
153
- .. py:data:: ContextType
154
-
155
- See :py:class:`Context`.
156
-
157
-
158
153
  .. autoclass:: Context
159
154
  :noindex:
160
155
 
161
156
  .. autoclass:: Session
162
157
 
163
158
 
164
- .. py:data:: ConnectionType
165
-
166
- See :py:class:`Connection`.
167
-
168
-
169
159
  .. py:class:: Connection(context, socket)
170
160
  :noindex:
171
161
 
@@ -122,13 +122,14 @@ pygments_style = "sphinx"
122
122
 
123
123
  # The theme to use for HTML and HTML Help pages. See the documentation for
124
124
  # a list of builtin themes.
125
- on_rtd = os.environ.get("READTHEDOCS", None) == "True"
125
+ if os.environ.get("READTHEDOCS", None) == "True":
126
+ html_baseurl = os.environ.get("READTHEDOCS_CANONICAL_URL", "")
126
127
 
127
- if not on_rtd: # only import and set the theme if we're building docs locally
128
- import sphinx_rtd_theme
128
+ if "html_context" not in globals():
129
+ html_context = {}
130
+ html_context["READTHEDOCS"] = True
129
131
 
130
- html_theme = "sphinx_rtd_theme"
131
- html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
132
+ html_theme = "sphinx_rtd_theme"
132
133
 
133
134
  # Theme options are theme-specific and customize the look and feel of a theme
134
135
  # further. For a list of options available for each theme, see the
@@ -1,12 +1,15 @@
1
1
  [tool.coverage.run]
2
2
  branch = true
3
+ relative_files = true
3
4
  source = ["OpenSSL", "tests/"]
4
5
 
5
6
  [tool.coverage.paths]
6
7
  source = [
7
8
  "src/OpenSSL",
8
- ".tox/*/lib/python*/site-packages/OpenSSL",
9
- ".tox/pypy/site-packages/OpenSSL",
9
+ "*.tox/*/lib/python*/site-packages/OpenSSL",
10
+ "*.tox/*/lib/pypy*/site-packages/OpenSSL",
11
+ "*.tox/pypy/site-packages/OpenSSL",
12
+ "*.tox\\*\\Lib\\site-packages\\OpenSSL",
10
13
  ]
11
14
 
12
15
  [tool.coverage.report]
@@ -39,6 +42,8 @@ testpaths = ["tests"]
39
42
  [tool.ruff]
40
43
  lint.select = ['E', 'F', 'I', 'W', 'UP', 'RUF']
41
44
  line-length = 79
45
+ # Remove if/when we move setup.py python-requires metadata to pyproject.toml
46
+ target-version = "py37"
42
47
 
43
48
  [tool.ruff.lint.isort]
44
49
  known-first-party = ["OpenSSL", "tests"]
@@ -83,6 +83,7 @@ if __name__ == "__main__":
83
83
  "Programming Language :: Python :: 3.10",
84
84
  "Programming Language :: Python :: 3.11",
85
85
  "Programming Language :: Python :: 3.12",
86
+ "Programming Language :: Python :: 3.13",
86
87
  "Programming Language :: Python :: Implementation :: CPython",
87
88
  "Programming Language :: Python :: Implementation :: PyPy",
88
89
  "Topic :: Security :: Cryptography",
@@ -93,7 +94,7 @@ if __name__ == "__main__":
93
94
  packages=find_packages(where="src"),
94
95
  package_dir={"": "src"},
95
96
  install_requires=[
96
- "cryptography>=41.0.5,<44",
97
+ "cryptography>=41.0.5,<45",
97
98
  ],
98
99
  extras_require={
99
100
  "test": ["pytest-rerunfailures", "pretend", "pytest>=3.0.1"],