summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPetr Viktorin <encukou@gmail.com>2024-11-28 12:29:27 (GMT)
committerGitHub <noreply@github.com>2024-11-28 12:29:27 (GMT)
commitdb5c5763f3e3172f1dd011355b41469770dafc0f (patch)
tree7bc21f4d412e540088295bc7b8eb72cf799453ab
parent3a77980002845c22e5b294ca47a12d62bf5baf53 (diff)
downloadcpython-db5c5763f3e3172f1dd011355b41469770dafc0f.zip
cpython-db5c5763f3e3172f1dd011355b41469770dafc0f.tar.gz
cpython-db5c5763f3e3172f1dd011355b41469770dafc0f.tar.bz2
gh-127330: Update for OpenSSL 3.4 & document+improve the update process (GH-127331)
- Add `git describe` output to headers generated by `make_ssl_data.py` This info is more important than the date when the file was generated. It does mean that the tool now requires a Git checkout of OpenSSL, not for example a release tarball. - Regenerate the older file to add the info. To the other older file, add a note about manual edits. - Add notes on how to add a new OpenSSL version - Add 3.4 error messages and multissl tests
-rw-r--r--.github/workflows/build.yml3
-rw-r--r--Misc/NEWS.d/next/Library/2024-11-27-14-23-02.gh-issue-127331.9sNEC9.rst1
-rw-r--r--Modules/_ssl.c3
-rw-r--r--Modules/_ssl_data_111.h4
-rw-r--r--Modules/_ssl_data_300.h5
-rw-r--r--Modules/_ssl_data_34.h (renamed from Modules/_ssl_data_31.h)674
-rw-r--r--Tools/c-analyzer/cpython/_parser.py4
-rwxr-xr-xTools/ssl/make_ssl_data.py34
-rwxr-xr-xTools/ssl/multissltests.py2
9 files changed, 719 insertions, 11 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b3c4f17..1f8c468 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -250,7 +250,8 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-24.04]
- openssl_ver: [3.0.15, 3.1.7, 3.2.3, 3.3.2]
+ openssl_ver: [3.0.15, 3.1.7, 3.2.3, 3.3.2, 3.4.0]
+ # See Tools/ssl/make_ssl_data.py for notes on adding a new version
env:
OPENSSL_VER: ${{ matrix.openssl_ver }}
MULTISSL_DIR: ${{ github.workspace }}/multissl
diff --git a/Misc/NEWS.d/next/Library/2024-11-27-14-23-02.gh-issue-127331.9sNEC9.rst b/Misc/NEWS.d/next/Library/2024-11-27-14-23-02.gh-issue-127331.9sNEC9.rst
new file mode 100644
index 0000000..c668816
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-11-27-14-23-02.gh-issue-127331.9sNEC9.rst
@@ -0,0 +1 @@
+:mod:`ssl` can show descriptions for errors added in OpenSSL 3.4.
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index b6b5ebf..e5b8bf2 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -120,8 +120,9 @@ static void _PySSLFixErrno(void) {
#endif
/* Include generated data (error codes) */
+/* See make_ssl_data.h for notes on adding a new version. */
#if (OPENSSL_VERSION_NUMBER >= 0x30100000L)
-#include "_ssl_data_31.h"
+#include "_ssl_data_34.h"
#elif (OPENSSL_VERSION_NUMBER >= 0x30000000L)
#include "_ssl_data_300.h"
#elif (OPENSSL_VERSION_NUMBER >= 0x10101000L)
diff --git a/Modules/_ssl_data_111.h b/Modules/_ssl_data_111.h
index 093c786..061fac2 100644
--- a/Modules/_ssl_data_111.h
+++ b/Modules/_ssl_data_111.h
@@ -1,4 +1,6 @@
-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T02:58:04.081473 */
+/* File generated by Tools/ssl/make_ssl_data.py */
+/* Generated on 2024-11-27T12:48:46.194048+00:00 */
+/* Generated from Git commit OpenSSL_1_1_1w-0-ge04bd3433f */
static struct py_ssl_library_code library_codes[] = {
#ifdef ERR_LIB_ASN1
{"ASN1", ERR_LIB_ASN1},
diff --git a/Modules/_ssl_data_300.h b/Modules/_ssl_data_300.h
index dc66731..b687ce4 100644
--- a/Modules/_ssl_data_300.h
+++ b/Modules/_ssl_data_300.h
@@ -1,4 +1,7 @@
-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T03:03:52.163218 */
+/* File generated by Tools/ssl/make_ssl_data.py */
+/* Generated on 2023-06-01T03:03:52.163218 */
+/* Manually edited to add definitions from 1.1.1 (GH-105174) */
+
static struct py_ssl_library_code library_codes[] = {
#ifdef ERR_LIB_ASN1
{"ASN1", ERR_LIB_ASN1},
diff --git a/Modules/_ssl_data_31.h b/Modules/_ssl_data_34.h
index c589c50..d4af3e1 100644
--- a/Modules/_ssl_data_31.h
+++ b/Modules/_ssl_data_34.h
@@ -1,4 +1,6 @@
-/* File generated by Tools/ssl/make_ssl_data.py *//* Generated on 2023-06-01T03:04:00.275280 */
+/* File generated by Tools/ssl/make_ssl_data.py */
+/* Generated on 2024-11-27T12:35:52.276767+00:00 */
+/* Generated from Git commit openssl-3.4.0-0-g98acb6b028 */
static struct py_ssl_library_code library_codes[] = {
#ifdef ERR_LIB_ASN1
{"ASN1", ERR_LIB_ASN1},
@@ -300,6 +302,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"FIRST_NUM_TOO_LARGE", 13, 122},
#endif
+ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT
+ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT},
+ #else
+ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232},
+ #endif
#ifdef ASN1_R_HEADER_TOO_LONG
{"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG},
#else
@@ -730,6 +737,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_TYPE", 13, 196},
#endif
+ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT
+ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT},
+ #else
+ {"UTCTIME_IS_TOO_SHORT", 13, 233},
+ #endif
#ifdef ASN1_R_WRONG_INTEGER_TYPE
{"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE},
#else
@@ -845,6 +857,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"LISTEN_V6_ONLY", 32, 136},
#endif
+ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE
+ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE},
+ #else
+ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111},
+ #endif
#ifdef BIO_R_LOOKUP_RETURNED_NOTHING
{"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING},
#else
@@ -860,6 +877,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"NBIO_CONNECT_ERROR", 32, 110},
#endif
+ #ifdef BIO_R_NON_FATAL
+ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL},
+ #else
+ {"NON_FATAL", 32, 112},
+ #endif
#ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED
{"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED},
#else
@@ -880,6 +902,26 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"NO_SUCH_FILE", 32, 128},
#endif
+ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE
+ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE},
+ #else
+ {"PEER_ADDR_NOT_AVAILABLE", 32, 114},
+ #endif
+ #ifdef BIO_R_PORT_MISMATCH
+ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH},
+ #else
+ {"PORT_MISMATCH", 32, 150},
+ #endif
+ #ifdef BIO_R_TFO_DISABLED
+ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED},
+ #else
+ {"TFO_DISABLED", 32, 106},
+ #endif
+ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT
+ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT},
+ #else
+ {"TFO_NO_KERNEL_SUPPORT", 32, 108},
+ #endif
#ifdef BIO_R_TRANSFER_ERROR
{"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR},
#else
@@ -920,6 +962,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNABLE_TO_REUSEADDR", 32, 139},
#endif
+ #ifdef BIO_R_UNABLE_TO_TFO
+ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO},
+ #else
+ {"UNABLE_TO_TFO", 32, 109},
+ #endif
#ifdef BIO_R_UNAVAILABLE_IP_FAMILY
{"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY},
#else
@@ -1230,6 +1277,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"ERROR_VALIDATING_SIGNATURE", 58, 171},
#endif
+ #ifdef CMP_R_EXPECTED_POLLREQ
+ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ},
+ #else
+ {"EXPECTED_POLLREQ", 58, 104},
+ #endif
#ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN
{"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN},
#else
@@ -1250,16 +1302,51 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"FAIL_INFO_OUT_OF_RANGE", 58, 129},
#endif
+ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE
+ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE},
+ #else
+ {"GENERATE_CERTREQTEMPLATE", 58, 197},
+ #endif
+ #ifdef CMP_R_GENERATE_CRLSTATUS
+ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS},
+ #else
+ {"GENERATE_CRLSTATUS", 58, 198},
+ #endif
+ #ifdef CMP_R_GETTING_GENP
+ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP},
+ #else
+ {"GETTING_GENP", 58, 192},
+ #endif
+ #ifdef CMP_R_GET_ITAV
+ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV},
+ #else
+ {"GET_ITAV", 58, 199},
+ #endif
#ifdef CMP_R_INVALID_ARGS
{"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS},
#else
{"INVALID_ARGS", 58, 100},
#endif
+ #ifdef CMP_R_INVALID_GENP
+ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP},
+ #else
+ {"INVALID_GENP", 58, 193},
+ #endif
+ #ifdef CMP_R_INVALID_KEYSPEC
+ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC},
+ #else
+ {"INVALID_KEYSPEC", 58, 202},
+ #endif
#ifdef CMP_R_INVALID_OPTION
{"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION},
#else
{"INVALID_OPTION", 58, 174},
#endif
+ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE
+ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE},
+ #else
+ {"INVALID_ROOTCAKEYUPDATE", 58, 195},
+ #endif
#ifdef CMP_R_MISSING_CERTID
{"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID},
#else
@@ -1425,6 +1512,21 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TRANSFER_ERROR", 58, 159},
#endif
+ #ifdef CMP_R_UNCLEAN_CTX
+ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX},
+ #else
+ {"UNCLEAN_CTX", 58, 191},
+ #endif
+ #ifdef CMP_R_UNEXPECTED_CERTPROFILE
+ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE},
+ #else
+ {"UNEXPECTED_CERTPROFILE", 58, 196},
+ #endif
+ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST
+ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST},
+ #else
+ {"UNEXPECTED_CRLSTATUSLIST", 58, 201},
+ #endif
#ifdef CMP_R_UNEXPECTED_PKIBODY
{"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY},
#else
@@ -1435,11 +1537,21 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNEXPECTED_PKISTATUS", 58, 185},
#endif
+ #ifdef CMP_R_UNEXPECTED_POLLREQ
+ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ},
+ #else
+ {"UNEXPECTED_POLLREQ", 58, 105},
+ #endif
#ifdef CMP_R_UNEXPECTED_PVNO
{"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO},
#else
{"UNEXPECTED_PVNO", 58, 153},
#endif
+ #ifdef CMP_R_UNEXPECTED_SENDER
+ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER},
+ #else
+ {"UNEXPECTED_SENDER", 58, 106},
+ #endif
#ifdef CMP_R_UNKNOWN_ALGORITHM_ID
{"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID},
#else
@@ -1450,6 +1562,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNKNOWN_CERT_TYPE", 58, 135},
#endif
+ #ifdef CMP_R_UNKNOWN_CRL_ISSUER
+ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER},
+ #else
+ {"UNKNOWN_CRL_ISSUER", 58, 200},
+ #endif
#ifdef CMP_R_UNKNOWN_PKISTATUS
{"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS},
#else
@@ -1465,6 +1582,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_KEY_TYPE", 58, 137},
#endif
+ #ifdef CMP_R_UNSUPPORTED_PKIBODY
+ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY},
+ #else
+ {"UNSUPPORTED_PKIBODY", 58, 101},
+ #endif
#ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC
{"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC},
#else
@@ -1825,6 +1947,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"NO_SIGNERS", 46, 135},
#endif
+ #ifdef CMS_R_OPERATION_UNSUPPORTED
+ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED},
+ #else
+ {"OPERATION_UNSUPPORTED", 46, 182},
+ #endif
#ifdef CMS_R_PEER_KEY_ERROR
{"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR},
#else
@@ -1960,6 +2087,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_RECIPIENT_TYPE", 46, 154},
#endif
+ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM
+ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM},
+ #else
+ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195},
+ #endif
#ifdef CMS_R_UNSUPPORTED_TYPE
{"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE},
#else
@@ -1985,6 +2117,31 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"WRAP_ERROR", 46, 159},
#endif
+ #ifdef COMP_R_BROTLI_DECODE_ERROR
+ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR},
+ #else
+ {"BROTLI_DECODE_ERROR", 41, 102},
+ #endif
+ #ifdef COMP_R_BROTLI_DEFLATE_ERROR
+ {"BROTLI_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DEFLATE_ERROR},
+ #else
+ {"BROTLI_DEFLATE_ERROR", 41, 103},
+ #endif
+ #ifdef COMP_R_BROTLI_ENCODE_ERROR
+ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR},
+ #else
+ {"BROTLI_ENCODE_ERROR", 41, 106},
+ #endif
+ #ifdef COMP_R_BROTLI_INFLATE_ERROR
+ {"BROTLI_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_INFLATE_ERROR},
+ #else
+ {"BROTLI_INFLATE_ERROR", 41, 104},
+ #endif
+ #ifdef COMP_R_BROTLI_NOT_SUPPORTED
+ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED},
+ #else
+ {"BROTLI_NOT_SUPPORTED", 41, 105},
+ #endif
#ifdef COMP_R_ZLIB_DEFLATE_ERROR
{"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR},
#else
@@ -2000,6 +2157,26 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"ZLIB_NOT_SUPPORTED", 41, 101},
#endif
+ #ifdef COMP_R_ZSTD_COMPRESS_ERROR
+ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR},
+ #else
+ {"ZSTD_COMPRESS_ERROR", 41, 107},
+ #endif
+ #ifdef COMP_R_ZSTD_DECODE_ERROR
+ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR},
+ #else
+ {"ZSTD_DECODE_ERROR", 41, 108},
+ #endif
+ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR
+ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR},
+ #else
+ {"ZSTD_DECOMPRESS_ERROR", 41, 109},
+ #endif
+ #ifdef COMP_R_ZSTD_NOT_SUPPORTED
+ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED},
+ #else
+ {"ZSTD_NOT_SUPPORTED", 41, 110},
+ #endif
#ifdef CONF_R_ERROR_LOADING_DSO
{"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO},
#else
@@ -2085,6 +2262,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"RECURSIVE_DIRECTORY_INCLUDE", 14, 111},
#endif
+ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE
+ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE},
+ #else
+ {"RECURSIVE_SECTION_REFERENCE", 14, 126},
+ #endif
#ifdef CONF_R_RELATIVE_PATH
{"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH},
#else
@@ -2370,6 +2552,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TOO_MANY_BYTES", 15, 113},
#endif
+ #ifdef CRYPTO_R_TOO_MANY_NAMES
+ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES},
+ #else
+ {"TOO_MANY_NAMES", 15, 132},
+ #endif
#ifdef CRYPTO_R_TOO_MANY_RECORDS
{"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS},
#else
@@ -2560,6 +2747,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_SECRET", 5, 128},
#endif
+ #ifdef DH_R_INVALID_SIZE
+ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE},
+ #else
+ {"INVALID_SIZE", 5, 129},
+ #endif
#ifdef DH_R_KDF_PARAMETER_ERROR
{"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR},
#else
@@ -2610,6 +2802,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"PEER_KEY_ERROR", 5, 111},
#endif
+ #ifdef DH_R_Q_TOO_LARGE
+ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE},
+ #else
+ {"Q_TOO_LARGE", 5, 130},
+ #endif
#ifdef DH_R_SHARED_INFO_ERROR
{"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR},
#else
@@ -3545,6 +3742,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"GENERATE_ERROR", 6, 214},
#endif
+ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED
+ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED},
+ #else
+ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229},
+ #endif
#ifdef EVP_R_GET_RAW_KEY_FAILED
{"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED},
#else
@@ -3745,6 +3947,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150},
#endif
+ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE},
+ #else
+ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226},
+ #endif
#ifdef EVP_R_OUTPUT_WOULD_OVERFLOW
{"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW},
#else
@@ -3795,6 +4002,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"SET_DEFAULT_PROPERTY_FAILURE", 6, 209},
#endif
+ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE
+ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE},
+ #else
+ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228},
+ #endif
#ifdef EVP_R_TOO_MANY_RECORDS
{"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS},
#else
@@ -3825,6 +4037,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNABLE_TO_SET_CALLBACKS", 6, 217},
#endif
+ #ifdef EVP_R_UNKNOWN_BITS
+ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS},
+ #else
+ {"UNKNOWN_BITS", 6, 166},
+ #endif
#ifdef EVP_R_UNKNOWN_CIPHER
{"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER},
#else
@@ -3840,6 +4057,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNKNOWN_KEY_TYPE", 6, 207},
#endif
+ #ifdef EVP_R_UNKNOWN_MAX_SIZE
+ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE},
+ #else
+ {"UNKNOWN_MAX_SIZE", 6, 167},
+ #endif
#ifdef EVP_R_UNKNOWN_OPTION
{"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION},
#else
@@ -3850,6 +4072,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNKNOWN_PBE_ALGORITHM", 6, 121},
#endif
+ #ifdef EVP_R_UNKNOWN_SECURITY_BITS
+ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS},
+ #else
+ {"UNKNOWN_SECURITY_BITS", 6, 168},
+ #endif
#ifdef EVP_R_UNSUPPORTED_ALGORITHM
{"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM},
#else
@@ -4040,6 +4267,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"RESPONSE_PARSE_ERROR", 61, 104},
#endif
+ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES
+ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES},
+ #else
+ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130},
+ #endif
#ifdef HTTP_R_RETRY_TIMEOUT
{"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT},
#else
@@ -4530,6 +4762,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110},
#endif
+ #ifdef PKCS12_R_CALLBACK_FAILED
+ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED},
+ #else
+ {"CALLBACK_FAILED", 35, 115},
+ #endif
#ifdef PKCS12_R_CANT_PACK_STRUCTURE
{"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE},
#else
@@ -4920,6 +5157,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"CIPHER_OPERATION_FAILED", 57, 102},
#endif
+ #ifdef PROV_R_COFACTOR_REQUIRED
+ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED},
+ #else
+ {"COFACTOR_REQUIRED", 57, 236},
+ #endif
#ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED
{"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED},
#else
@@ -4935,6 +5177,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"EMS_NOT_ENABLED", 57, 233},
#endif
+ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS
+ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS},
+ #else
+ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244},
+ #endif
#ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK
{"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK},
#else
@@ -4990,6 +5237,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"FAILED_TO_SIGN", 57, 175},
#endif
+ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER
+ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER},
+ #else
+ {"FINAL_CALL_OUT_OF_ORDER", 57, 237},
+ #endif
#ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR
{"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR},
#else
@@ -5020,6 +5272,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INDICATOR_INTEGRITY_FAILURE", 57, 210},
#endif
+ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER
+ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER},
+ #else
+ {"INIT_CALL_OUT_OF_ORDER", 57, 238},
+ #endif
#ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH
{"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH},
#else
@@ -5030,6 +5287,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_AAD", 57, 108},
#endif
+ #ifdef PROV_R_INVALID_AEAD
+ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD},
+ #else
+ {"INVALID_AEAD", 57, 231},
+ #endif
#ifdef PROV_R_INVALID_CONFIG_DATA
{"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA},
#else
@@ -5070,6 +5332,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_DIGEST_SIZE", 57, 218},
#endif
+ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION
+ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION},
+ #else
+ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243},
+ #endif
#ifdef PROV_R_INVALID_INPUT_LENGTH
{"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH},
#else
@@ -5085,6 +5352,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_IV_LENGTH", 57, 109},
#endif
+ #ifdef PROV_R_INVALID_KDF
+ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF},
+ #else
+ {"INVALID_KDF", 57, 232},
+ #endif
#ifdef PROV_R_INVALID_KEY
{"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY},
#else
@@ -5100,6 +5372,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_MAC", 57, 151},
#endif
+ #ifdef PROV_R_INVALID_MEMORY_SIZE
+ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE},
+ #else
+ {"INVALID_MEMORY_SIZE", 57, 235},
+ #endif
#ifdef PROV_R_INVALID_MGF1_MD
{"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD},
#else
@@ -5120,6 +5397,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_PADDING_MODE", 57, 168},
#endif
+ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH
+ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH},
+ #else
+ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241},
+ #endif
#ifdef PROV_R_INVALID_PUBINFO
{"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO},
#else
@@ -5155,6 +5437,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_TAG_LENGTH", 57, 118},
#endif
+ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE
+ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE},
+ #else
+ {"INVALID_THREAD_POOL_SIZE", 57, 234},
+ #endif
#ifdef PROV_R_INVALID_UKM_LENGTH
{"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH},
#else
@@ -5300,6 +5587,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"NOT_XOF_OR_INVALID_LENGTH", 57, 113},
#endif
+ #ifdef PROV_R_NO_INSTANCE_ALLOWED
+ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED},
+ #else
+ {"NO_INSTANCE_ALLOWED", 57, 242},
+ #endif
#ifdef PROV_R_NO_KEY_SET
{"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET},
#else
@@ -5310,6 +5602,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"NO_PARAMETERS_SET", 57, 177},
#endif
+ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER
+ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER},
+ #else
+ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239},
+ #endif
#ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE
{"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE},
#else
@@ -5460,6 +5757,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152},
#endif
+ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER
+ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER},
+ #else
+ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240},
+ #endif
#ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED
{"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED},
#else
@@ -5595,6 +5897,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INTERNAL_ERROR", 36, 113},
#endif
+ #ifdef RAND_R_INVALID_PROPERTY_QUERY
+ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY},
+ #else
+ {"INVALID_PROPERTY_QUERY", 36, 137},
+ #endif
#ifdef RAND_R_IN_ERROR_STATE
{"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE},
#else
@@ -6210,6 +6517,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158},
#endif
+ #ifdef SSL_R_BAD_CERTIFICATE
+ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE},
+ #else
+ {"BAD_CERTIFICATE", 20, 348},
+ #endif
#ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC
{"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC},
#else
@@ -6220,6 +6532,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"BAD_CIPHER", 20, 186},
#endif
+ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM
+ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM},
+ #else
+ {"BAD_COMPRESSION_ALGORITHM", 20, 326},
+ #endif
#ifdef SSL_R_BAD_DATA
{"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA},
#else
@@ -6495,6 +6812,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"CONNECTION_TYPE_NOT_SET", 20, 144},
#endif
+ #ifdef SSL_R_CONN_USE_ONLY
+ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY},
+ #else
+ {"CONN_USE_ONLY", 20, 356},
+ #endif
#ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED
{"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED},
#else
@@ -6635,6 +6957,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"EE_KEY_TOO_SMALL", 20, 399},
#endif
+ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY
+ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY},
+ #else
+ {"EMPTY_RAW_PUBLIC_KEY", 20, 349},
+ #endif
#ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST
{"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST},
#else
@@ -6650,6 +6977,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151},
#endif
+ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG
+ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG},
+ #else
+ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419},
+ #endif
#ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN
{"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN},
#else
@@ -6680,11 +7012,26 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"EXT_LENGTH_MISMATCH", 20, 163},
#endif
+ #ifdef SSL_R_FAILED_TO_GET_PARAMETER
+ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER},
+ #else
+ {"FAILED_TO_GET_PARAMETER", 20, 316},
+ #endif
#ifdef SSL_R_FAILED_TO_INIT_ASYNC
{"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC},
#else
{"FAILED_TO_INIT_ASYNC", 20, 405},
#endif
+ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE
+ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE},
+ #else
+ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417},
+ #endif
+ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE
+ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE},
+ #else
+ {"FEATURE_NOT_RENEGOTIABLE", 20, 413},
+ #endif
#ifdef SSL_R_FRAGMENTED_CLIENT_HELLO
{"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO},
#else
@@ -6805,6 +7152,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"INVALID_NULL_CMD_NAME", 20, 385},
#endif
+ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY
+ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY},
+ #else
+ {"INVALID_RAW_PUBLIC_KEY", 20, 350},
+ #endif
+ #ifdef SSL_R_INVALID_RECORD
+ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD},
+ #else
+ {"INVALID_RECORD", 20, 317},
+ #endif
#ifdef SSL_R_INVALID_SEQUENCE_NUMBER
{"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER},
#else
@@ -6865,6 +7222,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"LIBRARY_HAS_NO_CIPHERS", 20, 161},
#endif
+ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED
+ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED},
+ #else
+ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395},
+ #endif
#ifdef SSL_R_MISSING_DSA_SIGNING_CERT
{"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT},
#else
@@ -6925,6 +7287,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209},
#endif
+ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION
+ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION},
+ #else
+ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420},
+ #endif
#ifdef SSL_R_MISSING_TMP_DH_KEY
{"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY},
#else
@@ -7065,6 +7432,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"NO_SRTP_PROFILES", 20, 359},
#endif
+ #ifdef SSL_R_NO_STREAM
+ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM},
+ #else
+ {"NO_STREAM", 20, 355},
+ #endif
#ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM
{"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM},
#else
@@ -7080,6 +7452,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"NO_SUITABLE_KEY_SHARE", 20, 101},
#endif
+ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER
+ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER},
+ #else
+ {"NO_SUITABLE_RECORD_LAYER", 20, 322},
+ #endif
#ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM
{"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM},
#else
@@ -7160,6 +7537,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"PIPELINE_FAILURE", 20, 406},
#endif
+ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED
+ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED},
+ #else
+ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418},
+ #endif
#ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR
{"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR},
#else
@@ -7190,6 +7572,21 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"PSK_NO_SERVER_CB", 20, 225},
#endif
+ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR
+ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR},
+ #else
+ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393},
+ #endif
+ #ifdef SSL_R_QUIC_NETWORK_ERROR
+ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR},
+ #else
+ {"QUIC_NETWORK_ERROR", 20, 387},
+ #endif
+ #ifdef SSL_R_QUIC_PROTOCOL_ERROR
+ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR},
+ #else
+ {"QUIC_PROTOCOL_ERROR", 20, 382},
+ #endif
#ifdef SSL_R_READ_BIO_NOT_SET
{"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET},
#else
@@ -7200,6 +7597,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"READ_TIMEOUT_EXPIRED", 20, 312},
#endif
+ #ifdef SSL_R_RECORDS_NOT_RELEASED
+ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED},
+ #else
+ {"RECORDS_NOT_RELEASED", 20, 321},
+ #endif
+ #ifdef SSL_R_RECORD_LAYER_FAILURE
+ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE},
+ #else
+ {"RECORD_LAYER_FAILURE", 20, 313},
+ #endif
#ifdef SSL_R_RECORD_LENGTH_MISMATCH
{"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH},
#else
@@ -7210,6 +7617,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"RECORD_TOO_SMALL", 20, 298},
#endif
+ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET
+ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET},
+ #else
+ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346},
+ #endif
#ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
{"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG},
#else
@@ -7255,6 +7667,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"SCT_VERIFICATION_FAILED", 20, 208},
#endif
+ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED
+ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED},
+ #else
+ {"SEQUENCE_CTR_WRAPPED", 20, 327},
+ #endif
#ifdef SSL_R_SERVERHELLO_TLSEXT
{"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT},
#else
@@ -7325,6 +7742,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
#endif
+ #ifdef SSL_R_SSLV3_ALERT_BAD_CERTIFICATE
+ {"SSLV3_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_BAD_CERTIFICATE", 20, 1042},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
+ {"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
+ #else
+ {"SSLV3_ALERT_BAD_RECORD_MAC", 20, 1020},
+ #endif
#ifdef SSL_R_SSLV3_ALERT_BAD_RECORD_MAC
{"SSLV3_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_BAD_RECORD_MAC},
#else
@@ -7335,11 +7762,26 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
#endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED
+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_EXPIRED", 20, 1045},
+ #endif
#ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
{"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
#else
{"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
#endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED
+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_REVOKED", 20, 1044},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
+ #else
+ {"SSLV3_ALERT_CERTIFICATE_UNKNOWN", 20, 1046},
+ #endif
#ifdef SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN
{"SSLV3_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN},
#else
@@ -7350,6 +7792,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
#endif
+ #ifdef SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE
+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE},
+ #else
+ {"SSLV3_ALERT_DECOMPRESSION_FAILURE", 20, 1030},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
+ #else
+ {"SSLV3_ALERT_HANDSHAKE_FAILURE", 20, 1040},
+ #endif
#ifdef SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE
{"SSLV3_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE},
#else
@@ -7360,11 +7812,26 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
#endif
+ #ifdef SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER
+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER},
+ #else
+ {"SSLV3_ALERT_ILLEGAL_PARAMETER", 20, 1047},
+ #endif
#ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
{"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
#else
{"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
#endif
+ #ifdef SSL_R_SSLV3_ALERT_NO_CERTIFICATE
+ {"SSLV3_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_NO_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_NO_CERTIFICATE", 20, 1041},
+ #endif
+ #ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
+ #else
+ {"SSLV3_ALERT_UNEXPECTED_MESSAGE", 20, 1010},
+ #endif
#ifdef SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE
{"SSLV3_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE},
#else
@@ -7375,6 +7842,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
#endif
+ #ifdef SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE
+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE},
+ #else
+ {"SSLV3_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043},
+ #endif
#ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY
{"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY},
#else
@@ -7450,6 +7922,36 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"STILL_IN_INIT", 20, 121},
#endif
+ #ifdef SSL_R_STREAM_COUNT_LIMITED
+ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED},
+ #else
+ {"STREAM_COUNT_LIMITED", 20, 411},
+ #endif
+ #ifdef SSL_R_STREAM_FINISHED
+ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED},
+ #else
+ {"STREAM_FINISHED", 20, 365},
+ #endif
+ #ifdef SSL_R_STREAM_RECV_ONLY
+ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY},
+ #else
+ {"STREAM_RECV_ONLY", 20, 366},
+ #endif
+ #ifdef SSL_R_STREAM_RESET
+ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET},
+ #else
+ {"STREAM_RESET", 20, 375},
+ #endif
+ #ifdef SSL_R_STREAM_SEND_ONLY
+ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY},
+ #else
+ {"STREAM_SEND_ONLY", 20, 379},
+ #endif
+ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
+ #else
+ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116},
+ #endif
#ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED
{"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED},
#else
@@ -7460,6 +7962,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
#endif
+ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION
+ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION},
+ #else
+ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
+ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
+ #else
+ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED
{"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED},
#else
@@ -7470,11 +7982,26 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR
+ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR},
+ #else
+ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
{"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
#else
{"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED
+ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED},
+ #else
+ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
+ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
+ #else
+ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR
{"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR},
#else
@@ -7485,6 +8012,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION
+ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION},
+ #else
+ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
+ #else
+ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK
{"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK},
#else
@@ -7495,11 +8032,36 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY
+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY},
+ #else
+ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
+ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
+ #else
+ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR
{"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR},
#else
{"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL
+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL},
+ #else
+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL
+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL},
+ #else
+ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
+ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
+ #else
+ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION
{"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION},
#else
@@ -7510,6 +8072,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION
+ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION},
+ #else
+ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
+ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
+ #else
+ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW
{"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW},
#else
@@ -7520,11 +8092,36 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA
+ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA},
+ #else
+ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY
+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY},
+ #else
+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115},
+ #endif
+ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY
+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY},
+ #else
+ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115},
+ #endif
#ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
{"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
#else
{"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
#endif
+ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED
+ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED},
+ #else
+ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090},
+ #endif
+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
+ #else
+ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114},
+ #endif
#ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE
{"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE},
#else
@@ -7535,11 +8132,26 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
#endif
+ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE
+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE},
+ #else
+ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113},
+ #endif
#ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
{"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
#else
{"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
#endif
+ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE
+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE},
+ #else
+ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111},
+ #endif
+ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
+ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
+ #else
+ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112},
+ #endif
#ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME
{"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME},
#else
@@ -7550,6 +8162,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
#endif
+ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION
+ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION},
+ #else
+ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110},
+ #endif
#ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL
{"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL},
#else
@@ -7665,6 +8282,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250},
#endif
+ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER
+ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER},
+ #else
+ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323},
+ #endif
#ifdef SSL_R_UNKNOWN_PKEY_TYPE
{"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE},
#else
@@ -7700,6 +8322,21 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257},
#endif
+ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE
+ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE},
+ #else
+ {"UNSUPPORTED_CONFIG_VALUE", 20, 414},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS
+ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS},
+ #else
+ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415},
+ #endif
+ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP
+ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP},
+ #else
+ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416},
+ #endif
#ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE
{"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE},
#else
@@ -7720,6 +8357,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_STATUS_TYPE", 20, 329},
#endif
+ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG
+ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG},
+ #else
+ {"UNSUPPORTED_WRITE_FLAG", 20, 412},
+ #endif
#ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED
{"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED},
#else
@@ -7750,6 +8392,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"WRONG_CURVE", 20, 378},
#endif
+ #ifdef SSL_R_WRONG_RPK_TYPE
+ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE},
+ #else
+ {"WRONG_RPK_TYPE", 20, 351},
+ #endif
#ifdef SSL_R_WRONG_SIGNATURE_LENGTH
{"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH},
#else
@@ -8055,6 +8702,16 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"BAD_OBJECT", 34, 119},
#endif
+ #ifdef X509V3_R_BAD_OPTION
+ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION},
+ #else
+ {"BAD_OPTION", 34, 170},
+ #endif
+ #ifdef X509V3_R_BAD_VALUE
+ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE},
+ #else
+ {"BAD_VALUE", 34, 171},
+ #endif
#ifdef X509V3_R_BN_DEC2BN_ERROR
{"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR},
#else
@@ -8370,6 +9027,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNKNOWN_OPTION", 34, 120},
#endif
+ #ifdef X509V3_R_UNKNOWN_VALUE
+ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE},
+ #else
+ {"UNKNOWN_VALUE", 34, 172},
+ #endif
#ifdef X509V3_R_UNSUPPORTED_OPTION
{"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION},
#else
@@ -8430,6 +9092,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"CRL_VERIFY_FAILURE", 11, 131},
#endif
+ #ifdef X509_R_DUPLICATE_ATTRIBUTE
+ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE},
+ #else
+ {"DUPLICATE_ATTRIBUTE", 11, 140},
+ #endif
#ifdef X509_R_ERROR_GETTING_MD_BY_NID
{"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID},
#else
@@ -8590,6 +9257,11 @@ static struct py_ssl_error_code error_codes[] = {
#else
{"UNSUPPORTED_ALGORITHM", 11, 111},
#endif
+ #ifdef X509_R_UNSUPPORTED_VERSION
+ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION},
+ #else
+ {"UNSUPPORTED_VERSION", 11, 145},
+ #endif
#ifdef X509_R_WRONG_LOOKUP_TYPE
{"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE},
#else
diff --git a/Tools/c-analyzer/cpython/_parser.py b/Tools/c-analyzer/cpython/_parser.py
index 21be53e..a08b32f 100644
--- a/Tools/c-analyzer/cpython/_parser.py
+++ b/Tools/c-analyzer/cpython/_parser.py
@@ -70,9 +70,7 @@ Python/thread_pthread.h
Python/thread_pthread_stubs.h
# only huge constants (safe but parsing is slow)
-Modules/_ssl_data_31.h
-Modules/_ssl_data_300.h
-Modules/_ssl_data_111.h
+Modules/_ssl_data_*.h
Modules/cjkcodecs/mappings_*.h
Modules/unicodedata_db.h
Modules/unicodename_db.h
diff --git a/Tools/ssl/make_ssl_data.py b/Tools/ssl/make_ssl_data.py
index d24e022..da05d2b 100755
--- a/Tools/ssl/make_ssl_data.py
+++ b/Tools/ssl/make_ssl_data.py
@@ -5,9 +5,28 @@ This script should be called *manually* when we want to upgrade SSLError
`library` and `reason` mnemonics to a more recent OpenSSL version.
It takes two arguments:
-- the path to the OpenSSL source tree (e.g. git checkout)
+- the path to the OpenSSL git checkout
- the path to the header file to be generated Modules/_ssl_data_{version}.h
- error codes are version specific
+
+The OpenSSL git checkout should be at a specific tag, using commands like:
+ git tag --list 'openssl-*'
+ git switch --detach openssl-3.4.0
+
+
+After generating the definitions, compare the result with newest pre-existing file.
+You can use a command like:
+
+ git diff --no-index Modules/_ssl_data_31.h Modules/_ssl_data_34.h
+
+- If the new version *only* adds new definitions, remove the pre-existing file
+ and adjust the #include in _ssl.c to point to the new version.
+- If the new version removes or renumbers some definitions, keep both files and
+ add a new #include in _ssl.c.
+
+A newly supported OpenSSL version should also be added to:
+- Tools/ssl/multissltests.py
+- .github/workflows/build.yml
"""
import argparse
@@ -15,6 +34,7 @@ import datetime
import operator
import os
import re
+import subprocess
parser = argparse.ArgumentParser(
@@ -117,9 +137,17 @@ def main():
# sort by libname, numeric error code
args.reasons = sorted(reasons, key=operator.itemgetter(0, 3))
+ git_describe = subprocess.run(
+ ['git', 'describe', '--long', '--dirty'],
+ cwd=args.srcdir,
+ capture_output=True,
+ encoding='utf-8',
+ check=True,
+ )
lines = [
- "/* File generated by Tools/ssl/make_ssl_data.py */"
- f"/* Generated on {datetime.datetime.utcnow().isoformat()} */"
+ "/* File generated by Tools/ssl/make_ssl_data.py */",
+ f"/* Generated on {datetime.datetime.now(datetime.UTC).isoformat()} */",
+ f"/* Generated from Git commit {git_describe.stdout.strip()} */",
]
lines.extend(gen_library_codes(args))
lines.append("")
diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py
index eae0e0c..2cd0c39 100755
--- a/Tools/ssl/multissltests.py
+++ b/Tools/ssl/multissltests.py
@@ -51,6 +51,8 @@ OPENSSL_RECENT_VERSIONS = [
"3.1.7",
"3.2.3",
"3.3.2",
+ "3.4.0",
+ # See make_ssl_data.py for notes on adding a new version.
]
LIBRESSL_OLD_VERSIONS = [