| Index: openssl/apps/CA.com
|
| ===================================================================
|
| --- openssl/apps/CA.com (revision 105093)
|
| +++ openssl/apps/CA.com (working copy)
|
| @@ -37,14 +37,25 @@
|
| $ X509 = openssl + " x509"
|
| $ PKCS12 = openssl + " pkcs12"
|
| $ echo = "write sys$Output"
|
| +$ RET = 1
|
| $!
|
| -$ s = F$PARSE(F$ENVIRONMENT("DEFAULT"),"[]") - "].;"
|
| -$ CATOP := 's'.demoCA
|
| -$ CAKEY := ]cakey.pem
|
| -$ CACERT := ]cacert.pem
|
| +$! 2010-12-20 SMS.
|
| +$! Use a concealed logical name to reduce command line lengths, to
|
| +$! avoid DCL errors on VAX:
|
| +$! %DCL-W-TKNOVF, command element is too long - shorten
|
| +$! (Path segments like "openssl-1_0_1-stable-SNAP-20101217" accumulate
|
| +$! quickly.)
|
| +$!
|
| +$ CATOP = F$PARSE( F$ENVIRONMENT( "DEFAULT"), "[]")- "].;"+ ".demoCA.]"
|
| +$ define /translation_attributes = concealed CATOP 'CATOP'
|
| +$!
|
| +$ on error then goto clean_up
|
| +$ on control_y then goto clean_up
|
| +$!
|
| +$ CAKEY = "CATOP:[private]cakey.pem"
|
| +$ CACERT = "CATOP:[000000]cacert.pem"
|
| $
|
| $ __INPUT := SYS$COMMAND
|
| -$ RET = 1
|
| $!
|
| $ i = 1
|
| $opt_loop:
|
| @@ -55,7 +66,7 @@
|
| $ IF (prog_opt .EQS. "?" .OR. prog_opt .EQS. "-h" .OR. prog_opt .EQS. "-help")
|
| $ THEN
|
| $ echo "usage: CA -newcert|-newreq|-newca|-sign|-verify"
|
| -$ exit
|
| +$ goto clean_up
|
| $ ENDIF
|
| $!
|
| $ IF (prog_opt .EQS. "-input")
|
| @@ -69,7 +80,7 @@
|
| $ IF (prog_opt .EQS. "-newcert")
|
| $ THEN
|
| $ ! Create a certificate.
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| $ REQ -new -x509 -keyout newreq.pem -out newreq.pem 'DAYS'
|
| $ RET=$STATUS
|
| $ echo "Certificate (and private key) is in newreq.pem"
|
| @@ -79,7 +90,7 @@
|
| $ IF (prog_opt .EQS. "-newreq")
|
| $ THEN
|
| $ ! Create a certificate request
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| $ REQ -new -keyout newreq.pem -out newreq.pem 'DAYS'
|
| $ RET=$STATUS
|
| $ echo "Request (and private key) is in newreq.pem"
|
| @@ -90,41 +101,40 @@
|
| $ THEN
|
| $ ! If explicitly asked for or it doesn't exist then setup the directory
|
| $ ! structure that Eric likes to manage things.
|
| -$ IF F$SEARCH(CATOP+"]serial.") .EQS. ""
|
| +$ IF F$SEARCH( "CATOP:[000000]serial.") .EQS. ""
|
| $ THEN
|
| -$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP']
|
| -$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.certs]
|
| -$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.crl]
|
| -$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.newcerts]
|
| -$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.private]
|
| +$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[000000]
|
| +$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[certs]
|
| +$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[crl]
|
| +$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[newcerts]
|
| +$ CREATE /DIRECTORY /PROTECTION=OWNER:RWED CATOP:[private]
|
| $
|
| -$ OPEN /WRITE ser_file 'CATOP']serial.
|
| +$ OPEN /WRITE ser_file CATOP:[000000]serial.
|
| $ WRITE ser_file "01"
|
| $ CLOSE ser_file
|
| -$ APPEND/NEW NL: 'CATOP']index.txt
|
| +$ APPEND /NEW_VERSION NL: CATOP:[000000]index.txt
|
| $
|
| $ ! The following is to make sure access() doesn't get confused. It
|
| $ ! really needs one file in the directory to give correct answers...
|
| -$ COPY NLA0: 'CATOP'.certs].;
|
| -$ COPY NLA0: 'CATOP'.crl].;
|
| -$ COPY NLA0: 'CATOP'.newcerts].;
|
| -$ COPY NLA0: 'CATOP'.private].;
|
| +$ COPY NLA0: CATOP:[certs].;
|
| +$ COPY NLA0: CATOP:[crl].;
|
| +$ COPY NLA0: CATOP:[newcerts].;
|
| +$ COPY NLA0: CATOP:[private].;
|
| $ ENDIF
|
| $!
|
| -$ IF F$SEARCH(CATOP+".private"+CAKEY) .EQS. ""
|
| +$ IF F$SEARCH( CAKEY) .EQS. ""
|
| $ THEN
|
| $ READ '__INPUT' FILE -
|
| - /PROMPT="CA certificate filename (or enter to create): "
|
| + /PROMPT="CA certificate filename (or enter to create): "
|
| $ IF (FILE .NES. "") .AND. (F$SEARCH(FILE) .NES. "")
|
| $ THEN
|
| -$ COPY 'FILE' 'CATOP'.private'CAKEY'
|
| -$ RET=$STATUS
|
| +$ COPY 'FILE' 'CAKEY'
|
| +$ RET=$STATUS
|
| $ ELSE
|
| $ echo "Making CA certificate ..."
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| -$ REQ -new -x509 -keyout 'CATOP'.private'CAKEY' -
|
| - -out 'CATOP''CACERT' 'DAYS'
|
| -$ RET=$STATUS
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| +$ REQ -new -x509 -keyout 'CAKEY' -out 'CACERT' 'DAYS'
|
| +$ RET=$STATUS
|
| $ ENDIF
|
| $ ENDIF
|
| $ GOTO opt_loop_continue
|
| @@ -135,16 +145,16 @@
|
| $ i = i + 1
|
| $ cname = P'i'
|
| $ IF cname .EQS. "" THEN cname = "My certificate"
|
| -$ PKCS12 -in newcert.pem -inkey newreq.pem -certfile 'CATOP''CACERT -
|
| - -out newcert.p12 -export -name "''cname'"
|
| +$ PKCS12 -in newcert.pem -inkey newreq.pem -certfile 'CACERT' -
|
| + -out newcert.p12 -export -name "''cname'"
|
| $ RET=$STATUS
|
| -$ exit RET
|
| +$ goto clean_up
|
| $ ENDIF
|
| $!
|
| $ IF (prog_opt .EQS. "-xsign")
|
| $ THEN
|
| $!
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| $ CA -policy policy_anything -infiles newreq.pem
|
| $ RET=$STATUS
|
| $ GOTO opt_loop_continue
|
| @@ -153,7 +163,7 @@
|
| $ IF ((prog_opt .EQS. "-sign") .OR. (prog_opt .EQS. "-signreq"))
|
| $ THEN
|
| $!
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| $ CA -policy policy_anything -out newcert.pem -infiles newreq.pem
|
| $ RET=$STATUS
|
| $ type newcert.pem
|
| @@ -165,9 +175,9 @@
|
| $ THEN
|
| $!
|
| $ echo "Cert passphrase will be requested twice - bug?"
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| $ X509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| $ CA -policy policy_anything -out newcert.pem -infiles tmp.pem
|
| y
|
| y
|
| @@ -182,17 +192,17 @@
|
| $ i = i + 1
|
| $ IF (p'i' .EQS. "")
|
| $ THEN
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| -$ VERIFY "-CAfile" 'CATOP''CACERT' newcert.pem
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| +$ VERIFY "-CAfile" 'CACERT' newcert.pem
|
| $ ELSE
|
| $ j = i
|
| $ verify_opt_loop:
|
| $ IF j .GT. 8 THEN GOTO verify_opt_loop_end
|
| $ IF p'j' .NES. ""
|
| $ THEN
|
| -$ DEFINE/USER SYS$INPUT '__INPUT'
|
| +$ DEFINE /USER_MODE SYS$INPUT '__INPUT'
|
| $ __tmp = p'j'
|
| -$ VERIFY "-CAfile" 'CATOP''CACERT' '__tmp'
|
| +$ VERIFY "-CAfile" 'CACERT' '__tmp'
|
| $ tmp=$STATUS
|
| $ IF tmp .NE. 0 THEN RET=tmp
|
| $ ENDIF
|
| @@ -208,8 +218,8 @@
|
| $ THEN
|
| $!
|
| $ echo "Unknown argument ''prog_opt'"
|
| -$
|
| -$ EXIT 3
|
| +$ RET = 3
|
| +$ goto clean_up
|
| $ ENDIF
|
| $
|
| $opt_loop_continue:
|
| @@ -217,4 +227,10 @@
|
| $ GOTO opt_loop
|
| $
|
| $opt_loop_end:
|
| +$!
|
| +$clean_up:
|
| +$!
|
| +$ if f$trnlnm( "CATOP", "LNM$PROCESS") .nes. "" then -
|
| + deassign /process CATOP
|
| +$!
|
| $ EXIT 'RET'
|
|
|