More secure storage of key material.
[openssl.git] / makevms.com
index 331b1be..c1c3060 100755 (executable)
@@ -26,7 +26,6 @@ $!      CRYPTO    Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
 $!      CRYPTO/x  Just build the x part of the
 $!                "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
 $!      SSL       Just build the "[.xxx.EXE.SSL]LIBSSL.OLB" library.
-$!      SSL_TASK  Just build the "[.xxx.EXE.SSL]SSL_TASK.EXE" program.
 $!      TEST      Just build the "[.xxx.EXE.TEST]" test programs for OpenSSL.
 $!      APPS      Just build the "[.xxx.EXE.APPS]" application programs for OpenSSL.
 $!      ENGINES   Just build the "[.xxx.EXE.ENGINES]" application programs for OpenSSL.
@@ -158,10 +157,6 @@ $!  Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
 $!
 $   GOSUB SSL
 $!
-$!  Build The [.xxx.EXE.SSL]SSL_TASK.EXE DECNet SSL Engine.
-$!
-$   GOSUB SSL_TASK
-$!
 $!  Build The [.xxx.EXE.TEST] OpenSSL Test Utilities.
 $!
 $   GOSUB TEST
@@ -243,9 +238,23 @@ $ WRITE H_FILE "#ifndef OPENSSL_SYS_VMS"
 $ WRITE H_FILE "# define OPENSSL_SYS_VMS"
 $ WRITE H_FILE "#endif"
 $
+$!
+$! Defined the full SDIRS here.  It will be pruned depending on configuration.
+$! This is an exact copy of what's found in Makefile.org, with spaces replaced
+$! with commas.
+$!
+$ SDIRS := -
+        objects,-
+        md2,md4,md5,sha,mdc2,hmac,ripemd,whrlpool,-
+        des,aes,rc2,rc4,rc5,idea,bf,cast,camellia,seed,modes,-
+        bn,ec,rsa,dsa,ecdsa,dh,ecdh,dso,engine,-
+        buffer,bio,stack,lhash,rand,err,-
+        evp,asn1,pem,x509,x509v3,conf,txt_db,pkcs7,pkcs12,comp,ocsp,ui,-
+        cms,pqueue,ts,jpake,srp,store,cmac
+$
 $! One of the best way to figure out what the list should be is to do
 $! the following on a Unix system:
-$!   grep OPENSSL_NO_ crypto/*/*.h ssl/*.h engines/*.h engines/*/*.h|grep ':# *if'|sed -e 's/^.*def //'|sort|uniq
+$!   grep OPENSSL_NO_ crypto/include/internal/*.h crypto/*/*.h ssl/*.h engines/*.h engines/*/*.h|grep ':# *if'|sed -e 's/^.*def //'|sort|uniq
 $! For that reason, the list will also always end up in alphabetical order
 $ CONFIG_LOGICALS := AES,-
                     ASM,INLINE_ASM,-
@@ -266,46 +275,39 @@ $ CONFIG_LOGICALS := AES,-
                     EC_NISTP_64_GCC_128,-
                     ENGINE,-
                     ERR,-
-                    EVP,-
-                    FP_API,-
                     GMP,-
                     GOST,-
-                    HASH_COMP,-
+                    HEARTBEATS,-
                     HMAC,-
                     IDEA,-
                     JPAKE,-
-                    KRB5,-
-                    LHASH,-
                     MD2,-
                     MD4,-
                     MD5,-
                     MDC2,-
                     NEXTPROTONEG,-
+                    OCB,-
                     OCSP,-
                     PSK,-
                     RC2,-
                     RC4,-
                     RC5,-
-                    RIPEMD,-
+                    RMD160,-
                     RSA,-
+                    SCTP,-
                     SEED,-
-                    SHA,-
-                    SHA0,-
-                    SHA1,-
-                    SHA256,-
-                    SHA512,-
                     SOCK,-
                     SRP,-
-                    SSL_INTERN,-
-                    STACK,-
+                    SRTP,-
+                    SSL3_METHOD,-
+                    SSL_TRACE,-
                     STATIC_ENGINE,-
                     STDIO,-
                     STORE,-
-                    TLSEXT,-
+                    UNIT_TEST,-
                     WHIRLPOOL
