1 From db5c5763f3e3172f1dd011355b41469770dafc0f Mon Sep 17 00:00:00 2001
2 From: Petr Viktorin <encukou@gmail.com>
3 Date: Thu, 28 Nov 2024 13:29:27 +0100
4 Subject: [PATCH] gh-127330: Update for OpenSSL 3.4 & document+improve the
5 update process (GH-127331)
7 - Add `git describe` output to headers generated by `make_ssl_data.py`
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.
13 - Regenerate the older file to add the info.
14 To the other older file, add a note about manual edits.
16 - Add notes on how to add a new OpenSSL version
18 - Add 3.4 error messages and multissl tests
20 Upstream-Status: Submitted [https://github.com/python/cpython/commit/db5c5763f3e3172f1dd011355b41469770dafc0f]
21 Signed-off-by: Peter Marko <peter.marko@siemens.com>
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%)
33 diff --git a/Modules/_ssl.c b/Modules/_ssl.c
34 index b6b5ebf094c..e5b8bf21002 100644
37 @@ -121,7 +121,7 @@ static void _PySSLFixErrno(void) {
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)
46 diff --git a/Modules/_ssl_data_111.h b/Modules/_ssl_data_111.h
47 index 093c786e6a2..061fac2bd58 100644
48 --- a/Modules/_ssl_data_111.h
49 +++ b/Modules/_ssl_data_111.h
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[] = {
57 {"ASN1", ERR_LIB_ASN1},
58 diff --git a/Modules/_ssl_data_300.h b/Modules/_ssl_data_300.h
59 index dc66731f6b6..b687ce43c77 100644
60 --- a/Modules/_ssl_data_300.h
61 +++ b/Modules/_ssl_data_300.h
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) */
68 static struct py_ssl_library_code library_codes[] = {
70 {"ASN1", ERR_LIB_ASN1},
71 diff --git a/Modules/_ssl_data_31.h b/Modules/_ssl_data_34.h
73 rename from Modules/_ssl_data_31.h
74 rename to Modules/_ssl_data_34.h
75 index c589c501f4e..d4af3e1c1fa 100644
76 --- a/Modules/_ssl_data_31.h
77 +++ b/Modules/_ssl_data_34.h
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[] = {
85 {"ASN1", ERR_LIB_ASN1},
86 @@ -300,6 +302,11 @@ static struct py_ssl_error_code error_codes[] = {
88 {"FIRST_NUM_TOO_LARGE", 13, 122},
90 + #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT
91 + {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT},
93 + {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232},
95 #ifdef ASN1_R_HEADER_TOO_LONG
96 {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
98 @@ -730,6 +737,11 @@ static struct py_ssl_error_code error_codes[] = {
100 {"UNSUPPORTED_TYPE", 13, 196},
102 + #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT
103 + {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT},
105 + {"UTCTIME_IS_TOO_SHORT", 13, 233},
107 #ifdef ASN1_R_WRONG_INTEGER_TYPE
108 {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
110 @@ -845,6 +857,11 @@ static struct py_ssl_error_code error_codes[] = {
112 {"LISTEN_V6_ONLY", 32, 136},
114 + #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE
115 + {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE},
117 + {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111},
119 #ifdef BIO_R_LOOKUP_RETURNED_NOTHING
120 {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
122 @@ -860,6 +877,11 @@ static struct py_ssl_error_code error_codes[] = {
124 {"NBIO_CONNECT_ERROR", 32, 110},
126 + #ifdef BIO_R_NON_FATAL
127 + {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL},
129 + {"NON_FATAL", 32, 112},
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},
134 @@ -880,6 +902,26 @@ static struct py_ssl_error_code error_codes[] = {
136 {"NO_SUCH_FILE", 32, 128},
138 + #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE
139 + {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE},
141 + {"PEER_ADDR_NOT_AVAILABLE", 32, 114},
143 + #ifdef BIO_R_PORT_MISMATCH
144 + {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH},
146 + {"PORT_MISMATCH", 32, 150},
148 + #ifdef BIO_R_TFO_DISABLED
149 + {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED},
151 + {"TFO_DISABLED", 32, 106},
153 + #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT
154 + {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT},
156 + {"TFO_NO_KERNEL_SUPPORT", 32, 108},
158 #ifdef BIO_R_TRANSFER_ERROR
159 {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR},
161 @@ -920,6 +962,11 @@ static struct py_ssl_error_code error_codes[] = {
163 {"UNABLE_TO_REUSEADDR", 32, 139},
165 + #ifdef BIO_R_UNABLE_TO_TFO
166 + {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO},
168 + {"UNABLE_TO_TFO", 32, 109},
170 #ifdef BIO_R_UNAVAILABLE_IP_FAMILY
171 {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
173 @@ -1230,6 +1277,11 @@ static struct py_ssl_error_code error_codes[] = {
175 {"ERROR_VALIDATING_SIGNATURE", 58, 171},
177 + #ifdef CMP_R_EXPECTED_POLLREQ
178 + {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ},
180 + {"EXPECTED_POLLREQ", 58, 104},
182 #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN
183 {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN},
185 @@ -1250,16 +1302,51 @@ static struct py_ssl_error_code error_codes[] = {
187 {"FAIL_INFO_OUT_OF_RANGE", 58, 129},
189 + #ifdef CMP_R_GENERATE_CERTREQTEMPLATE
190 + {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE},
192 + {"GENERATE_CERTREQTEMPLATE", 58, 197},
194 + #ifdef CMP_R_GENERATE_CRLSTATUS
195 + {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS},
197 + {"GENERATE_CRLSTATUS", 58, 198},
199 + #ifdef CMP_R_GETTING_GENP
200 + {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP},
202 + {"GETTING_GENP", 58, 192},
204 + #ifdef CMP_R_GET_ITAV
205 + {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV},
207 + {"GET_ITAV", 58, 199},
209 #ifdef CMP_R_INVALID_ARGS
210 {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS},
212 {"INVALID_ARGS", 58, 100},
214 + #ifdef CMP_R_INVALID_GENP
215 + {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP},
217 + {"INVALID_GENP", 58, 193},
219 + #ifdef CMP_R_INVALID_KEYSPEC
220 + {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC},
222 + {"INVALID_KEYSPEC", 58, 202},
224 #ifdef CMP_R_INVALID_OPTION
225 {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION},
227 {"INVALID_OPTION", 58, 174},
229 + #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE
230 + {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE},
232 + {"INVALID_ROOTCAKEYUPDATE", 58, 195},
234 #ifdef CMP_R_MISSING_CERTID
235 {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID},
237 @@ -1425,6 +1512,21 @@ static struct py_ssl_error_code error_codes[] = {
239 {"TRANSFER_ERROR", 58, 159},
241 + #ifdef CMP_R_UNCLEAN_CTX
242 + {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX},
244 + {"UNCLEAN_CTX", 58, 191},
246 + #ifdef CMP_R_UNEXPECTED_CERTPROFILE
247 + {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE},
249 + {"UNEXPECTED_CERTPROFILE", 58, 196},
251 + #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST
252 + {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST},
254 + {"UNEXPECTED_CRLSTATUSLIST", 58, 201},
256 #ifdef CMP_R_UNEXPECTED_PKIBODY
257 {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY},
259 @@ -1435,11 +1537,21 @@ static struct py_ssl_error_code error_codes[] = {
261 {"UNEXPECTED_PKISTATUS", 58, 185},
263 + #ifdef CMP_R_UNEXPECTED_POLLREQ
264 + {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ},
266 + {"UNEXPECTED_POLLREQ", 58, 105},
268 #ifdef CMP_R_UNEXPECTED_PVNO
269 {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO},
271 {"UNEXPECTED_PVNO", 58, 153},
273 + #ifdef CMP_R_UNEXPECTED_SENDER
274 + {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER},
276 + {"UNEXPECTED_SENDER", 58, 106},
278 #ifdef CMP_R_UNKNOWN_ALGORITHM_ID
279 {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID},
281 @@ -1450,6 +1562,11 @@ static struct py_ssl_error_code error_codes[] = {
283 {"UNKNOWN_CERT_TYPE", 58, 135},
285 + #ifdef CMP_R_UNKNOWN_CRL_ISSUER
286 + {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER},
288 + {"UNKNOWN_CRL_ISSUER", 58, 200},
290 #ifdef CMP_R_UNKNOWN_PKISTATUS
291 {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS},
293 @@ -1465,6 +1582,11 @@ static struct py_ssl_error_code error_codes[] = {
295 {"UNSUPPORTED_KEY_TYPE", 58, 137},
297 + #ifdef CMP_R_UNSUPPORTED_PKIBODY
298 + {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY},
300 + {"UNSUPPORTED_PKIBODY", 58, 101},
302 #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC
303 {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC},
305 @@ -1825,6 +1947,11 @@ static struct py_ssl_error_code error_codes[] = {
307 {"NO_SIGNERS", 46, 135},
309 + #ifdef CMS_R_OPERATION_UNSUPPORTED
310 + {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED},
312 + {"OPERATION_UNSUPPORTED", 46, 182},
314 #ifdef CMS_R_PEER_KEY_ERROR
315 {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR},
317 @@ -1960,6 +2087,11 @@ static struct py_ssl_error_code error_codes[] = {
319 {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
321 + #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM
322 + {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM},
324 + {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195},
326 #ifdef CMS_R_UNSUPPORTED_TYPE
327 {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
329 @@ -1985,6 +2117,31 @@ static struct py_ssl_error_code error_codes[] = {
331 {"WRAP_ERROR", 46, 159},
333 + #ifdef COMP_R_BROTLI_DECODE_ERROR
334 + {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR},
336 + {"BROTLI_DECODE_ERROR", 41, 102},
338 + #ifdef COMP_R_BROTLI_DEFLATE_ERROR
339 + {"BROTLI_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DEFLATE_ERROR},
341 + {"BROTLI_DEFLATE_ERROR", 41, 103},
343 + #ifdef COMP_R_BROTLI_ENCODE_ERROR
344 + {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR},
346 + {"BROTLI_ENCODE_ERROR", 41, 106},
348 + #ifdef COMP_R_BROTLI_INFLATE_ERROR
349 + {"BROTLI_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_INFLATE_ERROR},
351 + {"BROTLI_INFLATE_ERROR", 41, 104},
353 + #ifdef COMP_R_BROTLI_NOT_SUPPORTED
354 + {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED},
356 + {"BROTLI_NOT_SUPPORTED", 41, 105},
358 #ifdef COMP_R_ZLIB_DEFLATE_ERROR
359 {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
361 @@ -2000,6 +2157,26 @@ static struct py_ssl_error_code error_codes[] = {
363 {"ZLIB_NOT_SUPPORTED", 41, 101},
365 + #ifdef COMP_R_ZSTD_COMPRESS_ERROR
366 + {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR},
368 + {"ZSTD_COMPRESS_ERROR", 41, 107},
370 + #ifdef COMP_R_ZSTD_DECODE_ERROR
371 + {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR},
373 + {"ZSTD_DECODE_ERROR", 41, 108},
375 + #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR
376 + {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR},
378 + {"ZSTD_DECOMPRESS_ERROR", 41, 109},
380 + #ifdef COMP_R_ZSTD_NOT_SUPPORTED
381 + {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED},
383 + {"ZSTD_NOT_SUPPORTED", 41, 110},
385 #ifdef CONF_R_ERROR_LOADING_DSO
386 {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
388 @@ -2085,6 +2262,11 @@ static struct py_ssl_error_code error_codes[] = {
390 {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
392 + #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE
393 + {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE},
395 + {"RECURSIVE_SECTION_REFERENCE", 14, 126},
397 #ifdef CONF_R_RELATIVE_PATH
398 {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH},
400 @@ -2370,6 +2552,11 @@ static struct py_ssl_error_code error_codes[] = {
402 {"TOO_MANY_BYTES", 15, 113},
404 + #ifdef CRYPTO_R_TOO_MANY_NAMES
405 + {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES},
407 + {"TOO_MANY_NAMES", 15, 132},
409 #ifdef CRYPTO_R_TOO_MANY_RECORDS
410 {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS},
412 @@ -2560,6 +2747,11 @@ static struct py_ssl_error_code error_codes[] = {
414 {"INVALID_SECRET", 5, 128},
416 + #ifdef DH_R_INVALID_SIZE
417 + {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE},
419 + {"INVALID_SIZE", 5, 129},
421 #ifdef DH_R_KDF_PARAMETER_ERROR
422 {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
424 @@ -2610,6 +2802,11 @@ static struct py_ssl_error_code error_codes[] = {
426 {"PEER_KEY_ERROR", 5, 111},
428 + #ifdef DH_R_Q_TOO_LARGE
429 + {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE},
431 + {"Q_TOO_LARGE", 5, 130},
433 #ifdef DH_R_SHARED_INFO_ERROR
434 {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
436 @@ -3545,6 +3742,11 @@ static struct py_ssl_error_code error_codes[] = {
438 {"GENERATE_ERROR", 6, 214},
440 + #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED
441 + {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED},
443 + {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229},
445 #ifdef EVP_R_GET_RAW_KEY_FAILED
446 {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
448 @@ -3745,6 +3947,11 @@ static struct py_ssl_error_code error_codes[] = {
450 {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
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},
455 + {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226},
457 #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW
458 {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW},
460 @@ -3795,6 +4002,11 @@ static struct py_ssl_error_code error_codes[] = {
462 {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209},
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},
467 + {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228},
469 #ifdef EVP_R_TOO_MANY_RECORDS
470 {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS},
472 @@ -3825,6 +4037,11 @@ static struct py_ssl_error_code error_codes[] = {
474 {"UNABLE_TO_SET_CALLBACKS", 6, 217},
476 + #ifdef EVP_R_UNKNOWN_BITS
477 + {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS},
479 + {"UNKNOWN_BITS", 6, 166},
481 #ifdef EVP_R_UNKNOWN_CIPHER
482 {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
484 @@ -3840,6 +4057,11 @@ static struct py_ssl_error_code error_codes[] = {
486 {"UNKNOWN_KEY_TYPE", 6, 207},
488 + #ifdef EVP_R_UNKNOWN_MAX_SIZE
489 + {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE},
491 + {"UNKNOWN_MAX_SIZE", 6, 167},
493 #ifdef EVP_R_UNKNOWN_OPTION
494 {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
496 @@ -3850,6 +4072,11 @@ static struct py_ssl_error_code error_codes[] = {
498 {"UNKNOWN_PBE_ALGORITHM", 6, 121},
500 + #ifdef EVP_R_UNKNOWN_SECURITY_BITS
501 + {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS},
503 + {"UNKNOWN_SECURITY_BITS", 6, 168},
505 #ifdef EVP_R_UNSUPPORTED_ALGORITHM
506 {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
508 @@ -4040,6 +4267,11 @@ static struct py_ssl_error_code error_codes[] = {
510 {"RESPONSE_PARSE_ERROR", 61, 104},
512 + #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES
513 + {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES},
515 + {"RESPONSE_TOO_MANY_HDRLINES", 61, 130},
517 #ifdef HTTP_R_RETRY_TIMEOUT
518 {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT},
520 @@ -4530,6 +4762,11 @@ static struct py_ssl_error_code error_codes[] = {
522 {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110},
524 + #ifdef PKCS12_R_CALLBACK_FAILED
525 + {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED},
527 + {"CALLBACK_FAILED", 35, 115},
529 #ifdef PKCS12_R_CANT_PACK_STRUCTURE
530 {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
532 @@ -4920,6 +5157,11 @@ static struct py_ssl_error_code error_codes[] = {
534 {"CIPHER_OPERATION_FAILED", 57, 102},
536 + #ifdef PROV_R_COFACTOR_REQUIRED
537 + {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED},
539 + {"COFACTOR_REQUIRED", 57, 236},
541 #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED
542 {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED},
544 @@ -4935,6 +5177,11 @@ static struct py_ssl_error_code error_codes[] = {
546 {"EMS_NOT_ENABLED", 57, 233},
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},
551 + {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244},
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},
556 @@ -4990,6 +5237,11 @@ static struct py_ssl_error_code error_codes[] = {
558 {"FAILED_TO_SIGN", 57, 175},
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},
563 + {"FINAL_CALL_OUT_OF_ORDER", 57, 237},
565 #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR
566 {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR},
568 @@ -5020,6 +5272,11 @@ static struct py_ssl_error_code error_codes[] = {
570 {"INDICATOR_INTEGRITY_FAILURE", 57, 210},
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},
575 + {"INIT_CALL_OUT_OF_ORDER", 57, 238},
577 #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH
578 {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH},
580 @@ -5030,6 +5287,11 @@ static struct py_ssl_error_code error_codes[] = {
582 {"INVALID_AAD", 57, 108},
584 + #ifdef PROV_R_INVALID_AEAD
585 + {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD},
587 + {"INVALID_AEAD", 57, 231},
589 #ifdef PROV_R_INVALID_CONFIG_DATA
590 {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA},
592 @@ -5070,6 +5332,11 @@ static struct py_ssl_error_code error_codes[] = {
594 {"INVALID_DIGEST_SIZE", 57, 218},
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},
599 + {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243},
601 #ifdef PROV_R_INVALID_INPUT_LENGTH
602 {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH},
604 @@ -5085,6 +5352,11 @@ static struct py_ssl_error_code error_codes[] = {
606 {"INVALID_IV_LENGTH", 57, 109},
608 + #ifdef PROV_R_INVALID_KDF
609 + {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF},
611 + {"INVALID_KDF", 57, 232},
613 #ifdef PROV_R_INVALID_KEY
614 {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY},
616 @@ -5100,6 +5372,11 @@ static struct py_ssl_error_code error_codes[] = {
618 {"INVALID_MAC", 57, 151},
620 + #ifdef PROV_R_INVALID_MEMORY_SIZE
621 + {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE},
623 + {"INVALID_MEMORY_SIZE", 57, 235},
625 #ifdef PROV_R_INVALID_MGF1_MD
626 {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD},
628 @@ -5120,6 +5397,11 @@ static struct py_ssl_error_code error_codes[] = {
630 {"INVALID_PADDING_MODE", 57, 168},
632 + #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH
633 + {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH},
635 + {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241},
637 #ifdef PROV_R_INVALID_PUBINFO
638 {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO},
640 @@ -5155,6 +5437,11 @@ static struct py_ssl_error_code error_codes[] = {
642 {"INVALID_TAG_LENGTH", 57, 118},
644 + #ifdef PROV_R_INVALID_THREAD_POOL_SIZE
645 + {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE},
647 + {"INVALID_THREAD_POOL_SIZE", 57, 234},
649 #ifdef PROV_R_INVALID_UKM_LENGTH
650 {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH},
652 @@ -5300,6 +5587,11 @@ static struct py_ssl_error_code error_codes[] = {
654 {"NOT_XOF_OR_INVALID_LENGTH", 57, 113},
656 + #ifdef PROV_R_NO_INSTANCE_ALLOWED
657 + {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED},
659 + {"NO_INSTANCE_ALLOWED", 57, 242},
661 #ifdef PROV_R_NO_KEY_SET
662 {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET},
664 @@ -5310,6 +5602,11 @@ static struct py_ssl_error_code error_codes[] = {
666 {"NO_PARAMETERS_SET", 57, 177},
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},
671 + {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239},
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},
676 @@ -5460,6 +5757,11 @@ static struct py_ssl_error_code error_codes[] = {
678 {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152},
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},
683 + {"UPDATE_CALL_OUT_OF_ORDER", 57, 240},
685 #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED
686 {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED},
688 @@ -5595,6 +5897,11 @@ static struct py_ssl_error_code error_codes[] = {
690 {"INTERNAL_ERROR", 36, 113},
692 + #ifdef RAND_R_INVALID_PROPERTY_QUERY
693 + {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY},
695 + {"INVALID_PROPERTY_QUERY", 36, 137},
697 #ifdef RAND_R_IN_ERROR_STATE
698 {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
700 @@ -6210,6 +6517,11 @@ static struct py_ssl_error_code error_codes[] = {
702 {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
704 + #ifdef SSL_R_BAD_CERTIFICATE
705 + {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE},
707 + {"BAD_CERTIFICATE", 20, 348},
709 #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
710 {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
712 @@ -6220,6 +6532,11 @@ static struct py_ssl_error_code error_codes[] = {
714 {"BAD_CIPHER", 20, 186},
716 + #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM
717 + {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM},
719 + {"BAD_COMPRESSION_ALGORITHM", 20, 326},
721 #ifdef SSL_R_BAD_DATA
722 {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
724 @@ -6495,6 +6812,11 @@ static struct py_ssl_error_code error_codes[] = {
726 {"CONNECTION_TYPE_NOT_SET", 20, 144},
728 + #ifdef SSL_R_CONN_USE_ONLY
729 + {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY},
731 + {"CONN_USE_ONLY", 20, 356},
733 #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
734 {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
736 @@ -6635,6 +6957,11 @@ static struct py_ssl_error_code error_codes[] = {
738 {"EE_KEY_TOO_SMALL", 20, 399},
740 + #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY
741 + {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY},
743 + {"EMPTY_RAW_PUBLIC_KEY", 20, 349},
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},
748 @@ -6650,6 +6977,11 @@ static struct py_ssl_error_code error_codes[] = {
750 {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
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},
755 + {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419},
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},
760 @@ -6680,11 +7012,26 @@ static struct py_ssl_error_code error_codes[] = {
762 {"EXT_LENGTH_MISMATCH", 20, 163},
764 + #ifdef SSL_R_FAILED_TO_GET_PARAMETER
765 + {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER},
767 + {"FAILED_TO_GET_PARAMETER", 20, 316},
769 #ifdef SSL_R_FAILED_TO_INIT_ASYNC
770 {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
772 {"FAILED_TO_INIT_ASYNC", 20, 405},
774 + #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE
775 + {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE},
777 + {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417},
779 + #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE
780 + {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE},
782 + {"FEATURE_NOT_RENEGOTIABLE", 20, 413},
784 #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
785 {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
787 @@ -6805,6 +7152,16 @@ static struct py_ssl_error_code error_codes[] = {
789 {"INVALID_NULL_CMD_NAME", 20, 385},
791 + #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY
792 + {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY},
794 + {"INVALID_RAW_PUBLIC_KEY", 20, 350},
796 + #ifdef SSL_R_INVALID_RECORD
797 + {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD},
799 + {"INVALID_RECORD", 20, 317},
801 #ifdef SSL_R_INVALID_SEQUENCE_NUMBER
802 {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
804 @@ -6865,6 +7222,11 @@ static struct py_ssl_error_code error_codes[] = {
806 {"LIBRARY_HAS_NO_CIPHERS", 20, 161},
808 + #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED
809 + {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED},
811 + {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395},
813 #ifdef SSL_R_MISSING_DSA_SIGNING_CERT
814 {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
816 @@ -6925,6 +7287,11 @@ static struct py_ssl_error_code error_codes[] = {
818 {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
820 + #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION
821 + {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION},
823 + {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420},
825 #ifdef SSL_R_MISSING_TMP_DH_KEY
826 {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
828 @@ -7065,6 +7432,11 @@ static struct py_ssl_error_code error_codes[] = {
830 {"NO_SRTP_PROFILES", 20, 359},
832 + #ifdef SSL_R_NO_STREAM
833 + {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM},
835 + {"NO_STREAM", 20, 355},
837 #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM
838 {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM},
840 @@ -7080,6 +7452,11 @@ static struct py_ssl_error_code error_codes[] = {
842 {"NO_SUITABLE_KEY_SHARE", 20, 101},
844 + #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER
845 + {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER},
847 + {"NO_SUITABLE_RECORD_LAYER", 20, 322},
849 #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
850 {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
852 @@ -7160,6 +7537,11 @@ static struct py_ssl_error_code error_codes[] = {
854 {"PIPELINE_FAILURE", 20, 406},
856 + #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED
857 + {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED},
859 + {"POLL_REQUEST_NOT_SUPPORTED", 20, 418},
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},
864 @@ -7190,6 +7572,21 @@ static struct py_ssl_error_code error_codes[] = {
866 {"PSK_NO_SERVER_CB", 20, 225},
868 + #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR
869 + {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR},
871 + {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393},
873 + #ifdef SSL_R_QUIC_NETWORK_ERROR
874 + {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR},
876 + {"QUIC_NETWORK_ERROR", 20, 387},
878 + #ifdef SSL_R_QUIC_PROTOCOL_ERROR
879 + {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR},
881 + {"QUIC_PROTOCOL_ERROR", 20, 382},
883 #ifdef SSL_R_READ_BIO_NOT_SET
884 {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
886 @@ -7200,6 +7597,16 @@ static struct py_ssl_error_code error_codes[] = {
888 {"READ_TIMEOUT_EXPIRED", 20, 312},
890 + #ifdef SSL_R_RECORDS_NOT_RELEASED
891 + {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED},
893 + {"RECORDS_NOT_RELEASED", 20, 321},
895 + #ifdef SSL_R_RECORD_LAYER_FAILURE
896 + {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE},
898 + {"RECORD_LAYER_FAILURE", 20, 313},
900 #ifdef SSL_R_RECORD_LENGTH_MISMATCH
901 {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
903 @@ -7210,6 +7617,11 @@ static struct py_ssl_error_code error_codes[] = {
905 {"RECORD_TOO_SMALL", 20, 298},
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},
910 + {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346},
912 #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
913 {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
915 @@ -7255,6 +7667,11 @@ static struct py_ssl_error_code error_codes[] = {
917 {"SCT_VERIFICATION_FAILED", 20, 208},
919 + #ifdef SSL_R_SEQUENCE_CTR_WRAPPED
920 + {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED},
922 + {"SEQUENCE_CTR_WRAPPED", 20, 327},
924 #ifdef SSL_R_SERVERHELLO_TLSEXT
925 {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
927 @@ -7325,6 +7742,16 @@ static struct py_ssl_error_code error_codes[] = {
929 {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
931 + #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
932 + {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
934 + {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
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},
939 + {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
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},
944 @@ -7335,11 +7762,26 @@ static struct py_ssl_error_code error_codes[] = {
946 {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
948 + #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
949 + {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
951 + {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
953 #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
954 {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
956 {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
958 + #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
959 + {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
961 + {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
963 + #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
964 + {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
966 + {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
968 #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
969 {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
971 @@ -7350,6 +7792,16 @@ static struct py_ssl_error_code error_codes[] = {
973 {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
975 + #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
976 + {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
978 + {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
980 + #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
981 + {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
983 + {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
985 #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
986 {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
988 @@ -7360,11 +7812,26 @@ static struct py_ssl_error_code error_codes[] = {
990 {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
992 + #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
993 + {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
995 + {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
997 #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
998 {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
1000 {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
1002 + #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
1003 + {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
1005 + {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
1007 + #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
1008 + {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
1010 + {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
1012 #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
1013 {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
1015 @@ -7375,6 +7842,11 @@ static struct py_ssl_error_code error_codes[] = {
1017 {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
1019 + #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
1020 + {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
1022 + {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
1024 #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
1025 {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
1027 @@ -7450,6 +7922,36 @@ static struct py_ssl_error_code error_codes[] = {
1029 {"STILL_IN_INIT", 20, 121},
1031 + #ifdef SSL_R_STREAM_COUNT_LIMITED
1032 + {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED},
1034 + {"STREAM_COUNT_LIMITED", 20, 411},
1036 + #ifdef SSL_R_STREAM_FINISHED
1037 + {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED},
1039 + {"STREAM_FINISHED", 20, 365},
1041 + #ifdef SSL_R_STREAM_RECV_ONLY
1042 + {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY},
1044 + {"STREAM_RECV_ONLY", 20, 366},
1046 + #ifdef SSL_R_STREAM_RESET
1047 + {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET},
1049 + {"STREAM_RESET", 20, 375},
1051 + #ifdef SSL_R_STREAM_SEND_ONLY
1052 + {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY},
1054 + {"STREAM_SEND_ONLY", 20, 379},
1056 + #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
1057 + {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
1059 + {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
1061 #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
1062 {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
1064 @@ -7460,6 +7962,16 @@ static struct py_ssl_error_code error_codes[] = {
1066 {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
1068 + #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
1069 + {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
1071 + {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
1073 + #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
1074 + {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
1076 + {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
1078 #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
1079 {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
1081 @@ -7470,6 +7982,16 @@ static struct py_ssl_error_code error_codes[] = {
1083 {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
1085 + #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
1086 + {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
1088 + {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
1090 + #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
1091 + {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
1093 + {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
1095 #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
1096 {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
1098 @@ -7480,6 +8002,16 @@ static struct py_ssl_error_code error_codes[] = {
1100 {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
1102 + #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
1103 + {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
1105 + {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
1107 + #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
1108 + {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
1110 + {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
1112 #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
1113 {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
1115 @@ -7490,6 +8022,16 @@ static struct py_ssl_error_code error_codes[] = {
1117 {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
1119 + #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
1120 + {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
1122 + {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
1124 + #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
1125 + {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
1127 + {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
1129 #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
1130 {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
1132 @@ -7500,6 +8042,26 @@ static struct py_ssl_error_code error_codes[] = {
1134 {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
1136 + #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
1137 + {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
1139 + {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
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},
1144 + {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120},
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},
1149 + {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120},
1151 + #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
1152 + {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
1154 + {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
1156 #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
1157 {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
1159 @@ -7510,21 +8072,56 @@ static struct py_ssl_error_code error_codes[] = {
1161 {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
1163 + #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
1164 + {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
1166 + {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
1168 #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
1169 {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
1171 {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
1173 + #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
1174 + {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
1176 + {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
1178 + #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
1179 + {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
1181 + {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
1183 #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
1184 {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
1186 {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
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},
1191 + {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115},
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},
1196 + {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115},
1198 #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
1199 {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
1201 {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
1203 + #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
1204 + {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
1206 + {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
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},
1211 + {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
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},
1216 @@ -7535,6 +8132,16 @@ static struct py_ssl_error_code error_codes[] = {
1218 {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
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},
1223 + {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
1225 + #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
1226 + {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
1228 + {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
1230 #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
1231 {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
1233 @@ -7545,6 +8152,16 @@ static struct py_ssl_error_code error_codes[] = {
1235 {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
1237 + #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
1238 + {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
1240 + {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
1242 + #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
1243 + {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
1245 + {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
1247 #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
1248 {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
1250 @@ -7665,6 +8282,11 @@ static struct py_ssl_error_code error_codes[] = {
1252 {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
1254 + #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER
1255 + {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER},
1257 + {"UNKNOWN_MANDATORY_PARAMETER", 20, 323},
1259 #ifdef SSL_R_UNKNOWN_PKEY_TYPE
1260 {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
1262 @@ -7700,6 +8322,21 @@ static struct py_ssl_error_code error_codes[] = {
1264 {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
1266 + #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE
1267 + {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE},
1269 + {"UNSUPPORTED_CONFIG_VALUE", 20, 414},
1271 + #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS
1272 + {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS},
1274 + {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415},
1276 + #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP
1277 + {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP},
1279 + {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416},
1281 #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
1282 {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
1284 @@ -7720,6 +8357,11 @@ static struct py_ssl_error_code error_codes[] = {
1286 {"UNSUPPORTED_STATUS_TYPE", 20, 329},
1288 + #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG
1289 + {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG},
1291 + {"UNSUPPORTED_WRITE_FLAG", 20, 412},
1293 #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
1294 {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
1296 @@ -7750,6 +8392,11 @@ static struct py_ssl_error_code error_codes[] = {
1298 {"WRONG_CURVE", 20, 378},
1300 + #ifdef SSL_R_WRONG_RPK_TYPE
1301 + {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE},
1303 + {"WRONG_RPK_TYPE", 20, 351},
1305 #ifdef SSL_R_WRONG_SIGNATURE_LENGTH
1306 {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
1308 @@ -8055,6 +8702,16 @@ static struct py_ssl_error_code error_codes[] = {
1310 {"BAD_OBJECT", 34, 119},
1312 + #ifdef X509V3_R_BAD_OPTION
1313 + {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION},
1315 + {"BAD_OPTION", 34, 170},
1317 + #ifdef X509V3_R_BAD_VALUE
1318 + {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE},
1320 + {"BAD_VALUE", 34, 171},
1322 #ifdef X509V3_R_BN_DEC2BN_ERROR
1323 {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
1325 @@ -8370,6 +9027,11 @@ static struct py_ssl_error_code error_codes[] = {
1327 {"UNKNOWN_OPTION", 34, 120},
1329 + #ifdef X509V3_R_UNKNOWN_VALUE
1330 + {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE},
1332 + {"UNKNOWN_VALUE", 34, 172},
1334 #ifdef X509V3_R_UNSUPPORTED_OPTION
1335 {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
1337 @@ -8430,6 +9092,11 @@ static struct py_ssl_error_code error_codes[] = {
1339 {"CRL_VERIFY_FAILURE", 11, 131},
1341 + #ifdef X509_R_DUPLICATE_ATTRIBUTE
1342 + {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE},
1344 + {"DUPLICATE_ATTRIBUTE", 11, 140},
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},
1349 @@ -8590,6 +9257,11 @@ static struct py_ssl_error_code error_codes[] = {
1351 {"UNSUPPORTED_ALGORITHM", 11, 111},
1353 + #ifdef X509_R_UNSUPPORTED_VERSION
1354 + {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION},
1356 + {"UNSUPPORTED_VERSION", 11, 145},
1358 #ifdef X509_R_WRONG_LOOKUP_TYPE
1359 {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
1361 diff --git a/Tools/c-analyzer/cpython/_parser.py b/Tools/c-analyzer/cpython/_parser.py
1362 index 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
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
1376 diff --git a/Tools/ssl/make_ssl_data.py b/Tools/ssl/make_ssl_data.py
1377 index 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.
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
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
1394 +After generating the definitions, compare the result with newest pre-existing file.
1395 +You can use a command like:
1397 + git diff --no-index Modules/_ssl_data_31.h Modules/_ssl_data_34.h
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.
1404 +A newly supported OpenSSL version should also be added to:
1405 +- Tools/ssl/multissltests.py
1406 +- .github/workflows/build.yml
1410 @@ -16,6 +35,7 @@ import operator
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))
1422 + git_describe = subprocess.run(
1423 + ['git', 'describe', '--long', '--dirty'],
1425 + capture_output=True,
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()} */",
1436 lines.extend(gen_library_codes(args))
1438 diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py
1439 index eae0e0c..fb06f63 100755
1440 --- a/Tools/ssl/multissltests.py
1441 +++ b/Tools/ssl/multissltests.py
1442 @@ -51,6 +51,7 @@ OPENSSL_RECENT_VERSIONS = [
1449 LIBRESSL_OLD_VERSIONS = [