summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-devtools/python/python3/0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch1452
-rw-r--r--meta/recipes-devtools/python/python3/0001-ssl-Raise-OSError-for-ERR_LIB_SYS.patch51
-rw-r--r--meta/recipes-devtools/python/python3_3.13.0.bb2
3 files changed, 1505 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3/0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch b/meta/recipes-devtools/python/python3/0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch
new file mode 100644
index 0000000000..d8ad803d50
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch
@@ -0,0 +1,1452 @@
1From db5c5763f3e3172f1dd011355b41469770dafc0f Mon Sep 17 00:00:00 2001
2From: Petr Viktorin <encukou@gmail.com>
3Date: Thu, 28 Nov 2024 13:29:27 +0100
4Subject: [PATCH] gh-127330: Update for OpenSSL 3.4 & document+improve the
5 update process (GH-127331)
6
7- Add `git describe` output to headers generated by `make_ssl_data.py`
8
9 This info is more important than the date when the file was generated.
10 It does mean that the tool now requires a Git checkout of OpenSSL,
11 not for example a release tarball.
12
13- Regenerate the older file to add the info.
14 To the other older file, add a note about manual edits.
15
16- Add notes on how to add a new OpenSSL version
17
18- Add 3.4 error messages and multissl tests
19
20Upstream-Status: Submitted [https://github.com/python/cpython/commit/db5c5763f3e3172f1dd011355b41469770dafc0f]
21Signed-off-by: Peter Marko <peter.marko@siemens.com>
22---
23 Modules/_ssl.c | 2 +-
24 Modules/_ssl_data_111.h | 4 +-
25 Modules/_ssl_data_300.h | 5 +-
26 Modules/{_ssl_data_31.h => _ssl_data_34.h} | 674 ++++++++++++++++++++-
27 Tools/c-analyzer/cpython/_parser.py | 4 +-
28 Tools/ssl/make_ssl_data.py | 34 +-
29 Tools/ssl/multissltests.py | 1 +
30 7 files changed, 714 insertions(+), 10 deletions(-)
31 rename Modules/{_ssl_data_31.h => _ssl_data_34.h} (92%)
32
33diff --git a/Modules/_ssl.c b/Modules/_ssl.c
34index b6b5ebf094c..e5b8bf21002 100644
35--- a/Modules/_ssl.c
36+++ b/Modules/_ssl.c
37@@ -122,7 +122,7 @@ static void _PySSLFixErrno(void) {
38
39 /* Include generated data (error codes) */
40 #if (OPENSSL_VERSION_NUMBER >= 0x30100000L)
41-#include "_ssl_data_31.h"
42+#include "_ssl_data_34.h"
43 #elif (OPENSSL_VERSION_NUMBER >= 0x30000000L)
44 #include "_ssl_data_300.h"
45 #elif (OPENSSL_VERSION_NUMBER >= 0x10101000L)
46diff --git a/Modules/_ssl_data_111.h b/Modules/_ssl_data_111.h
47index 093c786e6a2..061fac2bd58 100644
48--- a/Modules/_ssl_data_111.h
49+++ b/Modules/_ssl_data_111.h
50@@ -1,4 +1,6 @@
51-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T02:58:04.081473 */
52+/* File generated by Tools/ssl/make_ssl_data.py */
53+/* Generated on 2024-11-27T12:48:46.194048+00:00 */
54+/* Generated from Git commit OpenSSL_1_1_1w-0-ge04bd3433f */
55 static struct py_ssl_library_code library_codes[] = {
56 #ifdef ERR_LIB_ASN1
57 {"ASN1", ERR_LIB_ASN1},
58diff --git a/Modules/_ssl_data_300.h b/Modules/_ssl_data_300.h
59index dc66731f6b6..b687ce43c77 100644
60--- a/Modules/_ssl_data_300.h
61+++ b/Modules/_ssl_data_300.h
62@@ -1,4 +1,7 @@
63-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T03:03:52.163218 */
64+/* File generated by Tools/ssl/make_ssl_data.py */
65+/* Generated on 2023-06-01T03:03:52.163218 */
66+/* Manually edited to add definitions from 1.1.1 (GH-105174) */
67+
68 static struct py_ssl_library_code library_codes[] = {
69 #ifdef ERR_LIB_ASN1
70 {"ASN1", ERR_LIB_ASN1},
71diff --git a/Modules/_ssl_data_31.h b/Modules/_ssl_data_34.h
72similarity index 92%
73rename from Modules/_ssl_data_31.h
74rename to Modules/_ssl_data_34.h
75index c589c501f4e..d4af3e1c1fa 100644
76--- a/Modules/_ssl_data_31.h
77+++ b/Modules/_ssl_data_34.h
78@@ -1,4 +1,6 @@
79-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T03:04:00.275280 */
80+/* File generated by Tools/ssl/make_ssl_data.py */
81+/* Generated on 2024-11-27T12:35:52.276767+00:00 */
82+/* Generated from Git commit openssl-3.4.0-0-g98acb6b028 */
83 static struct py_ssl_library_code library_codes[] = {
84 #ifdef ERR_LIB_ASN1
85 {"ASN1", ERR_LIB_ASN1},
86@@ -300,6 +302,11 @@ static struct py_ssl_error_code error_codes[] = {
87 #else
88 {"FIRST_NUM_TOO_LARGE", 13, 122},
89 #endif
90+ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT
91+ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT},
92+ #else
93+ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232},
94+ #endif
95 #ifdef ASN1_R_HEADER_TOO_LONG
96 {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
97 #else
98@@ -730,6 +737,11 @@ static struct py_ssl_error_code error_codes[] = {
99 #else
100 {"UNSUPPORTED_TYPE", 13, 196},
101 #endif
102+ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT
103+ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT},
104+ #else
105+ {"UTCTIME_IS_TOO_SHORT", 13, 233},
106+ #endif
107 #ifdef ASN1_R_WRONG_INTEGER_TYPE
108 {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
109 #else
110@@ -845,6 +857,11 @@ static struct py_ssl_error_code error_codes[] = {
111 #else
112 {"LISTEN_V6_ONLY", 32, 136},
113 #endif
114+ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE
115+ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE},
116+ #else
117+ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111},
118+ #endif
119 #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
120 {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
121 #else
122@@ -860,6 +877,11 @@ static struct py_ssl_error_code error_codes[] = {
123 #else
124 {"NBIO_CONNECT_ERROR", 32, 110},
125 #endif
126+ #ifdef BIO_R_NON_FATAL
127+ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL},
128+ #else
129+ {"NON_FATAL", 32, 112},
130+ #endif
131 #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
132 {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
133 #else
134@@ -880,6 +902,26 @@ static struct py_ssl_error_code error_codes[] = {
135 #else
136 {"NO_SUCH_FILE", 32, 128},
137 #endif
138+ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE
139+ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE},
140+ #else
141+ {"PEER_ADDR_NOT_AVAILABLE", 32, 114},
142+ #endif
143+ #ifdef BIO_R_PORT_MISMATCH
144+ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH},
145+ #else
146+ {"PORT_MISMATCH", 32, 150},
147+ #endif
148+ #ifdef BIO_R_TFO_DISABLED
149+ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED},
150+ #else
151+ {"TFO_DISABLED", 32, 106},
152+ #endif
153+ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT
154+ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT},
155+ #else
156+ {"TFO_NO_KERNEL_SUPPORT", 32, 108},
157+ #endif
158 #ifdef BIO_R_TRANSFER_ERROR
159 {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR},
160 #else
161@@ -920,6 +962,11 @@ static struct py_ssl_error_code error_codes[] = {
162 #else
163 {"UNABLE_TO_REUSEADDR", 32, 139},
164 #endif
165+ #ifdef BIO_R_UNABLE_TO_TFO
166+ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO},
167+ #else
168+ {"UNABLE_TO_TFO", 32, 109},
169+ #endif
170 #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
171 {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
172 #else
173@@ -1230,6 +1277,11 @@ static struct py_ssl_error_code error_codes[] = {
174 #else
175 {"ERROR_VALIDATING_SIGNATURE", 58, 171},
176 #endif
177+ #ifdef CMP_R_EXPECTED_POLLREQ
178+ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ},
179+ #else
180+ {"EXPECTED_POLLREQ", 58, 104},
181+ #endif
182 #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN
183 {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN},
184 #else
185@@ -1250,16 +1302,51 @@ static struct py_ssl_error_code error_codes[] = {
186 #else
187 {"FAIL_INFO_OUT_OF_RANGE", 58, 129},
188 #endif
189+ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE
190+ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE},
191+ #else
192+ {"GENERATE_CERTREQTEMPLATE", 58, 197},
193+ #endif
194+ #ifdef CMP_R_GENERATE_CRLSTATUS
195+ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS},
196+ #else
197+ {"GENERATE_CRLSTATUS", 58, 198},
198+ #endif
199+ #ifdef CMP_R_GETTING_GENP
200+ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP},
201+ #else
202+ {"GETTING_GENP", 58, 192},
203+ #endif
204+ #ifdef CMP_R_GET_ITAV
205+ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV},
206+ #else
207+ {"GET_ITAV", 58, 199},
208+ #endif
209 #ifdef CMP_R_INVALID_ARGS
210 {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS},
211 #else
212 {"INVALID_ARGS", 58, 100},
213 #endif
214+ #ifdef CMP_R_INVALID_GENP
215+ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP},
216+ #else
217+ {"INVALID_GENP", 58, 193},
218+ #endif
219+ #ifdef CMP_R_INVALID_KEYSPEC
220+ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC},
221+ #else
222+ {"INVALID_KEYSPEC", 58, 202},
223+ #endif
224 #ifdef CMP_R_INVALID_OPTION
225 {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION},
226 #else
227 {"INVALID_OPTION", 58, 174},
228 #endif
229+ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE
230+ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE},
231+ #else
232+ {"INVALID_ROOTCAKEYUPDATE", 58, 195},
233+ #endif
234 #ifdef CMP_R_MISSING_CERTID
235 {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID},
236 #else
237@@ -1425,6 +1512,21 @@ static struct py_ssl_error_code error_codes[] = {
238 #else
239 {"TRANSFER_ERROR", 58, 159},
240 #endif
241+ #ifdef CMP_R_UNCLEAN_CTX
242+ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX},
243+ #else
244+ {"UNCLEAN_CTX", 58, 191},
245+ #endif
246+ #ifdef CMP_R_UNEXPECTED_CERTPROFILE
247+ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE},
248+ #else
249+ {"UNEXPECTED_CERTPROFILE", 58, 196},
250+ #endif
251+ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST
252+ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST},
253+ #else
254+ {"UNEXPECTED_CRLSTATUSLIST", 58, 201},
255+ #endif
256 #ifdef CMP_R_UNEXPECTED_PKIBODY
257 {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY},
258 #else
259@@ -1435,11 +1537,21 @@ static struct py_ssl_error_code error_codes[] = {
260 #else
261 {"UNEXPECTED_PKISTATUS", 58, 185},
262 #endif
263+ #ifdef CMP_R_UNEXPECTED_POLLREQ
264+ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ},
265+ #else
266+ {"UNEXPECTED_POLLREQ", 58, 105},
267+ #endif
268 #ifdef CMP_R_UNEXPECTED_PVNO
269 {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO},
270 #else
271 {"UNEXPECTED_PVNO", 58, 153},
272 #endif
273+ #ifdef CMP_R_UNEXPECTED_SENDER
274+ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER},
275+ #else
276+ {"UNEXPECTED_SENDER", 58, 106},
277+ #endif
278 #ifdef CMP_R_UNKNOWN_ALGORITHM_ID
279 {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID},
280 #else
281@@ -1450,6 +1562,11 @@ static struct py_ssl_error_code error_codes[] = {
282 #else
283 {"UNKNOWN_CERT_TYPE", 58, 135},
284 #endif
285+ #ifdef CMP_R_UNKNOWN_CRL_ISSUER
286+ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER},
287+ #else
288+ {"UNKNOWN_CRL_ISSUER", 58, 200},
289+ #endif
290 #ifdef CMP_R_UNKNOWN_PKISTATUS
291 {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS},
292 #else
293@@ -1465,6 +1582,11 @@ static struct py_ssl_error_code error_codes[] = {
294 #else
295 {"UNSUPPORTED_KEY_TYPE", 58, 137},
296 #endif
297+ #ifdef CMP_R_UNSUPPORTED_PKIBODY
298+ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY},
299+ #else
300+ {"UNSUPPORTED_PKIBODY", 58, 101},
301+ #endif
302 #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC
303 {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC},
304 #else
305@@ -1825,6 +1947,11 @@ static struct py_ssl_error_code error_codes[] = {
306 #else
307 {"NO_SIGNERS", 46, 135},
308 #endif
309+ #ifdef CMS_R_OPERATION_UNSUPPORTED
310+ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED},
311+ #else
312+ {"OPERATION_UNSUPPORTED", 46, 182},
313+ #endif
314 #ifdef CMS_R_PEER_KEY_ERROR
315 {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR},
316 #else
317@@ -1960,6 +2087,11 @@ static struct py_ssl_error_code error_codes[] = {
318 #else
319 {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
320 #endif
321+ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM
322+ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM},
323+ #else
324+ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195},
325+ #endif
326 #ifdef CMS_R_UNSUPPORTED_TYPE
327 {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
328 #else
329@@ -1985,6 +2117,31 @@ static struct py_ssl_error_code error_codes[] = {
330 #else
331 {"WRAP_ERROR", 46, 159},
332 #endif
333+ #ifdef COMP_R_BROTLI_DECODE_ERROR
334+ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR},
335+ #else
336+ {"BROTLI_DECODE_ERROR", 41, 102},
337+ #endif
338+ #ifdef COMP_R_BROTLI_DEFLATE_ERROR
339+ {"BROTLI_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DEFLATE_ERROR},
340+ #else
341+ {"BROTLI_DEFLATE_ERROR", 41, 103},
342+ #endif
343+ #ifdef COMP_R_BROTLI_ENCODE_ERROR
344+ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR},
345+ #else
346+ {"BROTLI_ENCODE_ERROR", 41, 106},
347+ #endif
348+ #ifdef COMP_R_BROTLI_INFLATE_ERROR
349+ {"BROTLI_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_INFLATE_ERROR},
350+ #else
351+ {"BROTLI_INFLATE_ERROR", 41, 104},
352+ #endif
353+ #ifdef COMP_R_BROTLI_NOT_SUPPORTED
354+ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED},
355+ #else
356+ {"BROTLI_NOT_SUPPORTED", 41, 105},
357+ #endif
358 #ifdef COMP_R_ZLIB_DEFLATE_ERROR
359 {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
360 #else
361@@ -2000,6 +2157,26 @@ static struct py_ssl_error_code error_codes[] = {
362 #else
363 {"ZLIB_NOT_SUPPORTED", 41, 101},
364 #endif
365+ #ifdef COMP_R_ZSTD_COMPRESS_ERROR
366+ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR},
367+ #else
368+ {"ZSTD_COMPRESS_ERROR", 41, 107},
369+ #endif
370+ #ifdef COMP_R_ZSTD_DECODE_ERROR
371+ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR},
372+ #else
373+ {"ZSTD_DECODE_ERROR", 41, 108},
374+ #endif
375+ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR
376+ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR},
377+ #else
378+ {"ZSTD_DECOMPRESS_ERROR", 41, 109},
379+ #endif
380+ #ifdef COMP_R_ZSTD_NOT_SUPPORTED
381+ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED},
382+ #else
383+ {"ZSTD_NOT_SUPPORTED", 41, 110},
384+ #endif
385 #ifdef CONF_R_ERROR_LOADING_DSO
386 {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
387 #else
388@@ -2085,6 +2262,11 @@ static struct py_ssl_error_code error_codes[] = {
389 #else
390 {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
391 #endif
392+ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE
393+ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE},
394+ #else
395+ {"RECURSIVE_SECTION_REFERENCE", 14, 126},
396+ #endif
397 #ifdef CONF_R_RELATIVE_PATH
398 {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH},
399 #else
400@@ -2370,6 +2552,11 @@ static struct py_ssl_error_code error_codes[] = {
401 #else
402 {"TOO_MANY_BYTES", 15, 113},
403 #endif
404+ #ifdef CRYPTO_R_TOO_MANY_NAMES
405+ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES},
406+ #else
407+ {"TOO_MANY_NAMES", 15, 132},
408+ #endif
409 #ifdef CRYPTO_R_TOO_MANY_RECORDS
410 {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS},
411 #else
412@@ -2560,6 +2747,11 @@ static struct py_ssl_error_code error_codes[] = {
413 #else
414 {"INVALID_SECRET", 5, 128},
415 #endif
416+ #ifdef DH_R_INVALID_SIZE
417+ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE},
418+ #else
419+ {"INVALID_SIZE", 5, 129},
420+ #endif
421 #ifdef DH_R_KDF_PARAMETER_ERROR
422 {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
423 #else
424@@ -2610,6 +2802,11 @@ static struct py_ssl_error_code error_codes[] = {
425 #else
426 {"PEER_KEY_ERROR", 5, 111},
427 #endif
428+ #ifdef DH_R_Q_TOO_LARGE
429+ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE},
430+ #else
431+ {"Q_TOO_LARGE", 5, 130},
432+ #endif
433 #ifdef DH_R_SHARED_INFO_ERROR
434 {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
435 #else
436@@ -3545,6 +3742,11 @@ static struct py_ssl_error_code error_codes[] = {
437 #else
438 {"GENERATE_ERROR", 6, 214},
439 #endif
440+ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED
441+ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED},
442+ #else
443+ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229},
444+ #endif
445 #ifdef EVP_R_GET_RAW_KEY_FAILED
446 {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
447 #else
448@@ -3745,6 +3947,11 @@ static struct py_ssl_error_code error_codes[] = {
449 #else
450 {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
451 #endif
452+ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE
453+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE},
454+ #else
455+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226},
456+ #endif
457 #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW
458 {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW},
459 #else
460@@ -3795,6 +4002,11 @@ static struct py_ssl_error_code error_codes[] = {
461 #else
462 {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209},
463 #endif
464+ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE
465+ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE},
466+ #else
467+ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228},
468+ #endif
469 #ifdef EVP_R_TOO_MANY_RECORDS
470 {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS},
471 #else
472@@ -3825,6 +4037,11 @@ static struct py_ssl_error_code error_codes[] = {
473 #else
474 {"UNABLE_TO_SET_CALLBACKS", 6, 217},
475 #endif
476+ #ifdef EVP_R_UNKNOWN_BITS
477+ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS},
478+ #else
479+ {"UNKNOWN_BITS", 6, 166},
480+ #endif
481 #ifdef EVP_R_UNKNOWN_CIPHER
482 {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
483 #else
484@@ -3840,6 +4057,11 @@ static struct py_ssl_error_code error_codes[] = {
485 #else
486 {"UNKNOWN_KEY_TYPE", 6, 207},
487 #endif
488+ #ifdef EVP_R_UNKNOWN_MAX_SIZE
489+ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE},
490+ #else
491+ {"UNKNOWN_MAX_SIZE", 6, 167},
492+ #endif
493 #ifdef EVP_R_UNKNOWN_OPTION
494 {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
495 #else
496@@ -3850,6 +4072,11 @@ static struct py_ssl_error_code error_codes[] = {
497 #else
498 {"UNKNOWN_PBE_ALGORITHM", 6, 121},
499 #endif
500+ #ifdef EVP_R_UNKNOWN_SECURITY_BITS
501+ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS},
502+ #else
503+ {"UNKNOWN_SECURITY_BITS", 6, 168},
504+ #endif
505 #ifdef EVP_R_UNSUPPORTED_ALGORITHM
506 {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
507 #else
508@@ -4040,6 +4267,11 @@ static struct py_ssl_error_code error_codes[] = {
509 #else
510 {"RESPONSE_PARSE_ERROR", 61, 104},
511 #endif
512+ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES
513+ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES},
514+ #else
515+ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130},
516+ #endif
517 #ifdef HTTP_R_RETRY_TIMEOUT
518 {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT},
519 #else
520@@ -4530,6 +4762,11 @@ static struct py_ssl_error_code error_codes[] = {
521 #else
522 {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110},
523 #endif
524+ #ifdef PKCS12_R_CALLBACK_FAILED
525+ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED},
526+ #else
527+ {"CALLBACK_FAILED", 35, 115},
528+ #endif
529 #ifdef PKCS12_R_CANT_PACK_STRUCTURE
530 {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
531 #else
532@@ -4920,6 +5157,11 @@ static struct py_ssl_error_code error_codes[] = {
533 #else
534 {"CIPHER_OPERATION_FAILED", 57, 102},
535 #endif
536+ #ifdef PROV_R_COFACTOR_REQUIRED
537+ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED},
538+ #else
539+ {"COFACTOR_REQUIRED", 57, 236},
540+ #endif
541 #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED
542 {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED},
543 #else
544@@ -4935,6 +5177,11 @@ static struct py_ssl_error_code error_codes[] = {
545 #else
546 {"EMS_NOT_ENABLED", 57, 233},
547 #endif
548+ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS
549+ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS},
550+ #else
551+ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244},
552+ #endif
553 #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK
554 {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK},
555 #else
556@@ -4990,6 +5237,11 @@ static struct py_ssl_error_code error_codes[] = {
557 #else
558 {"FAILED_TO_SIGN", 57, 175},
559 #endif
560+ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER
561+ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER},
562+ #else
563+ {"FINAL_CALL_OUT_OF_ORDER", 57, 237},
564+ #endif
565 #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR
566 {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR},
567 #else
568@@ -5020,6 +5272,11 @@ static struct py_ssl_error_code error_codes[] = {
569 #else
570 {"INDICATOR_INTEGRITY_FAILURE", 57, 210},
571 #endif
572+ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER
573+ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER},
574+ #else
575+ {"INIT_CALL_OUT_OF_ORDER", 57, 238},
576+ #endif
577 #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH
578 {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH},
579 #else
580@@ -5030,6 +5287,11 @@ static struct py_ssl_error_code error_codes[] = {
581 #else
582 {"INVALID_AAD", 57, 108},
583 #endif
584+ #ifdef PROV_R_INVALID_AEAD
585+ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD},
586+ #else
587+ {"INVALID_AEAD", 57, 231},
588+ #endif
589 #ifdef PROV_R_INVALID_CONFIG_DATA
590 {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA},
591 #else
592@@ -5070,6 +5332,11 @@ static struct py_ssl_error_code error_codes[] = {
593 #else
594 {"INVALID_DIGEST_SIZE", 57, 218},
595 #endif
596+ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION
597+ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION},
598+ #else
599+ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243},
600+ #endif
601 #ifdef PROV_R_INVALID_INPUT_LENGTH
602 {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH},
603 #else
604@@ -5085,6 +5352,11 @@ static struct py_ssl_error_code error_codes[] = {
605 #else
606 {"INVALID_IV_LENGTH", 57, 109},
607 #endif
608+ #ifdef PROV_R_INVALID_KDF
609+ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF},
610+ #else
611+ {"INVALID_KDF", 57, 232},
612+ #endif
613 #ifdef PROV_R_INVALID_KEY
614 {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY},
615 #else
616@@ -5100,6 +5372,11 @@ static struct py_ssl_error_code error_codes[] = {
617 #else
618 {"INVALID_MAC", 57, 151},
619 #endif
620+ #ifdef PROV_R_INVALID_MEMORY_SIZE
621+ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE},
622+ #else
623+ {"INVALID_MEMORY_SIZE", 57, 235},
624+ #endif
625 #ifdef PROV_R_INVALID_MGF1_MD
626 {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD},
627 #else
628@@ -5120,6 +5397,11 @@ static struct py_ssl_error_code error_codes[] = {
629 #else
630 {"INVALID_PADDING_MODE", 57, 168},
631 #endif
632+ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH
633+ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH},
634+ #else
635+ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241},
636+ #endif
637 #ifdef PROV_R_INVALID_PUBINFO
638 {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO},
639 #else
640@@ -5155,6 +5437,11 @@ static struct py_ssl_error_code error_codes[] = {
641 #else
642 {"INVALID_TAG_LENGTH", 57, 118},
643 #endif
644+ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE
645+ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE},
646+ #else
647+ {"INVALID_THREAD_POOL_SIZE", 57, 234},
648+ #endif
649 #ifdef PROV_R_INVALID_UKM_LENGTH
650 {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH},
651 #else
652@@ -5300,6 +5587,11 @@ static struct py_ssl_error_code error_codes[] = {
653 #else
654 {"NOT_XOF_OR_INVALID_LENGTH", 57, 113},
655 #endif
656+ #ifdef PROV_R_NO_INSTANCE_ALLOWED
657+ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED},
658+ #else
659+ {"NO_INSTANCE_ALLOWED", 57, 242},
660+ #endif
661 #ifdef PROV_R_NO_KEY_SET
662 {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET},
663 #else
664@@ -5310,6 +5602,11 @@ static struct py_ssl_error_code error_codes[] = {
665 #else
666 {"NO_PARAMETERS_SET", 57, 177},
667 #endif
668+ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER
669+ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER},
670+ #else
671+ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239},
672+ #endif
673 #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
674 {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
675 #else
676@@ -5460,6 +5757,11 @@ static struct py_ssl_error_code error_codes[] = {
677 #else
678 {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152},
679 #endif
680+ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER
681+ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER},
682+ #else
683+ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240},
684+ #endif
685 #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED
686 {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED},
687 #else
688@@ -5595,6 +5897,11 @@ static struct py_ssl_error_code error_codes[] = {
689 #else
690 {"INTERNAL_ERROR", 36, 113},
691 #endif
692+ #ifdef RAND_R_INVALID_PROPERTY_QUERY
693+ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY},
694+ #else
695+ {"INVALID_PROPERTY_QUERY", 36, 137},
696+ #endif
697 #ifdef RAND_R_IN_ERROR_STATE
698 {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
699 #else
700@@ -6210,6 +6517,11 @@ static struct py_ssl_error_code error_codes[] = {
701 #else
702 {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
703 #endif
704+ #ifdef SSL_R_BAD_CERTIFICATE
705+ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE},
706+ #else
707+ {"BAD_CERTIFICATE", 20, 348},
708+ #endif
709 #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
710 {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
711 #else
712@@ -6220,6 +6532,11 @@ static struct py_ssl_error_code error_codes[] = {
713 #else
714 {"BAD_CIPHER", 20, 186},
715 #endif
716+ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM
717+ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM},
718+ #else
719+ {"BAD_COMPRESSION_ALGORITHM", 20, 326},
720+ #endif
721 #ifdef SSL_R_BAD_DATA
722 {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
723 #else
724@@ -6495,6 +6812,11 @@ static struct py_ssl_error_code error_codes[] = {
725 #else
726 {"CONNECTION_TYPE_NOT_SET", 20, 144},
727 #endif
728+ #ifdef SSL_R_CONN_USE_ONLY
729+ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY},
730+ #else
731+ {"CONN_USE_ONLY", 20, 356},
732+ #endif
733 #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
734 {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
735 #else
736@@ -6635,6 +6957,11 @@ static struct py_ssl_error_code error_codes[] = {
737 #else
738 {"EE_KEY_TOO_SMALL", 20, 399},
739 #endif
740+ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY
741+ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY},
742+ #else
743+ {"EMPTY_RAW_PUBLIC_KEY", 20, 349},
744+ #endif
745 #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST
746 {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST},
747 #else
748@@ -6650,6 +6977,11 @@ static struct py_ssl_error_code error_codes[] = {
749 #else
750 {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
751 #endif
752+ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG
753+ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG},
754+ #else
755+ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419},
756+ #endif
757 #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
758 {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
759 #else
760@@ -6680,11 +7012,26 @@ static struct py_ssl_error_code error_codes[] = {
761 #else
762 {"EXT_LENGTH_MISMATCH", 20, 163},
763 #endif
764+ #ifdef SSL_R_FAILED_TO_GET_PARAMETER
765+ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER},
766+ #else
767+ {"FAILED_TO_GET_PARAMETER", 20, 316},
768+ #endif
769 #ifdef SSL_R_FAILED_TO_INIT_ASYNC
770 {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
771 #else
772 {"FAILED_TO_INIT_ASYNC", 20, 405},
773 #endif
774+ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE
775+ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE},
776+ #else
777+ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417},
778+ #endif
779+ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE
780+ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE},
781+ #else
782+ {"FEATURE_NOT_RENEGOTIABLE", 20, 413},
783+ #endif
784 #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
785 {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
786 #else
787@@ -6805,6 +7152,16 @@ static struct py_ssl_error_code error_codes[] = {
788 #else
789 {"INVALID_NULL_CMD_NAME", 20, 385},
790 #endif
791+ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY
792+ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY},
793+ #else
794+ {"INVALID_RAW_PUBLIC_KEY", 20, 350},
795+ #endif
796+ #ifdef SSL_R_INVALID_RECORD
797+ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD},
798+ #else
799+ {"INVALID_RECORD", 20, 317},
800+ #endif
801 #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
802 {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
803 #else
804@@ -6865,6 +7222,11 @@ static struct py_ssl_error_code error_codes[] = {
805 #else
806 {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
807 #endif
808+ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED
809+ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED},
810+ #else
811+ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395},
812+ #endif
813 #ifdef SSL_R_MISSING_DSA_SIGNING_CERT
814 {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
815 #else
816@@ -6925,6 +7287,11 @@ static struct py_ssl_error_code error_codes[] = {
817 #else
818 {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
819 #endif
820+ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION
821+ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION},
822+ #else
823+ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420},
824+ #endif
825 #ifdef SSL_R_MISSING_TMP_DH_KEY
826 {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
827 #else
828@@ -7065,6 +7432,11 @@ static struct py_ssl_error_code error_codes[] = {
829 #else
830 {"NO_SRTP_PROFILES", 20, 359},
831 #endif
832+ #ifdef SSL_R_NO_STREAM
833+ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM},
834+ #else
835+ {"NO_STREAM", 20, 355},
836+ #endif
837 #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM
838 {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM},
839 #else
840@@ -7080,6 +7452,11 @@ static struct py_ssl_error_code error_codes[] = {
841 #else
842 {"NO_SUITABLE_KEY_SHARE", 20, 101},
843 #endif
844+ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER
845+ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER},
846+ #else
847+ {"NO_SUITABLE_RECORD_LAYER", 20, 322},
848+ #endif
849 #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
850 {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
851 #else
852@@ -7160,6 +7537,11 @@ static struct py_ssl_error_code error_codes[] = {
853 #else
854 {"PIPELINE_FAILURE", 20, 406},
855 #endif
856+ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED
857+ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED},
858+ #else
859+ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418},
860+ #endif
861 #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
862 {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
863 #else
864@@ -7190,6 +7572,21 @@ static struct py_ssl_error_code error_codes[] = {
865 #else
866 {"PSK_NO_SERVER_CB", 20, 225},
867 #endif
868+ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR
869+ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR},
870+ #else
871+ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393},
872+ #endif
873+ #ifdef SSL_R_QUIC_NETWORK_ERROR
874+ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR},
875+ #else
876+ {"QUIC_NETWORK_ERROR", 20, 387},
877+ #endif
878+ #ifdef SSL_R_QUIC_PROTOCOL_ERROR
879+ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR},
880+ #else
881+ {"QUIC_PROTOCOL_ERROR", 20, 382},
882+ #endif
883 #ifdef SSL_R_READ_BIO_NOT_SET
884 {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
885 #else
886@@ -7200,6 +7597,16 @@ static struct py_ssl_error_code error_codes[] = {
887 #else
888 {"READ_TIMEOUT_EXPIRED", 20, 312},
889 #endif
890+ #ifdef SSL_R_RECORDS_NOT_RELEASED
891+ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED},
892+ #else
893+ {"RECORDS_NOT_RELEASED", 20, 321},
894+ #endif
895+ #ifdef SSL_R_RECORD_LAYER_FAILURE
896+ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE},
897+ #else
898+ {"RECORD_LAYER_FAILURE", 20, 313},
899+ #endif
900 #ifdef SSL_R_RECORD_LENGTH_MISMATCH
901 {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
902 #else
903@@ -7210,6 +7617,11 @@ static struct py_ssl_error_code error_codes[] = {
904 #else
905 {"RECORD_TOO_SMALL", 20, 298},
906 #endif
907+ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET
908+ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET},
909+ #else
910+ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346},
911+ #endif
912 #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
913 {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
914 #else
915@@ -7255,6 +7667,11 @@ static struct py_ssl_error_code error_codes[] = {
916 #else
917 {"SCT_VERIFICATION_FAILED", 20, 208},
918 #endif
919+ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED
920+ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED},
921+ #else
922+ {"SEQUENCE_CTR_WRAPPED", 20, 327},
923+ #endif
924 #ifdef SSL_R_SERVERHELLO_TLSEXT
925 {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
926 #else
927@@ -7325,6 +7742,16 @@ static struct py_ssl_error_code error_codes[] = {
928 #else
929 {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
930 #endif
931+ #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
932+ {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
933+ #else
934+ {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
935+ #endif
936+ #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
937+ {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
938+ #else
939+ {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
940+ #endif
941 #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
942 {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
943 #else
944@@ -7335,11 +7762,26 @@ static struct py_ssl_error_code error_codes[] = {
945 #else
946 {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
947 #endif
948+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
949+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
950+ #else
951+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
952+ #endif
953 #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
954 {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
955 #else
956 {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
957 #endif
958+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
959+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
960+ #else
961+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
962+ #endif
963+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
964+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
965+ #else
966+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
967+ #endif
968 #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
969 {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
970 #else
971@@ -7350,6 +7792,16 @@ static struct py_ssl_error_code error_codes[] = {
972 #else
973 {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
974 #endif
975+ #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
976+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
977+ #else
978+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
979+ #endif
980+ #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
981+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
982+ #else
983+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
984+ #endif
985 #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
986 {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
987 #else
988@@ -7360,11 +7812,26 @@ static struct py_ssl_error_code error_codes[] = {
989 #else
990 {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
991 #endif
992+ #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
993+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
994+ #else
995+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
996+ #endif
997 #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
998 {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
999 #else
1000 {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
1001 #endif
1002+ #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
1003+ {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
1004+ #else
1005+ {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
1006+ #endif
1007+ #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
1008+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
1009+ #else
1010+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
1011+ #endif
1012 #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
1013 {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
1014 #else
1015@@ -7375,6 +7842,11 @@ static struct py_ssl_error_code error_codes[] = {
1016 #else
1017 {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
1018 #endif
1019+ #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
1020+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
1021+ #else
1022+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
1023+ #endif
1024 #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
1025 {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
1026 #else
1027@@ -7450,6 +7922,36 @@ static struct py_ssl_error_code error_codes[] = {
1028 #else
1029 {"STILL_IN_INIT", 20, 121},
1030 #endif
1031+ #ifdef SSL_R_STREAM_COUNT_LIMITED
1032+ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED},
1033+ #else
1034+ {"STREAM_COUNT_LIMITED", 20, 411},
1035+ #endif
1036+ #ifdef SSL_R_STREAM_FINISHED
1037+ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED},
1038+ #else
1039+ {"STREAM_FINISHED", 20, 365},
1040+ #endif
1041+ #ifdef SSL_R_STREAM_RECV_ONLY
1042+ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY},
1043+ #else
1044+ {"STREAM_RECV_ONLY", 20, 366},
1045+ #endif
1046+ #ifdef SSL_R_STREAM_RESET
1047+ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET},
1048+ #else
1049+ {"STREAM_RESET", 20, 375},
1050+ #endif
1051+ #ifdef SSL_R_STREAM_SEND_ONLY
1052+ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY},
1053+ #else
1054+ {"STREAM_SEND_ONLY", 20, 379},
1055+ #endif
1056+ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
1057+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
1058+ #else
1059+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
1060+ #endif
1061 #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
1062 {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
1063 #else
1064@@ -7460,6 +7962,16 @@ static struct py_ssl_error_code error_codes[] = {
1065 #else
1066 {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
1067 #endif
1068+ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
1069+ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
1070+ #else
1071+ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
1072+ #endif
1073+ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
1074+ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
1075+ #else
1076+ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
1077+ #endif
1078 #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
1079 {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
1080 #else
1081@@ -7470,6 +7982,16 @@ static struct py_ssl_error_code error_codes[] = {
1082 #else
1083 {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
1084 #endif
1085+ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
1086+ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
1087+ #else
1088+ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
1089+ #endif
1090+ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
1091+ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
1092+ #else
1093+ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
1094+ #endif
1095 #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
1096 {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
1097 #else
1098@@ -7480,6 +8002,16 @@ static struct py_ssl_error_code error_codes[] = {
1099 #else
1100 {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
1101 #endif
1102+ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
1103+ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
1104+ #else
1105+ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
1106+ #endif
1107+ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
1108+ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
1109+ #else
1110+ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
1111+ #endif
1112 #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
1113 {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
1114 #else
1115@@ -7490,6 +8022,16 @@ static struct py_ssl_error_code error_codes[] = {
1116 #else
1117 {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
1118 #endif
1119+ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
1120+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
1121+ #else
1122+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
1123+ #endif
1124+ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
1125+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
1126+ #else
1127+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
1128+ #endif
1129 #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
1130 {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
1131 #else
1132@@ -7500,6 +8042,26 @@ static struct py_ssl_error_code error_codes[] = {
1133 #else
1134 {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
1135 #endif
1136+ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
1137+ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
1138+ #else
1139+ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
1140+ #endif
1141+ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL
1142+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL},
1143+ #else
1144+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120},
1145+ #endif
1146+ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL
1147+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL},
1148+ #else
1149+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120},
1150+ #endif
1151+ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
1152+ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
1153+ #else
1154+ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
1155+ #endif
1156 #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
1157 {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
1158 #else
1159@@ -7510,21 +8072,56 @@ static struct py_ssl_error_code error_codes[] = {
1160 #else
1161 {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
1162 #endif
1163+ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
1164+ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
1165+ #else
1166+ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
1167+ #endif
1168 #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
1169 {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
1170 #else
1171 {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
1172 #endif
1173+ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
1174+ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
1175+ #else
1176+ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
1177+ #endif
1178+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
1179+ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
1180+ #else
1181+ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
1182+ #endif
1183 #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
1184 {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
1185 #else
1186 {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
1187 #endif
1188+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY
1189+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY},
1190+ #else
1191+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115},
1192+ #endif
1193+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY
1194+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY},
1195+ #else
1196+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115},
1197+ #endif
1198 #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
1199 {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
1200 #else
1201 {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
1202 #endif
1203+ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
1204+ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
1205+ #else
1206+ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
1207+ #endif
1208+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
1209+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
1210+ #else
1211+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
1212+ #endif
1213 #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
1214 {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
1215 #else
1216@@ -7535,6 +8132,16 @@ static struct py_ssl_error_code error_codes[] = {
1217 #else
1218 {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
1219 #endif
1220+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE
1221+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE},
1222+ #else
1223+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
1224+ #endif
1225+ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
1226+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
1227+ #else
1228+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
1229+ #endif
1230 #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
1231 {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
1232 #else
1233@@ -7545,6 +8152,16 @@ static struct py_ssl_error_code error_codes[] = {
1234 #else
1235 {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
1236 #endif
1237+ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
1238+ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
1239+ #else
1240+ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
1241+ #endif
1242+ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
1243+ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
1244+ #else
1245+ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
1246+ #endif
1247 #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
1248 {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
1249 #else
1250@@ -7665,6 +8282,11 @@ static struct py_ssl_error_code error_codes[] = {
1251 #else
1252 {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
1253 #endif
1254+ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER
1255+ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER},
1256+ #else
1257+ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323},
1258+ #endif
1259 #ifdef SSL_R_UNKNOWN_PKEY_TYPE
1260 {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
1261 #else
1262@@ -7700,6 +8322,21 @@ static struct py_ssl_error_code error_codes[] = {
1263 #else
1264 {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
1265 #endif
1266+ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE
1267+ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE},
1268+ #else
1269+ {"UNSUPPORTED_CONFIG_VALUE", 20, 414},
1270+ #endif
1271+ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS
1272+ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS},
1273+ #else
1274+ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415},
1275+ #endif
1276+ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP
1277+ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP},
1278+ #else
1279+ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416},
1280+ #endif
1281 #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
1282 {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
1283 #else
1284@@ -7720,6 +8357,11 @@ static struct py_ssl_error_code error_codes[] = {
1285 #else
1286 {"UNSUPPORTED_STATUS_TYPE", 20, 329},
1287 #endif
1288+ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG
1289+ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG},
1290+ #else
1291+ {"UNSUPPORTED_WRITE_FLAG", 20, 412},
1292+ #endif
1293 #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
1294 {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
1295 #else
1296@@ -7750,6 +8392,11 @@ static struct py_ssl_error_code error_codes[] = {
1297 #else
1298 {"WRONG_CURVE", 20, 378},
1299 #endif
1300+ #ifdef SSL_R_WRONG_RPK_TYPE
1301+ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE},
1302+ #else
1303+ {"WRONG_RPK_TYPE", 20, 351},
1304+ #endif
1305 #ifdef SSL_R_WRONG_SIGNATURE_LENGTH
1306 {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
1307 #else
1308@@ -8055,6 +8702,16 @@ static struct py_ssl_error_code error_codes[] = {
1309 #else
1310 {"BAD_OBJECT", 34, 119},
1311 #endif
1312+ #ifdef X509V3_R_BAD_OPTION
1313+ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION},
1314+ #else
1315+ {"BAD_OPTION", 34, 170},
1316+ #endif
1317+ #ifdef X509V3_R_BAD_VALUE
1318+ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE},
1319+ #else
1320+ {"BAD_VALUE", 34, 171},
1321+ #endif
1322 #ifdef X509V3_R_BN_DEC2BN_ERROR
1323 {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
1324 #else
1325@@ -8370,6 +9027,11 @@ static struct py_ssl_error_code error_codes[] = {
1326 #else
1327 {"UNKNOWN_OPTION", 34, 120},
1328 #endif
1329+ #ifdef X509V3_R_UNKNOWN_VALUE
1330+ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE},
1331+ #else
1332+ {"UNKNOWN_VALUE", 34, 172},
1333+ #endif
1334 #ifdef X509V3_R_UNSUPPORTED_OPTION
1335 {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
1336 #else
1337@@ -8430,6 +9092,11 @@ static struct py_ssl_error_code error_codes[] = {
1338 #else
1339 {"CRL_VERIFY_FAILURE", 11, 131},
1340 #endif
1341+ #ifdef X509_R_DUPLICATE_ATTRIBUTE
1342+ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE},
1343+ #else
1344+ {"DUPLICATE_ATTRIBUTE", 11, 140},
1345+ #endif
1346 #ifdef X509_R_ERROR_GETTING_MD_BY_NID
1347 {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID},
1348 #else
1349@@ -8590,6 +9257,11 @@ static struct py_ssl_error_code error_codes[] = {
1350 #else
1351 {"UNSUPPORTED_ALGORITHM", 11, 111},
1352 #endif
1353+ #ifdef X509_R_UNSUPPORTED_VERSION
1354+ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION},
1355+ #else
1356+ {"UNSUPPORTED_VERSION", 11, 145},
1357+ #endif
1358 #ifdef X509_R_WRONG_LOOKUP_TYPE
1359 {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
1360 #else
1361diff --git a/Tools/c-analyzer/cpython/_parser.py b/Tools/c-analyzer/cpython/_parser.py
1362index 21be53e7884..a08b32fa45d 100644
1363--- a/Tools/c-analyzer/cpython/_parser.py
1364+++ b/Tools/c-analyzer/cpython/_parser.py
1365@@ -70,9 +70,7 @@ Python/thread_pthread.h
1366 Python/thread_pthread_stubs.h
1367
1368 # only huge constants (safe but parsing is slow)
1369-Modules/_ssl_data_31.h
1370-Modules/_ssl_data_300.h
1371-Modules/_ssl_data_111.h
1372+Modules/_ssl_data_*.h
1373 Modules/cjkcodecs/mappings_*.h
1374 Modules/unicodedata_db.h
1375 Modules/unicodename_db.h
1376diff --git a/Tools/ssl/make_ssl_data.py b/Tools/ssl/make_ssl_data.py
1377index 9860871..0cd05c7 100755
1378--- a/Tools/ssl/make_ssl_data.py
1379+++ b/Tools/ssl/make_ssl_data.py
1380@@ -5,9 +5,28 @@ This script should be called *manually* when we want to upgrade SSLError
1381 `library` and `reason` mnemonics to a more recent OpenSSL version.
1382
1383 It takes two arguments:
1384-- the path to the OpenSSL source tree (e.g. git checkout)
1385+- the path to the OpenSSL git checkout
1386 - the path to the header file to be generated Modules/_ssl_data_{version}.h
1387 - error codes are version specific
1388+
1389+The OpenSSL git checkout should be at a specific tag, using commands like:
1390+ git tag --list 'openssl-*'
1391+ git switch --detach openssl-3.4.0
1392+
1393+
1394+After generating the definitions, compare the result with newest pre-existing file.
1395+You can use a command like:
1396+
1397+ git diff --no-index Modules/_ssl_data_31.h Modules/_ssl_data_34.h
1398+
1399+- If the new version *only* adds new definitions, remove the pre-existing file
1400+ and adjust the #include in _ssl.c to point to the new version.
1401+- If the new version removes or renumbers some definitions, keep both files and
1402+ add a new #include in _ssl.c.
1403+
1404+A newly supported OpenSSL version should also be added to:
1405+- Tools/ssl/multissltests.py
1406+- .github/workflows/build.yml
1407 """
1408
1409 import argparse
1410@@ -16,6 +35,7 @@ import operator
1411 import os
1412 import re
1413 import sys
1414+import subprocess
1415
1416
1417 parser = argparse.ArgumentParser(
1418@@ -118,9 +138,17 @@ def main():
1419 # sort by libname, numeric error code
1420 args.reasons = sorted(reasons, key=operator.itemgetter(0, 3))
1421
1422+ git_describe = subprocess.run(
1423+ ['git', 'describe', '--long', '--dirty'],
1424+ cwd=args.srcdir,
1425+ capture_output=True,
1426+ encoding='utf-8',
1427+ check=True,
1428+ )
1429 lines = [
1430- "/* File generated by Tools/ssl/make_ssl_data.py */"
1431- f"/* Generated on {datetime.datetime.utcnow().isoformat()} */"
1432+ "/* File generated by Tools/ssl/make_ssl_data.py */",
1433+ f"/* Generated on {datetime.datetime.now(datetime.UTC).isoformat()} */",
1434+ f"/* Generated from Git commit {git_describe.stdout.strip()} */",
1435 ]
1436 lines.extend(gen_library_codes(args))
1437 lines.append("")
1438diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py
1439index eae0e0c..fb06f63 100755
1440--- a/Tools/ssl/multissltests.py
1441+++ b/Tools/ssl/multissltests.py
1442@@ -51,6 +51,7 @@ OPENSSL_RECENT_VERSIONS = [
1443 "3.1.7",
1444 "3.2.3",
1445 "3.3.2",
1446+ "3.4.0",
1447 ]
1448
1449 LIBRESSL_OLD_VERSIONS = [
1450--
14512.30.2
1452
diff --git a/meta/recipes-devtools/python/python3/0001-ssl-Raise-OSError-for-ERR_LIB_SYS.patch b/meta/recipes-devtools/python/python3/0001-ssl-Raise-OSError-for-ERR_LIB_SYS.patch
new file mode 100644
index 0000000000..18e0f208c7
--- /dev/null
+++ b/meta/recipes-devtools/python/python3/0001-ssl-Raise-OSError-for-ERR_LIB_SYS.patch
@@ -0,0 +1,51 @@
1From 11e0523eb363b7def4bc64d24a04e88d8670a691 Mon Sep 17 00:00:00 2001
2From: Petr Viktorin <encukou@gmail.com>
3Date: Thu, 28 Nov 2024 13:32:30 +0100
4Subject: [PATCH] ssl: Raise OSError for ERR_LIB_SYS
5
6From the ERR_raise manpage:
7
8 ERR_LIB_SYS
9
10 This "library code" indicates that a system error is
11 being reported. In this case, the reason code given
12 to `ERR_raise()` and `ERR_raise_data()` *must* be
13 `errno(3)`.
14
15Upstream-Status: Submitted [https://github.com/python/cpython/pull/127361]
16Signed-off-by: Peter Marko <peter.marko@siemens.com>
17---
18 Modules/_ssl.c | 10 ++++++++++
19 1 file changed, 10 insertions(+)
20
21diff --git a/Modules/_ssl.c b/Modules/_ssl.c
22index e5b8bf21002..a243ba4b9bc 100644
23--- a/Modules/_ssl.c
24+++ b/Modules/_ssl.c
25@@ -667,6 +667,11 @@ PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno)
26 ERR_GET_REASON(e) == SSL_R_CERTIFICATE_VERIFY_FAILED) {
27 type = state->PySSLCertVerificationErrorObject;
28 }
29+ if (ERR_GET_LIB(e) == ERR_LIB_SYS) {
30+ // A system error is being reported; reason is set to errno
31+ errno = ERR_GET_REASON(e);
32+ return PyErr_SetFromErrno(PyExc_OSError);
33+ }
34 p = PY_SSL_ERROR_SYSCALL;
35 }
36 break;
37@@ -692,6 +697,11 @@ PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno)
38 errstr = "EOF occurred in violation of protocol";
39 }
40 #endif
41+ if (ERR_GET_LIB(e) == ERR_LIB_SYS) {
42+ // A system error is being reported; reason is set to errno
43+ errno = ERR_GET_REASON(e);
44+ return PyErr_SetFromErrno(PyExc_OSError);
45+ }
46 break;
47 }
48 default:
49--
502.30.2
51
diff --git a/meta/recipes-devtools/python/python3_3.13.0.bb b/meta/recipes-devtools/python/python3_3.13.0.bb
index a393b5e4a0..b3170879b9 100644
--- a/meta/recipes-devtools/python/python3_3.13.0.bb
+++ b/meta/recipes-devtools/python/python3_3.13.0.bb
@@ -31,6 +31,8 @@ SRC_URI = "http://www.python.org/ftp/python/${PV}/Python-${PV}.tar.xz \
31 file://0001-test_active_children-skip-problematic-test.patch \ 31 file://0001-test_active_children-skip-problematic-test.patch \
32 file://0001-test_readline-skip-limited-history-test.patch \ 32 file://0001-test_readline-skip-limited-history-test.patch \
33 file://fix-armv5.patch \ 33 file://fix-armv5.patch \
34 file://0001-Generate-data-for-OpenSSL-3.4-and-add-it-to-multissl.patch \
35 file://0001-ssl-Raise-OSError-for-ERR_LIB_SYS.patch \
34 " 36 "
35 37
36SRC_URI:append:class-native = " \ 38SRC_URI:append:class-native = " \