| $! TESTS.COM -- Performs the necessary tests |
| $! |
| $! P1 tests to be performed. Empty means all. |
| $! P2 Pointer size: "", "32", or "64". |
| $! |
| $! Announce/identify. |
| $! |
| $ proc = f$environment( "procedure") |
| $ write sys$output "@@@ "+ - |
| f$parse( proc, , , "name")+ f$parse( proc, , , "type") |
| $! |
| $ __proc = f$element(0,";",f$environment("procedure")) |
| $ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;" |
| $ __save_default = f$environment("default") |
| $ __arch = "VAX" |
| $ if f$getsyi("cpu") .ge. 128 then - |
| __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") |
| $ if __arch .eqs. "" then __arch = "UNK" |
| $! |
| $ __archd = __arch |
| $ pointer_size = "" |
| $ if (p2 .eq. "64") |
| $ then |
| $ pointer_size = "64" |
| $ __archd = __arch+ "_64" |
| $ endif |
| $! |
| $ texe_dir := sys$disk:[-.'__archd'.exe.test] |
| $ exe_dir := sys$disk:[-.'__archd'.exe.apps] |
| $ engines_dir := sys$disk:[-.'__archd'.exe.engines] |
| $ |
| $ set default '__here' |
| $ |
| $ ROOT = F$PARSE("sys$disk:[-]A.;0",,,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" |
| $ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") |
| $ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - |
| - ".][000000" - "[000000." - "][" - "[" - "]" |
| $ ROOT = ROOT_DEV + "[" + ROOT_DIR |
| $ DEFINE/NOLOG SSLROOT 'ROOT'.APPS.] /TRANS=CONC |
| $ openssl_conf := sslroot:[000000]openssl-vms.cnf |
| $ |
| $ on control_y then goto exit |
| $ on error then goto exit |
| $ |
| $ if p1 .nes. "" |
| $ then |
| $ tests = p1 |
| $ else |
| $! NOTE: This list reflects the list of dependencies following the |
| $! "alltests" target in Makefile. This should make it easy to see |
| $! if there's a difference that needs to be taken care of. |
| $ tests := - |
| test_des,test_idea,test_sha,test_md4,test_md5,test_hmac,- |
| test_md2,test_mdc2,test_wp,- |
| test_rmd,test_rc2,test_rc4,test_rc5,test_bf,test_cast,- |
| test_rand,test_bn,test_ec,test_ecdsa,test_ecdh,- |
| test_enc,test_x509,test_rsa,test_crl,test_sid,- |
| test_gen,test_req,test_pkcs7,test_verify,test_dh,test_dsa,- |
| test_ss,test_ca,test_engine,test_evp,test_evp_extra,test_ssl,test_tsa,- |
| test_ige,test_jpake,test_srp,test_cms,test_v3name,test_ocsp,- |
| test_gost2814789,test_heartbeat,test_p5_crpt2,- |
| test_constant_time |
| $ endif |
| $ tests = f$edit(tests,"COLLAPSE") |
| $ |
| $ BNTEST := bntest |
| $ ECTEST := ectest |
| $ ECDSATEST := ecdsatest |
| $ ECDHTEST := ecdhtest |
| $ EXPTEST := exptest |
| $ IDEATEST := ideatest |
| $ SHA1TEST := sha1test |
| $ SHA256TEST := sha256t |
| $ SHA512TEST := sha512t |
| $ MDC2TEST := mdc2test |
| $ RMDTEST := rmdtest |
| $ MD2TEST := md2test |
| $ MD4TEST := md4test |
| $ MD5TEST := md5test |
| $ HMACTEST := hmactest |
| $ WPTEST := wp_test |
| $ RC2TEST := rc2test |
| $ RC4TEST := rc4test |
| $ RC5TEST := rc5test |
| $ BFTEST := bftest |
| $ CASTTEST := casttest |
| $ DESTEST := destest |
| $ RANDTEST := randtest |
| $ DHTEST := dhtest |
| $ DSATEST := dsatest |
| $ METHTEST := methtest |
| $ SSLTEST := ssltest |
| $ RSATEST := rsa_test |
| $ ENGINETEST := enginetest |
| $ GOST2814789TEST := gost2814789test |
| $ EVPTEST := evp_test |
| $ EVPEXTRATEST := evp_extra_test |
| $ P5_CRPT2_TEST := p5_crpt2_test |
| $ IGETEST := igetest |
| $ JPAKETEST := jpaketest |
| $ SRPTEST := srptest |
| $ V3NAMETEST := v3nametest |
| $ HEARTBEATTEST := heartbeat_test |
| $ CONSTTIMETEST := constant_time_test |
| $! |
| $ tests_i = 0 |
| $ loop_tests: |
| $ tests_e = f$element(tests_i,",",tests) |
| $ tests_i = tests_i + 1 |
| $ if tests_e .eqs. "," then goto exit |
| $ write sys$output "---> ''tests_e'" |
| $ gosub 'tests_e' |
| $ goto loop_tests |
| $ |
| $ test_evp: |
| $ mcr 'texe_dir''evptest' 'ROOT'.CRYPTO.EVP]evptests.txt |
| $ return |
| $ test_evp_extra: |
| $ mcr 'texe_dir''evpextratest' |
| $ return |
| $ test_p5_crpt2: |
| $ mcr 'texe_dir''p5_crpt2_test' |
| $ return |
| $ test_des: |
| $ mcr 'texe_dir''destest' |
| $ return |
| $ test_idea: |
| $ mcr 'texe_dir''ideatest' |
| $ return |
| $ test_sha: |
| $ mcr 'texe_dir''sha1test' |
| $ mcr 'texe_dir''sha256test' |
| $ mcr 'texe_dir''sha512test' |
| $ return |
| $ test_mdc2: |
| $ mcr 'texe_dir''mdc2test' |
| $ return |
| $ test_md5: |
| $ mcr 'texe_dir''md5test' |
| $ return |
| $ test_md4: |
| $ mcr 'texe_dir''md4test' |
| $ return |
| $ test_hmac: |
| $ mcr 'texe_dir''hmactest' |
| $ return |
| $ test_wp: |
| $ mcr 'texe_dir''wptest' |
| $ return |
| $ test_md2: |
| $ mcr 'texe_dir''md2test' |
| $ return |
| $ test_rmd: |
| $ mcr 'texe_dir''rmdtest' |
| $ return |
| $ test_bf: |
| $ mcr 'texe_dir''bftest' |
| $ return |
| $ test_cast: |
| $ mcr 'texe_dir''casttest' |
| $ return |
| $ test_rc2: |
| $ mcr 'texe_dir''rc2test' |
| $ return |
| $ test_rc4: |
| $ mcr 'texe_dir''rc4test' |
| $ return |
| $ test_rc5: |
| $ mcr 'texe_dir''rc5test' |
| $ return |
| $ test_rand: |
| $ mcr 'texe_dir''randtest' |
| $ return |
| $ test_gost2814789: |
| $ define/user OPENSSL_ENGINES 'engines_dir' |
| $ mcr 'texe_dir''gost2814789test' |
| $ return |
| $ test_enc: |
| $ @testenc.com 'pointer_size' |
| $ return |
| $ test_x509: |
| $ set noon |
| $ define sys$error test_x509.err |
| $ write sys$output "test normal x509v1 certificate" |
| $ @tx509.com "" 'pointer_size' |
| $ write sys$output "test first x509v3 certificate" |
| $ @tx509.com v3-cert1.pem 'pointer_size' |
| $ write sys$output "test second x509v3 certificate" |
| $ @tx509.com v3-cert2.pem 'pointer_size' |
| $ deassign sys$error |
| $ set on |
| $ return |
| $ test_rsa: |
| $ set noon |
| $ define sys$error test_rsa.err |
| $ @trsa.com "" 'pointer_size' |
| $ deassign sys$error |
| $ mcr 'texe_dir''rsatest' |
| $ set on |
| $ return |
| $ test_crl: |
| $ set noon |
| $ define sys$error test_crl.err |
| $ @tcrl.com "" 'pointer_size' |
| $ deassign sys$error |
| $ set on |
| $ return |
| $ test_sid: |
| $ set noon |
| $ define sys$error test_sid.err |
| $ @tsid.com "" 'pointer_size' |
| $ deassign sys$error |
| $ set on |
| $ return |
| $ test_req: |
| $ set noon |
| $ define sys$error test_req.err |
| $ @treq.com "" 'pointer_size' |
| $ @treq.com testreq2.pem 'pointer_size' |
| $ deassign sys$error |
| $ set on |
| $ return |
| $ test_pkcs7: |
| $ set noon |
| $ define sys$error test_pkcs7.err |
| $ @tpkcs7.com "" 'pointer_size' |
| $ @tpkcs7d.com "" 'pointer_size' |
| $ deassign sys$error |
| $ set on |
| $ return |
| $ test_bn: |
| $ write sys$output - |
| "starting big number library test, could take a while..." |
| $ set noon |
| $ define sys$error test_bn.err |
| $ define sys$output test_bn.out |
| $ @ bctest.com |
| $ status = $status |
| $ deassign sys$error |
| $ deassign sys$output |
| $ set on |
| $ if (status) |
| $ then |
| $ create /fdl = sys$input bntest-vms.tmp |
| FILE |
| ORGANIZATION sequential |
| RECORD |
| FORMAT stream_lf |
| $ define /user_mode sys$output bntest-vms.tmp |
| $ mcr 'texe_dir''bntest' |
| $ define /user_mode sys$input bntest-vms.tmp |
| $ define /user_mode sys$output bntest-vms.out |
| $ bc |
| $ @ bntest.com bntest-vms.out |
| $ status = $status |
| $ if (status) |
| $ then |
| $ delete bntest-vms.out;* |
| $ delete bntest-vms.tmp;* |
| $ endif |
| $ else |
| $ create /fdl = sys$input bntest-vms.sh |
| FILE |
| ORGANIZATION sequential |
| RECORD |
| FORMAT stream_lf |
| $ open /append bntest_file bntest-vms.sh |
| $ type /output = bntest_file sys$input: |
| << __FOO__ sh -c "`sh ./bctest`" | perl -e '$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $1";} elsif (!/^0$/) {die "\nFailed! bc: $_";} else {print STDERR "."; $i++;}} print STDERR "\n$i tests passed\n"' |
| $ define /user_mode sys$output bntest-vms.tmp |
| $ mcr 'texe_dir''bntest' |
| $ copy bntest-vms.tmp bntest_file |
| $ delete bntest-vms.tmp;* |
| $ type /output = bntest_file sys$input: |
| __FOO__ |
| $ close bntest_file |
| $ write sys$output "-- copy the [.test]bntest-vms.sh and [.test]bctest files to a Unix system and" |
| $ write sys$output "-- run bntest-vms.sh through sh or bash to verify that the bignum operations" |
| $ write sys$output "-- went well." |
| $ write sys$output "" |
| $ endif |
| $ write sys$output "test a^b%c implementations" |
| $ mcr 'texe_dir''exptest' |
| $ return |
| $ test_ec: |
| $ write sys$output "test elliptic curves" |
| $ mcr 'texe_dir''ectest' |
| $ return |
| $ test_ecdsa: |
| $ write sys$output "test ecdsa" |
| $ mcr 'texe_dir''ecdsatest' |
| $ return |
| $ test_ecdh: |
| $ write sys$output "test ecdh" |
| $ mcr 'texe_dir''ecdhtest' |
| $ return |
| $ test_verify: |
| $ write sys$output "The following command should have some OK's and some failures" |
| $ write sys$output "There are definitly a few expired certificates" |
| $ @tverify.com 'pointer_size' |
| $ return |
| $ test_dh: |
| $ write sys$output "Generate a set of DH parameters" |
| $ mcr 'texe_dir''dhtest' |
| $ return |
| $ test_dsa: |
| $ write sys$output "Generate a set of DSA parameters" |
| $ mcr 'texe_dir''dsatest' |
| $ return |
| $ test_gen: |
| $ write sys$output "Generate and verify a certificate request" |
| $ @testgen.com 'pointer_size' |
| $ return |
| $ maybe_test_ss: |
| $ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT")) |
| $ if f$cvtime(f$file_attributes("keyU.ss","RDT")) .les. testss_RDT then - |
| goto test_ss |
| $ if f$cvtime(f$file_attributes("certU.ss","RDT")) .les. testss_RDT then - |
| goto test_ss |
| $ if f$cvtime(f$file_attributes("certCA.ss","RDT")) .les. testss_RDT then - |
| goto test_ss |
| $ return |
| $ test_ss: |
| $ write sys$output "Generate and certify a test certificate" |
| $ @testss.com 'pointer_size' |
| $ return |
| $ test_engine: |
| $ write sys$output "Manipulate the ENGINE structures" |
| $ mcr 'texe_dir''enginetest' |
| $ return |
| $ test_ssl: |
| $ write sys$output "test SSL protocol" |
| $ gosub maybe_test_ss |
| $ @testssl.com keyU.ss certU.ss certCA.ss 'pointer_size' |
| $ return |
| $ test_ca: |
| $ set noon |
| $ define /user_mode sys$output test_ca.out |
| $ mcr 'exe_dir'openssl no-rsa |
| $ save_severity=$SEVERITY |
| $ set on |
| $ if save_severity |
| $ then |
| $ write sys$output "skipping CA.com test -- requires RSA" |
| $ else |
| $ write sys$output "Generate and certify a test certificate via the 'ca' program" |
| $ @testca.com 'pointer_size' |
| $ endif |
| $ return |
| $ test_aes: |
| $! write sys$output "test AES" |
| $! !mcr 'texe_dir''aestest' |
| $ return |
| $ test_tsa: |
| $ set noon |
| $ define /user_mode sys$output nla0: |
| $ mcr 'exe_dir'openssl no-rsa |
| $ save_severity=$SEVERITY |
| $ set on |
| $ if save_severity |
| $ then |
| $ write sys$output "skipping testtsa.com test -- requires RSA" |
| $ else |
| $ @testtsa.com "" "" "" 'pointer_size' |
| $ endif |
| $ return |
| $ test_ige: |
| $ write sys$output "Test IGE mode" |
| $ mcr 'texe_dir''igetest' |
| $ return |
| $ test_jpake: |
| $ write sys$output "Test JPAKE" |
| $ mcr 'texe_dir''jpaketest' |
| $ return |
| $ test_cms: |
| $ write sys$output "CMS consistency test" |
| $ ! Define the logical name used to find openssl.exe in the perl script. |
| $ define /user_mode osslx 'exe_dir' |
| $ perl CMS-TEST.PL |
| $ return |
| $ test_srp: |
| $ write sys$output "Test SRP" |
| $ mcr 'texe_dir''srptest' |
| $ return |
| $ test_v3name: |
| $ write sys$output "Test X509v3_check_*" |
| $ mcr 'texe_dir''v3nametest' |
| $ return |
| $ test_ocsp: |
| $ write sys$output "Test OCSP" |
| $ @tocsp.com |
| $ return |
| $ test_heartbeat: |
| $ mcr 'texe_dir''heartbeattest' |
| $ return |
| $ test_constant_time: |
| $ write sys$output "Test constant time utilites" |
| $ mcr 'texe_dir''consttimetest' |
| $ return |
| $ |
| $ exit: |
| $ mcr 'exe_dir'openssl version -a |
| $ set default '__save_default' |
| $ deassign sslroot |
| $ exit |