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