-$! Add a few that we know about
-$ CONFIG_LOGICALS := 'CONFIG_LOGICALS',-
-                    THREADS
+$ CONFIG_EXPERIMENTAL := JPAKE,-
+                        STORE
 $! The following rules, which dictate how some algorithm choices affect
 $! others, are picked from Configure.
 $! Quick syntax:
@@ -322,18 +324,26 @@ $! affect all following rules that depend on that algorithm being disabled.
 $! To force something to be enabled or disabled, have no algorithms in the
 $! algos part.
 $ CONFIG_DISABLE_RULES := RIJNDAEL/AES;-
+                         RMD160/RIPEMD;-
                          DES/MDC2;-
                          EC/ECDSA,ECDH;-
                          MD5/SSL3,TLS1;-
                          SHA/SSL3,TLS1;-
+                         RSA,DSA/SSL3,TLS1;-
                          DH/SSL3,TLS1;-
-                         TLS1/TLSEXT;-
                          EC/GOST;-
                          DSA/GOST;-
                          DH/GOST;-
                          /STATIC_ENGINE;-
-                         /KRB5;-
-                         /EC_NISTP_64_GCC_128
+                         /DEPRECATED;-
+                         /EC_NISTP_64_GCC_128;-
+                         /GMP;-
+                         /MD2;-
+                         /RC5;-
+                         /RFC3779;-
+                         /SCTP;-
+                         /SSL_TRACE;-
+                         /UNIT_TEST
 $ CONFIG_ENABLE_RULES := ZLIB_DYNAMIC/ZLIB;-
                         /THREADS
 $
@@ -346,25 +356,59 @@ $   CONFIG_DISABLE_RULES = CONFIG_DISABLE_RULES + -
                           ";/WHIRLPOOL"
 $ ENDIF
 $
+$! Keep track of things to remove from SDIRS, have the items surrounded
+$! with commas
+$ SKIP_SDIRS = ","
+$
 $ CONFIG_LOG_I = 0
-$ CONFIG_LOG_LOOP1:
+$ CONFIG_LOG_LOOP11:
 $   CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM")
 $   CONFIG_LOG_I = CONFIG_LOG_I + 1
-$   IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP1
-$   IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP1_END
+$   IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP11
+$   IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP11_END
 $   IF F$TRNLNM("OPENSSL_NO_"+CONFIG_LOG_E)
 $   THEN
 $       CONFIG_DISABLED_'CONFIG_LOG_E' := YES
 $       CONFIG_ENABLED_'CONFIG_LOG_E' := NO
 $      CONFIG_CHANGED_'CONFIG_LOG_E' := YES
+$      IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .EQS. SKIP_SDIRS THEN -
+           SKIP_SDIRS = SKIP_SDIRS + CONFIG_LOG_E + ","
 $   ELSE
 $       CONFIG_DISABLED_'CONFIG_LOG_E' := NO
 $       CONFIG_ENABLED_'CONFIG_LOG_E' := YES
-$      ! Because all algorithms are assumed enabled by default
+$      ! Because all non-experimental algorithms are assumed
+$      ! enabled by default
+$      CONFIG_CHANGED_'CONFIG_LOG_E' := NO
+$      IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .NES. SKIP_SDIRS THEN -
+           SKIP_SDIRS = SKIP_SDIRS - (CONFIG_LOG_E + ",")
+$   ENDIF
+$   GOTO CONFIG_LOG_LOOP11
+$ CONFIG_LOG_LOOP11_END:
+$
+$ CONFIG_LOG_I = 0
+$ CONFIG_LOG_LOOP12:
+$   CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_EXPERIMENTAL),"TRIM")
+$   CONFIG_LOG_I = CONFIG_LOG_I + 1
+$   IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP12
+$   IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP12_END
+$   IF F$TRNLNM("OPENSSL_EXPERIMENTAL_"+CONFIG_LOG_E)
+$   THEN
+$      CONFIG_DISABLED_'CONFIG_LOG_E' := NO
+$      CONFIG_ENABLED_'CONFIG_LOG_E' := YES
+$      CONFIG_CHANGED_'CONFIG_LOG_E' := YES
+$      IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .NES. SKIP_SDIRS THEN -
+           SKIP_SDIRS = SKIP_SDIRS - (CONFIG_LOG_E + ",")
+$   ELSE
+$      CONFIG_DISABLED_'CONFIG_LOG_E' := YES
+$      CONFIG_ENABLED_'CONFIG_LOG_E' := NO
+$      ! Because all experimental algorithms are assumed
+$      ! disabled by default
 $      CONFIG_CHANGED_'CONFIG_LOG_E' := NO
