Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
certs/ | 12-May-2024 | - | 9,020 | 8,514 | ||
ct/ | 12-May-2024 | - | 54 | 42 | ||
d2i-tests/ | 12-May-2024 | - | ||||
helpers/ | 12-May-2024 | - | 5,479 | 4,097 | ||
ocsp-tests/ | 12-May-2024 | - | 1,915 | 1,847 | ||
recipes/ | 12-May-2024 | - | 212,657 | 186,886 | ||
smime-certs/ | 12-May-2024 | - | 627 | 557 | ||
ssl-tests/ | 12-May-2024 | - | 41,283 | 32,108 | ||
testutil/ | 12-May-2024 | - | 2,898 | 2,153 | ||
CAtsa.cnf | D | 12-May-2024 | 4.9 KiB | 165 | 128 | |
README-dev.md | D | 12-May-2024 | 5 KiB | 157 | 113 | |
README-external.md | D | 12-May-2024 | 3.1 KiB | 117 | 74 | |
README.md | D | 12-May-2024 | 6.1 KiB | 171 | 113 | |
README.ssltest.md | D | 12-May-2024 | 10.4 KiB | 286 | 205 | |
aborttest.c | D | 12-May-2024 | 467 | 17 | 6 | |
acvp_test.c | D | 12-May-2024 | 51.7 KiB | 1,503 | 1,317 | |
acvp_test.inc | D | 12-May-2024 | 82 KiB | 2,036 | 1,967 | |
aesgcmtest.c | D | 12-May-2024 | 4.8 KiB | 137 | 114 | |
afalgtest.c | D | 12-May-2024 | 4.6 KiB | 161 | 123 | |
algorithmid_test.c | D | 12-May-2024 | 10.3 KiB | 329 | 268 | |
asn1_decode_test.c | D | 12-May-2024 | 6.3 KiB | 236 | 163 | |
asn1_dsa_internal_test.c | D | 12-May-2024 | 5.7 KiB | 185 | 138 | |
asn1_encode_test.c | D | 12-May-2024 | 29.7 KiB | 909 | 698 | |
asn1_internal_test.c | D | 12-May-2024 | 5.4 KiB | 201 | 123 | |
asn1_string_table_test.c | D | 12-May-2024 | 1.9 KiB | 78 | 53 | |
asn1_time_test.c | D | 12-May-2024 | 17.7 KiB | 419 | 347 | |
asynciotest.c | D | 12-May-2024 | 12.3 KiB | 418 | 297 | |
asynctest.c | D | 12-May-2024 | 12.8 KiB | 436 | 355 | |
bad_dtls_test.c | D | 12-May-2024 | 20.3 KiB | 608 | 435 | |
bftest.c | D | 12-May-2024 | 15.9 KiB | 488 | 414 | |
bio_callback_test.c | D | 12-May-2024 | 13.6 KiB | 361 | 316 | |
bio_core_test.c | D | 12-May-2024 | 3.4 KiB | 120 | 89 | |
bio_enc_test.c | D | 12-May-2024 | 7.4 KiB | 267 | 214 | |
bio_memleak_test.c | D | 12-May-2024 | 7.3 KiB | 296 | 240 | |
bio_prefix_text.c | D | 12-May-2024 | 7.4 KiB | 268 | 209 | |
bio_readbuffer_test.c | D | 12-May-2024 | 3.8 KiB | 132 | 96 | |
bioprinttest.c | D | 12-May-2024 | 12.5 KiB | 363 | 291 | |
bn_internal_test.c | D | 12-May-2024 | 2.6 KiB | 106 | 75 | |
bn_rand_range.h | D | 12-May-2024 | 2 KiB | 59 | 44 | |
bntest.c | D | 12-May-2024 | 95.2 KiB | 3,084 | 2,570 | |
bntests.pl | D | 12-May-2024 | 4.5 KiB | 157 | 121 | |
build.info | D | 12-May-2024 | 36.1 KiB | 950 | 756 | |
ca-and-certs.cnf | D | 12-May-2024 | 2.2 KiB | 90 | 76 | |
casttest.c | D | 12-May-2024 | 3.2 KiB | 119 | 85 | |
chacha_internal_test.c | D | 12-May-2024 | 8 KiB | 191 | 163 | |
cipher_overhead_test.c | D | 12-May-2024 | 1.7 KiB | 63 | 42 | |
cipherbytes_test.c | D | 12-May-2024 | 4.4 KiB | 150 | 115 | |
cipherlist_test.c | D | 12-May-2024 | 7 KiB | 254 | 198 | |
ciphername_test.c | D | 12-May-2024 | 20.6 KiB | 471 | 436 | |
clienthellotest.c | D | 12-May-2024 | 8.5 KiB | 270 | 178 | |
cmactest.c | D | 12-May-2024 | 6 KiB | 217 | 168 | |
cmp_asn_test.c | D | 12-May-2024 | 3.6 KiB | 122 | 93 | |
cmp_client_test.c | D | 12-May-2024 | 13.2 KiB | 404 | 336 | |
cmp_ctx_test.c | D | 12-May-2024 | 30.6 KiB | 894 | 766 | |
cmp_hdr_test.c | D | 12-May-2024 | 13.9 KiB | 495 | 387 | |
cmp_msg_test.c | D | 12-May-2024 | 18.1 KiB | 598 | 505 | |
cmp_protect_test.c | D | 12-May-2024 | 21.2 KiB | 618 | 526 | |
cmp_server_test.c | D | 12-May-2024 | 5.5 KiB | 173 | 122 | |
cmp_status_test.c | D | 12-May-2024 | 3.2 KiB | 113 | 72 | |
cmp_vfy_test.c | D | 12-May-2024 | 22.8 KiB | 685 | 583 | |
cms-examples.pl | D | 12-May-2024 | 8.7 KiB | 366 | 289 | |
cmsapitest.c | D | 12-May-2024 | 15.6 KiB | 413 | 358 | |
conf_include_test.c | D | 12-May-2024 | 5.7 KiB | 239 | 180 | |
confdump.c | D | 12-May-2024 | 1.4 KiB | 52 | 36 | |
constant_time_test.c | D | 12-May-2024 | 12.3 KiB | 415 | 351 | |
context_internal_test.c | D | 12-May-2024 | 3.6 KiB | 138 | 87 | |
crltest.c | D | 12-May-2024 | 15 KiB | 414 | 327 | |
ct_test.c | D | 12-May-2024 | 15.8 KiB | 528 | 415 | |
ctype_internal_test.c | D | 12-May-2024 | 2.7 KiB | 91 | 67 | |
curve448_internal_test.c | D | 12-May-2024 | 35.9 KiB | 738 | 643 | |
d2i_test.c | D | 12-May-2024 | 4.1 KiB | 170 | 120 | |
dane-cross.in | D | 12-May-2024 | 6.9 KiB | 114 | 112 | |
danetest.c | D | 12-May-2024 | 11 KiB | 431 | 343 | |
danetest.in | D | 12-May-2024 | 87.6 KiB | 1,879 | 1,822 | |
danetest.pem | D | 12-May-2024 | 652 | 15 | 14 | |
data.bin | D | 12-May-2024 | 128 | 5 | 3 | |
data2.bin | D | 12-May-2024 | 3.7 KiB | 62 | 56 | |
default-and-fips.cnf | D | 12-May-2024 | 264 | 17 | 11 | |
default-and-legacy.cnf | D | 12-May-2024 | 271 | 18 | 12 | |
default.cnf | D | 12-May-2024 | 222 | 14 | 9 | |
defltfips_test.c | D | 12-May-2024 | 3 KiB | 109 | 69 | |
destest.c | D | 12-May-2024 | 30.7 KiB | 872 | 740 | |
dhtest.c | D | 12-May-2024 | 35.3 KiB | 932 | 758 | |
drbgtest.c | D | 12-May-2024 | 26.9 KiB | 907 | 585 | |
dsa_no_digest_size_test.c | D | 12-May-2024 | 8.5 KiB | 252 | 185 | |
dsatest.c | D | 12-May-2024 | 12.7 KiB | 339 | 296 | |
dtls_mtu_test.c | D | 12-May-2024 | 7.1 KiB | 243 | 167 | |
dtlstest.c | D | 12-May-2024 | 18.4 KiB | 582 | 411 | |
dtlsv1listentest.c | D | 12-May-2024 | 12.3 KiB | 358 | 299 | |
ec_internal_test.c | D | 12-May-2024 | 14.6 KiB | 463 | 347 | |
ecdsatest.c | D | 12-May-2024 | 13 KiB | 383 | 250 | |
ecdsatest.h | D | 12-May-2024 | 673.6 KiB | 10,215 | 10,189 | |
ecstresstest.c | D | 12-May-2024 | 4.1 KiB | 157 | 112 | |
ectest.c | D | 12-May-2024 | 121.8 KiB | 3,045 | 2,403 | |
endecode_test.c | D | 12-May-2024 | 57.1 KiB | 1,491 | 1,270 | |
endecoder_legacy_test.c | D | 12-May-2024 | 27.8 KiB | 732 | 595 | |
enginetest.c | D | 12-May-2024 | 13 KiB | 466 | 342 | |
errtest.c | D | 12-May-2024 | 10.5 KiB | 349 | 243 | |
evp_extra_test.c | D | 12-May-2024 | 159.4 KiB | 4,795 | 3,903 | |
evp_extra_test2.c | D | 12-May-2024 | 49.1 KiB | 1,138 | 958 | |
evp_fetch_prov_test.c | D | 12-May-2024 | 10.4 KiB | 393 | 309 | |
evp_kdf_test.c | D | 12-May-2024 | 56.1 KiB | 1,681 | 1,389 | |
evp_libctx_test.c | D | 12-May-2024 | 29.3 KiB | 767 | 613 | |
evp_pkey_ctx_new_from_name.c | D | 12-May-2024 | 279 | 15 | 11 | |
evp_pkey_dparams_test.c | D | 12-May-2024 | 13.5 KiB | 325 | 289 | |
evp_pkey_provided_test.c | D | 12-May-2024 | 67.5 KiB | 1,753 | 1,491 | |
evp_test.c | D | 12-May-2024 | 119 KiB | 4,139 | 3,474 | |
exdatatest.c | D | 12-May-2024 | 8.1 KiB | 320 | 246 | |
exptest.c | D | 12-May-2024 | 8.4 KiB | 309 | 239 | |
ext_internal_test.c | D | 12-May-2024 | 2.8 KiB | 106 | 88 | |
fake_rsaprov.c | D | 12-May-2024 | 11.6 KiB | 415 | 309 | |
fake_rsaprov.h | D | 12-May-2024 | 500 | 15 | 3 | |
fatalerrtest.c | D | 12-May-2024 | 2.9 KiB | 102 | 69 | |
ffc_internal_test.c | D | 12-May-2024 | 27.3 KiB | 714 | 580 | |
filterprov.c | D | 12-May-2024 | 7.2 KiB | 239 | 167 | |
filterprov.h | D | 12-May-2024 | 523 | 15 | 4 | |
fips-alt.cnf | D | 12-May-2024 | 376 | 17 | 12 | |
fips-and-base.cnf | D | 12-May-2024 | 255 | 17 | 11 | |
fips.cnf | D | 12-May-2024 | 474 | 20 | 14 | |
fips_version_test.c | D | 12-May-2024 | 1.7 KiB | 79 | 58 | |
generate_buildtest.pl | D | 12-May-2024 | 796 | 35 | 21 | |
generate_ssl_tests.pl | D | 12-May-2024 | 4.7 KiB | 156 | 92 | |
gmdifftest.c | D | 12-May-2024 | 1.9 KiB | 68 | 45 | |
hexstr_test.c | D | 12-May-2024 | 3.3 KiB | 135 | 109 | |
hmactest.c | D | 12-May-2024 | 8.2 KiB | 303 | 240 | |
http_test.c | D | 12-May-2024 | 12 KiB | 395 | 328 | |
ideatest.c | D | 12-May-2024 | 3.9 KiB | 127 | 92 | |
igetest.c | D | 12-May-2024 | 16.4 KiB | 463 | 378 | |
insta.priv.pem | D | 12-May-2024 | 1.6 KiB | 28 | 27 | |
insta_ca.cert.pem | D | 12-May-2024 | 1.3 KiB | 23 | 22 | |
keymgmt_internal_test.c | D | 12-May-2024 | 11.4 KiB | 359 | 277 | |
legacy.cnf | D | 12-May-2024 | 219 | 14 | 9 | |
lhash_test.c | D | 12-May-2024 | 6 KiB | 250 | 188 | |
localetest.c | D | 12-May-2024 | 6.4 KiB | 137 | 117 | |
mdc2_internal_test.c | D | 12-May-2024 | 1.7 KiB | 78 | 40 | |
mdc2test.c | D | 12-May-2024 | 2.6 KiB | 96 | 69 | |
memleaktest.c | D | 12-May-2024 | 1.7 KiB | 63 | 32 | |
modes_internal_test.c | D | 12-May-2024 | 29.2 KiB | 900 | 742 | |
moduleloadtest.c | D | 12-May-2024 | 1.3 KiB | 54 | 32 | |
namemap_internal_test.c | D | 12-May-2024 | 4.8 KiB | 184 | 134 | |
ocspapitest.c | D | 12-May-2024 | 6.3 KiB | 237 | 195 | |
ossl_store_test.c | D | 12-May-2024 | 5.9 KiB | 239 | 199 | |
p_test.c | D | 12-May-2024 | 10.9 KiB | 321 | 223 | |
packettest.c | D | 12-May-2024 | 15.2 KiB | 500 | 409 | |
param_build_test.c | D | 12-May-2024 | 17.1 KiB | 443 | 385 | |
params_api_test.c | D | 12-May-2024 | 24.6 KiB | 715 | 616 | |
params_conversion_test.c | D | 12-May-2024 | 11.9 KiB | 369 | 319 | |
params_test.c | D | 12-May-2024 | 22.8 KiB | 669 | 462 | |
pbelutest.c | D | 12-May-2024 | 1.4 KiB | 51 | 30 | |
pbetest.c | D | 12-May-2024 | 4 KiB | 137 | 101 | |
pem_read_depr_test.c | D | 12-May-2024 | 4.1 KiB | 217 | 158 | |
pemtest.c | D | 12-May-2024 | 3 KiB | 108 | 84 | |
pkcs12_format_test.c | D | 12-May-2024 | 33.2 KiB | 896 | 671 | |
pkcs7-1.pem | D | 12-May-2024 | 851 | 16 | 15 | |
pkcs7.pem | D | 12-May-2024 | 3.7 KiB | 55 | 54 | |
pkcs7_test.c | D | 12-May-2024 | 5.7 KiB | 104 | 89 | |
pkey_meth_kdf_test.c | D | 12-May-2024 | 5.8 KiB | 205 | 182 | |
pkey_meth_test.c | D | 12-May-2024 | 2.3 KiB | 91 | 66 | |
pkits-test.pl | D | 12-May-2024 | 31.2 KiB | 906 | 843 | |
poly1305_internal_test.c | D | 12-May-2024 | 56.2 KiB | 1,576 | 1,402 | |
property_test.c | D | 12-May-2024 | 22 KiB | 643 | 558 | |
prov_config_test.c | D | 12-May-2024 | 1.4 KiB | 62 | 37 | |
provfetchtest.c | D | 12-May-2024 | 8.4 KiB | 298 | 235 | |
provider_fallback_test.c | D | 12-May-2024 | 1.4 KiB | 58 | 38 | |
provider_internal_test.c | D | 12-May-2024 | 4 KiB | 148 | 107 | |
provider_internal_test.cnf.in | D | 12-May-2024 | 347 | 17 | 12 | |
provider_pkey_test.c | D | 12-May-2024 | 6.6 KiB | 247 | 170 | |
provider_status_test.c | D | 12-May-2024 | 7.2 KiB | 246 | 199 | |
provider_test.c | D | 12-May-2024 | 7.7 KiB | 271 | 190 | |
proxy.cnf | D | 12-May-2024 | 1.7 KiB | 61 | 50 | |
punycode_test.c | D | 12-May-2024 | 8 KiB | 221 | 193 | |
rand_status_test.c | D | 12-May-2024 | 673 | 28 | 11 | |
rand_test.c | D | 12-May-2024 | 2 KiB | 54 | 39 | |
rc2test.c | D | 12-May-2024 | 2.1 KiB | 75 | 49 | |
rc4test.c | D | 12-May-2024 | 4.1 KiB | 135 | 104 | |
rc5test.c | D | 12-May-2024 | 9.1 KiB | 244 | 207 | |
rdrand_sanitytest.c | D | 12-May-2024 | 3.3 KiB | 123 | 77 | |
recordlentest.c | D | 12-May-2024 | 5.4 KiB | 205 | 153 | |
rsa_complex.c | D | 12-May-2024 | 909 | 33 | 13 | |
rsa_mp_test.c | D | 12-May-2024 | 11.3 KiB | 297 | 237 | |
rsa_sp800_56b_test.c | D | 12-May-2024 | 20.9 KiB | 549 | 444 | |
rsa_test.c | D | 12-May-2024 | 14 KiB | 401 | 309 | |
run_tests.pl | D | 12-May-2024 | 11.9 KiB | 340 | 234 | |
sanitytest.c | D | 12-May-2024 | 4.4 KiB | 144 | 104 | |
secmemtest.c | D | 12-May-2024 | 5.9 KiB | 184 | 112 | |
serverinfo.pem | D | 12-May-2024 | 740 | 17 | 15 | |
serverinfo2.pem | D | 12-May-2024 | 412 | 9 | 8 | |
servername_test.c | D | 12-May-2024 | 7.4 KiB | 269 | 194 | |
session.pem | D | 12-May-2024 | 1.9 KiB | 32 | 31 | |
sha_test.c | D | 12-May-2024 | 3.7 KiB | 111 | 88 | |
shibboleth.pfx | D | 12-May-2024 | 2.5 KiB | |||
shlibloadtest.c | D | 12-May-2024 | 8.9 KiB | 293 | 230 | |
simpledynamic.c | D | 12-May-2024 | 1.7 KiB | 79 | 55 | |
simpledynamic.h | D | 12-May-2024 | 1.2 KiB | 52 | 30 | |
siphash_internal_test.c | D | 12-May-2024 | 17.1 KiB | 292 | 244 | |
sm2_internal_test.c | D | 12-May-2024 | 13.6 KiB | 429 | 342 | |
sm3_internal_test.c | D | 12-May-2024 | 2.6 KiB | 85 | 54 | |
sm4_internal_test.c | D | 12-May-2024 | 2.3 KiB | 87 | 49 | |
smcont.bin | D | 12-May-2024 | 7.8 KiB | |||
smcont.txt | D | 12-May-2024 | 83 | 1 | 1 | |
smcont_zero.txt | D | 12-May-2024 | 0 | |||
sparse_array_test.c | D | 12-May-2024 | 5.6 KiB | 198 | 164 | |
srptest.c | D | 12-May-2024 | 8.1 KiB | 283 | 204 | |
ssl_cert_table_internal_test.c | D | 12-May-2024 | 2.1 KiB | 65 | 44 | |
ssl_ctx_test.c | D | 12-May-2024 | 2.3 KiB | 77 | 56 | |
ssl_old_test.c | D | 12-May-2024 | 98.7 KiB | 3,000 | 2,467 | |
ssl_test.c | D | 12-May-2024 | 19.9 KiB | 571 | 473 | |
ssl_test.tmpl | D | 12-May-2024 | 4.3 KiB | 127 | 122 | |
ssl_test_ctx_test.c | D | 12-May-2024 | 9.1 KiB | 265 | 215 | |
ssl_test_ctx_test.cnf | D | 12-May-2024 | 2 KiB | 98 | 69 | |
sslapitest.c | D | 12-May-2024 | 339.3 KiB | 10,182 | 7,504 | |
sslbuffertest.c | D | 12-May-2024 | 5.3 KiB | 184 | 117 | |
sslcorrupttest.c | D | 12-May-2024 | 7.3 KiB | 281 | 198 | |
stack_test.c | D | 12-May-2024 | 9.4 KiB | 389 | 304 | |
sysdefault.cnf | D | 12-May-2024 | 401 | 23 | 14 | |
sysdefaulttest.c | D | 12-May-2024 | 1.1 KiB | 51 | 35 | |
test.cnf | D | 12-May-2024 | 2.2 KiB | 75 | 63 | |
test_test.c | D | 12-May-2024 | 18.2 KiB | 580 | 504 | |
testcrl.pem | D | 12-May-2024 | 938 | 17 | 16 | |
testdsa.pem | D | 12-May-2024 | 672 | 13 | 12 | |
testdsapub.pem | D | 12-May-2024 | 654 | 13 | 12 | |
testec-p112r1.pem | D | 12-May-2024 | 221 | 8 | 7 | |
testec-p256.pem | D | 12-May-2024 | 227 | 6 | 5 | |
testecpub-p256.pem | D | 12-May-2024 | 178 | 5 | 4 | |
tested25519.pem | D | 12-May-2024 | 119 | 4 | 3 | |
tested25519pub.pem | D | 12-May-2024 | 113 | 4 | 3 | |
tested448.pem | D | 12-May-2024 | 156 | 5 | 4 | |
tested448pub.pem | D | 12-May-2024 | 146 | 5 | 4 | |
testp7.pem | D | 12-May-2024 | 2.8 KiB | 47 | 46 | |
testreq2.pem | D | 12-May-2024 | 371 | 8 | 7 | |
testrsa.pem | D | 12-May-2024 | 526 | 11 | 10 | |
testrsa2048.pem | D | 12-May-2024 | 1.7 KiB | 30 | 28 | |
testrsa_withattrs.der | D | 12-May-2024 | 1.2 KiB | |||
testrsa_withattrs.pem | D | 12-May-2024 | 1.7 KiB | 30 | 29 | |
testrsapss.pem | D | 12-May-2024 | 1.7 KiB | 29 | 28 | |
testrsapssmandatory.pem | D | 12-May-2024 | 1.7 KiB | 30 | 29 | |
testrsapub.pem | D | 12-May-2024 | 182 | 5 | 4 | |
testsid.pem | D | 12-May-2024 | 2.3 KiB | 39 | 38 | |
testutil.h | D | 12-May-2024 | 26.4 KiB | 634 | 310 | |
testx509.pem | D | 12-May-2024 | 562 | 11 | 10 | |
threadstest.c | D | 12-May-2024 | 19.8 KiB | 729 | 546 | |
threadstest.h | D | 12-May-2024 | 1.4 KiB | 83 | 52 | |
threadstest_fips.c | D | 12-May-2024 | 1.1 KiB | 50 | 28 | |
time_offset_test.c | D | 12-May-2024 | 3.2 KiB | 114 | 83 | |
tls-provider.c | D | 12-May-2024 | 25.6 KiB | 858 | 627 | |
tls13ccstest.c | D | 12-May-2024 | 15.2 KiB | 513 | 386 | |
tls13encryptiontest.c | D | 12-May-2024 | 13.8 KiB | 418 | 324 | |
tls13secretstest.c | D | 12-May-2024 | 11.5 KiB | 409 | 312 | |
uitest.c | D | 12-May-2024 | 2.2 KiB | 95 | 63 | |
upcallstest.c | D | 12-May-2024 | 3.6 KiB | 122 | 90 | |
user_property_test.c | D | 12-May-2024 | 3.8 KiB | 133 | 101 | |
v3-cert1.pem | D | 12-May-2024 | 944 | 17 | 16 | |
v3-cert2.pem | D | 12-May-2024 | 940 | 17 | 16 | |
v3_ca_exts.cnf | D | 12-May-2024 | 136 | 6 | 4 | |
v3ext.c | D | 12-May-2024 | 11.5 KiB | 348 | 268 | |
v3nametest.c | D | 12-May-2024 | 19.8 KiB | 717 | 509 | |
verify_extra_test.c | D | 12-May-2024 | 8.7 KiB | 342 | 244 | |
versions.c | D | 12-May-2024 | 674 | 22 | 10 | |
wpackettest.c | D | 12-May-2024 | 17.8 KiB | 446 | 324 | |
x509_check_cert_pkey_test.c | D | 12-May-2024 | 4.9 KiB | 180 | 135 | |
x509_dup_cert_test.c | D | 12-May-2024 | 1.4 KiB | 54 | 34 | |
x509_internal_test.c | D | 12-May-2024 | 3 KiB | 111 | 79 | |
x509_time_test.c | D | 12-May-2024 | 17.7 KiB | 605 | 455 | |
x509aux.c | D | 12-May-2024 | 5.2 KiB | 187 | 149 |
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; /* Indicate success */ 134 } 135 136You should use the `TEST_xxx` macros provided by `testutil.h` to test all failure 137conditions. These macros produce an error message in a standard format if the 138condition is not met (and nothing if the condition is met). Additional 139information can be presented with the `TEST_info` macro that takes a `printf` 140format string and arguments. `TEST_error` is useful for complicated conditions, 141it also takes a `printf` format string and argument. In all cases the `TEST_xxx` 142macros are guaranteed to evaluate their arguments exactly once. This means 143that expressions with side effects are allowed as parameters. Thus, 144 145 if (!TEST_ptr(ptr = OPENSSL_malloc(..))) 146 147works fine and can be used in place of: 148 149 ptr = OPENSSL_malloc(..); 150 if (!TEST_ptr(ptr)) 151 152The former produces a more meaningful message on failure than the latter. 153 154Note that the test infrastructure automatically sets up all required environment 155variables (such as `OPENSSL_MODULES`, `OPENSSL_CONF`, etc.) for the tests. 156Individual tests may choose to override the default settings as required. 157
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 shared 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 shared 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 90Updating test suites 91==================== 92 93To update the commit for any of the above test suites: 94 95- Make sure the submodules are cloned locally: 96 97 $ git submodule update --init --recursive 98 99- Enter subdirectory and pull from the repository (use a specific branch/tag if required): 100 101 $ cd `<submodule-dir>` 102 $ git pull origin master 103 104- Go to root directory, there should be a new git status: 105 106 $ cd ../ 107 $ git status 108 ... 109 # modified: `<submodule-dir>` (new commits) 110 ... 111 112- Add/commit/push the update 113 114 $ git add `<submodule-dir>` 115 $ git commit -m `"Updated <submodule> to latest commit"` 116 $ git push 117
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 152Randomisation of Test Ordering 153------------------------------ 154 155By default, the test harness will execute tests in the order they were added. 156By setting the `OPENSSL_TEST_RAND_ORDER` environment variable to zero, the 157test ordering will be randomised. If a randomly ordered test fails, the 158seed value used will be reported. Setting the `OPENSSL_TEST_RAND_ORDER` 159environment variable to this value will rerun the tests in the same 160order. This assures repeatability of randomly ordered test runs. 161This repeatability is independent of the operating system, processor or 162platform used. 163 164To randomise the test ordering: 165 166 $ make OPENSSL_TEST_RAND_ORDER=0 test 167 168To run the tests using the order defined by the random seed `42`: 169 170 $ make OPENSSL_TEST_RAND_ORDER=42 test 171
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