Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/cryptography/hazmat/bindings/openssl/_conditional.py: 55%
86 statements
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-25 06:11 +0000
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-25 06:11 +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_ec2m() -> typing.List[str]:
9 return [
10 "EC_POINT_get_affine_coordinates_GF2m",
11 ]
14def cryptography_has_ssl3_method() -> typing.List[str]:
15 return [
16 "SSLv3_method",
17 "SSLv3_client_method",
18 "SSLv3_server_method",
19 ]
22def cryptography_has_110_verification_params() -> typing.List[str]:
23 return ["X509_CHECK_FLAG_NEVER_CHECK_SUBJECT"]
26def cryptography_has_set_cert_cb() -> typing.List[str]:
27 return [
28 "SSL_CTX_set_cert_cb",
29 "SSL_set_cert_cb",
30 ]
33def cryptography_has_ssl_st() -> typing.List[str]:
34 return [
35 "SSL_ST_BEFORE",
36 "SSL_ST_OK",
37 "SSL_ST_INIT",
38 "SSL_ST_RENEGOTIATE",
39 ]
42def cryptography_has_tls_st() -> typing.List[str]:
43 return [
44 "TLS_ST_BEFORE",
45 "TLS_ST_OK",
46 ]
49def cryptography_has_scrypt() -> typing.List[str]:
50 return [
51 "EVP_PBE_scrypt",
52 ]
55def cryptography_has_evp_pkey_dhx() -> typing.List[str]:
56 return [
57 "EVP_PKEY_DHX",
58 ]
61def cryptography_has_mem_functions() -> typing.List[str]:
62 return [
63 "Cryptography_CRYPTO_set_mem_functions",
64 ]
67def cryptography_has_x509_store_ctx_get_issuer() -> typing.List[str]:
68 return [
69 "X509_STORE_get_get_issuer",
70 "X509_STORE_set_get_issuer",
71 ]
74def cryptography_has_ed448() -> typing.List[str]:
75 return [
76 "EVP_PKEY_ED448",
77 "NID_ED448",
78 ]
81def cryptography_has_ed25519() -> typing.List[str]:
82 return [
83 "NID_ED25519",
84 "EVP_PKEY_ED25519",
85 ]
88def cryptography_has_poly1305() -> typing.List[str]:
89 return [
90 "NID_poly1305",
91 "EVP_PKEY_POLY1305",
92 ]
95def cryptography_has_oneshot_evp_digest_sign_verify() -> typing.List[str]:
96 return [
97 "EVP_DigestSign",
98 "EVP_DigestVerify",
99 ]
102def cryptography_has_evp_digestfinal_xof() -> typing.List[str]:
103 return [
104 "EVP_DigestFinalXOF",
105 ]
108def cryptography_has_evp_pkey_get_set_tls_encodedpoint() -> typing.List[str]:
109 return [
110 "EVP_PKEY_get1_tls_encodedpoint",
111 "EVP_PKEY_set1_tls_encodedpoint",
112 ]
115def cryptography_has_fips() -> typing.List[str]:
116 return [
117 "FIPS_mode_set",
118 "FIPS_mode",
119 ]
122def cryptography_has_ssl_sigalgs() -> typing.List[str]:
123 return [
124 "SSL_CTX_set1_sigalgs_list",
125 ]
128def cryptography_has_psk() -> typing.List[str]:
129 return [
130 "SSL_CTX_use_psk_identity_hint",
131 "SSL_CTX_set_psk_server_callback",
132 "SSL_CTX_set_psk_client_callback",
133 ]
136def cryptography_has_psk_tlsv13() -> typing.List[str]:
137 return [
138 "SSL_CTX_set_psk_find_session_callback",
139 "SSL_CTX_set_psk_use_session_callback",
140 "Cryptography_SSL_SESSION_new",
141 "SSL_CIPHER_find",
142 "SSL_SESSION_set1_master_key",
143 "SSL_SESSION_set_cipher",
144 "SSL_SESSION_set_protocol_version",
145 ]
148def cryptography_has_custom_ext() -> typing.List[str]:
149 return [
150 "SSL_CTX_add_client_custom_ext",
151 "SSL_CTX_add_server_custom_ext",
152 "SSL_extension_supported",
153 ]
156def cryptography_has_openssl_cleanup() -> typing.List[str]:
157 return [
158 "OPENSSL_cleanup",
159 ]
162def cryptography_has_tlsv13() -> typing.List[str]:
163 return [
164 "TLS1_3_VERSION",
165 "SSL_OP_NO_TLSv1_3",
166 ]
169def cryptography_has_tlsv13_functions() -> typing.List[str]:
170 return [
171 "SSL_VERIFY_POST_HANDSHAKE",
172 "SSL_CTX_set_ciphersuites",
173 "SSL_verify_client_post_handshake",
174 "SSL_CTX_set_post_handshake_auth",
175 "SSL_set_post_handshake_auth",
176 "SSL_SESSION_get_max_early_data",
177 "SSL_write_early_data",
178 "SSL_read_early_data",
179 "SSL_CTX_set_max_early_data",
180 ]
183def cryptography_has_keylog() -> typing.List[str]:
184 return [
185 "SSL_CTX_set_keylog_callback",
186 "SSL_CTX_get_keylog_callback",
187 ]
190def cryptography_has_raw_key() -> typing.List[str]:
191 return [
192 "EVP_PKEY_new_raw_private_key",
193 "EVP_PKEY_new_raw_public_key",
194 "EVP_PKEY_get_raw_private_key",
195 "EVP_PKEY_get_raw_public_key",
196 ]
199def cryptography_has_engine() -> typing.List[str]:
200 return [
201 "ENGINE_by_id",
202 "ENGINE_init",
203 "ENGINE_finish",
204 "ENGINE_get_default_RAND",
205 "ENGINE_set_default_RAND",
206 "ENGINE_unregister_RAND",
207 "ENGINE_ctrl_cmd",
208 "ENGINE_free",
209 "ENGINE_get_name",
210 "Cryptography_add_osrandom_engine",
211 "ENGINE_ctrl_cmd_string",
212 "ENGINE_load_builtin_engines",
213 "ENGINE_load_private_key",
214 "ENGINE_load_public_key",
215 "SSL_CTX_set_client_cert_engine",
216 ]
219def cryptography_has_verified_chain() -> typing.List[str]:
220 return [
221 "SSL_get0_verified_chain",
222 ]
225def cryptography_has_srtp() -> typing.List[str]:
226 return [
227 "SSL_CTX_set_tlsext_use_srtp",
228 "SSL_set_tlsext_use_srtp",
229 "SSL_get_selected_srtp_profile",
230 ]
233def cryptography_has_get_proto_version() -> typing.List[str]:
234 return [
235 "SSL_CTX_get_min_proto_version",
236 "SSL_CTX_get_max_proto_version",
237 "SSL_get_min_proto_version",
238 "SSL_get_max_proto_version",
239 ]
242def cryptography_has_providers() -> typing.List[str]:
243 return [
244 "OSSL_PROVIDER_load",
245 "OSSL_PROVIDER_unload",
246 "ERR_LIB_PROV",
247 "PROV_R_WRONG_FINAL_BLOCK_LENGTH",
248 "PROV_R_BAD_DECRYPT",
249 ]
252def cryptography_has_op_no_renegotiation() -> typing.List[str]:
253 return [
254 "SSL_OP_NO_RENEGOTIATION",
255 ]
258def cryptography_has_dtls_get_data_mtu() -> typing.List[str]:
259 return [
260 "DTLS_get_data_mtu",
261 ]
264def cryptography_has_300_fips() -> typing.List[str]:
265 return [
266 "EVP_default_properties_is_fips_enabled",
267 "EVP_default_properties_enable_fips",
268 ]
271def cryptography_has_ssl_cookie() -> typing.List[str]:
272 return [
273 "SSL_OP_COOKIE_EXCHANGE",
274 "DTLSv1_listen",
275 "SSL_CTX_set_cookie_generate_cb",
276 "SSL_CTX_set_cookie_verify_cb",
277 ]
280def cryptography_has_pkcs7_funcs() -> typing.List[str]:
281 return [
282 "SMIME_write_PKCS7",
283 "PEM_write_bio_PKCS7_stream",
284 "PKCS7_sign_add_signer",
285 "PKCS7_final",
286 "PKCS7_verify",
287 "SMIME_read_PKCS7",
288 "PKCS7_get0_signers",
289 ]
292def cryptography_has_bn_flags() -> typing.List[str]:
293 return [
294 "BN_FLG_CONSTTIME",
295 "BN_set_flags",
296 "BN_prime_checks_for_size",
297 ]
300def cryptography_has_evp_pkey_dh() -> typing.List[str]:
301 return [
302 "EVP_PKEY_set1_DH",
303 ]
306def cryptography_has_300_evp_cipher() -> typing.List[str]:
307 return ["EVP_CIPHER_fetch", "EVP_CIPHER_free"]
310def cryptography_has_unexpected_eof_while_reading() -> typing.List[str]:
311 return ["SSL_R_UNEXPECTED_EOF_WHILE_READING"]
314def cryptography_has_pkcs12_set_mac() -> typing.List[str]:
315 return ["PKCS12_set_mac"]
318def cryptography_has_ssl_op_ignore_unexpected_eof() -> typing.List[str]:
319 return [
320 "SSL_OP_IGNORE_UNEXPECTED_EOF",
321 ]
324# This is a mapping of
325# {condition: function-returning-names-dependent-on-that-condition} so we can
326# loop over them and delete unsupported names at runtime. It will be removed
327# when cffi supports #if in cdef. We use functions instead of just a dict of
328# lists so we can use coverage to measure which are used.
329CONDITIONAL_NAMES = {
330 "Cryptography_HAS_EC2M": cryptography_has_ec2m,
331 "Cryptography_HAS_SSL3_METHOD": cryptography_has_ssl3_method,
332 "Cryptography_HAS_110_VERIFICATION_PARAMS": (
333 cryptography_has_110_verification_params
334 ),
335 "Cryptography_HAS_SET_CERT_CB": cryptography_has_set_cert_cb,
336 "Cryptography_HAS_SSL_ST": cryptography_has_ssl_st,
337 "Cryptography_HAS_TLS_ST": cryptography_has_tls_st,
338 "Cryptography_HAS_SCRYPT": cryptography_has_scrypt,
339 "Cryptography_HAS_EVP_PKEY_DHX": cryptography_has_evp_pkey_dhx,
340 "Cryptography_HAS_MEM_FUNCTIONS": cryptography_has_mem_functions,
341 "Cryptography_HAS_X509_STORE_CTX_GET_ISSUER": (
342 cryptography_has_x509_store_ctx_get_issuer
343 ),
344 "Cryptography_HAS_ED448": cryptography_has_ed448,
345 "Cryptography_HAS_ED25519": cryptography_has_ed25519,
346 "Cryptography_HAS_POLY1305": cryptography_has_poly1305,
347 "Cryptography_HAS_ONESHOT_EVP_DIGEST_SIGN_VERIFY": (
348 cryptography_has_oneshot_evp_digest_sign_verify
349 ),
350 "Cryptography_HAS_EVP_PKEY_get_set_tls_encodedpoint": (
351 cryptography_has_evp_pkey_get_set_tls_encodedpoint
352 ),
353 "Cryptography_HAS_FIPS": cryptography_has_fips,
354 "Cryptography_HAS_SIGALGS": cryptography_has_ssl_sigalgs,
355 "Cryptography_HAS_PSK": cryptography_has_psk,
356 "Cryptography_HAS_PSK_TLSv1_3": cryptography_has_psk_tlsv13,
357 "Cryptography_HAS_CUSTOM_EXT": cryptography_has_custom_ext,
358 "Cryptography_HAS_OPENSSL_CLEANUP": cryptography_has_openssl_cleanup,
359 "Cryptography_HAS_TLSv1_3": cryptography_has_tlsv13,
360 "Cryptography_HAS_TLSv1_3_FUNCTIONS": cryptography_has_tlsv13_functions,
361 "Cryptography_HAS_KEYLOG": cryptography_has_keylog,
362 "Cryptography_HAS_RAW_KEY": cryptography_has_raw_key,
363 "Cryptography_HAS_EVP_DIGESTFINAL_XOF": (
364 cryptography_has_evp_digestfinal_xof
365 ),
366 "Cryptography_HAS_ENGINE": cryptography_has_engine,
367 "Cryptography_HAS_VERIFIED_CHAIN": cryptography_has_verified_chain,
368 "Cryptography_HAS_SRTP": cryptography_has_srtp,
369 "Cryptography_HAS_GET_PROTO_VERSION": cryptography_has_get_proto_version,
370 "Cryptography_HAS_PROVIDERS": cryptography_has_providers,
371 "Cryptography_HAS_OP_NO_RENEGOTIATION": (
372 cryptography_has_op_no_renegotiation
373 ),
374 "Cryptography_HAS_DTLS_GET_DATA_MTU": cryptography_has_dtls_get_data_mtu,
375 "Cryptography_HAS_300_FIPS": cryptography_has_300_fips,
376 "Cryptography_HAS_SSL_COOKIE": cryptography_has_ssl_cookie,
377 "Cryptography_HAS_PKCS7_FUNCS": cryptography_has_pkcs7_funcs,
378 "Cryptography_HAS_BN_FLAGS": cryptography_has_bn_flags,
379 "Cryptography_HAS_EVP_PKEY_DH": cryptography_has_evp_pkey_dh,
380 "Cryptography_HAS_300_EVP_CIPHER": cryptography_has_300_evp_cipher,
381 "Cryptography_HAS_UNEXPECTED_EOF_WHILE_READING": (
382 cryptography_has_unexpected_eof_while_reading
383 ),
384 "Cryptography_HAS_PKCS12_SET_MAC": cryptography_has_pkcs12_set_mac,
385 "Cryptography_HAS_SSL_OP_IGNORE_UNEXPECTED_EOF": (
386 cryptography_has_ssl_op_ignore_unexpected_eof
387 ),
388}