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_srp,test_cms,test_heartbeat,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$ SHA256TEST := sha256t 72$ SHA512TEST := sha512t 73$ MDC2TEST := mdc2test 74$ RMDTEST := rmdtest 75$ MD2TEST := md2test 76$ MD4TEST := md4test 77$ MD5TEST := md5test 78$ HMACTEST := hmactest 79$ WPTEST := wp_test 80$ RC2TEST := rc2test 81$ RC4TEST := rc4test 82$ RC5TEST := rc5test 83$ BFTEST := bftest 84$ CASTTEST := casttest 85$ DESTEST := destest 86$ RANDTEST := randtest 87$ DHTEST := dhtest 88$ DSATEST := dsatest 89$ METHTEST := methtest 90$ SSLTEST := ssltest 91$ RSATEST := rsa_test 92$ ENGINETEST := enginetest 93$ EVPTEST := evp_test 94$ IGETEST := igetest 95$ JPAKETEST := jpaketest 96$ SRPTEST := srptest 97$ ASN1TEST := asn1test 98$ HEARTBEATTEST := heartbeat_test 99$ CONSTTIMETEST := constant_time_test 100$! 101$ tests_i = 0 102$ loop_tests: 103$ tests_e = f$element(tests_i,",",tests) 104$ tests_i = tests_i + 1 105$ if tests_e .eqs. "," then goto exit 106$ write sys$output "---> ''tests_e'" 107$ gosub 'tests_e' 108$ goto loop_tests 109$ 110$ test_evp: 111$ mcr 'texe_dir''evptest' 'ROOT'.CRYPTO.EVP]evptests.txt 112$ return 113$ test_des: 114$ mcr 'texe_dir''destest' 115$ return 116$ test_idea: 117$ mcr 'texe_dir''ideatest' 118$ return 119$ test_sha: 120$ mcr 'texe_dir''shatest' 121$ mcr 'texe_dir''sha1test' 122$ mcr 'texe_dir''sha256test' 123$ mcr 'texe_dir''sha512test' 124$ return 125$ test_mdc2: 126$ mcr 'texe_dir''mdc2test' 127$ return 128$ test_md5: 129$ mcr 'texe_dir''md5test' 130$ return 131$ test_md4: 132$ mcr 'texe_dir''md4test' 133$ return 134$ test_hmac: 135$ mcr 'texe_dir''hmactest' 136$ return 137$ test_wp: 138$ mcr 'texe_dir''wptest' 139$ return 140$ test_md2: 141$ mcr 'texe_dir''md2test' 142$ return 143$ test_rmd: 144$ mcr 'texe_dir''rmdtest' 145$ return 146$ test_bf: 147$ mcr 'texe_dir''bftest' 148$ return 149$ test_cast: 150$ mcr 'texe_dir''casttest' 151$ return 152$ test_rc2: 153$ mcr 'texe_dir''rc2test' 154$ return 155$ test_rc4: 156$ mcr 'texe_dir''rc4test' 157$ return 158$ test_rc5: 159$ mcr 'texe_dir''rc5test' 160$ return 161$ test_rand: 162$ mcr 'texe_dir''randtest' 163$ return 164$ test_enc: 165$ @testenc.com 'pointer_size' 166$ return 167$ test_x509: 168$ set noon 169$ define sys$error test_x509.err 170$ write sys$output "test normal x509v1 certificate" 171$ @tx509.com "" 'pointer_size' 172$ write sys$output "test first x509v3 certificate" 173$ @tx509.com v3-cert1.pem 'pointer_size' 174$ write sys$output "test second x509v3 certificate" 175$ @tx509.com v3-cert2.pem 'pointer_size' 176$ deassign sys$error 177$ set on 178$ return 179$ test_rsa: 180$ set noon 181$ define sys$error test_rsa.err 182$ @trsa.com "" 'pointer_size' 183$ deassign sys$error 184$ mcr 'texe_dir''rsatest' 185$ set on 186$ return 187$ test_crl: 188$ set noon 189$ define sys$error test_crl.err 190$ @tcrl.com "" 'pointer_size' 191$ deassign sys$error 192$ set on 193$ return 194$ test_sid: 195$ set noon 196$ define sys$error test_sid.err 197$ @tsid.com "" 'pointer_size' 198$ deassign sys$error 199$ set on 200$ return 201$ test_req: 202$ set noon 203$ define sys$error test_req.err 204$ @treq.com "" 'pointer_size' 205$ @treq.com testreq2.pem 'pointer_size' 206$ deassign sys$error 207$ set on 208$ return 209$ test_pkcs7: 210$ set noon 211$ define sys$error test_pkcs7.err 212$ @tpkcs7.com "" 'pointer_size' 213$ @tpkcs7d.com "" 'pointer_size' 214$ deassign sys$error 215$ set on 216$ return 217$ test_bn: 218$ write sys$output - 219 "starting big number library test, could take a while..." 220$ set noon 221$ define sys$error test_bn.err 222$ define sys$output test_bn.out 223$ @ bctest.com 224$ status = $status 225$ deassign sys$error 226$ deassign sys$output 227$ set on 228$ if (status) 229$ then 230$ create /fdl = sys$input bntest-vms.tmp 231FILE 232 ORGANIZATION sequential 233RECORD 234 FORMAT stream_lf 235$ define /user_mode sys$output bntest-vms.tmp 236$ mcr 'texe_dir''bntest' 237$ define /user_mode sys$input bntest-vms.tmp 238$ define /user_mode sys$output bntest-vms.out 239$ bc 240$ @ bntest.com bntest-vms.out 241$ status = $status 242$ if (status) 243$ then 244$ delete bntest-vms.out;* 245$ delete bntest-vms.tmp;* 246$ endif 247$ else 248$ create /fdl = sys$input bntest-vms.sh 249FILE 250 ORGANIZATION sequential 251RECORD 252 FORMAT stream_lf 253$ open /append bntest_file bntest-vms.sh 254$ type /output = bntest_file sys$input: 255<< __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"' 256$ define /user_mode sys$output bntest-vms.tmp 257$ mcr 'texe_dir''bntest' 258$ copy bntest-vms.tmp bntest_file 259$ delete bntest-vms.tmp;* 260$ type /output = bntest_file sys$input: 261__FOO__ 262$ close bntest_file 263$ write sys$output "-- copy the [.test]bntest-vms.sh and [.test]bctest files to a Unix system and" 264$ write sys$output "-- run bntest-vms.sh through sh or bash to verify that the bignum operations" 265$ write sys$output "-- went well." 266$ write sys$output "" 267$ endif 268$ write sys$output "test a^b%c implementations" 269$ mcr 'texe_dir''exptest' 270$ return 271$ test_ec: 272$ write sys$output "test elliptic curves" 273$ mcr 'texe_dir''ectest' 274$ return 275$ test_ecdsa: 276$ write sys$output "test ecdsa" 277$ mcr 'texe_dir''ecdsatest' 278$ return 279$ test_ecdh: 280$ write sys$output "test ecdh" 281$ mcr 'texe_dir''ecdhtest' 282$ return 283$ test_verify: 284$ write sys$output "The following command should have some OK's and some failures" 285$ write sys$output "There are definitly a few expired certificates" 286$ @tverify.com 'pointer_size' 287$ return 288$ test_dh: 289$ write sys$output "Generate a set of DH parameters" 290$ mcr 'texe_dir''dhtest' 291$ return 292$ test_dsa: 293$ write sys$output "Generate a set of DSA parameters" 294$ mcr 'texe_dir''dsatest' 295$ return 296$ test_gen: 297$ write sys$output "Generate and verify a certificate request" 298$ @testgen.com 'pointer_size' 299$ return 300$ maybe_test_ss: 301$ testss_RDT = f$cvtime(f$file_attributes("testss.com","RDT")) 302$ if f$cvtime(f$file_attributes("keyU.ss","RDT")) .les. testss_RDT then - 303 goto test_ss 304$ if f$cvtime(f$file_attributes("certU.ss","RDT")) .les. testss_RDT then - 305 goto test_ss 306$ if f$cvtime(f$file_attributes("certCA.ss","RDT")) .les. testss_RDT then - 307 goto test_ss 308$ return 309$ test_ss: 310$ write sys$output "Generate and certify a test certificate" 311$ @testss.com 'pointer_size' 312$ return 313$ test_engine: 314$ write sys$output "Manipulate the ENGINE structures" 315$ mcr 'texe_dir''enginetest' 316$ return 317$ test_ssl: 318$ write sys$output "test SSL protocol" 319$ gosub maybe_test_ss 320$ @testssl.com keyU.ss certU.ss certCA.ss 'pointer_size' 321$ return 322$ test_ca: 323$ set noon 324$ define /user_mode sys$output test_ca.out 325$ mcr 'exe_dir'openssl no-rsa 326$ save_severity=$SEVERITY 327$ set on 328$ if save_severity 329$ then 330$ write sys$output "skipping CA.com test -- requires RSA" 331$ else 332$ write sys$output "Generate and certify a test certificate via the 'ca' program" 333$ @testca.com 'pointer_size' 334$ endif 335$ return 336$ test_aes: 337$! write sys$output "test AES" 338$! !mcr 'texe_dir''aestest' 339$ return 340$ test_tsa: 341$ set noon 342$ define /user_mode sys$output nla0: 343$ mcr 'exe_dir'openssl no-rsa 344$ save_severity=$SEVERITY 345$ set on 346$ if save_severity 347$ then 348$ write sys$output "skipping testtsa.com test -- requires RSA" 349$ else 350$ @testtsa.com "" "" "" 'pointer_size' 351$ endif 352$ return 353$ test_ige: 354$ write sys$output "Test IGE mode" 355$ mcr 'texe_dir''igetest' 356$ return 357$ test_jpake: 358$ write sys$output "Test JPAKE" 359$ mcr 'texe_dir''jpaketest' 360$ return 361$ test_cms: 362$ write sys$output "CMS consistency test" 363$ ! Define the logical name used to find openssl.exe in the perl script. 364$ define /user_mode osslx 'exe_dir' 365$ perl CMS-TEST.PL 366$ return 367$ test_srp: 368$ write sys$output "Test SRP" 369$ mcr 'texe_dir''srptest' 370$ return 371$ test_heartbeat: 372$ write sys$output "Test HEARTBEAT" 373$ mcr 'texe_dir''heartbeattest' 374$ return 375$ test_constant_time: 376$ write sys$output "Test constant time utilities" 377$ mcr 'texe_dir''consttimetest' 378$ return 379$ 380$ 381$ exit: 382$ on error then goto exit2 ! In case openssl.exe didn't build. 383$ mcr 'exe_dir'openssl version -a 384$ exit2: 385$ set default '__save_default' 386$ deassign sslroot 387$ exit 388