Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py: 54%
74 statements
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:36 +0000
« prev ^ index » next coverage.py v7.2.2, created at 2023-03-26 06:36 +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.
5import typing
8def cryptography_has_set_cert_cb() -> typing.List[str]:
9 return [
10 "SSL_CTX_set_cert_cb",
11 "SSL_set_cert_cb",
12 ]
15def cryptography_has_ssl_st() -> typing.List[str]:
16 return [
17 "SSL_ST_BEFORE",
18 "SSL_ST_OK",
19 "SSL_ST_INIT",
20 "SSL_ST_RENEGOTIATE",
21 ]
24def cryptography_has_tls_st() -> typing.List[str]:
25 return [
26 "TLS_ST_BEFORE",
27 "TLS_ST_OK",
28 ]
31def cryptography_has_scrypt() -> typing.List[str]:
32 return [
33 "EVP_PBE_scrypt",
34 ]
37def cryptography_has_evp_pkey_dhx() -> typing.List[str]:
38 return [
39 "EVP_PKEY_DHX",
40 "d2i_DHxparams_bio",
41 "i2d_DHxparams_bio",
42 ]
45def cryptography_has_mem_functions() -> typing.List[str]:
46 return [
47 "Cryptography_CRYPTO_set_mem_functions",
48 ]
51def cryptography_has_x509_store_ctx_get_issuer() -> typing.List[str]:
52 return [
53 "X509_STORE_set_get_issuer",
54 ]
57def cryptography_has_ed448() -> typing.List[str]:
58 return [
59 "EVP_PKEY_ED448",
60 "NID_ED448",
61 ]
64def cryptography_has_ed25519() -> typing.List[str]:
65 return [
66 "NID_ED25519",
67 "EVP_PKEY_ED25519",
68 ]
71def cryptography_has_poly1305() -> typing.List[str]:
72 return [
73 "NID_poly1305",
74 "EVP_PKEY_POLY1305",
75 ]
78def cryptography_has_evp_digestfinal_xof() -> typing.List[str]:
79 return [
80 "EVP_DigestFinalXOF",
81 ]
84def cryptography_has_fips() -> typing.List[str]:
85 return [
86 "FIPS_mode_set",
87 "FIPS_mode",
88 ]
91def cryptography_has_ssl_sigalgs() -> typing.List[str]:
92 return [
93 "SSL_CTX_set1_sigalgs_list",
94 ]
97def cryptography_has_psk() -> typing.List[str]:
98 return [
99 "SSL_CTX_use_psk_identity_hint",
100 "SSL_CTX_set_psk_server_callback",
101 "SSL_CTX_set_psk_client_callback",
102 ]
105def cryptography_has_psk_tlsv13() -> typing.List[str]:
106 return [
107 "SSL_CTX_set_psk_find_session_callback",
108 "SSL_CTX_set_psk_use_session_callback",
109 "Cryptography_SSL_SESSION_new",
110 "SSL_CIPHER_find",
111 "SSL_SESSION_set1_master_key",
112 "SSL_SESSION_set_cipher",
113 "SSL_SESSION_set_protocol_version",
114 ]
117def cryptography_has_custom_ext() -> typing.List[str]:
118 return [
119 "SSL_CTX_add_client_custom_ext",
120 "SSL_CTX_add_server_custom_ext",
121 "SSL_extension_supported",
122 ]
125def cryptography_has_openssl_cleanup() -> typing.List[str]:
126 return [
127 "OPENSSL_cleanup",
128 ]
131def cryptography_has_tlsv13_functions() -> typing.List[str]:
132 return [
133 "SSL_VERIFY_POST_HANDSHAKE",
134 "SSL_CTX_set_ciphersuites",
135 "SSL_verify_client_post_handshake",
136 "SSL_CTX_set_post_handshake_auth",
137 "SSL_set_post_handshake_auth",
138 "SSL_SESSION_get_max_early_data",
139 "SSL_write_early_data",
140 "SSL_read_early_data",
141 "SSL_CTX_set_max_early_data",
142 ]
145def cryptography_has_raw_key() -> typing.List[str]:
146 return [
147 "EVP_PKEY_new_raw_private_key",
148 "EVP_PKEY_new_raw_public_key",
149 "EVP_PKEY_get_raw_private_key",
150 "EVP_PKEY_get_raw_public_key",
151 ]
154def cryptography_has_engine() -> typing.List[str]:
155 return [
156 "ENGINE_by_id",
157 "ENGINE_init",
158 "ENGINE_finish",
159 "ENGINE_get_default_RAND",
160 "ENGINE_set_default_RAND",
161 "ENGINE_unregister_RAND",
162 "ENGINE_ctrl_cmd",
163 "ENGINE_free",
164 "ENGINE_get_name",
165 "Cryptography_add_osrandom_engine",
166 "ENGINE_ctrl_cmd_string",
167 "ENGINE_load_builtin_engines",
168 "ENGINE_load_private_key",
169 "ENGINE_load_public_key",
170 "SSL_CTX_set_client_cert_engine",
171 ]
174def cryptography_has_verified_chain() -> typing.List[str]:
175 return [
176 "SSL_get0_verified_chain",
177 ]
180def cryptography_has_srtp() -> typing.List[str]:
181 return [
182 "SSL_CTX_set_tlsext_use_srtp",
183 "SSL_set_tlsext_use_srtp",
184 "SSL_get_selected_srtp_profile",
185 ]
188def cryptography_has_providers() -> typing.List[str]:
189 return [
190 "OSSL_PROVIDER_load",
191 "OSSL_PROVIDER_unload",
192 "ERR_LIB_PROV",
193 "PROV_R_WRONG_FINAL_BLOCK_LENGTH",
194 "PROV_R_BAD_DECRYPT",
195 ]
198def cryptography_has_op_no_renegotiation() -> typing.List[str]:
199 return [
200 "SSL_OP_NO_RENEGOTIATION",
201 ]
204def cryptography_has_dtls_get_data_mtu() -> typing.List[str]:
205 return [
206 "DTLS_get_data_mtu",
207 ]
210def cryptography_has_300_fips() -> typing.List[str]:
211 return [
212 "EVP_default_properties_is_fips_enabled",
213 "EVP_default_properties_enable_fips",
214 ]
217def cryptography_has_ssl_cookie() -> typing.List[str]:
218 return [
219 "SSL_OP_COOKIE_EXCHANGE",
220 "DTLSv1_listen",
221 "SSL_CTX_set_cookie_generate_cb",
222 "SSL_CTX_set_cookie_verify_cb",
223 ]
226def cryptography_has_pkcs7_funcs() -> typing.List[str]:
227 return [
228 "SMIME_write_PKCS7",
229 "PEM_write_bio_PKCS7_stream",
230 "PKCS7_sign_add_signer",
231 "PKCS7_final",
232 "PKCS7_verify",
233 "SMIME_read_PKCS7",
234 "PKCS7_get0_signers",
235 ]
238def cryptography_has_bn_flags() -> typing.List[str]:
239 return [
240 "BN_FLG_CONSTTIME",
241 "BN_set_flags",
242 "BN_prime_checks_for_size",
243 ]
246def cryptography_has_evp_pkey_dh() -> typing.List[str]:
247 return [
248 "EVP_PKEY_set1_DH",
249 ]
252def cryptography_has_300_evp_cipher() -> typing.List[str]:
253 return ["EVP_CIPHER_fetch", "EVP_CIPHER_free"]
256def cryptography_has_unexpected_eof_while_reading() -> typing.List[str]:
257 return ["SSL_R_UNEXPECTED_EOF_WHILE_READING"]
260def cryptography_has_pkcs12_set_mac() -> typing.List[str]:
261 return ["PKCS12_set_mac"]
264def cryptography_has_ssl_op_ignore_unexpected_eof() -> typing.List[str]:
265 return [
266 "SSL_OP_IGNORE_UNEXPECTED_EOF",
267 ]
270def cryptography_has_get_extms_support() -> typing.List[str]:
271 return ["SSL_get_extms_support"]
274def cryptography_has_evp_pkey_set_peer_ex() -> typing.List[str]:
275 return ["EVP_PKEY_derive_set_peer_ex"]
278# This is a mapping of
279# {condition: function-returning-names-dependent-on-that-condition} so we can
280# loop over them and delete unsupported names at runtime. It will be removed
281# when cffi supports #if in cdef. We use functions instead of just a dict of
282# lists so we can use coverage to measure which are used.
283CONDITIONAL_NAMES = {
284 "Cryptography_HAS_SET_CERT_CB": cryptography_has_set_cert_cb,
285 "Cryptography_HAS_SSL_ST": cryptography_has_ssl_st,
286 "Cryptography_HAS_TLS_ST": cryptography_has_tls_st,
287 "Cryptography_HAS_SCRYPT": cryptography_has_scrypt,
288 "Cryptography_HAS_EVP_PKEY_DHX": cryptography_has_evp_pkey_dhx,
289 "Cryptography_HAS_MEM_FUNCTIONS": cryptography_has_mem_functions,
290 "Cryptography_HAS_X509_STORE_CTX_GET_ISSUER": (
291 cryptography_has_x509_store_ctx_get_issuer
292 ),
293 "Cryptography_HAS_ED448": cryptography_has_ed448,
294 "Cryptography_HAS_ED25519": cryptography_has_ed25519,
295 "Cryptography_HAS_POLY1305": cryptography_has_poly1305,
296 "Cryptography_HAS_FIPS": cryptography_has_fips,
297 "Cryptography_HAS_SIGALGS": cryptography_has_ssl_sigalgs,
298 "Cryptography_HAS_PSK": cryptography_has_psk,
299 "Cryptography_HAS_PSK_TLSv1_3": cryptography_has_psk_tlsv13,
300 "Cryptography_HAS_CUSTOM_EXT": cryptography_has_custom_ext,
301 "Cryptography_HAS_OPENSSL_CLEANUP": cryptography_has_openssl_cleanup,
302 "Cryptography_HAS_TLSv1_3_FUNCTIONS": cryptography_has_tlsv13_functions,
303 "Cryptography_HAS_RAW_KEY": cryptography_has_raw_key,
304 "Cryptography_HAS_EVP_DIGESTFINAL_XOF": (
305 cryptography_has_evp_digestfinal_xof
306 ),
307 "Cryptography_HAS_ENGINE": cryptography_has_engine,
308 "Cryptography_HAS_VERIFIED_CHAIN": cryptography_has_verified_chain,
309 "Cryptography_HAS_SRTP": cryptography_has_srtp,
310 "Cryptography_HAS_PROVIDERS": cryptography_has_providers,
311 "Cryptography_HAS_OP_NO_RENEGOTIATION": (
312 cryptography_has_op_no_renegotiation
313 ),
314 "Cryptography_HAS_DTLS_GET_DATA_MTU": cryptography_has_dtls_get_data_mtu,
315 "Cryptography_HAS_300_FIPS": cryptography_has_300_fips,
316 "Cryptography_HAS_SSL_COOKIE": cryptography_has_ssl_cookie,
317 "Cryptography_HAS_PKCS7_FUNCS": cryptography_has_pkcs7_funcs,
318 "Cryptography_HAS_BN_FLAGS": cryptography_has_bn_flags,
319 "Cryptography_HAS_EVP_PKEY_DH": cryptography_has_evp_pkey_dh,
320 "Cryptography_HAS_300_EVP_CIPHER": cryptography_has_300_evp_cipher,
321 "Cryptography_HAS_UNEXPECTED_EOF_WHILE_READING": (
322 cryptography_has_unexpected_eof_while_reading
323 ),
324 "Cryptography_HAS_PKCS12_SET_MAC": cryptography_has_pkcs12_set_mac,
325 "Cryptography_HAS_SSL_OP_IGNORE_UNEXPECTED_EOF": (
326 cryptography_has_ssl_op_ignore_unexpected_eof
327 ),
328 "Cryptography_HAS_GET_EXTMS_SUPPORT": cryptography_has_get_extms_support,
329 "Cryptography_HAS_EVP_PKEY_SET_PEER_EX": (
330 cryptography_has_evp_pkey_set_peer_ex
331 ),
332}