|
6 | 6 |
|
7 | 7 | from astroid import parse
|
8 | 8 | from astroid.brain.helpers import register_module_extender
|
| 9 | +from astroid.const import PY38_PLUS, PY310_PLUS |
9 | 10 | from astroid.manager import AstroidManager
|
10 | 11 |
|
11 | 12 |
|
| 13 | +def _verifyflags_enum() -> str: |
| 14 | + enum = """ |
| 15 | + class VerifyFlags(_IntFlag): |
| 16 | + VERIFY_DEFAULT = 0 |
| 17 | + VERIFY_CRL_CHECK_LEAF = 1 |
| 18 | + VERIFY_CRL_CHECK_CHAIN = 2 |
| 19 | + VERIFY_X509_STRICT = 3 |
| 20 | + VERIFY_X509_TRUSTED_FIRST = 4""" |
| 21 | + if PY310_PLUS: |
| 22 | + enum += """ |
| 23 | + VERIFY_ALLOW_PROXY_CERTS = 5 |
| 24 | + VERIFY_X509_PARTIAL_CHAIN = 6 |
| 25 | + """ |
| 26 | + return enum |
| 27 | + |
| 28 | + |
| 29 | +def _options_enum() -> str: |
| 30 | + enum = """ |
| 31 | + class Options(_IntFlag): |
| 32 | + OP_ALL = 1 |
| 33 | + OP_NO_SSLv2 = 2 |
| 34 | + OP_NO_SSLv3 = 3 |
| 35 | + OP_NO_TLSv1 = 4 |
| 36 | + OP_NO_TLSv1_1 = 5 |
| 37 | + OP_NO_TLSv1_2 = 6 |
| 38 | + OP_NO_TLSv1_3 = 7 |
| 39 | + OP_CIPHER_SERVER_PREFERENCE = 8 |
| 40 | + OP_SINGLE_DH_USE = 9 |
| 41 | + OP_SINGLE_ECDH_USE = 10 |
| 42 | + OP_NO_COMPRESSION = 11 |
| 43 | + OP_NO_TICKET = 12 |
| 44 | + OP_NO_RENEGOTIATION = 13""" |
| 45 | + if PY38_PLUS: |
| 46 | + enum += """ |
| 47 | + OP_ENABLE_MIDDLEBOX_COMPAT = 14""" |
| 48 | + return enum |
| 49 | + |
| 50 | + |
12 | 51 | def ssl_transform():
|
13 | 52 | return parse(
|
14 | 53 | """
|
| 54 | + # Import necessary for conversion of objects defined in C into enums |
| 55 | + from enum import IntEnum as _IntEnum, IntFlag as _IntFlag |
| 56 | +
|
15 | 57 | from _ssl import OPENSSL_VERSION_NUMBER, OPENSSL_VERSION_INFO, OPENSSL_VERSION
|
16 | 58 | from _ssl import _SSLContext, MemoryBIO
|
17 | 59 | from _ssl import (
|
@@ -64,7 +106,54 @@ def ssl_transform():
|
64 | 106 | from _ssl import _OPENSSL_API_VERSION
|
65 | 107 | from _ssl import PROTOCOL_SSLv23, PROTOCOL_TLSv1, PROTOCOL_TLSv1_1, PROTOCOL_TLSv1_2
|
66 | 108 | from _ssl import PROTOCOL_TLS, PROTOCOL_TLS_CLIENT, PROTOCOL_TLS_SERVER
|
| 109 | +
|
| 110 | + class AlertDescription(_IntEnum): |
| 111 | + ALERT_DESCRIPTION_ACCESS_DENIED = 0 |
| 112 | + ALERT_DESCRIPTION_BAD_CERTIFICATE = 1 |
| 113 | + ALERT_DESCRIPTION_BAD_CERTIFICATE_HASH_VALUE = 2 |
| 114 | + ALERT_DESCRIPTION_BAD_CERTIFICATE_STATUS_RESPONSE = 3 |
| 115 | + ALERT_DESCRIPTION_BAD_RECORD_MAC = 4 |
| 116 | + ALERT_DESCRIPTION_CERTIFICATE_EXPIRED = 5 |
| 117 | + ALERT_DESCRIPTION_CERTIFICATE_REVOKED = 6 |
| 118 | + ALERT_DESCRIPTION_CERTIFICATE_UNKNOWN = 7 |
| 119 | + ALERT_DESCRIPTION_CERTIFICATE_UNOBTAINABLE = 8 |
| 120 | + ALERT_DESCRIPTION_CLOSE_NOTIFY = 9 |
| 121 | + ALERT_DESCRIPTION_DECODE_ERROR = 10 |
| 122 | + ALERT_DESCRIPTION_DECOMPRESSION_FAILURE = 11 |
| 123 | + ALERT_DESCRIPTION_DECRYPT_ERROR = 12 |
| 124 | + ALERT_DESCRIPTION_HANDSHAKE_FAILURE = 13 |
| 125 | + ALERT_DESCRIPTION_ILLEGAL_PARAMETER = 14 |
| 126 | + ALERT_DESCRIPTION_INSUFFICIENT_SECURITY = 15 |
| 127 | + ALERT_DESCRIPTION_INTERNAL_ERROR = 16 |
| 128 | + ALERT_DESCRIPTION_NO_RENEGOTIATION = 17 |
| 129 | + ALERT_DESCRIPTION_PROTOCOL_VERSION = 18 |
| 130 | + ALERT_DESCRIPTION_RECORD_OVERFLOW = 19 |
| 131 | + ALERT_DESCRIPTION_UNEXPECTED_MESSAGE = 20 |
| 132 | + ALERT_DESCRIPTION_UNKNOWN_CA = 21 |
| 133 | + ALERT_DESCRIPTION_UNKNOWN_PSK_IDENTITY = 22 |
| 134 | + ALERT_DESCRIPTION_UNRECOGNIZED_NAME = 23 |
| 135 | + ALERT_DESCRIPTION_UNSUPPORTED_CERTIFICATE = 24 |
| 136 | + ALERT_DESCRIPTION_UNSUPPORTED_EXTENSION = 25 |
| 137 | + ALERT_DESCRIPTION_USER_CANCELLED = 26 |
| 138 | +
|
| 139 | + class SSLErrorNumber(_IntEnum): |
| 140 | + SSL_ERROR_EOF = 0 |
| 141 | + SSL_ERROR_INVALID_ERROR_CODE = 1 |
| 142 | + SSL_ERROR_SSL = 2 |
| 143 | + SSL_ERROR_SYSCALL = 3 |
| 144 | + SSL_ERROR_WANT_CONNECT = 4 |
| 145 | + SSL_ERROR_WANT_READ = 5 |
| 146 | + SSL_ERROR_WANT_WRITE = 6 |
| 147 | + SSL_ERROR_WANT_X509_LOOKUP = 7 |
| 148 | + SSL_ERROR_ZERO_RETURN = 8 |
| 149 | +
|
| 150 | + class VerifyMode(_IntEnum): |
| 151 | + CERT_NONE = 0 |
| 152 | + CERT_OPTIONAL = 1 |
| 153 | + CERT_REQUIRED = 2 |
67 | 154 | """
|
| 155 | + + _verifyflags_enum() |
| 156 | + + _options_enum() |
68 | 157 | )
|
69 | 158 |
|
70 | 159 |
|
|
0 commit comments