Tree @scrub-obsolete/main (Download .tar.gz)
- ..
- certs
- ct
- d2i-tests
- helpers
- ocsp-tests
- recipes
- smime-certs
- ssl-tests
- testutil
- aborttest.c
- acvp_test.c
- acvp_test.inc
- aesgcmtest.c
- afalgtest.c
- algorithmid_test.c
- asn1_decode_test.c
- asn1_dsa_internal_test.c
- asn1_encode_test.c
- asn1_internal_test.c
- asn1_string_table_test.c
- asn1_time_test.c
- asynciotest.c
- asynctest.c
- bad_dtls_test.c
- bftest.c
- bio_callback_test.c
- bio_core_test.c
- bio_enc_test.c
- bio_memleak_test.c
- bio_prefix_text.c
- bio_readbuffer_test.c
- bioprinttest.c
- bn_internal_test.c
- bn_rand_range.h
- bntest.c
- bntests.pl
- build.info
- ca-and-certs.cnf
- casttest.c
- CAtsa.cnf
- chacha_internal_test.c
- cipher_overhead_test.c
- cipherbytes_test.c
- cipherlist_test.c
- ciphername_test.c
- clienthellotest.c
- cmactest.c
- cmp_asn_test.c
- cmp_client_test.c
- cmp_ctx_test.c
- cmp_hdr_test.c
- cmp_msg_test.c
- cmp_protect_test.c
- cmp_server_test.c
- cmp_status_test.c
- cmp_vfy_test.c
- cms-examples.pl
- cmsapitest.c
- conf_include_test.c
- confdump.c
- constant_time_test.c
- context_internal_test.c
- crltest.c
- ct_test.c
- ctype_internal_test.c
- curve448_internal_test.c
- d2i_test.c
- dane-cross.in
- danetest.c
- danetest.in
- danetest.pem
- data.bin
- data2.bin
- default-and-fips.cnf
- default-and-legacy.cnf
- default.cnf
- defltfips_test.c
- destest.c
- dhtest.c
- drbgtest.c
- dsa_no_digest_size_test.c
- dsatest.c
- dtls_mtu_test.c
- dtlstest.c
- dtlsv1listentest.c
- ec_internal_test.c
- ecdsatest.c
- ecdsatest.h
- ecstresstest.c
- ectest.c
- endecode_test.c
- endecoder_legacy_test.c
- enginetest.c
- errtest.c
- evp_extra_test.c
- evp_extra_test2.c
- evp_fetch_prov_test.c
- evp_kdf_test.c
- evp_libctx_test.c
- evp_pkey_ctx_new_from_name.c
- evp_pkey_dparams_test.c
- evp_pkey_provided_test.c
- evp_test.c
- exdatatest.c
- exptest.c
- fake_rsaprov.c
- fake_rsaprov.h
- fatalerrtest.c
- ffc_internal_test.c
- filterprov.c
- filterprov.h
- fips-alt.cnf
- fips-and-base.cnf
- fips.cnf
- generate_buildtest.pl
- generate_ssl_tests.pl
- gmdifftest.c
- hexstr_test.c
- hmactest.c
- http_test.c
- ideatest.c
- igetest.c
- insta.priv.pem
- insta_ca.cert.pem
- keymgmt_internal_test.c
- legacy.cnf
- lhash_test.c
- localetest.c
- mdc2_internal_test.c
- mdc2test.c
- memleaktest.c
- modes_internal_test.c
- moduleloadtest.c
- namemap_internal_test.c
- ocspapitest.c
- ossl_store_test.c
- p_test.c
- packettest.c
- param_build_test.c
- params_api_test.c
- params_conversion_test.c
- params_test.c
- pbelutest.c
- pbetest.c
- pem_read_depr_test.c
- pemtest.c
- pkcs12_format_test.c
- pkcs7-1.pem
- pkcs7.pem
- pkcs7_test.c
- pkey_meth_kdf_test.c
- pkey_meth_test.c
- pkits-test.pl
- poly1305_internal_test.c
- property_test.c
- prov_config_test.c
- provfetchtest.c
- provider_fallback_test.c
- provider_internal_test.c
- provider_internal_test.cnf.in
- provider_pkey_test.c
- provider_status_test.c
- provider_test.c
- proxy.cnf
- rand_status_test.c
- rand_test.c
- rc2test.c
- rc4test.c
- rc5test.c
- rdrand_sanitytest.c
- README-dev.md
- README-external.md
- README.md
- README.ssltest.md
- recordlentest.c
- rsa_complex.c
- rsa_mp_test.c
- rsa_sp800_56b_test.c
- rsa_test.c
- run_tests.pl
- sanitytest.c
- secmemtest.c
- serverinfo.pem
- serverinfo2.pem
- servername_test.c
- session.pem
- sha_test.c
- shibboleth.pfx
- shlibloadtest.c
- simpledynamic.c
- simpledynamic.h
- siphash_internal_test.c
- sm2_internal_test.c
- sm3_internal_test.c
- sm4_internal_test.c
- smcont.bin
- smcont.txt
- smcont_zero.txt
- sparse_array_test.c
- srptest.c
- ssl_cert_table_internal_test.c
- ssl_ctx_test.c
- ssl_old_test.c
- ssl_test.c
- ssl_test.tmpl
- ssl_test_ctx_test.c
- ssl_test_ctx_test.cnf
- sslapitest.c
- sslbuffertest.c
- sslcorrupttest.c
- stack_test.c
- sysdefault.cnf
- sysdefaulttest.c
- test.cnf
- test_test.c
- testcrl.pem
- testdsa.pem
- testdsapub.pem
- testec-p256.pem
- testecpub-p256.pem
- tested25519.pem
- tested25519pub.pem
- tested448.pem
- tested448pub.pem
- testp7.pem
- testreq2.pem
- testrsa.pem
- testrsa2048.pem
- testrsa_withattrs.der
- testrsa_withattrs.pem
- testrsapss.pem
- testrsapssmandatory.pem
- testrsapub.pem
- testsid.pem
- testutil.h
- testx509.pem
- threadstest.c
- threadstest.h
- threadstest_fips.c
- time_offset_test.c
- tls-provider.c
- tls13ccstest.c
- tls13encryptiontest.c
- tls13secretstest.c
- uitest.c
- upcallstest.c
- user_property_test.c
- v3-cert1.pem
- v3-cert2.pem
- v3_ca_exts.cnf
- v3ext.c
- v3nametest.c
- verify_extra_test.c
- versions.c
- wpackettest.c
- x509_check_cert_pkey_test.c
- x509_dup_cert_test.c
- x509_internal_test.c
- x509_time_test.c
- x509aux.c
generate_ssl_tests.pl @scrub-obsolete/main — raw · history · blame
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 | #! /usr/bin/env perl # Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved. # # Licensed under the Apache License 2.0 (the "License"). You may not use # this file except in compliance with the License. You can obtain a copy # in the file LICENSE in the source distribution or at # https://www.openssl.org/source/license.html ## SSL testcase generator use strict; use warnings; use Cwd qw/abs_path/; use File::Basename; use File::Spec::Functions; use OpenSSL::Test qw/srctop_dir srctop_file/; use OpenSSL::Test::Utils; use FindBin; use lib "$FindBin::Bin/../util/perl"; use OpenSSL::fallback "$FindBin::Bin/../external/perl/MODULES.txt"; use Text::Template 1.46; my $input_file; my $provider; BEGIN { #Input file may be relative to cwd, but setup below changes the cwd, so #figure out the absolute path first $input_file = abs_path(shift); $provider = shift // ''; OpenSSL::Test::setup("no_test_here", quiet => 1); } use lib "$FindBin::Bin/ssl-tests"; use vars qw/@ISA/; push (@ISA, qw/Text::Template/); use ssltests_base; sub print_templates { my $source = srctop_file("test", "ssl_test.tmpl"); my $template = Text::Template->new(TYPE => 'FILE', SOURCE => $source); print "# Generated with generate_ssl_tests.pl\n\n"; my $num = scalar @ssltests::tests; # Add the implicit base configuration. foreach my $test (@ssltests::tests) { $test->{"server"} = { (%ssltests::base_server, %{$test->{"server"}}) }; if (defined $test->{"server2"}) { $test->{"server2"} = { (%ssltests::base_server, %{$test->{"server2"}}) }; } else { if ($test->{"server"}->{"extra"} && defined $test->{"server"}->{"extra"}->{"ServerNameCallback"}) { # Default is the same as server. $test->{"reuse_server2"} = 1; } # Do not emit an empty/duplicate "server2" section. $test->{"server2"} = { }; } if (defined $test->{"resume_server"}) { $test->{"resume_server"} = { (%ssltests::base_server, %{$test->{"resume_server"}}) }; } else { if (defined $test->{"test"}->{"HandshakeMode"} && $test->{"test"}->{"HandshakeMode"} eq "Resume") { # Default is the same as server. $test->{"reuse_resume_server"} = 1; } # Do not emit an empty/duplicate "resume-server" section. $test->{"resume_server"} = { }; } $test->{"client"} = { (%ssltests::base_client, %{$test->{"client"}}) }; if (defined $test->{"resume_client"}) { $test->{"resume_client"} = { (%ssltests::base_client, %{$test->{"resume_client"}}) }; } else { if (defined $test->{"test"}->{"HandshakeMode"} && $test->{"test"}->{"HandshakeMode"} eq "Resume") { # Default is the same as client. $test->{"reuse_resume_client"} = 1; } # Do not emit an empty/duplicate "resume-client" section. $test->{"resume_client"} = { }; } } # ssl_test expects to find a # # num_tests = n # # directive in the file. It'll then look for configuration directives # for n tests, that each look like this: # # test-n = test-section # # [test-section] # (SSL modules for client and server configuration go here.) # # [test-n] # (Test configuration goes here.) print "num_tests = $num\n\n"; # The conf module locations must come before everything else, because # they look like # # test-n = test-section # # and you can't mix and match them with sections. my $idx = 0; foreach my $test (@ssltests::tests) { my $testname = "${idx}-" . $test->{'name'}; print "test-$idx = $testname\n"; $idx++; } $idx = 0; foreach my $test (@ssltests::tests) { my $testname = "${idx}-" . $test->{'name'}; my $text = $template->fill_in( HASH => [{ idx => $idx, testname => $testname } , $test], DELIMITERS => [ "{-", "-}" ]); print "# ===========================================================\n\n"; print "$text\n"; $idx++; } } # Shamelessly copied from Configure. sub read_config { my $fname = shift; my $provider = shift; local $ssltests::fips_mode = $provider eq "fips"; local $ssltests::no_deflt_libctx = $provider eq "default" || $provider eq "fips"; open(INPUT, "< $fname") or die "Can't open input file '$fname'!\n"; local $/ = undef; my $content = <INPUT>; close(INPUT); eval $content; warn $@ if $@; } # Reads the tests into ssltests::tests. read_config($input_file, $provider); print_templates(); 1; |