|
Name |
|
Date |
Size |
#Lines |
LOC |
| .. | | 20-Nov-2024 | - |
| certs/ | H | 13-Nov-2024 | - | | |
| ct/ | H | 04-Aug-2021 | - | | |
| d2i-tests/ | H | 24-Feb-2020 | - | | |
| helpers/ | H | 05-Sep-2024 | - | | |
| ocsp-tests/ | H | 19-Jun-2024 | - | | |
| quic-openssl-docker/ | H | 04-Oct-2024 | - | | |
| recipes/ | H | 13-Nov-2024 | - | | |
| smime-certs/ | H | 19-Jun-2024 | - | | |
| smime-eml/ | H | 19-Jun-2024 | - | | |
| ssl-tests/ | H | 05-Sep-2024 | - | | |
| testutil/ | H | 05-Sep-2024 | - | | |
| CAtsa.cnf | H A D | 19-Jun-2024 | 4.9 KiB | 165 | 128 |
| README-dev.md | H A D | 19-Jun-2024 | 5.3 KiB | 161 | 117 |
| README-external.md | H A D | 21-Oct-2024 | 4.9 KiB | 177 | 111 |
| README.md | H A D | 19-Jun-2024 | 6.9 KiB | 187 | 125 |
| README.ssltest.md | H A D | 27-May-2022 | 10.8 KiB | 297 | 212 |
| aborttest.c | H A D | 24-Feb-2020 | 467 | 17 | 6 |
| acvp_test.c | H A D | 05-Nov-2024 | 61.4 KiB | 1,772 | 1,553 |
| acvp_test.inc | H A D | 30-Sep-2024 | 86.7 KiB | 2,186 | 2,113 |
| aesgcmtest.c | H A D | 19-Jun-2024 | 4.8 KiB | 137 | 114 |
| afalgtest.c | H A D | 19-Jun-2024 | 4.6 KiB | 161 | 123 |
| algorithmid_test.c | H A D | 22-Nov-2021 | 10.3 KiB | 329 | 268 |
| asn1_decode_test.c | H A D | 19-Jun-2024 | 7.6 KiB | 289 | 200 |
| asn1_dsa_internal_test.c | H A D | 15-Oct-2020 | 5.7 KiB | 185 | 138 |
| asn1_encode_test.c | H A D | 05-Sep-2024 | 29.6 KiB | 908 | 697 |
| asn1_internal_test.c | H A D | 19-Jun-2024 | 7.8 KiB | 277 | 179 |
| asn1_stable_parse_test.c | H A D | 19-Jun-2024 | 1.8 KiB | 82 | 55 |
| asn1_string_table_test.c | H A D | 24-Feb-2020 | 1.9 KiB | 78 | 53 |
| asn1_time_test.c | H A D | 19-Jun-2024 | 20 KiB | 512 | 405 |
| asynciotest.c | H A D | 01-Dec-2020 | 12.3 KiB | 418 | 297 |
| asynctest.c | H A D | 19-Jun-2024 | 14 KiB | 484 | 392 |
| bad_dtls_test.c | H A D | 05-Sep-2024 | 20.4 KiB | 613 | 440 |
| bftest.c | H A D | 05-Sep-2024 | 15.9 KiB | 490 | 416 |
| bio_addr_test.c | H A D | 19-Jun-2024 | 3.8 KiB | 177 | 130 |
| bio_base64_test.c | H A D | 05-Sep-2024 | 13.9 KiB | 489 | 318 |
| bio_callback_test.c | H A D | 17-Jun-2021 | 13.6 KiB | 361 | 316 |
| bio_comp_test.c | H A D | 19-Jun-2024 | 3.4 KiB | 154 | 121 |
| bio_core_test.c | H A D | 19-Jun-2024 | 3.4 KiB | 120 | 89 |
| bio_dgram_test.c | H A D | 19-Jun-2024 | 21.4 KiB | 795 | 570 |
| bio_enc_test.c | H A D | 05-Sep-2024 | 7.5 KiB | 273 | 219 |
| bio_memleak_test.c | H A D | 19-Jun-2024 | 7.2 KiB | 292 | 240 |
| bio_meth_test.c | H A D | 19-Jun-2024 | 2.1 KiB | 72 | 50 |
| bio_prefix_text.c | H A D | 22-Nov-2021 | 7.4 KiB | 268 | 209 |
| bio_pw_callback_test.c | H A D | 09-Sep-2024 | 10 KiB | 403 | 342 |
| bio_readbuffer_test.c | H A D | 23-May-2021 | 3.8 KiB | 132 | 96 |
| bio_tfo_test.c | H A D | 12-Aug-2022 | 13.4 KiB | 421 | 328 |
| bioprinttest.c | H A D | 05-Sep-2024 | 12.5 KiB | 362 | 291 |
| bn_internal_test.c | H A D | 23-May-2021 | 2.6 KiB | 106 | 75 |
| bn_rand_range.h | H A D | 24-Feb-2020 | 2 KiB | 59 | 44 |
| bntest.c | H A D | 05-Sep-2024 | 105.4 KiB | 3,437 | 2,850 |
| bntests.pl | H A D | 24-Feb-2020 | 4.5 KiB | 157 | 121 |
| build.info | H A D | Today | 49 KiB | 1,267 | 1,008 |
| build_wincrypt_test.c | H A D | 19-Jun-2024 | 1 KiB | 47 | 28 |
| ca-and-certs.cnf | H A D | 19-Jun-2024 | 2.2 KiB | 92 | 77 |
| ca_internals_test.c | H A D | 05-Sep-2024 | 2.3 KiB | 94 | 65 |
| casttest.c | H A D | 05-Sep-2024 | 3.2 KiB | 120 | 86 |
| cc_dummy.c | H A D | 19-Jun-2024 | 3.5 KiB | 152 | 114 |
| cert_comp_test.c | H A D | 19-Jun-2024 | 8.1 KiB | 288 | 206 |
| chacha_internal_test.c | H A D | 19-Jun-2024 | 8 KiB | 191 | 163 |
| cipher_overhead_test.c | H A D | 18-Feb-2021 | 1.7 KiB | 63 | 42 |
| cipherbytes_test.c | H A D | 13-Sep-2020 | 4.4 KiB | 150 | 115 |
| cipherlist_test.c | H A D | 30-Sep-2021 | 7.4 KiB | 270 | 212 |
| ciphername_test.c | H A D | 05-Sep-2024 | 20.7 KiB | 473 | 438 |
| clienthellotest.c | H A D | 05-Sep-2024 | 8.5 KiB | 270 | 178 |
| cmactest.c | H A D | 12-Oct-2024 | 10.8 KiB | 350 | 283 |
| cmp_asn_test.c | H A D | 19-Jun-2024 | 4 KiB | 136 | 105 |
| cmp_client_test.c | H A D | 19-Jun-2024 | 19.5 KiB | 578 | 483 |
| cmp_ctx_test.c | H A D | 19-Jun-2024 | 31 KiB | 912 | 787 |
| cmp_hdr_test.c | H A D | 05-Sep-2024 | 14 KiB | 508 | 396 |
| cmp_msg_test.c | H A D | 19-Jun-2024 | 18.2 KiB | 597 | 506 |
| cmp_protect_test.c | H A D | 16-Aug-2024 | 21.9 KiB | 641 | 550 |
| cmp_server_test.c | H A D | 19-Jun-2024 | 5.5 KiB | 174 | 123 |
| cmp_status_test.c | H A D | 19-Jun-2024 | 3.2 KiB | 110 | 72 |
| cmp_vfy_test.c | H A D | 07-Oct-2024 | 24.2 KiB | 725 | 615 |
| cms-examples.pl | H A D | 24-Feb-2020 | 8.7 KiB | 366 | 289 |
| cmsapitest.c | H A D | 05-Sep-2024 | 16.6 KiB | 443 | 383 |
| conf_include_test.c | H A D | 12-Oct-2024 | 7.7 KiB | 302 | 237 |
| confdump.c | H A D | 17-Jun-2021 | 1.4 KiB | 52 | 36 |
| constant_time_test.c | H A D | 28-Oct-2021 | 12.3 KiB | 415 | 351 |
| context_internal_test.c | H A D | 05-Sep-2024 | 2.1 KiB | 84 | 52 |
| crltest.c | H A D | 05-Sep-2024 | 15.9 KiB | 455 | 362 |
| ct_test.c | H A D | 05-Sep-2024 | 15.8 KiB | 533 | 421 |
| ctype_internal_test.c | H A D | 24-Feb-2020 | 2.7 KiB | 91 | 67 |
| curve448_internal_test.c | H A D | 19-Jun-2024 | 35.9 KiB | 738 | 643 |
| d2i_test.c | H A D | 23-Apr-2020 | 4.1 KiB | 170 | 120 |
| dane-cross.in | H A D | 14-Feb-2022 | 6.9 KiB | 114 | 112 |
| danetest.c | H A D | 21-Dec-2021 | 11 KiB | 431 | 343 |
| danetest.in | H A D | 19-Jun-2024 | 94.5 KiB | 2,008 | 1,946 |
| danetest.pem | H A D | 24-Feb-2020 | 652 | 15 | 14 |
| data.bin | H A D | 24-Nov-2020 | 128 | 5 | 3 |
| data2.bin | H A D | 23-May-2021 | 3.7 KiB | 62 | 56 |
| decap_out.bin | H A D | 13-Aug-2024 | 256 | | |
| decoder_propq_test.c | H A D | 19-Jun-2024 | 3.1 KiB | 120 | 83 |
| default-and-fips.cnf | H A D | 19-Jun-2024 | 266 | 17 | 11 |
| default-and-jitter.cnf | H A D | 31-Jul-2024 | 260 | 18 | 12 |
| default-and-legacy.cnf | H A D | 04-Aug-2021 | 271 | 18 | 12 |
| default-for-evptest.cnf | H A D | 16-Sep-2024 | 370 | 22 | 15 |
| default.cnf | H A D | 19-Jun-2024 | 279 | 18 | 12 |
| defltfips_test.c | H A D | 03-Feb-2022 | 3 KiB | 109 | 69 |
| destest.c | H A D | 05-Sep-2024 | 31.4 KiB | 906 | 769 |
| dhkem_test.inc | H A D | 19-Jun-2024 | 26.6 KiB | 718 | 675 |
| dhtest.c | H A D | 19-Jun-2024 | 36 KiB | 955 | 771 |
| drbgtest.c | H A D | 12-Oct-2024 | 26.8 KiB | 901 | 580 |
| dsa_no_digest_size_test.c | H A D | 23-Apr-2020 | 8.5 KiB | 252 | 185 |
| dsatest.c | H A D | 05-Sep-2024 | 18 KiB | 506 | 440 |
| dtls_mtu_test.c | H A D | 28-Jul-2022 | 7.2 KiB | 246 | 170 |
| dtlstest.c | H A D | 19-Jun-2024 | 21.4 KiB | 670 | 472 |
| dtlsv1listentest.c | H A D | 24-Feb-2020 | 12.3 KiB | 358 | 299 |
| ec_internal_test.c | H A D | 16-Oct-2024 | 17.4 KiB | 578 | 436 |
| ecdsatest.c | H A D | 05-Sep-2024 | 14.6 KiB | 424 | 288 |
| ecdsatest.h | H A D | 24-Feb-2020 | 673.6 KiB | 10,215 | 10,189 |
| ecstresstest.c | H A D | 05-Sep-2024 | 4.1 KiB | 157 | 112 |
| ectest.c | H A D | 19-Jun-2024 | 125.9 KiB | 3,158 | 2,496 |
| encap_out.bin | H A D | 13-Aug-2024 | 256 | | |
| encap_secret.bin | H A D | 13-Aug-2024 | 256 | | |
| endecode_test.c | H A D | 05-Sep-2024 | 58.5 KiB | 1,531 | 1,302 |
| endecoder_legacy_test.c | H A D | 30-Jun-2021 | 27.8 KiB | 732 | 595 |
| enginetest.c | H A D | 12-Oct-2024 | 13.1 KiB | 466 | 342 |
| errtest.c | H A D | 19-Jun-2024 | 13.2 KiB | 441 | 311 |
| evp_byname_test.c | H A D | 31-Jul-2024 | 900 | 41 | 25 |
| evp_extra_test.c | H A D | 16-Sep-2024 | 207.4 KiB | 6,111 | 5,004 |
| evp_extra_test2.c | H A D | Today | 60.6 KiB | 1,502 | 1,245 |
| evp_fetch_prov_test.c | H A D | 19-Jun-2024 | 10.9 KiB | 415 | 326 |
| evp_kdf_test.c | H A D | 24-Jul-2024 | 73.3 KiB | 2,093 | 1,749 |
| evp_libctx_test.c | H A D | 05-Nov-2024 | 31.8 KiB | 842 | 669 |
| evp_pkey_ctx_new_from_name.c | H A D | 29-Apr-2022 | 279 | 15 | 11 |
| evp_pkey_dhkem_test.c | H A D | 19-Jun-2024 | 31.9 KiB | 884 | 722 |
| evp_pkey_dparams_test.c | H A D | 03-May-2022 | 13.5 KiB | 325 | 289 |
| evp_pkey_provided_test.c | H A D | 19-Jun-2024 | 89.4 KiB | 2,216 | 1,889 |
| evp_test.c | H A D | 30-Aug-2024 | 156.1 KiB | 5,317 | 4,467 |
| evp_xof_test.c | H A D | 06-Sep-2024 | 18.7 KiB | 555 | 465 |
| exdatatest.c | H A D | 23-May-2021 | 8.1 KiB | 320 | 246 |
| exptest.c | H A D | 19-Jun-2024 | 9.3 KiB | 339 | 263 |
| ext_internal_test.c | H A D | 19-Jun-2024 | 2.9 KiB | 109 | 91 |
| fake_rsaprov.c | H A D | 19-Jun-2024 | 22.7 KiB | 756 | 584 |
| fake_rsaprov.h | H A D | 19-Jun-2024 | 635 | 19 | 6 |
| fatalerrtest.c | H A D | 01-Dec-2020 | 2.9 KiB | 102 | 69 |
| ffc_internal_test.c | H A D | 19-Jun-2024 | 27.5 KiB | 712 | 578 |
| filterprov.c | H A D | 19-Jun-2024 | 7.3 KiB | 239 | 167 |
| filterprov.h | H A D | 24-Feb-2021 | 523 | 15 | 4 |
| fips-alt.cnf | H A D | 28-Jul-2021 | 376 | 17 | 12 |
| fips-and-base.cnf | H A D | 19-Jun-2024 | 469 | 23 | 16 |
| fips.cnf | H A D | 04-Aug-2021 | 474 | 20 | 14 |
| fips_version_test.c | H A D | 19-Jun-2024 | 1.7 KiB | 79 | 58 |
| generate_buildtest.pl | H A D | 24-Feb-2020 | 796 | 35 | 21 |
| generate_ssl_tests.pl | H A D | 17-Jun-2021 | 4.7 KiB | 156 | 92 |
| gmdifftest.c | H A D | 23-May-2021 | 1.9 KiB | 68 | 45 |
| hexstr_test.c | H A D | 05-Sep-2024 | 3.6 KiB | 139 | 113 |
| hmactest.c | H A D | 12-Oct-2024 | 13.2 KiB | 445 | 371 |
| hpke_test.c | H A D | 05-Sep-2024 | 74.7 KiB | 2,007 | 1,726 |
| http_test.c | H A D | 19-Jun-2024 | 15.9 KiB | 523 | 431 |
| ideatest.c | H A D | 05-Sep-2024 | 3.9 KiB | 128 | 93 |
| igetest.c | H A D | 24-Feb-2020 | 16.4 KiB | 463 | 378 |
| insta.priv.pem | H A D | 13-Jul-2021 | 1.6 KiB | 28 | 27 |
| insta_ca.cert.pem | H A D | 13-Jul-2021 | 1.3 KiB | 23 | 22 |
| invalid-x509.cnf | H A D | 19-Jun-2024 | 125 | 7 | 5 |
| json_test.c | H A D | 19-Jun-2024 | 18.5 KiB | 697 | 577 |
| keymgmt_internal_test.c | H A D | 19-Jun-2024 | 11.5 KiB | 363 | 279 |
| legacy.cnf | H A D | 04-Aug-2021 | 219 | 14 | 9 |
| lhash_test.c | H A D | 13-Nov-2024 | 18.8 KiB | 721 | 584 |
| list_test.c | H A D | 19-Jun-2024 | 5.9 KiB | 181 | 147 |
| localetest.c | H A D | 13-May-2022 | 6.4 KiB | 137 | 117 |
| mdc2_internal_test.c | H A D | 23-Apr-2020 | 1.7 KiB | 78 | 40 |
| mdc2test.c | H A D | 19-Jun-2024 | 2.6 KiB | 98 | 70 |
| membio_test.c | H A D | 19-Jun-2024 | 4.3 KiB | 127 | 88 |
| memleaktest.c | H A D | 23-May-2021 | 1.7 KiB | 63 | 32 |
| modes_internal_test.c | H A D | 05-Sep-2024 | 29.2 KiB | 901 | 743 |
| moduleloadtest.c | H A D | 23-May-2021 | 1.3 KiB | 54 | 32 |
| namemap_internal_test.c | H A D | 05-Sep-2024 | 4.8 KiB | 184 | 134 |
| nodefltctxtest.c | H A D | 19-Jun-2024 | 1.7 KiB | 61 | 28 |
| null.cnf | H A D | 19-Jun-2024 | 213 | 14 | 9 |
| ocspapitest.c | H A D | 19-Jun-2024 | 6.3 KiB | 237 | 195 |
| ossl_store_test.c | H A D | 28-Oct-2021 | 5.9 KiB | 239 | 199 |
| p_minimal.c | H A D | 19-Jun-2024 | 765 | 25 | 9 |
| p_test.c | H A D | 12-Oct-2024 | 11.4 KiB | 338 | 237 |
| packettest.c | H A D | 19-Jun-2024 | 18.3 KiB | 612 | 500 |
| pairwise_fail_test.c | H A D | 05-Nov-2024 | 5.4 KiB | 185 | 158 |
| param_build_test.c | H A D | 19-Jun-2024 | 22 KiB | 565 | 495 |
| params_api_test.c | H A D | 19-Jun-2024 | 28.4 KiB | 839 | 713 |
| params_conversion_test.c | H A D | 03-May-2022 | 12.2 KiB | 374 | 324 |
| params_test.c | H A D | 19-Jun-2024 | 24.3 KiB | 713 | 501 |
| pathed.cnf | H A D | 19-Jun-2024 | 356 | 23 | 16 |
| pbelutest.c | H A D | 24-Feb-2020 | 1.4 KiB | 51 | 30 |
| pbetest.c | H A D | 19-Jun-2024 | 4.8 KiB | 168 | 122 |
| pem_read_depr_test.c | H A D | 29-Jul-2021 | 4.1 KiB | 217 | 158 |
| pemtest.c | H A D | 19-Jun-2024 | 4.5 KiB | 168 | 134 |
| pkcs12_api_test.c | H A D | 19-Jun-2024 | 7.9 KiB | 303 | 249 |
| pkcs12_format_test.c | H A D | 12-Oct-2024 | 37.6 KiB | 1,053 | 788 |
| pkcs7-1.pem | H A D | 24-Feb-2020 | 851 | 16 | 15 |
| pkcs7.pem | H A D | 24-Feb-2020 | 3.7 KiB | 55 | 54 |
| pkcs7_test.c | H A D | 21-Oct-2024 | 24.9 KiB | 398 | 332 |
| pkey_meth_kdf_test.c | H A D | 05-Sep-2024 | 6.8 KiB | 236 | 211 |
| pkey_meth_test.c | H A D | 06-Aug-2020 | 2.3 KiB | 91 | 66 |
| pkits-test.pl | H A D | 24-Feb-2020 | 31.2 KiB | 906 | 843 |
| poly1305_internal_test.c | H A D | 24-Feb-2020 | 56.2 KiB | 1,576 | 1,402 |
| priority_queue_test.c | H A D | 19-Jun-2024 | 7.7 KiB | 261 | 208 |
| property_test.c | H A D | 19-Jun-2024 | 24.6 KiB | 706 | 606 |
| prov_config_test.c | H A D | 05-Sep-2024 | 3.4 KiB | 141 | 98 |
| provfetchtest.c | H A D | 19-Jun-2024 | 8.4 KiB | 298 | 235 |
| provider_default_search_path_test.c | H A D | 19-Jun-2024 | 1.9 KiB | 60 | 39 |
| provider_fallback_test.c | H A D | 05-Sep-2024 | 1.5 KiB | 64 | 43 |
| provider_internal_test.c | H A D | 05-Sep-2024 | 4.1 KiB | 152 | 111 |
| provider_internal_test.cnf.in | H A D | 04-Aug-2021 | 347 | 17 | 12 |
| provider_pkey_test.c | H A D | 19-Jun-2024 | 12.4 KiB | 447 | 326 |
| provider_status_test.c | H A D | 05-Sep-2024 | 7.7 KiB | 259 | 211 |
| provider_test.c | H A D | 05-Sep-2024 | 9.6 KiB | 340 | 241 |
| proxy.cnf | H A D | 04-Aug-2021 | 1.7 KiB | 61 | 50 |
| punycode_test.c | H A D | 19-Jun-2024 | 10 KiB | 295 | 253 |
| quic_ackm_test.c | H A D | 19-Jun-2024 | 35.6 KiB | 1,117 | 805 |
| quic_cc_test.c | H A D | 19-Jun-2024 | 17 KiB | 630 | 374 |
| quic_cfq_test.c | H A D | 19-Jun-2024 | 5.5 KiB | 178 | 139 |
| quic_client_test.c | H A D | 05-Sep-2024 | 6 KiB | 227 | 164 |
| quic_fc_test.c | H A D | 22-Jul-2024 | 22.7 KiB | 644 | 508 |
| quic_fifd_test.c | H A D | 19-Jun-2024 | 13 KiB | 375 | 282 |
| quic_lcidm_test.c | H A D | 19-Jun-2024 | 5 KiB | 107 | 88 |
| quic_multistream_test.c | H A D | 13-Nov-2024 | 178.3 KiB | 5,972 | 4,438 |
| quic_newcid_test.c | H A D | 19-Jun-2024 | 5.2 KiB | 186 | 127 |
| quic_qlog_test.c | H A D | 19-Jun-2024 | 9 KiB | 249 | 205 |
| quic_rcidm_test.c | H A D | 19-Jun-2024 | 5.4 KiB | 133 | 97 |
| quic_record_test.c | H A D | 05-Sep-2024 | 160.5 KiB | 3,719 | 3,229 |
| quic_record_test_util.h | H A D | 19-Jun-2024 | 1.8 KiB | 55 | 37 |
| quic_srt_gen_test.c | H A D | 19-Jun-2024 | 2.3 KiB | 84 | 61 |
| quic_srtm_test.c | H A D | 19-Jun-2024 | 3.2 KiB | 85 | 67 |
| quic_stream_test.c | H A D | 19-Jun-2024 | 21.4 KiB | 606 | 469 |
| quic_tserver_test.c | H A D | 19-Jun-2024 | 13.1 KiB | 437 | 304 |
| quic_txp_test.c | H A D | 19-Jun-2024 | 63 KiB | 1,704 | 1,420 |
| quic_txpim_test.c | H A D | 19-Jun-2024 | 1.9 KiB | 68 | 47 |
| quic_wire_test.c | H A D | 19-Jun-2024 | 44.1 KiB | 1,646 | 1,226 |
| quicapitest.c | H A D | 08-Nov-2024 | 75 KiB | 2,371 | 1,748 |
| quicfaultstest.c | H A D | 19-Jun-2024 | 11.4 KiB | 412 | 263 |
| rand_status_test.c | H A D | 28-Aug-2020 | 673 | 28 | 11 |
| rand_test.c | H A D | 30-Sep-2024 | 6.1 KiB | 185 | 145 |
| rc2test.c | H A D | 23-Apr-2020 | 2.1 KiB | 75 | 49 |
| rc4test.c | H A D | 23-Apr-2020 | 4.1 KiB | 135 | 104 |
| rc5test.c | H A D | 23-Apr-2020 | 9.1 KiB | 244 | 207 |
| rdcpu_sanitytest.c | H A D | 03-May-2022 | 4.1 KiB | 151 | 106 |
| recordlentest.c | H A D | 19-Jun-2024 | 5.4 KiB | 205 | 153 |
| recursive.cnf | H A D | 19-Jun-2024 | 129 | 9 | 6 |
| rpktest.c | H A D | 19-Jun-2024 | 26.7 KiB | 762 | 634 |
| rsa_complex.c | H A D | 19-Jun-2024 | 904 | 33 | 13 |
| rsa_mp_test.c | H A D | 19-Jun-2024 | 12.1 KiB | 330 | 261 |
| rsa_sp800_56b_test.c | H A D | 05-Sep-2024 | 22.2 KiB | 591 | 480 |
| rsa_test.c | H A D | 19-Jun-2024 | 30.3 KiB | 721 | 595 |
| rsa_x931_test.c | H A D | 19-Jun-2024 | 1.1 KiB | 49 | 32 |
| run_tests.pl | H A D | 19-Jun-2024 | 13.3 KiB | 367 | 257 |
| safe_math_test.c | H A D | 05-Sep-2024 | 11.3 KiB | 373 | 311 |
| sanitytest.c | H A D | 19-Jun-2024 | 4.9 KiB | 164 | 116 |
| secmemtest.c | H A D | 03-May-2022 | 5.9 KiB | 184 | 112 |
| serverinfo.pem | H A D | 24-Feb-2020 | 740 | 17 | 15 |
| serverinfo2.pem | H A D | 24-Feb-2020 | 412 | 9 | 8 |
| servername_test.c | H A D | 23-May-2021 | 7.4 KiB | 269 | 194 |
| session.pem | H A D | 24-Feb-2020 | 1.9 KiB | 32 | 31 |
| sha_test.c | H A D | 16-Jun-2021 | 3.7 KiB | 111 | 88 |
| shibboleth.pfx | H A D | 24-Feb-2020 | 2.5 KiB | | |
| shlibloadtest.c | H A D | 23-May-2021 | 8.9 KiB | 293 | 230 |
| simpledynamic.c | H A D | 29-Jul-2021 | 1.7 KiB | 79 | 55 |
| simpledynamic.h | H A D | 24-Jun-2021 | 1.2 KiB | 52 | 30 |
| siphash_internal_test.c | H A D | 19-Jun-2024 | 17.1 KiB | 292 | 244 |
| sm2_internal_test.c | H A D | 05-Sep-2024 | 16.3 KiB | 485 | 375 |
| sm3_internal_test.c | H A D | 14-Feb-2022 | 2.6 KiB | 85 | 54 |
| sm4_internal_test.c | H A D | 23-May-2021 | 2.3 KiB | 87 | 49 |
| smcont.bin | H A D | 23-May-2021 | 7.8 KiB | 20 | 35 |
| smcont.txt | H A D | 24-Feb-2020 | 83 | 1 | 1 |
| smcont_zero.txt | H A D | 08-Oct-2020 | 0 | | |
| sparse_array_test.c | H A D | 17-Jun-2021 | 5.6 KiB | 198 | 164 |
| srptest.c | H A D | 18-Feb-2021 | 8.1 KiB | 283 | 204 |
| ssl_cert_table_internal_test.c | H A D | 19-Jun-2024 | 2.2 KiB | 66 | 45 |
| ssl_ctx_test.c | H A D | 19-Jun-2024 | 5.4 KiB | 141 | 108 |
| ssl_handshake_rtt_test.c | H A D | 19-Jun-2024 | 3.9 KiB | 139 | 101 |
| ssl_old_test.c | H A D | 22-Jul-2024 | 99.1 KiB | 3,017 | 2,481 |
| ssl_test.c | H A D | 19-Jun-2024 | 20.2 KiB | 578 | 478 |
| ssl_test.tmpl | H A D | 24-Feb-2020 | 4.3 KiB | 127 | 122 |
| ssl_test_ctx_test.c | H A D | 01-Dec-2020 | 9.1 KiB | 265 | 215 |
| ssl_test_ctx_test.cnf | H A D | 06-Mar-2020 | 2 KiB | 98 | 69 |
| sslapitest.c | H A D | 04-Nov-2024 | 421.2 KiB | 12,759 | 9,380 |
| sslbuffertest.c | H A D | 05-Sep-2024 | 11.8 KiB | 382 | 243 |
| sslcorrupttest.c | H A D | 19-Jun-2024 | 7.3 KiB | 281 | 198 |
| stack_test.c | H A D | 28-Oct-2021 | 9.4 KiB | 389 | 304 |
| strtoultest.c | H A D | 07-Aug-2024 | 2.6 KiB | 107 | 67 |
| sysdefaulttest.c | H A D | 05-Sep-2024 | 1.9 KiB | 89 | 69 |
| test.cnf | H A D | 30-Oct-2024 | 2.3 KiB | 83 | 69 |
| test_asn1_parse.cnf | H A D | 19-Jun-2024 | 240 | 13 | 9 |
| test_test.c | H A D | 27-Jun-2022 | 18.2 KiB | 580 | 504 |
| testcrl.pem | H A D | 24-Feb-2020 | 938 | 17 | 16 |
| testdsa.pem | H A D | 24-Feb-2020 | 672 | 13 | 12 |
| testdsapub.pem | H A D | 24-Feb-2020 | 654 | 13 | 12 |
| testec-p112r1.pem | H A D | 17-Aug-2022 | 221 | 8 | 7 |
| testec-p256.pem | H A D | 24-Feb-2020 | 227 | 6 | 5 |
| testecpub-p256.pem | H A D | 24-Feb-2020 | 178 | 5 | 4 |
| tested25519.pem | H A D | 24-Feb-2020 | 119 | 4 | 3 |
| tested25519pub.pem | H A D | 24-Feb-2020 | 113 | 4 | 3 |
| tested448.pem | H A D | 24-Feb-2020 | 156 | 5 | 4 |
| tested448pub.pem | H A D | 24-Feb-2020 | 146 | 5 | 4 |
| testp7.pem | H A D | 24-Feb-2020 | 2.8 KiB | 47 | 46 |
| testreq2.pem | H A D | 24-Feb-2020 | 371 | 8 | 7 |
| testrsa.pem | H A D | 09-Sep-2020 | 526 | 11 | 10 |
| testrsa2048.pem | H A D | 18-Sep-2020 | 1.7 KiB | 30 | 28 |
| testrsa2048pub.pem | H A D | 19-Jun-2024 | 451 | 10 | 9 |
| testrsa_withattrs.der | H A D | 23-May-2021 | 1.2 KiB | | |
| testrsa_withattrs.pem | H A D | 23-May-2021 | 1.7 KiB | 30 | 29 |
| testrsapss.pem | H A D | 29-Jan-2021 | 1.7 KiB | 29 | 28 |
| testrsapssmandatory.pem | H A D | 05-Feb-2021 | 1.7 KiB | 30 | 29 |
| testrsapub.pem | H A D | 24-Feb-2020 | 182 | 5 | 4 |
| testsid.pem | H A D | 23-May-2021 | 2.3 KiB | 39 | 38 |
| testutil.h | H A D | 05-Sep-2024 | 27.7 KiB | 653 | 328 |
| testx509.pem | H A D | 11-Sep-2020 | 562 | 11 | 10 |
| threadpool_test.c | H A D | 05-Sep-2024 | 8.7 KiB | 308 | 224 |
| threadstest.c | H A D | 05-Nov-2024 | 35.8 KiB | 1,326 | 1,060 |
| threadstest.h | H A D | 05-Sep-2024 | 1.5 KiB | 84 | 53 |
| threadstest_fips.c | H A D | 24-May-2021 | 1.1 KiB | 50 | 28 |
| time_offset_test.c | H A D | 24-Feb-2020 | 3.2 KiB | 114 | 83 |
| time_test.c | H A D | 19-Jun-2024 | 2.4 KiB | 80 | 55 |
| timing_load_creds.c | H A D | 19-Jun-2024 | 5.8 KiB | 216 | 184 |
| tls-provider.c | H A D | 22-Jul-2024 | 110.2 KiB | 3,287 | 2,429 |
| tls13ccstest.c | H A D | 19-Jun-2024 | 15.1 KiB | 509 | 383 |
| tls13encryptiontest.c | H A D | 19-Jun-2024 | 14 KiB | 405 | 314 |
| tls13secretstest.c | H A D | 05-Sep-2024 | 12.4 KiB | 422 | 325 |
| trace_api_test.c | H A D | 19-Nov-2024 | 6.5 KiB | 212 | 171 |
| uitest.c | H A D | 02-Jun-2022 | 2.2 KiB | 95 | 63 |
| upcallstest.c | H A D | 19-Jun-2024 | 5.5 KiB | 167 | 122 |
| user_property_test.c | H A D | 19-Jun-2024 | 3.8 KiB | 133 | 101 |
| v3-cert1.pem | H A D | 24-Feb-2020 | 944 | 17 | 16 |
| v3-cert2.pem | H A D | 24-Feb-2020 | 940 | 17 | 16 |
| v3_ca_exts.cnf | H A D | 20-Jan-2021 | 136 | 6 | 4 |
| v3ext.c | H A D | 05-Sep-2024 | 16.1 KiB | 488 | 381 |
| v3nametest.c | H A D | 19-Jun-2024 | 19.8 KiB | 717 | 509 |
| verify_extra_test.c | H A D | 03-May-2022 | 8.7 KiB | 342 | 244 |
| versions.c | H A D | 24-Feb-2020 | 674 | 22 | 10 |
| wpackettest.c | H A D | 05-Sep-2024 | 26.5 KiB | 655 | 487 |
| x509_acert_test.c | H A D | 05-Sep-2024 | 4.4 KiB | 175 | 124 |
| x509_check_cert_pkey_test.c | H A D | 19-Jun-2024 | 5 KiB | 182 | 136 |
| x509_dup_cert_test.c | H A D | 27-Oct-2021 | 1.3 KiB | 52 | 32 |
| x509_internal_test.c | H A D | 05-Sep-2024 | 5.4 KiB | 181 | 124 |
| x509_load_cert_file_test.c | H A D | 19-Jun-2024 | 1.8 KiB | 70 | 49 |
| x509_req_test.c | H A D | 25-Jun-2024 | 1.9 KiB | 74 | 48 |
| x509_test.c | H A D | 05-Sep-2024 | 9.1 KiB | 222 | 168 |
| x509_time_test.c | H A D | 19-Jun-2024 | 17.6 KiB | 605 | 455 |
| x509aux.c | H A D | 19-Jun-2024 | 5.2 KiB | 186 | 148 |
README-dev.md
1Guidelines for test developers
2==============================
3
4How to add recipes
5------------------
6
7For any test that you want to perform, you write a script located in
8`test/recipes/`, named `{nn}-test_{name}.t`,
9where `{nn}` is a two digit number and
10`{name}` is a unique name of your choice.
11
12Please note that if a test involves a new testing executable, you will need to
13do some additions in test/build.info. Please refer to the section
14["Changes to test/build.info"](README.md#changes-to-testbuildinfo) below.
15
16Naming conventions
17------------------
18
19A test executable is named `test/{name}test.c`
20
21A test recipe is named `test/recipes/{nn}-test_{name}.t`, where `{nn}` is a two
22digit number and `{name}` is a unique name of your choice.
23
24The number `{nn}` is (somewhat loosely) grouped as follows:
25
26 00-04 sanity, internal and essential API tests
27 05-09 individual symmetric cipher algorithms
28 10-14 math (bignum)
29 15-19 individual asymmetric cipher algorithms
30 20-24 openssl commands (some otherwise not tested)
31 25-29 certificate forms, generation and verification
32 30-35 engine and evp
33 60-79 APIs:
34 60 X509 subsystem
35 61 BIO subsystem
36 65 CMP subsystem
37 70 PACKET layer
38 80-89 "larger" protocols (CA, CMS, OCSP, SSL, TSA)
39 90-98 misc
40 99 most time consuming tests [such as test_fuzz]
41
42A recipe that just runs a test executable
43-----------------------------------------
44
45A script that just runs a program looks like this:
46
47 #! /usr/bin/env perl
48
49 use OpenSSL::Test::Simple;
50
51 simple_test("test_{name}", "{name}test", "{name}");
52
53`{name}` is the unique name you have chosen for your test.
54
55The second argument to `simple_test` is the test executable, and `simple_test`
56expects it to be located in `test/`
57
58For documentation on `OpenSSL::Test::Simple`,
59do `perldoc util/perl/OpenSSL/Test/Simple.pm`.
60
61A recipe that runs a more complex test
62--------------------------------------
63
64For more complex tests, you will need to read up on Test::More and
65OpenSSL::Test. Test::More is normally preinstalled, do `man Test::More` for
66documentation. For OpenSSL::Test, do `perldoc util/perl/OpenSSL/Test.pm`.
67
68A script to start from could be this:
69
70 #! /usr/bin/env perl
71
72 use strict;
73 use warnings;
74 use OpenSSL::Test;
75
76 setup("test_{name}");
77
78 plan tests => 2; # The number of tests being performed
79
80 ok(test1, "test1");
81 ok(test2, "test1");
82
83 sub test1
84 {
85 # test feature 1
86 }
87
88 sub test2
89 {
90 # test feature 2
91 }
92
93Changes to test/build.info
94--------------------------
95
96Whenever a new test involves a new test executable you need to do the
97following (at all times, replace {NAME} and {name} with the name of your
98test):
99
100 * add `{name}` to the list of programs under `PROGRAMS_NO_INST`
101
102 * create a three line description of how to build the test, you will have
103 to modify the include paths and source files if you don't want to use the
104 basic test framework:
105
106 SOURCE[{name}]={name}.c
107 INCLUDE[{name}]=.. ../include ../apps/include
108 DEPEND[{name}]=../libcrypto libtestutil.a
109
110Generic form of C test executables
111----------------------------------
112
113 #include "testutil.h"
114
115 static int my_test(void)
116 {
117 int testresult = 0; /* Assume the test will fail */
118 int observed;
119
120 observed = function(); /* Call the code under test */
121 if (!TEST_int_eq(observed, 2)) /* Check the result is correct */
122 goto end; /* Exit on failure - optional */
123
124 testresult = 1; /* Mark the test case a success */
125 end:
126 cleanup(); /* Any cleanup you require */
127 return testresult;
128 }
129
130 int setup_tests(void)
131 {
132 ADD_TEST(my_test); /* Add each test separately */
133 return 1; /* Indicates success. Return 0 */
134 /* to produce an error with a */
135 /* usage message and -1 for */
136 /* failure to set up with no */
137 /* usage message. */
138 }
139
140You should use the `TEST_xxx` macros provided by `testutil.h` to test all failure
141conditions. These macros produce an error message in a standard format if the
142condition is not met (and nothing if the condition is met). Additional
143information can be presented with the `TEST_info` macro that takes a `printf`
144format string and arguments. `TEST_error` is useful for complicated conditions,
145it also takes a `printf` format string and argument. In all cases the `TEST_xxx`
146macros are guaranteed to evaluate their arguments exactly once. This means
147that expressions with side effects are allowed as parameters. Thus,
148
149 if (!TEST_ptr(ptr = OPENSSL_malloc(..)))
150
151works fine and can be used in place of:
152
153 ptr = OPENSSL_malloc(..);
154 if (!TEST_ptr(ptr))
155
156The former produces a more meaningful message on failure than the latter.
157
158Note that the test infrastructure automatically sets up all required environment
159variables (such as `OPENSSL_MODULES`, `OPENSSL_CONF`, etc.) for the tests.
160Individual tests may choose to override the default settings as required.
161
README-external.md
1Running external test suites with OpenSSL
2=========================================
3
4It is possible to integrate external test suites into OpenSSL's `make test`.
5This capability is considered a developer option and does not work on all
6platforms.
7
8Python PYCA/Cryptography test suite
9===================================
10
11This python test suite runs cryptographic tests with a local OpenSSL build as
12the implementation.
13
14First checkout the `PYCA/Cryptography` module into `./pyca-cryptography` using:
15
16 $ git submodule update --init
17
18Then configure/build OpenSSL compatible with the python module:
19
20 $ ./config enable-external-tests
21 $ make
22
23The tests will run in a python virtual environment which requires virtualenv
24to be installed.
25
26 $ make test VERBOSE=1 TESTS=test_external_pyca
27
28Test failures and suppressions
29------------------------------
30
31Some tests target older (<=1.0.2) versions so will not run. Other tests target
32other crypto implementations so are not relevant. Currently no tests fail.
33
34krb5 test suite
35===============
36
37Much like the PYCA/Cryptography test suite, this builds and runs the krb5
38tests against the local OpenSSL build.
39
40You will need a git checkout of krb5 at the top level:
41
42 $ git clone https://github.com/krb5/krb5
43
44krb5's master has to pass this same CI, but a known-good version is
45krb5-1.15.1-final if you want to be sure.
46
47 $ cd krb5
48 $ git checkout krb5-1.15.1-final
49 $ cd ..
50
51OpenSSL must be built with external tests enabled:
52
53 $ ./config enable-external-tests
54 $ make
55
56krb5's tests will then be run as part of the rest of the suite, or can be
57explicitly run (with more debugging):
58
59 $ VERBOSE=1 make TESTS=test_external_krb5 test
60
61Test-failures suppressions
62--------------------------
63
64krb5 will automatically adapt its test suite to account for the configuration
65of your system. Certain tests may require more installed packages to run. No
66tests are expected to fail.
67
68GOST engine test suite
69======================
70
71Much like the PYCA/Cryptography test suite, this builds and runs the GOST engine
72tests against the local OpenSSL build.
73
74You will need a git checkout of gost-engine at the top level:
75
76 $ git submodule update --init
77
78Then configure/build OpenSSL enabling external tests:
79
80 $ ./config enable-external-tests
81 $ make
82
83GOST engine requires CMake for the build process.
84
85GOST engine tests will then be run as part of the rest of the suite, or can be
86explicitly run (with more debugging):
87
88 $ make test VERBOSE=1 TESTS=test_external_gost_engine
89
90OQSprovider test suite
91======================
92
93Much like the PYCA/Cryptography test suite, this builds and runs the OQS
94(OpenQuantumSafe -- www.openquantumsafe.org) provider tests against the
95local OpenSSL build.
96
97You will need a git checkout of oqsprovider at the top level:
98
99 $ git submodule update --init
100
101Then configure/build OpenSSL enabling external tests:
102
103 $ ./config enable-external-tests
104 $ make
105
106oqsprovider requires CMake for the build process.
107
108OQSprovider tests will then be run as part of the rest of the suite, or can be
109explicitly run (with more debugging):
110
111 $ make test VERBOSE=1 TESTS=test_external_oqsprovider
112
113The environment variable `OQS_SKIP_TESTS` can be set to select tests and
114algorithms to be skipped, e.g. as follows:
115
116 OQS_SKIP_TESTS=kyber make test TESTS=test_external_oqsprovider
117
118The names of all supported quantum-safe algorithms are available at
119<https://github.com/open-quantum-safe/oqs-provider#algorithms>
120
121pkcs11-provider test suite
122==========================
123
124This builds and runs pkcs11-provider tests against the local OpenSSL build.
125
126You will need a git checkout of pkcs11-provider at the top level:
127
128 $ git submodule update --init
129
130Then configure/build OpenSSL enabling external tests:
131
132 $ ./config enable-external-tests
133 $ make
134
135pkcs11-provider requires meson for the build process. Moreover, it requires
136softhsm and nss softokn tokens and certtool, certutil, pkcs11-tool and expect
137to run the tests.
138
139Tests will then be run as part of the rest of the suite, or can be
140explicitly run (with more debugging):
141
142 $ make test VERBOSE=1 TESTS=test_external_pkcs11_provider
143
144Test failures and suppressions
145------------------------------
146
147There are tests for different software tokens - softhsm, nss-softokn and kryoptic.
148Kryoptic tests will not run at this point. Currently no test fails.
149
150Updating test suites
151====================
152
153To update the commit for any of the above test suites:
154
155- Make sure the submodules are cloned locally:
156
157 $ git submodule update --init --recursive
158
159- Enter subdirectory and pull from the repository (use a specific branch/tag if required):
160
161 $ cd `<submodule-dir>`
162 $ git pull origin master
163
164- Go to root directory, there should be a new git status:
165
166 $ cd ../
167 $ git status
168 ...
169 # modified: `<submodule-dir>` (new commits)
170 ...
171
172- Add/commit/push the update
173
174 $ git add `<submodule-dir>`
175 $ git commit -m `"Updated <submodule> to latest commit"`
176 $ git push
177
README.md
1Using OpenSSL Tests
2===================
3
4After a successful build, and before installing, the libraries should be tested.
5Run:
6
7 $ make test # Unix
8 $ mms test ! OpenVMS
9 $ nmake test # Windows
10
11**Warning:** you MUST run the tests from an unprivileged account
12(or disable your privileges temporarily if your platform allows it).
13
14If some tests fail, take a look at the section Test Failures below.
15
16Test Failures
17-------------
18
19If some tests fail, look at the output. There may be reasons for the failure
20that isn't a problem in OpenSSL itself (like an OS malfunction or a Perl issue).
21You may want increased verbosity, that can be accomplished like this:
22
23Full verbosity, showing full output of all successful and failed test cases
24(`make` macro `VERBOSE` or `V`):
25
26 $ make V=1 test # Unix
27 $ mms /macro=(V=1) test ! OpenVMS
28 $ nmake V=1 test # Windows
29
30Verbosity on failed (sub-)tests only
31(`VERBOSE_FAILURE` or `VF` or `REPORT_FAILURES`):
32
33 $ make test VF=1
34
35Verbosity on failed (sub-)tests, in addition progress on succeeded (sub-)tests
36(`VERBOSE_FAILURE_PROGRESS` or `VFP` or `REPORT_FAILURES_PROGRESS`):
37
38 $ make test VFP=1
39
40If you want to run just one or a few specific tests, you can use
41the make variable TESTS to specify them, like this:
42
43 $ make TESTS='test_rsa test_dsa' test # Unix
44 $ mms/macro="TESTS=test_rsa test_dsa" test ! OpenVMS
45 $ nmake TESTS="test_rsa test_dsa" test # Windows
46
47And of course, you can combine (Unix examples shown):
48
49 $ make test TESTS='test_rsa test_dsa' VF=1
50 $ make test TESTS="test_cmp_*" VFP=1
51
52You can find the list of available tests like this:
53
54 $ make list-tests # Unix
55 $ mms list-tests ! OpenVMS
56 $ nmake list-tests # Windows
57
58Have a look at the manual for the perl module Test::Harness to
59see what other HARNESS_* variables there are.
60
61To report a bug please open an issue on GitHub, at
62<https://github.com/openssl/openssl/issues>.
63
64For more details on how the `make` variables `TESTS` can be used,
65see section Running Selected Tests below.
66
67Running Selected Tests
68----------------------
69
70The `make` variable `TESTS` supports a versatile set of space separated tokens
71with which you can specify a set of tests to be performed. With a "current
72set of tests" in mind, initially being empty, here are the possible tokens:
73
74 alltests The current set of tests becomes the whole set of available
75 tests (as listed when you do 'make list-tests' or similar).
76
77 xxx Adds the test 'xxx' to the current set of tests.
78
79 -xxx Removes 'xxx' from the current set of tests. If this is the
80 first token in the list, the current set of tests is first
81 assigned the whole set of available tests, effectively making
82 this token equivalent to TESTS="alltests -xxx".
83
84 nn Adds the test group 'nn' (which is a number) to the current
85 set of tests.
86
87 -nn Removes the test group 'nn' from the current set of tests.
88 If this is the first token in the list, the current set of
89 tests is first assigned the whole set of available tests,
90 effectively making this token equivalent to
91 TESTS="alltests -xxx".
92
93Also, all tokens except for "alltests" may have wildcards, such as *.
94(on Unix and Windows, BSD style wildcards are supported, while on VMS,
95it's VMS style wildcards)
96
97### Examples
98
99Run all tests except for the fuzz tests:
100
101 $ make TESTS='-test_fuzz*' test
102
103or, if you want to be explicit:
104
105 $ make TESTS='alltests -test_fuzz*' test
106
107Run all tests that have a name starting with "test_ssl" but not those
108starting with "test_ssl_":
109
110 $ make TESTS='test_ssl* -test_ssl_*' test
111
112Run only test group 10:
113
114 $ make TESTS='10' test
115
116Run all tests except the slow group (group 99):
117
118 $ make TESTS='-99' test
119
120Run all tests in test groups 80 to 99 except for tests in group 90:
121
122 $ make TESTS='[89]? -90' test
123
124To run specific fuzz tests you can use for instance:
125
126 $ make test TESTS='test_fuzz_cmp test_fuzz_cms'
127
128To stochastically verify that the algorithm that produces uniformly distributed
129random numbers is operating correctly (with a false positive rate of 0.01%):
130
131 $ ./util/wrap.sh test/bntest -stochastic
132
133Running Tests in Parallel
134-------------------------
135
136By default the test harness will execute the selected tests sequentially.
137Depending on the platform characteristics, running more than one test job in
138parallel may speed up test execution.
139This can be requested by setting the `HARNESS_JOBS` environment variable to a
140positive integer value. This specifies the maximum number of test jobs to run in
141parallel.
142
143Depending on the Perl version different strategies could be adopted to select
144which test recipes can be run in parallel. In recent versions of Perl, unless
145specified otherwise, any task can be run in parallel. Consult the documentation
146for `TAP::Harness` to know more.
147
148To run up to four tests in parallel at any given time:
149
150 $ make HARNESS_JOBS=4 test
151
152Random numbers in tests
153-----------------------
154
155Some tests use random numbers as part of the test. In some cases a test failure
156may occur for some random numbers, but not for others. The seed used for the
157rand number generator can be set via the `OPENSSL_TEST_RAND_SEED` environment
158variable. It can also be set via the `OPENSSL_TEST_RAND_ORDER` environment
159variable which additionally randomises the order tests are run in (see below).
160
161When a test fails the test harness will display the seed used during the test
162(displaying either the `OPENSSL_TEST_RAND_SEED` or `OPENSSL_TEST_RAND_ORDER`
163environment variable value that must be used to recreate the results), e.g.
164
165 $ make OPENSSL_TEST_RAND_SEED=42 test
166
167Randomisation of Test Ordering
168------------------------------
169
170By default, the test harness will execute tests in the order they were added.
171By setting the `OPENSSL_TEST_RAND_ORDER` environment variable to zero, the
172test ordering will be randomised. This additionally seeds the random number
173generator used within the tests as described in the section above. If a randomly
174ordered test fails, the seed value used will be reported. Setting the
175`OPENSSL_TEST_RAND_ORDER` environment variable to this value will rerun the
176tests in the same order and will also seed the test random number generator.
177This assures repeatability of randomly ordered test runs. This repeatability is
178independent of the operating system, processor or platform used.
179
180To randomise the test ordering:
181
182 $ make OPENSSL_TEST_RAND_ORDER=0 test
183
184To run the tests using the order defined by the random seed `42`:
185
186 $ make OPENSSL_TEST_RAND_ORDER=42 test
187
README.ssltest.md
1SSL tests
2=========
3
4SSL testcases are configured in the `ssl-tests` directory.
5
6Each `ssl_*.cnf.in` file contains a number of test configurations. These files
7are used to generate testcases in the OpenSSL CONF format.
8
9The precise test output can be dependent on the library configuration. The test
10harness generates the output files on the fly.
11
12However, for verification, we also include checked-in configuration outputs
13corresponding to the default configuration. These testcases live in
14`test/ssl-tests/*.cnf` files.
15
16For more details, see `ssl-tests/01-simple.cnf.in` for an example.
17
18Configuring the test
19--------------------
20
21First, give your test a name. The names do not have to be unique.
22
23An example test input looks like this:
24
25 {
26 name => "test-default",
27 server => { "CipherString" => "DEFAULT" },
28 client => { "CipherString" => "DEFAULT" },
29 test => { "ExpectedResult" => "Success" },
30 }
31
32The test section supports the following options
33
34### Test mode
35
36* Method - the method to test. One of DTLS or TLS.
37
38* HandshakeMode - which handshake flavour to test:
39 - Simple - plain handshake (default)
40 - Resume - test resumption
41 - RenegotiateServer - test server initiated renegotiation
42 - RenegotiateClient - test client initiated renegotiation
43
44When HandshakeMode is Resume or Renegotiate, the original handshake is expected
45to succeed. All configured test expectations are verified against the second
46handshake.
47
48* ApplicationData - amount of application data bytes to send (integer, defaults
49 to 256 bytes). Applies to both client and server. Application data is sent in
50 64kB chunks (but limited by MaxFragmentSize and available parallelization, see
51 below).
52
53* MaxFragmentSize - maximum send fragment size (integer, defaults to 512 in
54 tests - see `SSL_CTX_set_max_send_fragment` for documentation). Applies to
55 both client and server. Lowering the fragment size will split handshake and
56 application data up between more `SSL_write` calls, thus allowing to exercise
57 different code paths. In particular, if the buffer size (64kB) is at least
58 four times as large as the maximum fragment, interleaved multi-buffer crypto
59 implementations may be used on some platforms.
60
61### Test expectations
62
63* ExpectedResult - expected handshake outcome. One of
64 - Success - handshake success
65 - ServerFail - serverside handshake failure
66 - ClientFail - clientside handshake failure
67 - InternalError - some other error
68
69* ExpectedClientAlert, ExpectedServerAlert - expected alert. See
70 `test/helpers/ssl_test_ctx.c` for known values. Note: the expected alert is currently
71 matched against the _last_ received alert (i.e., a fatal alert or a
72 `close_notify`). Warning alert expectations are not yet supported. (A warning
73 alert will not be correctly matched, if followed by a `close_notify` or
74 another alert.)
75
76* ExpectedProtocol - expected negotiated protocol. One of
77 SSLv3, TLSv1, TLSv1.1, TLSv1.2.
78
79* SessionTicketExpected - whether or not a session ticket is expected
80 - Ignore - do not check for a session ticket (default)
81 - Yes - a session ticket is expected
82 - No - a session ticket is not expected
83
84* SessionIdExpected - whether or not a session id is expected
85 - Ignore - do not check for a session id (default)
86 - Yes - a session id is expected
87 - No - a session id is not expected
88
89* ResumptionExpected - whether or not resumption is expected (Resume mode only)
90 - Yes - resumed handshake
91 - No - full handshake (default)
92
93* ExpectedNPNProtocol, ExpectedALPNProtocol - NPN and ALPN expectations.
94
95* ExpectedTmpKeyType - the expected algorithm or curve of server temp key
96
97* ExpectedServerCertType, ExpectedClientCertType - the expected algorithm or
98 curve of server or client certificate
99
100* ExpectedServerSignHash, ExpectedClientSignHash - the expected
101 signing hash used by server or client certificate
102
103* ExpectedServerSignType, ExpectedClientSignType - the expected
104 signature type used by server or client when signing messages
105
106* ExpectedClientCANames - for client auth list of CA names the server must
107 send. If this is "empty" the list is expected to be empty otherwise it
108 is a file of certificates whose subject names form the list.
109
110* ExpectedServerCANames - list of CA names the client must send, TLS 1.3 only.
111 If this is "empty" the list is expected to be empty otherwise it is a file
112 of certificates whose subject names form the list.
113
114Configuring the client and server
115---------------------------------
116
117The client and server configurations can be any valid `SSL_CTX`
118configurations. For details, see the manpages for `SSL_CONF_cmd`.
119
120Give your configurations as a dictionary of CONF commands, e.g.
121
122 server => {
123 "CipherString" => "DEFAULT",
124 "MinProtocol" => "TLSv1",
125 }
126
127The following sections may optionally be defined:
128
129* server2 - this section configures a secondary context that is selected via the
130 ServerName test option. This context is used whenever a ServerNameCallback is
131 specified. If the server2 section is not present, then the configuration
132 matches server.
133* resume_server - this section configures the client to resume its session
134 against a different server. This context is used whenever HandshakeMode is
135 Resume. If the resume_server section is not present, then the configuration
136 matches server.
137* resume_client - this section configures the client to resume its session with
138 a different configuration. In practice this may occur when, for example,
139 upgraded clients reuse sessions persisted on disk. This context is used
140 whenever HandshakeMode is Resume. If the resume_client section is not present,
141 then the configuration matches client.
142
143### Configuring callbacks and additional options
144
145Additional handshake settings can be configured in the `extra` section of each
146client and server:
147
148 client => {
149 "CipherString" => "DEFAULT",
150 extra => {
151 "ServerName" => "server2",
152 }
153 }
154
155#### Supported client-side options
156
157* ClientVerifyCallback - the client's custom certificate verify callback.
158 Used to test callback behaviour. One of
159 - None - no custom callback (default)
160 - AcceptAll - accepts all certificates.
161 - RejectAll - rejects all certificates.
162
163* ServerName - the server the client should attempt to connect to. One of
164 - None - do not use SNI (default)
165 - server1 - the initial context
166 - server2 - the secondary context
167 - invalid - an unknown context
168
169* CTValidation - Certificate Transparency validation strategy. One of
170 - None - no validation (default)
171 - Permissive - SSL_CT_VALIDATION_PERMISSIVE
172 - Strict - SSL_CT_VALIDATION_STRICT
173
174#### Supported server-side options
175
176* ServerNameCallback - the SNI switching callback to use
177 - None - no callback (default)
178 - IgnoreMismatch - continue the handshake on SNI mismatch
179 - RejectMismatch - abort the handshake on SNI mismatch
180
181* BrokenSessionTicket - a special test case where the session ticket callback
182 does not initialize crypto.
183 - No (default)
184 - Yes
185
186#### Mutually supported options
187
188* NPNProtocols, ALPNProtocols - NPN and ALPN settings. Server and client
189 protocols can be specified as a comma-separated list, and a callback with the
190 recommended behaviour will be installed automatically.
191
192* SRPUser, SRPPassword - SRP settings. For client, this is the SRP user to
193 connect as; for server, this is a known SRP user.
194
195### Default server and client configurations
196
197The default server certificate and CA files are added to the configurations
198automatically. Server certificate verification is requested by default.
199
200You can override these options by redefining them:
201
202 client => {
203 "VerifyCAFile" => "/path/to/custom/file"
204 }
205
206or by deleting them
207
208 client => {
209 "VerifyCAFile" => undef
210 }
211
212Adding a test to the test harness
213---------------------------------
214
2151. Add a new test configuration to `test/ssl-tests`, following the examples of
216 existing `*.cnf.in` files (for example, `01-simple.cnf.in`).
217
2182. Generate the generated `*.cnf` test input file. You can do so by running
219 `generate_ssl_tests.pl`:
220
221 $ ./config
222 $ cd test
223 $ TOP=.. perl -I ../util/perl/ generate_ssl_tests.pl \
224 ssl-tests/my.cnf.in default > ssl-tests/my.cnf
225
226where `my.cnf.in` is your test input file and `default` is the provider to use.
227For all the pre-generated test files you should use the default provider.
228
229For example, to generate the test cases in `ssl-tests/01-simple.cnf.in`, do
230
231 $ TOP=.. perl -I ../util/perl/ generate_ssl_tests.pl \
232 ssl-tests/01-simple.cnf.in default > ssl-tests/01-simple.cnf
233
234Alternatively (hackish but simple), you can comment out
235
236 unlink glob $tmp_file;
237
238in `test/recipes/80-test_ssl_new.t` and run
239
240 $ make TESTS=test_ssl_new test
241
242This will save the generated output in a `*.tmp` file in the build directory.
243
2443. Update the number of tests planned in `test/recipes/80-test_ssl_new.t`. If
245 the test suite has any skip conditions, update those too (see
246 `test/recipes/80-test_ssl_new.t` for details).
247
248Running the tests with the test harness
249---------------------------------------
250
251 HARNESS_VERBOSE=yes make TESTS=test_ssl_new test
252
253Running a test manually
254-----------------------
255
256These steps are only needed during development. End users should run `make test`
257or follow the instructions above to run the SSL test suite.
258
259To run an SSL test manually from the command line, the `TEST_CERTS_DIR`
260environment variable to point to the location of the certs. E.g., from the root
261OpenSSL directory, do
262
263 $ CTLOG_FILE=test/ct/log_list.cnf TEST_CERTS_DIR=test/certs test/ssl_test \
264 test/ssl-tests/01-simple.cnf default
265
266or for shared builds
267
268 $ CTLOG_FILE=test/ct/log_list.cnf TEST_CERTS_DIR=test/certs \
269 util/wrap.pl test/ssl_test test/ssl-tests/01-simple.cnf default
270
271In the above examples, `default` is the provider to use.
272
273Note that the test expectations sometimes depend on the Configure settings. For
274example, the negotiated protocol depends on the set of available (enabled)
275protocols: a build with `enable-ssl3` has different test expectations than a
276build with `no-ssl3`.
277
278The Perl test harness automatically generates expected outputs, so users who
279just run `make test` do not need any extra steps.
280
281However, when running a test manually, keep in mind that the repository version
282of the generated `test/ssl-tests/*.cnf` correspond to expected outputs in with
283the default Configure options. To run `ssl_test` manually from the command line
284in a build with a different configuration, you may need to generate the right
285`*.cnf` file from the `*.cnf.in` input first.
286
287Running a test manually via make
288--------------------------------
289
290Individual tests may be run by adding the SSL_TESTS variable to the `make`
291command line. The SSL_TESTS variable is set to the list of input (or ".in")
292files. The values in SSL_TESTS are globbed.
293
294 $ make test TESTS=test_ssl_new SSL_TESTS="0*.cnf.in"
295
296 $ make test TESTS=test_ssl_new SSL_TESTS="01-simple.cnf.in 05-sni.cnf.in"
297