Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py: 56%
73 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:50 +0000
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-07 06:50 +0000
1# This file is dual licensed under the terms of the Apache License, Version
2# 2.0, and the BSD License. See the LICENSE file in the root of this repository
3# for complete details.
5from __future__ import annotations
7import typing
10def cryptography_has_set_cert_cb() -> typing.List[str]:
11 return [
12 "SSL_CTX_set_cert_cb",
13 "SSL_set_cert_cb",
14 ]
17def cryptography_has_ssl_st() -> typing.List[str]:
18 return [
19 "SSL_ST_BEFORE",
20 "SSL_ST_OK",
21 "SSL_ST_INIT",
22 "SSL_ST_RENEGOTIATE",
23 ]
26def cryptography_has_tls_st() -> typing.List[str]:
27 return [
28 "TLS_ST_BEFORE",
29 "TLS_ST_OK",
30 ]
33def cryptography_has_evp_pkey_dhx() -> typing.List[str]:
34 return [
35 "EVP_PKEY_DHX",
36 ]
39def cryptography_has_mem_functions() -> typing.List[str]:
40 return [
41 "Cryptography_CRYPTO_set_mem_functions",
42 ]
45def cryptography_has_x509_store_ctx_get_issuer() -> typing.List[str]:
46 return [
47 "X509_STORE_set_get_issuer",
48 ]
51def cryptography_has_ed448() -> typing.List[str]:
52 return [
53 "EVP_PKEY_ED448",
54 "NID_ED448",
55 ]
58def cryptography_has_ed25519() -> typing.List[str]:
59 return [
60 "NID_ED25519",
61 "EVP_PKEY_ED25519",
62 ]
65def cryptography_has_poly1305() -> typing.List[str]:
66 return [
67 "NID_poly1305",
68 "EVP_PKEY_POLY1305",
69 ]
72def cryptography_has_evp_digestfinal_xof() -> typing.List[str]:
73 return [
74 "EVP_DigestFinalXOF",
75 ]
78def cryptography_has_fips() -> typing.List[str]:
79 return [
80 "FIPS_mode_set",
81 "FIPS_mode",
82 ]
85def cryptography_has_ssl_sigalgs() -> typing.List[str]:
86 return [
87 "SSL_CTX_set1_sigalgs_list",
88 ]
91def cryptography_has_psk() -> typing.List[str]:
92 return [
93 "SSL_CTX_use_psk_identity_hint",
94 "SSL_CTX_set_psk_server_callback",
95 "SSL_CTX_set_psk_client_callback",
96 ]
99def cryptography_has_psk_tlsv13() -> typing.List[str]:
100 return [
101 "SSL_CTX_set_psk_find_session_callback",
102 "SSL_CTX_set_psk_use_session_callback",
103 "Cryptography_SSL_SESSION_new",
104 "SSL_CIPHER_find",
105 "SSL_SESSION_set1_master_key",
106 "SSL_SESSION_set_cipher",
107 "SSL_SESSION_set_protocol_version",
108 ]
111def cryptography_has_custom_ext() -> typing.List[str]:
112 return [
113 "SSL_CTX_add_client_custom_ext",
114 "SSL_CTX_add_server_custom_ext",
115 "SSL_extension_supported",
116 ]
119def cryptography_has_tlsv13_functions() -> typing.List[str]:
120 return [
121 "SSL_VERIFY_POST_HANDSHAKE",
122 "SSL_CTX_set_ciphersuites",
123 "SSL_verify_client_post_handshake",
124 "SSL_CTX_set_post_handshake_auth",
125 "SSL_set_post_handshake_auth",
126 "SSL_SESSION_get_max_early_data",
127 "SSL_write_early_data",
128 "SSL_read_early_data",
129 "SSL_CTX_set_max_early_data",
130 ]
133def cryptography_has_raw_key() -> typing.List[str]:
134 return [
135 "EVP_PKEY_new_raw_private_key",
136 "EVP_PKEY_new_raw_public_key",
137 "EVP_PKEY_get_raw_private_key",
138 "EVP_PKEY_get_raw_public_key",
139 ]
142def cryptography_has_engine() -> typing.List[str]:
143 return [
144 "ENGINE_by_id",
145 "ENGINE_init",
146 "ENGINE_finish",
147 "ENGINE_get_default_RAND",
148 "ENGINE_set_default_RAND",
149 "ENGINE_unregister_RAND",
150 "ENGINE_ctrl_cmd",
151 "ENGINE_free",
152 "ENGINE_get_name",
153 "ENGINE_ctrl_cmd_string",
154 "ENGINE_load_builtin_engines",
155 "ENGINE_load_private_key",
156 "ENGINE_load_public_key",
157 "SSL_CTX_set_client_cert_engine",
158 ]
161def cryptography_has_verified_chain() -> typing.List[str]:
162 return [
163 "SSL_get0_verified_chain",
164 ]
167def cryptography_has_srtp() -> typing.List[str]:
168 return [
169 "SSL_CTX_set_tlsext_use_srtp",
170 "SSL_set_tlsext_use_srtp",
171 "SSL_get_selected_srtp_profile",
172 ]
175def cryptography_has_providers() -> typing.List[str]:
176 return [
177 "OSSL_PROVIDER_load",
178 "OSSL_PROVIDER_unload",
179 "ERR_LIB_PROV",
180 "PROV_R_WRONG_FINAL_BLOCK_LENGTH",
181 "PROV_R_BAD_DECRYPT",
182 ]
185def cryptography_has_op_no_renegotiation() -> typing.List[str]:
186 return [
187 "SSL_OP_NO_RENEGOTIATION",
188 ]
191def cryptography_has_dtls_get_data_mtu() -> typing.List[str]:
192 return [
193 "DTLS_get_data_mtu",
194 ]
197def cryptography_has_300_fips() -> typing.List[str]:
198 return [
199 "EVP_default_properties_is_fips_enabled",
200 "EVP_default_properties_enable_fips",
201 ]
204def cryptography_has_ssl_cookie() -> typing.List[str]:
205 return [
206 "SSL_OP_COOKIE_EXCHANGE",
207 "DTLSv1_listen",
208 "SSL_CTX_set_cookie_generate_cb",
209 "SSL_CTX_set_cookie_verify_cb",
210 ]
213def cryptography_has_pkcs7_funcs() -> typing.List[str]:
214 return [
215 "SMIME_write_PKCS7",
216 "PEM_write_bio_PKCS7_stream",
217 "PKCS7_sign_add_signer",
218 "PKCS7_final",
219 "PKCS7_verify",
220 "SMIME_read_PKCS7",
221 "PKCS7_get0_signers",
222 ]
225def cryptography_has_bn_flags() -> typing.List[str]:
226 return [
227 "BN_FLG_CONSTTIME",
228 "BN_set_flags",
229 "BN_prime_checks_for_size",
230 ]
233def cryptography_has_evp_pkey_dh() -> typing.List[str]:
234 return [
235 "EVP_PKEY_set1_DH",
236 ]
239def cryptography_has_300_evp_cipher() -> typing.List[str]:
240 return ["EVP_CIPHER_fetch", "EVP_CIPHER_free"]
243def cryptography_has_unexpected_eof_while_reading() -> typing.List[str]:
244 return ["SSL_R_UNEXPECTED_EOF_WHILE_READING"]
247def cryptography_has_pkcs12_set_mac() -> typing.List[str]:
248 return ["PKCS12_set_mac"]
251def cryptography_has_ssl_op_ignore_unexpected_eof() -> typing.List[str]:
252 return [
253 "SSL_OP_IGNORE_UNEXPECTED_EOF",
254 ]
257def cryptography_has_get_extms_support() -> typing.List[str]:
258 return ["SSL_get_extms_support"]
261def cryptography_has_evp_pkey_set_peer_ex() -> typing.List[str]:
262 return ["EVP_PKEY_derive_set_peer_ex"]
265def cryptography_has_evp_aead() -> typing.List[str]:
266 return [
267 "EVP_aead_chacha20_poly1305",
268 "EVP_AEAD_CTX_free",
269 "EVP_AEAD_CTX_seal",
270 "EVP_AEAD_CTX_open",
271 "EVP_AEAD_max_overhead",
272 "Cryptography_EVP_AEAD_CTX_new",
273 ]
276# This is a mapping of
277# {condition: function-returning-names-dependent-on-that-condition} so we can
278# loop over them and delete unsupported names at runtime. It will be removed
279# when cffi supports #if in cdef. We use functions instead of just a dict of
280# lists so we can use coverage to measure which are used.
281CONDITIONAL_NAMES = {
282 "Cryptography_HAS_SET_CERT_CB": cryptography_has_set_cert_cb,
283 "Cryptography_HAS_SSL_ST": cryptography_has_ssl_st,
284 "Cryptography_HAS_TLS_ST": cryptography_has_tls_st,
285 "Cryptography_HAS_EVP_PKEY_DHX": cryptography_has_evp_pkey_dhx,
286 "Cryptography_HAS_MEM_FUNCTIONS": cryptography_has_mem_functions,
287 "Cryptography_HAS_X509_STORE_CTX_GET_ISSUER": (
288 cryptography_has_x509_store_ctx_get_issuer
289 ),
290 "Cryptography_HAS_ED448": cryptography_has_ed448,
291 "Cryptography_HAS_ED25519": cryptography_has_ed25519,
292 "Cryptography_HAS_POLY1305": cryptography_has_poly1305,
293 "Cryptography_HAS_FIPS": cryptography_has_fips,
294 "Cryptography_HAS_SIGALGS": cryptography_has_ssl_sigalgs,
295 "Cryptography_HAS_PSK": cryptography_has_psk,
296 "Cryptography_HAS_PSK_TLSv1_3": cryptography_has_psk_tlsv13,
297 "Cryptography_HAS_CUSTOM_EXT": cryptography_has_custom_ext,
298 "Cryptography_HAS_TLSv1_3_FUNCTIONS": cryptography_has_tlsv13_functions,
299 "Cryptography_HAS_RAW_KEY": cryptography_has_raw_key,
300 "Cryptography_HAS_EVP_DIGESTFINAL_XOF": (
301 cryptography_has_evp_digestfinal_xof
302 ),
303 "Cryptography_HAS_ENGINE": cryptography_has_engine,
304 "Cryptography_HAS_VERIFIED_CHAIN": cryptography_has_verified_chain,
305 "Cryptography_HAS_SRTP": cryptography_has_srtp,
306 "Cryptography_HAS_PROVIDERS": cryptography_has_providers,
307 "Cryptography_HAS_OP_NO_RENEGOTIATION": (
308 cryptography_has_op_no_renegotiation
309 ),
310 "Cryptography_HAS_DTLS_GET_DATA_MTU": cryptography_has_dtls_get_data_mtu,
311 "Cryptography_HAS_300_FIPS": cryptography_has_300_fips,
312 "Cryptography_HAS_SSL_COOKIE": cryptography_has_ssl_cookie,
313 "Cryptography_HAS_PKCS7_FUNCS": cryptography_has_pkcs7_funcs,
314 "Cryptography_HAS_BN_FLAGS": cryptography_has_bn_flags,
315 "Cryptography_HAS_EVP_PKEY_DH": cryptography_has_evp_pkey_dh,
316 "Cryptography_HAS_300_EVP_CIPHER": cryptography_has_300_evp_cipher,
317 "Cryptography_HAS_UNEXPECTED_EOF_WHILE_READING": (
318 cryptography_has_unexpected_eof_while_reading
319 ),
320 "Cryptography_HAS_PKCS12_SET_MAC": cryptography_has_pkcs12_set_mac,
321 "Cryptography_HAS_SSL_OP_IGNORE_UNEXPECTED_EOF": (
322 cryptography_has_ssl_op_ignore_unexpected_eof
323 ),
324 "Cryptography_HAS_GET_EXTMS_SUPPORT": cryptography_has_get_extms_support,
325 "Cryptography_HAS_EVP_PKEY_SET_PEER_EX": (
326 cryptography_has_evp_pkey_set_peer_ex
327 ),
328 "Cryptography_HAS_EVP_AEAD": (cryptography_has_evp_aead),
329}