1$! TESTCA.COM 2$ 3$ __arch := VAX 4$ if f$getsyi("cpu") .ge. 128 then __arch := AXP 5$ exe_dir := sys$disk:[-.'__arch'.exe.apps] 6$ 7$ openssl := mcr 'exe_dir'openssl 8$ 9$ SSLEAY_CONFIG="-config ""CAss.cnf""" 10$ 11$ set noon 12$ if f$search("demoCA.dir") .nes. "" 13$ then 14$ call deltree [.demoCA]*.* 15$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* 16$ delete demoCA.dir;* 17$ endif 18$ set on 19$ open/read sys$ca_input VMSca-response.1 20$ @[-.apps]CA.com -input sys$ca_input -newca 21$ close sys$ca_input 22$ if $severity .ne. 1 then exit 3 23$ 24$ 25$ SSLEAY_CONFIG="-config ""Uss.cnf""" 26$ @[-.apps]CA.com -newreq 27$ if $severity .ne. 1 then exit 3 28$ 29$ 30$ SSLEAY_CONFIG="-config [-.apps]openssl-vms.cnf" 31$ open/read sys$ca_input VMSca-response.2 32$ @[-.apps]CA.com -input sys$ca_input -sign 33$ close sys$ca_input 34$ if $severity .ne. 1 then exit 3 35$ 36$ 37$ @[-.apps]CA.com -verify newcert.pem 38$ if $severity .ne. 1 then exit 3 39$ 40$ set noon 41$ call deltree [.demoCA]*.* 42$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* 43$ delete demoCA.dir;* 44$ if f$search("newcert.pem") .nes. "" then delete newcert.pem;* 45$ if f$search("newcert.pem") .nes. "" then delete newreq.pem;* 46$ set on 47$! #usage: CA -newcert|-newreq|-newca|-sign|-verify 48$ 49$ exit 50$ 51$ deltree: subroutine ! P1 is a name of a directory 52$ on control_y then goto dt_STOP 53$ on warning then goto dt_exit 54$ _dt_def = f$trnlnm("SYS$DISK")+f$directory() 55$ if f$parse(p1) .eqs. "" then exit 56$ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")' 57$ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE") 58$ _fp = f$parse(".DIR",p1) 59$ dt_loop: 60$ _f = f$search(_fp) 61$ if _f .eqs. "" then goto dt_loopend 62$ call deltree [.'f$parse(_f,,,"NAME")']*.* 63$ goto dt_loop 64$ dt_loopend: 65$ _fp = f$parse(p1,".;*") 66$ if f$search(_fp) .eqs. "" then goto dt_exit 67$ set noon 68$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp' 69$ set on 70$ delete/nolog '_fp' 71$ dt_exit: 72$ set default '_dt_def' 73$ exit 74$ dt_STOP: 75$ set default '_dt_def' 76$ stop/id="" 77$ exit 78$ endsubroutine 79