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