+$      IF (SKIP_SDIRS - (","+CONFIG_LOG_E+",")) .EQS. SKIP_SDIRS THEN -
+           SKIP_SDIRS = SKIP_SDIRS + CONFIG_LOG_E + ","
 $   ENDIF
-$   GOTO CONFIG_LOG_LOOP1
-$ CONFIG_LOG_LOOP1_END:
+$   GOTO CONFIG_LOG_LOOP12
+$ CONFIG_LOG_LOOP12_END:
 $
 $! Apply cascading disable rules
 $ CONFIG_DISABLE_I = 0
@@ -407,6 +451,8 @@ $       CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := YES
 $       CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := NO
 $      ! Better not to assume defaults at this point...
 $      CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
+$      IF (SKIP_SDIRS - (","+CONFIG_DEPENDENT_E+",")) .EQS. SKIP_SDIRS THEN -
+           SKIP_SDIRS = SKIP_SDIRS + CONFIG_DEPENDENT_E + ","
 $      WRITE SYS$ERROR -
          "''CONFIG_DEPENDENT_E' disabled by rule ''CONFIG_DISABLE_E'"
 $      GOTO CONFIG_DISABLE_LOOP2
@@ -456,6 +502,8 @@ $       CONFIG_DISABLED_'CONFIG_DEPENDENT_E' := NO
 $       CONFIG_ENABLED_'CONFIG_DEPENDENT_E' := YES
 $      ! Better not to assume defaults at this point...
 $      CONFIG_CHANGED_'CONFIG_DEPENDENT_E' := YES
+$      IF (SKIP_SDIRS - (","+CONFIG_DEPENDENT_E+",")) .NES. SKIP_SDIRS THEN -
+           SKIP_SDIRS = SKIP_SDIRS - (CONFIG_DEPENDENT_E + ",")
 $      WRITE SYS$ERROR -
          "''CONFIG_DEPENDENT_E' enabled by rule ''CONFIG_ENABLE_E'"
 $      GOTO CONFIG_ENABLE_LOOP2
@@ -464,6 +512,19 @@ $   ENDIF
 $   GOTO CONFIG_ENABLE_LOOP0
 $ CONFIG_ENABLE_LOOP0_END:
 $
+$! Fix SDIRS
+$ SDIRS = ","+F$EDIT(SDIRS,"COLLAPSE")+","
+$ CONFIG_SKIP_I = 0
+$ CONFIG_SDIRS_LOOP1:
+$   CONFIG_SKIP_E = F$EDIT(F$ELEMENT(CONFIG_SKIP_I,",",SKIP_SDIRS),"TRIM")
+$   CONFIG_SKIP_I = CONFIG_SKIP_I + 1
+$   IF CONFIG_SKIP_E .EQS. "" THEN GOTO CONFIG_SDIRS_LOOP1
+$   IF CONFIG_SKIP_E .EQS. "," THEN GOTO CONFIG_SDIRS_LOOP1_END
+$   IF (SDIRS - (","+CONFIG_SKIP_E+",")) .NES. SDIRS THEN -
+       SDIRS = SDIRS - (CONFIG_SKIP_E+",")
+$   GOTO CONFIG_SDIRS_LOOP1
+$ CONFIG_SDIRS_LOOP1_END: 
+$ 
 $! Write to the configuration
 $ CONFIG_LOG_I = 0
 $ CONFIG_LOG_LOOP2:
@@ -471,21 +532,32 @@ $   CONFIG_LOG_E = F$EDIT(F$ELEMENT(CONFIG_LOG_I,",",CONFIG_LOGICALS),"TRIM")
 $   CONFIG_LOG_I = CONFIG_LOG_I + 1
 $   IF CONFIG_LOG_E .EQS. "" THEN GOTO CONFIG_LOG_LOOP2
 $   IF CONFIG_LOG_E .EQS. "," THEN GOTO CONFIG_LOG_LOOP2_END
-$   IF CONFIG_CHANGED_'CONFIG_LOG_E'
+$   IF CONFIG_DISABLED_'CONFIG_LOG_E'
 $   THEN
