1$! TESTS.COM -- Performs the necessary tests 2$! 3$! P1 tests to be performed. Empty means all. 4$ 5$ __proc = f$element(0,";",f$environment("procedure")) 6$ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;" 7$ __save_default = f$environment("default") 8$ __arch := VAX 9$ if f$getsyi("cpu") .ge. 128 then - 10 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") 11$ if __arch .eqs. "" then __arch := UNK 12$ texe_dir := sys$disk:[-.'__arch'.exe.test] 13$ exe_dir := sys$disk:[-.'__arch'.exe.apps] 14$ 15$ set default '__here' 16$ 17$ ROOT = F$PARSE("sys$disk:[-]A.;0",,,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0" 18$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY") 19$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") - 20 - ".][000000" - "[000000." - "][" - "[" - "]" 21$ ROOT = ROOT_DEV + "[" + ROOT_DIR 22$ DEFINE/NOLOG SSLROOT 'ROOT'.APPS.] /TRANS=CONC 23$ openssl_conf := sslroot:[000000]openssl-vms.cnf 24$ 25$ on control_y then goto exit 26$ on error then goto exit 27$ 28$ if p1 .nes. "" 29$ then 30$ tests = p1 31$ else 32$! NOTE: This list reflects the list of dependencies following the 33$! "alltests" target in Makefile. This should make it easy to see 34$! if there's a difference that needs to be taken care of. 35$ tests := - 36 test_des,test_idea,test_sha,test_md4,test_md5,test_hmac,- 37 test_md2,test_mdc2,test_wp,- 38 test_rmd,test_rc2,test_rc4,test_rc5,test_bf,test_cast,test_aes,- 39 test_rand,test_bn,test_ec,test_ecdsa,test_ecdh,- 40 test_enc,test_x509,test_rsa,test_crl,test_sid,- 41 test_gen,test_req,test_pkcs7,test_verify,test_dh,test_dsa,- 42 test_ss,test_ca,test_engine,test_evp,test_ssl,test_tsa,test_ige,- 43 test_jpake,test_cms 44$ endif 45$ tests = f$edit(tests,"COLLAPSE") 46$ 47$ BNTEST := bntest 48$ ECTEST := ectest 49$ ECDSATEST := ecdsatest 50$ ECDHTEST := ecdhtest 51$ EXPTEST := exptest 52$ IDEATEST := ideatest 53$ SHATEST := shatest 54$ SHA1TEST := sha1test 55$ MDC2TEST := mdc2test 56$ RMDTEST := rmdtest 57$ MD2TEST := md2test 58$ MD4TEST := md4test 59$ MD5TEST := md5test 60$ HMACTEST := hmactest 61$ WPTEST := wp_test 62$ RC2TEST := rc2test 63$ RC4TEST := rc4test 64$ RC5TEST := rc5test 65$ BFTEST := bftest 66$ CASTTEST := casttest 67$ DESTEST := destest 68$ RANDTEST := randtest 69$ DHTEST := dhtest 70$ DSATEST := dsatest 71$ METHTEST := methtest 72$ SSLTEST := ssltest 73$ RSATEST := rsa_test 74$ ENGINETEST := enginetest 75$ EVPTEST := evp_test 76$ IGETEST := igetest 77$ JPAKETEST := jpaketest 78$ ASN1TEST := asn1test 79$ 80$ tests_i = 0 81$ loop_tests: 82$ tests_e = f$element(tests_i,",",tests) 83$ tests_i = tests_i + 1 84$ if tests_e .eqs. "," then goto exit 85$ write sys$output "---> ''tests_e'" 86$ gosub 'tests_e' 87$ goto loop_tests 88$ 89$ test_evp: 90$ mcr 'texe_dir''evptest' 'ROOT'.CRYPTO.EVP]evptests.txt 91$ return 92$ test_des: 93$ mcr 'texe_dir''destest' 94$ return 95$ test_idea: 96$ mcr 'texe_dir''ideatest' 97$ return 98$ test_sha: 99$ mcr 'texe_dir''shatest' 100$ mcr 'texe_dir''sha1test' 101$ return 102$ test_mdc2: 103$ mcr 'texe_dir''mdc2test' 104$ return 105$ test_md5: 106$ mcr 'texe_dir''md5test' 107$ return 108$ test_md4: 109$ mcr 'texe_dir''md4test' 110$ return 111$ test_hmac: 112$ mcr 'texe_dir''hmactest' 113$ return 114$ test_wp: 115$ mcr 'texe_dir''wptest' 116$ return 117$ test_md2: 118$ mcr 'texe_dir''md2test' 119$ return 120$ test_rmd: 121$ mcr 'texe_dir''rmdtest' 122$ return 123$ test_bf: 124$ mcr 'texe_dir''bftest' 125$ return 126$ test_cast: 127$ mcr 'texe_dir''casttest' 128$ return 129$ test_rc2: 130$ mcr 'texe_dir''rc2test' 131$ return 132$ test_rc4: 133$ mcr 'texe_dir''rc4test' 134$ return 135$ test_rc5: 136$ mcr 'texe_dir''rc5test' 137$ return 138$ test_rand: 139$ mcr 'texe_dir''randtest' 140$ return 141$ test_enc: 142$ @testenc.com 143$ return 144$ test_x509: 145$ define sys$error nla0: 146$ write sys$output "test normal x509v1 certificate" 147$ @tx509.com 148$ write sys$output "test first x509v3 certificate" 149$ @tx509.com v3-cert1.pem 150$ write sys$output "test second x509v3 certificate" 151$ @tx509.com v3-cert2.pem 152$ deassign sys$error 153$ return 154$ test_rsa: 155$ define sys$error nla0: 156$ @trsa.com 157$ deassign sys$error 158$ mcr 'texe_dir''rsatest' 159$ return 160$ test_crl: 161$ define sys$error nla0: 162$ @tcrl.com 163$ deassign sys$error 164$ return 165$ test_sid: 166$ define sys$error nla0: 167$ @tsid.com 168$ deassign sys$error 169$ return 170$ test_req: 171$ define sys$error nla0: 172$ @treq.com 173$ @treq.com testreq2.pem 174$ deassign sys$error 175$ return 176$ test_pkcs7: 177$ define sys$error nla0: 178$ @tpkcs7.com 179$ @tpkcs7d.com 180$ deassign sys$error 181$ return 182$ test_bn: 183$ write sys$output - 184 "starting big number library test, could take a while..." 185$ set noon 186$ define sys$error nl: 187$ define sys$output nl: 188$ @ bctest.com 189$ status = $status 190$ deassign sys$error 191$ deassign sys$output 192$ on control_y then goto exit 193$ on error then goto exit 194$ if (status) 195$ then 196$ create /fdl = sys$input bntest-vms.tmp 197FILE 198 ORGANIZATION sequential 199RECORD 200 FORMAT stream_lf 201$ define /user_mode sys$output bntest-vms.tmp 202$ mcr 'texe_dir''bntest' 203$ define /user_mode sys$input bntest-vms.tmp 204$ define /user_mode sys$output bntest-vms.out 205$ bc 206$ @ bntest.com bntest-vms.out 207$ status = $status 208$ if (status) 209$ then 210$ delete bntest-vms.out;* 211$ delete bntest-vms.tmp;* 212$ endif 213$ else 214$ create /fdl = sys$input bntest-vms.sh 215FILE 216 ORGANIZATION sequential 217RECORD 218 FORMAT stream_lf 219$ open /append bntest_file bntest-vms.sh 220$ type /output = bntest_file sys$input: 221<< __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"' 222$ define/user sys$output bntest-vms.tmp 223$ mcr 'texe_dir''bntest' 224$ copy bntest-vms.tmp bntest_file 225$ delete bntest-vms.tmp;* 226$ type /output = bntest_file sys$input: 227__FOO__ 228$ close bntest_file 229$ write sys$output "-- copy the [.test]bntest-vms.sh and [.test]bctest files to a Unix system and" 230$ write sys$output "-- run bntest-vms.sh through sh or bash to verify that the bignum operations" 231$ write sys$output "-- went well." 232$ write sys$output "" 233$ endif 234$ write sys$output "test a^b%c implementations" 235$ mcr 'texe_dir''exptest' 236$ return 237$ test_ec: 238$ write sys$output "test elliptic curves" 239$ mcr 'texe_dir''ectest' 240$ return 241$ test_ecdsa: 242$ write sys$output "test ecdsa" 243$ mcr 'texe_dir''ecdsatest' 244$ return 245$ test_ecdh: 246$ write sys$output "test ecdh" 247$ mcr 'texe_dir''ecdhtest' 248$ return 249$ test_verify: 250$ write sys$output "The following command should have some OK's and some failures" 251$ write sys$output "There are definitly a few expired certificates" 252$ @tverify.com 253$ return 254$ test_dh: 255$ write sys$output "Generate a set of DH parameters" 256$ mcr 'texe_dir''dhtest' 257$ return 258$ test_dsa: 259$ write sys$output "Generate a set of DSA parameters" 260$ mcr 'texe_dir''dsatest' 261$ return 262$ test_gen: 263$ write sys$output "Generate and verify a certificate request" 264$ @testgen.com 265$ return 266$ maybe_test_ss: 267$ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT")) 268$ if f$cvtime(f$file_attributes("keyU.ss","RDT")) .les. testss_RDT then - 269 goto test_ss 270$ if f$cvtime(f$file_attributes("certU.ss","RDT")) .les. testss_RDT then - 271 goto test_ss 272$ if f$cvtime(f$file_attributes("certCA.ss","RDT")) .les. testss_RDT then - 273 goto test_ss 274$ return 275$ test_ss: 276$ write sys$output "Generate and certify a test certificate" 277$ @testss.com 278$ return 279$ test_engine: 280$ write sys$output "Manipulate the ENGINE structures" 281$ mcr 'texe_dir''enginetest' 282$ return 283$ test_ssl: 284$ write sys$output "test SSL protocol" 285$ gosub maybe_test_ss 286$ @testssl.com keyU.ss certU.ss certCA.ss 287$ return 288$ test_ca: 289$ set noon 290$ define/user sys$output nla0: 291$ mcr 'exe_dir'openssl no-rsa 292$ save_severity=$SEVERITY 293$ set on 294$ if save_severity 295$ then 296$ write sys$output "skipping CA.com test -- requires RSA" 297$ else 298$ write sys$output "Generate and certify a test certificate via the 'ca' program" 299$ @testca.com 300$ endif 301$ return 302$ test_aes: 303$! write sys$output "test AES" 304$! !mcr 'texe_dir''aestest' 305$ return 306$ test_tsa: 307$ set noon 308$ define/user sys$output nla0: 309$ mcr 'exe_dir'openssl no-rsa 310$ save_severity=$SEVERITY 311$ set on 312$ if save_severity 313$ then 314$ write sys$output "skipping testtsa.com test -- requires RSA" 315$ else 316$ @testtsa.com 317$ endif 318$ return 319$ test_ige: 320$ write sys$output "Test IGE mode" 321$ mcr 'texe_dir''igetest' 322$ return 323$ test_jpake: 324$ write sys$output "Test JPAKE" 325$ mcr 'texe_dir''jpaketest' 326$ return 327$ test_cms: 328$ write sys$output "CMS consistency test" 329$ ! The following makes perl include the DCL symbol table in the env. 330$ define/user perl_env_tables clisym_local,lnm$file_dev,ctrl_env 331$ perl CMS-TEST.PL 332$ return 333$ 334$ 335$ exit: 336$ mcr 'exe_dir'openssl version -a 337$ set default '__save_default' 338$ deassign sslroot 339$ exit 340