1$! TVERIFY.COM 2$ 3$ __arch := VAX 4$ if f$getsyi("cpu") .ge. 128 then - 5 __arch = f$edit( f$getsyi( "ARCH_NAME"), "UPCASE") 6$ if __arch .eqs. "" then __arch := UNK 7$! 8$ line_max = 255 ! Could be longer on modern non-VAX. 9$ temp_file_name = "certs_"+ f$getjpi( "", "PID")+ ".tmp" 10$ exe_dir := sys$disk:[-.'__arch'.exe.apps] 11$ cmd = "mcr ''exe_dir'openssl verify ""-CAfile"" ''temp_file_name'" 12$ cmd_len = f$length( cmd) 13$ pems = "[-.certs...]*.pem" 14$! 15$! Concatenate all the certificate files. 16$! 17$ copy /concatenate 'pems' 'temp_file_name' 18$! 19$! Loop through all the certificate files. 20$! 21$ args = "" 22$ old_f := 23$ loop_file: 24$ f = f$search( pems) 25$ if ((f .nes. "") .and. (f .nes. old_f)) 26$ then 27$ old_f = f 28$! 29$! If this file name would over-extend the command line, then 30$! run the command now. 31$! 32$ if (cmd_len+ f$length( args)+ 1+ f$length( f) .gt. line_max) 33$ then 34$ if (args .eqs. "") then goto disaster 35$ 'cmd''args' 36$ args = "" 37$ endif 38$! Add the next file to the argument list. 39$ args = args+ " "+ f 40$ else 41$! No more files in the list 42$ goto loop_file_end 43$ endif 44$ goto loop_file 45$ loop_file_end: 46$! 47$! Run the command for any left-over arguments. 48$! 49$ if (args .nes. "") 50$ then 51$ 'cmd''args' 52$ endif 53$! 54$! Delete the temporary file. 55$! 56$ if (f$search( "''temp_file_name';*") .nes. "") then - 57 delete 'temp_file_name';* 58$! 59$ exit 60$! 61$ disaster: 62$ write sys$output " Command line too long. Doomed." 63$! 64