-$     IF CONFIG_DISABLED_'CONFIG_LOG_E'
+$     WRITE H_FILE "#ifndef OPENSSL_NO_",CONFIG_LOG_E
+$     WRITE H_FILE "# define OPENSSL_NO_",CONFIG_LOG_E
+$     WRITE H_FILE "#endif"
+$   ELSE
+$     IF CONFIG_CHANGED_'CONFIG_LOG_E'
 $     THEN
-$      WRITE H_FILE "#ifndef OPENSSL_NO_",CONFIG_LOG_E
-$      WRITE H_FILE "# define OPENSSL_NO_",CONFIG_LOG_E
-$      WRITE H_FILE "#endif"
-$     ELSE
-$      WRITE H_FILE "#ifndef OPENSSL_",CONFIG_LOG_E
-$      WRITE H_FILE "# define OPENSSL_",CONFIG_LOG_E
+$      WRITE H_FILE "#ifndef OPENSSL_EXPERIMENTAL_",CONFIG_LOG_E
+$      WRITE H_FILE "# ifndef OPENSSL_NO_",CONFIG_LOG_E
+$      WRITE H_FILE "#  define OPENSSL_NO_",CONFIG_LOG_E
+$      WRITE H_FILE "# endif"
 $      WRITE H_FILE "#endif"
+$
+$      IF F$TYPE(USER_CCDEFS) .NES. ""
+$      THEN
+$        USER_CCDEFS = USER_CCDEFS + ",OPENSSL_EXPERIMENTAL_" + CONFIG_LOG_E
+$       ELSE
+$        USER_CCDEFS = "OPENSSL_EXPERIMENTAL_" + CONFIG_LOG_E
+$       ENDIF
 $     ENDIF
 $   ENDIF
 $   GOTO CONFIG_LOG_LOOP2
 $ CONFIG_LOG_LOOP2_END:
