| $! TESTCA.COM | |
| $ | |
| $ __arch := VAX | |
| $ if f$getsyi("cpu") .ge. 128 then __arch := AXP | |
| $ exe_dir := sys$disk:[-.'__arch'.exe.apps] | |
| $ | |
| $ openssl := mcr 'exe_dir'openssl | |
| $ | |
| $ SSLEAY_CONFIG="-config ""CAss.cnf""" | |
| $ | |
| $ set noon | |
| $ if f$search("demoCA.dir") .nes. "" | |
| $ then | |
| $ call deltree [.demoCA]*.* | |
| $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* | |
| $ delete demoCA.dir;* | |
| $ endif | |
| $ set on | |
| $ open/read sys$ca_input VMSca-response.1 | |
| $ @[-.apps]CA.com -input sys$ca_input -newca | |
| $ close sys$ca_input | |
| $ if $severity .ne. 1 then exit 3 | |
| $ | |
| $ | |
| $ SSLEAY_CONFIG="-config ""Uss.cnf""" | |
| $ @[-.apps]CA.com -newreq | |
| $ if $severity .ne. 1 then exit 3 | |
| $ | |
| $ | |
| $ SSLEAY_CONFIG="-config [-.apps]openssl-vms.cnf" | |
| $ open/read sys$ca_input VMSca-response.2 | |
| $ @[-.apps]CA.com -input sys$ca_input -sign | |
| $ close sys$ca_input | |
| $ if $severity .ne. 1 then exit 3 | |
| $ | |
| $ | |
| $ @[-.apps]CA.com -verify newcert.pem | |
| $ if $severity .ne. 1 then exit 3 | |
| $ | |
| $ set noon | |
| $ call deltree [.demoCA]*.* | |
| $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;* | |
| $ delete demoCA.dir;* | |
| $ if f$search("newcert.pem") .nes. "" then delete newcert.pem;* | |
| $ if f$search("newcert.pem") .nes. "" then delete newreq.pem;* | |
| $ set on | |
| $! #usage: CA -newcert|-newreq|-newca|-sign|-verify | |
| $ | |
| $ exit | |
| $ | |
| $ deltree: subroutine ! P1 is a name of a directory | |
| $ on control_y then goto dt_STOP | |
| $ on warning then goto dt_exit | |
| $ _dt_def = f$trnlnm("SYS$DISK")+f$directory() | |
| $ if f$parse(p1) .eqs. "" then exit | |
| $ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")' | |
| $ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE") | |
| $ _fp = f$parse(".DIR",p1) | |
| $ dt_loop: | |
| $ _f = f$search(_fp) | |
| $ if _f .eqs. "" then goto dt_loopend | |
| $ call deltree [.'f$parse(_f,,,"NAME")']*.* | |
| $ goto dt_loop | |
| $ dt_loopend: | |
| $ _fp = f$parse(p1,".;*") | |
| $ if f$search(_fp) .eqs. "" then goto dt_exit | |
| $ set noon | |
| $ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp' | |
| $ set on | |
| $ delete/nolog '_fp' | |
| $ dt_exit: | |
| $ set default '_dt_def' | |
| $ exit | |
| $ dt_STOP: | |
| $ set default '_dt_def' | |
| $ stop/id="" | |
| $ exit | |
| $ endsubroutine |