+$
+$ WRITE/SYMBOL SYS$ERROR "SDIRS = """,SDIRS,""""
 $!
 $ WRITE H_FILE ""
 $ WRITE H_FILE "/* STCP support comes with TCPIP 5.7 ECO 2 "
@@ -689,7 +761,7 @@ $ copy 'exheader' sys$disk:[.include.openssl]
 $!
 $! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
 $!
-$ SDIRS := , -
+$ HEADER_SDIRS := , -
    'ARCHD', -
    OBJECTS, -
    MD2, MD4, MD5, SHA, MDC2, HMAC, RIPEMD, WHRLPOOL, -
@@ -697,7 +769,7 @@ $ SDIRS := , -
    BN, EC, RSA, DSA, ECDSA, DH, ECDH, DSO, ENGINE, -
    BUFFER, BIO, STACK, LHASH, RAND, ERR, -
    EVP, ASN1, PEM, X509, X509V3, CONF, TXT_DB, PKCS7, PKCS12, -
-   COMP, OCSP, UI, KRB5, -
+   COMP, OCSP, UI, -
    CMS, PQUEUE, TS, JPAKE, SRP, STORE, CMAC
 $!
 $ EXHEADER_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
@@ -711,7 +783,7 @@ $ EXHEADER_MDC2 := mdc2.h
 $ EXHEADER_HMAC := hmac.h
 $ EXHEADER_RIPEMD := ripemd.h
 $ EXHEADER_WHRLPOOL := whrlpool.h
-$ EXHEADER_DES := des.h, des_old.h
+$ EXHEADER_DES := des.h
 $ EXHEADER_AES := aes.h
 $ EXHEADER_RC2 := rc2.h
 $ EXHEADER_RC4 := rc4.h
@@ -748,8 +820,7 @@ $ EXHEADER_PKCS7 := pkcs7.h
 $ EXHEADER_PKCS12 := pkcs12.h
 $ EXHEADER_COMP := comp.h
 $ EXHEADER_OCSP := ocsp.h
-$ EXHEADER_UI := ui.h, ui_compat.h
-$ EXHEADER_KRB5 := krb5_asn.h
+$ EXHEADER_UI := ui.h
 $ EXHEADER_CMS := cms.h
 $ EXHEADER_PQUEUE := pqueue.h
 $ EXHEADER_TS := ts.h
@@ -760,20 +831,20 @@ $ EXHEADER_STORE := store.h
 $ EXHEADER_CMAC := cmac.h
 $!
 $ i = 0
-$ loop_sdirs:
-$   sdir = f$edit( f$element( i, ",", sdirs), "trim")
+$ loop_header_sdirs:
+$   sdir = f$edit( f$element( i, ",", header_sdirs), "trim")
 $   i = i + 1
-$   if (sdir .eqs. ",") then goto loop_sdirs_end
+$   if (sdir .eqs. ",") then goto loop_header_sdirs_end
 $   hdr_list = exheader_'sdir'
 $   if (sdir .nes. "") then sdir = "."+ sdir
 $   copy [.crypto'sdir']'hdr_list' sys$disk:[.include.openssl]
-$ goto loop_sdirs
-$ loop_sdirs_end:
+$ goto loop_header_sdirs
+$ loop_header_sdirs_end:
 $!
 $! Copy All The ".H" Files From The [.SSL] Directory.
 $!
 $! (keep these in the same order as ssl/Makefile)
-$ EXHEADER := ssl.h, ssl2.h, ssl3.h, ssl23.h, tls1.h, dtls1.h, kssl.h
+$ EXHEADER := ssl.h, ssl2.h, ssl3.h, ssl23.h, tls1.h, dtls1.h, srtp.h
 $ copy sys$disk:[.ssl]'exheader' sys$disk:[.include.openssl]
 $!
 $! Purge the [.include.openssl] header files.
@@ -803,11 +874,6 @@ $!
 $ @CRYPTO-LIB LIBRARY 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
    "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
 $!
-$! Build The [.xxx.EXE.CRYPTO]*.EXE Test Applications.
-$!  
-$ @CRYPTO-LIB APPS 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
-   "''ISSEVEN'" "''BUILDPART'" "''POINTER_SIZE'" "''ZLIB'"
-$!
 $! Go Back To The Main Directory.
 $!
 $ SET DEFAULT [-]
@@ -843,33 +909,6 @@ $! Time To Return.
 $!
 $ RETURN
 $!
-$! Build The "[.xxx.EXE.SSL]SSL_TASK.EXE" Program.
-$!
-$ SSL_TASK:
-$!
-$! Tell The User What We Are Doing.
-$!
-$ WRITE SYS$OUTPUT ""
-$ WRITE SYS$OUTPUT -
-   "Building DECNet Based SSL Engine, [.",ARCHD,".EXE.SSL]SSL_TASK.EXE"
-$!
-$! Go To The [.SSL] Directory.
-$!
-$ SET DEFAULT SYS$DISK:[.SSL]
-$!
-$! Build The [.xxx.EXE.SSL]SSL_TASK.EXE
-$!
-$ @SSL-LIB SSL_TASK 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" -
-   "''ISSEVEN'" "''POINTER_SIZE'" "''ZLIB'"
-$!
-$! Go Back To The Main Directory.
-$!
-$ SET DEFAULT [-]
-$!
-$! That's All, Time To RETURN.
-$!
-$ RETURN
-$!
 $! Build The OpenSSL Test Programs.
 $!
 $ TEST:
@@ -980,7 +1019,7 @@ $!
 $   IF (P1.EQS."CONFIG").OR.(P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS") -
        .OR.(P1.EQS."BUILDALL") -
        .OR.(P1.EQS."CRYPTO").OR.(P1.EQS."SSL") -
-       .OR.(P1.EQS."SSL_TASK").OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") -
+       .OR.(P1.EQS."TEST").OR.(P1.EQS."APPS") -
        .OR.(P1.EQS."ENGINES")
 $   THEN
 $!
@@ -1010,7 +1049,6 @@ $     WRITE SYS$OUTPUT "    CRYPTO   :  To Build Just The [.xxx.EXE.CRYPTO]LIBCR
 $     WRITE SYS$OUTPUT "    CRYPTO/x :  To Build Just The x Part Of The"
 $     WRITE SYS$OUTPUT "                [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
 $     WRITE SYS$OUTPUT "    SSL      :  To Build Just The [.xxx.EXE.SSL]LIBSSL.OLB Library."
-$     WRITE SYS$OUTPUT "    SSL_TASK :  To Build Just The [.xxx.EXE.SSL]SSL_TASK.EXE Program."
 $     WRITE SYS$OUTPUT "    TEST     :  To Build Just The OpenSSL Test Programs."
 $     WRITE SYS$OUTPUT "    APPS     :  To Build Just The OpenSSL Application Programs."
 $     WRITE SYS$OUTPUT "    ENGINES  :  To Build Just The ENGINES"