VMS updates.
authorUlf Möller <ulf@openssl.org>
Wed, 28 Jul 1999 23:25:59 +0000 (23:25 +0000)
committerUlf Möller <ulf@openssl.org>
Wed, 28 Jul 1999 23:25:59 +0000 (23:25 +0000)
Submitted by: Richard Levitte <levitte@stacken.kth.se>

22 files changed:
VMS/TODO [new file with mode: 0644]
VMS/install.com
VMS/vms_idhacks.h [new file with mode: 0644]
apps/makeapps.com
apps/pkcs8.c
apps/s_client.c
apps/s_server.c
apps/s_socket.c
crypto/crypto-lib.com
crypto/des/des-lib.com
crypto/des/des.h
crypto/install.com
crypto/pem/pem.h
crypto/pkcs7/pkcs7.h
makevms.com
rsaref/rsaref-lib.com
ssl/ssl-lib.com
ssl/ssl.h
test/testgen.com
test/testss.com
test/testssl.com
test/treq.com

diff --git a/VMS/TODO b/VMS/TODO
new file mode 100644 (file)
index 0000000..359e069
--- /dev/null
+++ b/VMS/TODO
@@ -0,0 +1,18 @@
+TODO:
+=====
+
+There are a few things that need to be worked out in the VMS version of
+OpenSSL, still:
+
+- Description files. ("Makefile's" :-))
+- Script code to link an already compiled build tree.
+- A VMSINSTALlable version (way in the future, unless someone else hacks).
+- shareable images (DLL for you Windows folks).
+
+There may be other things that I have missed and that may be desirable.
+Please send mail to <openssl-users@openssl.org> or to me directly if you
+have any ideas.
+
+--
+Richard Levitte <richard@levitte.org>
+1999-05-24
index 2eadcfe..d941392 100644 (file)
@@ -29,9 +29,15 @@ $    DEFINE/NOLOG WRK_SSLPRIVATE WRK_SSLROOT:[PRIVATE]
 $
 $      IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
           CREATE/DIR/LOG WRK_SSLROOT:[000000]
+$      IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
+          CREATE/DIR/LOG WRK_SSLINCLUDE:
 $      IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN -
           CREATE/DIR/LOG WRK_SSLROOT:[VMS]
 $
+$      EXHEADER := vms_idhacks.h
+$
+$      COPY 'EXHEADER' WRK_SSLINCLUDE: /LOG
+$
 $      OPEN/WRITE SF WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM
 $      WRITE SYS$OUTPUT "%OPEN-I-CREATED,  ",F$SEARCH("WRK_SSLROOT:[VMS]OPENSSL_STARTUP.COM")," created."
 $      WRITE SF "$! Startup file for Openssl 0.9.2-RL 15-Mar-1999"
diff --git a/VMS/vms_idhacks.h b/VMS/vms_idhacks.h
new file mode 100644 (file)
index 0000000..8cf9e9c
--- /dev/null
@@ -0,0 +1,126 @@
+/* ====================================================================
+ * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer. 
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in
+ *    the documentation and/or other materials provided with the
+ *    distribution.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ *    software must display the following acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ *    endorse or promote products derived from this software without
+ *    prior written permission. For written permission, please contact
+ *    openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ *    nor may "OpenSSL" appear in their names without prior written
+ *    permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ *    acknowledgment:
+ *    "This product includes software developed by the OpenSSL Project
+ *    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com).  This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+#ifndef HEADER_VMS_IDHACKS_H
+#define HEADER_VMS_IDHACKS_H
+
+#ifdef VMS
+
+/* Hack the names created with DECLARE_STACK_OF(PKCS7_SIGNER_INFO) */
+#define sk_PKCS7_SIGNER_INFO_new       sk_PKCS7_SIGINF_new
+#define sk_PKCS7_SIGNER_INFO_new_null  sk_PKCS7_SIGINF_new_null
+#define sk_PKCS7_SIGNER_INFO_free      sk_PKCS7_SIGINF_free
+#define sk_PKCS7_SIGNER_INFO_num       sk_PKCS7_SIGINF_num
+#define sk_PKCS7_SIGNER_INFO_value     sk_PKCS7_SIGINF_value
+#define sk_PKCS7_SIGNER_INFO_set       sk_PKCS7_SIGINF_set
+#define sk_PKCS7_SIGNER_INFO_zero      sk_PKCS7_SIGINF_zero
+#define sk_PKCS7_SIGNER_INFO_push      sk_PKCS7_SIGINF_push
+#define sk_PKCS7_SIGNER_INFO_unshift   sk_PKCS7_SIGINF_unshift
+#define sk_PKCS7_SIGNER_INFO_find      sk_PKCS7_SIGINF_find
+#define sk_PKCS7_SIGNER_INFO_delete    sk_PKCS7_SIGINF_delete
+#define sk_PKCS7_SIGNER_INFO_delete_ptr        sk_PKCS7_SIGINF_delete_ptr
+#define sk_PKCS7_SIGNER_INFO_insert    sk_PKCS7_SIGINF_insert
+#define sk_PKCS7_SIGNER_INFO_set_cmp_func      sk_PKCS7_SIGINF_set_cmp_func
+#define sk_PKCS7_SIGNER_INFO_dup       sk_PKCS7_SIGINF_dup
+#define sk_PKCS7_SIGNER_INFO_pop_free  sk_PKCS7_SIGINF_pop_free
+#define sk_PKCS7_SIGNER_INFO_shift     sk_PKCS7_SIGINF_shift
+#define sk_PKCS7_SIGNER_INFO_pop       sk_PKCS7_SIGINF_pop
+#define sk_PKCS7_SIGNER_INFO_sort      sk_PKCS7_SIGINF_sort
+
+/* Hack the names created with DECLARE_STACK_OF(PKCS7_RECIP_INFO) */
+#define sk_PKCS7_RECIP_INFO_new                sk_PKCS7_RECINF_new
+#define sk_PKCS7_RECIP_INFO_new_null   sk_PKCS7_RECINF_new_null
+#define sk_PKCS7_RECIP_INFO_free       sk_PKCS7_RECINF_free
+#define sk_PKCS7_RECIP_INFO_num                sk_PKCS7_RECINF_num
+#define sk_PKCS7_RECIP_INFO_value      sk_PKCS7_RECINF_value
+#define sk_PKCS7_RECIP_INFO_set                sk_PKCS7_RECINF_set
+#define sk_PKCS7_RECIP_INFO_zero       sk_PKCS7_RECINF_zero
+#define sk_PKCS7_RECIP_INFO_push       sk_PKCS7_RECINF_push
+#define sk_PKCS7_RECIP_INFO_unshift    sk_PKCS7_RECINF_unshift
+#define sk_PKCS7_RECIP_INFO_find       sk_PKCS7_RECINF_find
+#define sk_PKCS7_RECIP_INFO_delete     sk_PKCS7_RECINF_delete
+#define sk_PKCS7_RECIP_INFO_delete_ptr sk_PKCS7_RECINF_delete_ptr
+#define sk_PKCS7_RECIP_INFO_insert     sk_PKCS7_RECINF_insert
+#define sk_PKCS7_RECIP_INFO_set_cmp_func       sk_PKCS7_RECINF_set_cmp_func
+#define sk_PKCS7_RECIP_INFO_dup                sk_PKCS7_RECINF_dup
+#define sk_PKCS7_RECIP_INFO_pop_free   sk_PKCS7_RECINF_pop_free
+#define sk_PKCS7_RECIP_INFO_shift      sk_PKCS7_RECINF_shift
+#define sk_PKCS7_RECIP_INFO_pop                sk_PKCS7_RECINF_pop
+#define sk_PKCS7_RECIP_INFO_sort       sk_PKCS7_RECINF_sort
+
+/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_SIGNER_INFO) */
+#define i2d_ASN1_SET_OF_PKCS7_SIGNER_INFO i2d_ASN1_SET_OF_PKCS7_SIGINF
+#define d2i_ASN1_SET_OF_PKCS7_SIGNER_INFO d2i_ASN1_SET_OF_PKCS7_SIGINF
+
+/* Hack the names created with DECLARE_ASN1_SET_OF(PKCS7_RECIP_INFO) */
+#define i2d_ASN1_SET_OF_PKCS7_RECIP_INFO i2d_ASN1_SET_OF_PKCS7_RECGINF
+#define d2i_ASN1_SET_OF_PKCS7_RECIP_INFO d2i_ASN1_SET_OF_PKCS7_RECGINF
+
+/* Hack the names created with DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE) */
+#define PEM_read_NETSCAPE_CERT_SEQUENCE                PEM_read_NS_CERT_SEQUENCE
+#define PEM_write_NETSCAPE_CERT_SEQUENCE       PEM_write_NS_CERT_SEQUENCE
+#define PEM_read_bio_NETSCAPE_CERT_SEQUENCE    PEM_read_bio_NS_CERT_SEQUENCE
+#define PEM_write_bio_NETSCAPE_CERT_SEQUENCE   PEM_write_bio_NS_CERT_SEQUENCE
+#define PEM_write_cb_bio_NETSCAPE_CERT_SEQUENCE        PEM_write_cb_bio_NS_CERT_SEQUENCE
+
+/* Hack the names created with DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO) */
+#define PEM_read_PKCS8_PRIV_KEY_INFO           PEM_read_P8_PRIV_KEY_INFO
+#define PEM_write_PKCS8_PRIV_KEY_INFO          PEM_write_P8_PRIV_KEY_INFO
+#define PEM_read_bio_PKCS8_PRIV_KEY_INFO       PEM_read_bio_P8_PRIV_KEY_INFO
+#define PEM_write_bio_PKCS8_PRIV_KEY_INFO      PEM_write_bio_P8_PRIV_KEY_INFO
+#define PEM_write_cb_bio_PKCS8_PRIV_KEY_INFO   PEM_write_cb_bio_P8_PRIV_KEY_INFO
+
+#endif /* defined VMS */
+
+#endif /* ! defined HEADER_VMS_IDHACKS_H */
index ab8c8fa..8a15a13 100644 (file)
@@ -158,14 +158,14 @@ $ LIB_FILES = "VERIFY;ASN1PARS;REQ;DGST;DH;ENC;GENDH;"+-
              "RSA;DSA;DSAPARAM;"+-
              "X509;GENRSA;GENDSA;S_SERVER;S_CLIENT;SPEED;"+-
              "S_TIME;APPS;S_CB;S_SOCKET;VERSION;SESS_ID;"+-
-             "CIPHERS;NSEQ;PKCS12"
+             "CIPHERS;NSEQ;PKCS12;PKCS8"
 $ APP_FILES := OPENSSL,'OBJ_DIR'VERIFY.OBJ,ASN1PARS.OBJ,REQ.OBJ,DGST.OBJ,DH.OBJ,ENC.OBJ,GENDH.OBJ,-
               ERRSTR.OBJ,CA.OBJ,-
               PKCS7.OBJ,CRL2P7.OBJ,CRL.OBJ,-
               RSA.OBJ,DSA.OBJ,DSAPARAM.OBJ,-
               X509.OBJ,GENRSA.OBJ,GENDSA.OBJ,S_SERVER.OBJ,S_CLIENT.OBJ,SPEED.OBJ,-
               S_TIME.OBJ,APPS.OBJ,S_CB.OBJ,S_SOCKET.OBJ,VERSION.OBJ,SESS_ID.OBJ,-
-              CIPHERS.OBJ,NSEQ.OBJ,PKCS12.OBJ
+              CIPHERS.OBJ,NSEQ.OBJ,PKCS12.OBJ,PKCS8.OBJ
 $ TCPIP_PROGRAMS = ",,"
 $ IF COMPILER .EQS. "VAXC" THEN -
      TCPIP_PROGRAMS = ",OPENSSL,"
@@ -900,7 +900,8 @@ $     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
 $!
 $!    Use GNU C...
 $!
-$     CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + CCEXTRAFLAGS
+$     IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
+$     CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + CCEXTRAFLAGS
 $!
 $!    Define The Linker Options File Name.
 $!
index 9e9b92b..a053883 100644 (file)
@@ -56,6 +56,7 @@
  *
  */
 #include <stdio.h>
+#include <string.h>
 #include <openssl/pem.h>
 #include <openssl/err.h>
 #include <openssl/evp.h>
index 84133b8..96e446c 100644 (file)
  * [including the GNU Public Licence.]
  */
 
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef NO_STDIO
+#define APPS_WIN16
+#endif
+
 /* With IPv6, it looks like Digital has mixed up the proper order of
    recursive header file inclusion, resulting in the compiler complaining
    that u_int isn't defined, but only if _POSIX_C_SOURCE is defined, which
 typedef unsigned int u_int;
 #endif
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
 #define USE_SOCKETS
-#ifdef NO_STDIO
-#define APPS_WIN16
-#endif
 #include "apps.h"
 #include <openssl/x509.h>
 #include <openssl/ssl.h>
index 5b07918..5498931 100644 (file)
  * [including the GNU Public Licence.]
  */
 
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#ifdef NO_STDIO
+#define APPS_WIN16
+#endif
+
 /* With IPv6, it looks like Digital has mixed up the proper order of
    recursive header file inclusion, resulting in the compiler complaining
    that u_int isn't defined, but only if _POSIX_C_SOURCE is defined, which
 typedef unsigned int u_int;
 #endif
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#ifdef NO_STDIO
-#define APPS_WIN16
-#endif
 #include <openssl/lhash.h>
 #include <openssl/bn.h>
 #define USE_SOCKETS
index 45c2939..888b66d 100644 (file)
  * [including the GNU Public Licence.]
  */
 
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <signal.h>
+
 /* With IPv6, it looks like Digital has mixed up the proper order of
    recursive header file inclusion, resulting in the compiler complaining
    that u_int isn't defined, but only if _POSIX_C_SOURCE is defined, which
 typedef unsigned int u_int;
 #endif
 
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <signal.h>
 #define USE_SOCKETS
 #define NON_MAIN
 #include "apps.h"
index 4178044..bf91652 100644 (file)
@@ -177,7 +177,7 @@ $ LIB_BN = "bn_add,bn_div,bn_exp,bn_lib,bn_mul,"+ -
        "bn_gcd,bn_prime,bn_err,bn_sqr,"+LIB_BN_ASM+",bn_recp,bn_mont,"+ -
        "bn_mpi,bn_exp2"
 $ LIB_RSA = "rsa_eay,rsa_gen,rsa_lib,rsa_sign,rsa_saos,rsa_err,"+ -
-       "rsa_pk1,rsa_ssl,rsa_none,rsa_oaep"
+       "rsa_pk1,rsa_ssl,rsa_none,rsa_oaep,rsa_chk"
 $ LIB_DSA = "dsa_gen,dsa_key,dsa_lib,dsa_asn1,dsa_vrf,dsa_sign,dsa_err"
 $ LIB_DH = "dh_gen,dh_key,dh_lib,dh_check,dh_err"
 $ LIB_BUFFER = "buffer,buf_err"
@@ -185,7 +185,7 @@ $ LIB_BIO = "bio_lib,bio_cb,bio_err,"+ -
        "bss_mem,bss_null,bss_fd,"+ -
        "bss_file,bss_sock,bss_conn,"+ -
        "bf_null,bf_buff,b_print,b_dump,"+ -
-       "b_sock,bss_acpt,bf_nbio,bss_rtcp" ! + ",bss_log" for syslog
+       "b_sock,bss_acpt,bf_nbio,bss_rtcp,bss_bio" ! + ",bss_log" for syslog
 $ LIB_STACK = "stack"
 $ LIB_LHASH = "lhash,lh_stats"
 $ LIB_RAND = "md_rand,randfile,rand_lib"
@@ -204,7 +204,7 @@ $ LIB_EVP_2 = "e_ecb_c,e_cbc_c,e_cfb_c,e_ofb_c,"+ -
        "m_ripemd,"+ -
        "p_open,p_seal,p_sign,p_verify,p_lib,p_enc,p_dec,"+ -
        "bio_md,bio_b64,bio_enc,evp_err,e_null,"+ -
-       "c_all,evp_lib,bio_ok,evp_pkey,evp_pbe"
+       "c_all,evp_lib,bio_ok,evp_pkey,evp_pbe,p5_crpt,p5_crpt2"
 $ LIB_ASN1 = "a_object,a_bitstr,a_utctm,a_gentm,a_time,a_int,a_octet,"+ -
        "a_print,a_type,a_set,a_dup,a_d2i_fp,a_i2d_fp,a_bmp,"+ -
        "a_enum,a_vis,a_utf8,a_sign,a_digest,a_verify,"+ -
index 40a34bb..2aea7a0 100644 (file)
@@ -430,11 +430,13 @@ $!
 $! Compile The DES Program.
 $!
 $ CC/OBJECT='OBJ_DIR'DES.OBJ SYS$DISK:[]DES.C
+$ CC/OBJECT='OBJ_DIR'DES.OBJ SYS$DISK:[]CBC3_ENC.C
 $!
 $! Link The DES Program.
 $!
 $ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS/EXE='EXE_DIR'DES.EXE -
-      'OBJ_DIR'DES.OBJ,'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION
+      'OBJ_DIR'DES.OBJ,'OBJ_DIR'CBC3_ENC.OBJ,-
+      'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION
 $!
 $! All Done, Time To Return.
 $!
index 141526b..54d58ed 100644 (file)
@@ -67,6 +67,10 @@ extern "C" {
 #error DES is disabled.
 #endif
 
+#ifdef _KERBEROS_DES_H
+#error kerberos/des.h and openssl/des.h
+#endif
+
 #include <stdio.h>
 #include <openssl/opensslconf.h> /* DES_LONG */
 #include <openssl/e_os2.h>     /* OPENSSL_EXTERN */
@@ -116,11 +120,11 @@ typedef struct des_ks_struct
 #define des_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
        des_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
 
-#define Key_schedule des_key_schedule
 #ifdef KERBEROS
 #define ENCRYPT DES_ENCRYPT
 #define DECRYPT DES_DECRYPT
 #endif
+
 #define KEY_SZ DES_KEY_SZ
 #define string_to_key des_string_to_key
 #define read_pw_string des_read_pw_string
index 4737a56..b75d1b4 100644 (file)
@@ -38,7 +38,7 @@ $     SDIRS := ,MD2,MD5,SHA,MDC2,HMAC,RIPEMD,-
                 BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,-
                 EVP,ASN1,PEM,X509,X509V3,-
                 CONF,TXT_DB,PKCS7,PKCS12,COMP
-$      EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h
+$      EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h,ebcdic.h
 $      EXHEADER_MD2 := md2.h
 $      EXHEADER_MD5 := md5.h
 $      EXHEADER_SHA := sha.h
index 5017a87..91f7188 100644 (file)
@@ -522,6 +522,10 @@ void       PEM_dek_info(char *buf, const char *type, int len, char *str);
 
 #ifndef SSLEAY_MACROS
 
+#ifdef VMS
+#include <openssl/vms_idhacks.h>
+#endif
+
 DECLARE_PEM_rw(X509, X509)
 
 DECLARE_PEM_rw(X509_REQ, X509_REQ)
@@ -560,16 +564,6 @@ DECLARE_PEM_rw(DHparams, DH)
 
 DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY)
 
-#ifdef VMS
-/* Too long names need to be abbreviated to at most 31 characters */
-#undef PEM_write_NETSCAPE_CERT_SEQUENCE
-#define PEM_write_NETSCAPE_CERT_SEQUENCE PEM_write_NETSCAPE_CERT_SEQ
-#undef PEM_read_bio_NETSCAPE_CERT_SEQUENCE
-#define PEM_read_bio_NETSCAPE_CERT_SEQUENCE PEM_read_bio_NETSCAPE_CERT_SEQ
-#undef PEM_write_bio_NETSCAPE_CERT_SEQUENCE
-#define PEM_write_bio_NETSCAPE_CERT_SEQUENCE PEM_write_bio_NETSCAPE_CERT_SEQ
-#endif
-
 int PEM_write_PKCS8PrivateKey(FILE *fp,EVP_PKEY *x,const EVP_CIPHER *enc,
                              char *kstr,int klen, pem_password_cb *cd, void *u);
 #endif /* SSLEAY_MACROS */
index 859718e..c42bd6d 100644 (file)
@@ -66,6 +66,10 @@ extern "C" {
 #include <openssl/bio.h>
 #include <openssl/x509.h>
 
+#ifdef VMS
+#include <openssl/vms_idhacks.h>
+#endif
+
 #ifdef WIN32
 /* Under Win32 this is defined in wincrypt.h */
 #undef PKCS7_ISSUER_AND_SERIAL
index 628769b..977f2ce 100755 (executable)
@@ -17,7 +17,7 @@ $!
 $! Specify one of the following build options for P1.
 $!
 $!      ALL       Just build "everything".
-$!      DATE      Just build the "[.INCLUDE.OPENSSL]DATE.H" file.
+$!      BUILDINF  Just build the "[.CRYPTO]BUILDINF.H" file.
 $!      SOFTLINKS Just fix the Unix soft links.
 $!      RSAREF    Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library.
 $!      CRYPTO    Just build the "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" library.
@@ -96,9 +96,9 @@ $!  First, Fix The Unix Softlinks.
 $!
 $   GOSUB SOFTLINKS
 $!
-$!  Create The "DATE.H" Include File.
+$!  Create The "BUILDINF.H" Include File.
 $!
-$   GOSUB DATE
+$   GOSUB BUILDINF
 $!
 $!  Check To See If We Are Going To Be Building The 
 $!  [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
@@ -147,27 +147,29 @@ $! Time To EXIT.
 $!
 $ EXIT   
 $!
-$! Rebuild The "[.INCLUDE.OPENSSL]DATE.H" file.
+$! Rebuild The "[.CRYPTO]BUILDINF.H" file.
 $!
-$ DATE:
+$ BUILDINF:
 $!
-$! Tell The User We Are Creating The [.CRYPTO]DATE.H File.
+$! Tell The User We Are Creating The [.CRYPTO]BUILDINF.H File.
 $!
-$ WRITE SYS$OUTPUT "Creating [.CRYPTO]DATE.H Include File."
+$ WRITE SYS$OUTPUT "Creating [.CRYPTO]BUILDINF.H Include File."
 $!
-$! Create The [.CRYPTO]DATE.H File.
+$! Create The [.CRYPTO]BUILDINF.H File.
 $!
-$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]DATE.H
+$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]BUILDINF.H
 $!
 $! Get The Current Date & Time.
 $!
 $ TIME = F$TIME()
 $!
-$! Write The [.CRYPTO]DATE.H File.
+$! Write The [.CRYPTO]BUILDINF.H File.
 $!
+$ WRITE H_FILE "#define CFLAGS """" /* Not filled in for now */"
+$ WRITE H_FILE "#define PLATFORM ""VMS"""
 $ WRITE H_FILE "#define DATE ""''TIME'"" "
 $!
-$! Close The [.CRYPTO]DATE.H File.
+$! Close The [.CRYPTO]BUILDINF.H File.
 $!
 $ CLOSE H_FILE
 $!
@@ -232,7 +234,7 @@ $ SDIRS := ,MD2,MD5,SHA,MDC2,HMAC,RIPEMD,-
    BUFFER,BIO,STACK,LHASH,RAND,ERR,OBJECTS,-
    EVP,ASN1,PEM,X509,X509V3,-
    CONF,TXT_DB,PKCS7,PKCS12,COMP
-$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h
+$ EXHEADER_ := crypto.h,tmdiff.h,opensslv.h,opensslconf.h,ebcdic.h
 $ EXHEADER_MD2 := md2.h
 $ EXHEADER_MD5 := md5.h
 $ EXHEADER_SHA := sha.h
@@ -293,6 +295,11 @@ $!
 $ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h
 $ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
 $!
+$! Copy All The ".H" Files From The [.VMS] Directory.
+$!
+$ EXHEADER := vms_idhacks.h
+$ COPY SYS$DISK:[.VMS]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
+$!
 $! Purge all doubles
 $!
 $ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
@@ -470,7 +477,7 @@ $ ELSE
 $!
 $!  Else, Check To See If P1 Has A Valid Arguement.
 $!
-$   IF (P1.EQS."DATE").OR.(P1.EQS."SOFTLINKS").OR.(P1.EQS."CRYPTO") -
+$   IF (P1.EQS."BUILDINF").OR.(P1.EQS."SOFTLINKS").OR.(P1.EQS."CRYPTO") -
        .OR.(P1.EQS."SSL").OR.(P1.EQS."RSAREF").OR.(P1.EQS."SSL_TASK") -
        .OR.(P1.EQS."TEST").OR.(P1.EQS."APPS")
 $   THEN
@@ -489,7 +496,7 @@ $     WRITE SYS$OUTPUT ""
 $     WRITE SYS$OUTPUT "The Option ",P1," Is Invalid.  The Valid Options Are:"
 $     WRITE SYS$OUTPUT ""
 $     WRITE SYS$OUTPUT "    ALL      :  Just Build Everything."
-$     WRITE SYS$OUTPUT "    DATE     :  Just build the [.INCLUDE.OPENSSL]DATE.H file."
+$     WRITE SYS$OUTPUT "    BUILDINF :  Just build the [.CRYPTO]BUILDINF.H file."
 $     WRITE SYS$OUTPUT "    SOFTLINKS:  Just Fix The Unix soft links."
 $     WRITE SYS$OUTPUT "    RSAREF   :  To Build Just The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library."
 $     WRITE SYS$OUTPUT "    CRYPTO   :  To Build Just The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library."
index 5abf731..5319372 100644 (file)
@@ -806,7 +806,8 @@ $     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
 $!
 $!    Use GNU C...
 $!
-$     CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
+$     IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
+$     CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
           "/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[.SOURCE])" + CCEXTRAFLAGS
 $!
 $!    Define The Linker Options File Name.
index 9c8090d..75fa89f 100644 (file)
@@ -992,7 +992,8 @@ $     WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
 $!
 $!    Use GNU C...
 $!
-$     CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
+$     IF F$TYPE(GCC) .EQS. "" THEN GCC := GCC
+$     CC = GCC+"/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
           "/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[.SOURCE])" + CCEXTRAFLAGS
 $!
 $!    Define The Linker Options File Name.
index d4dcf4f..f247d94 100644 (file)
--- a/ssl/ssl.h
+++ b/ssl/ssl.h
@@ -965,6 +965,10 @@ X509 *     SSL_get_peer_certificate(SSL *s);
 
 STACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s);
 
+#ifdef VMS
+#define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud
+#endif
+
 int SSL_CTX_get_verify_mode(SSL_CTX *ctx);
 int SSL_CTX_get_verify_depth(SSL_CTX *ctx);
 int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *);
index c7a78f7..ec302f5 100644 (file)
@@ -9,7 +9,9 @@ $       KEY = 512
 $      CA := [-.certs]testca.pem
 $
 $      set noon
-$      delete 'T'.1;*,'T'.2;*,'T'.key;*
+$      if f$search(T+".1;*") .nes. "" then delete 'T'.1;*
+$      if f$search(T+".2;*") .nes. "" then delete 'T'.2;*
+$      if f$search(T+".key;*") .nes. "" then delete 'T'.key;*
 $      set on
 $
 $      write sys$output "generating certificate request"
index 34eaa7b..ce2c4b4 100644 (file)
@@ -8,6 +8,7 @@ $       digest="-mdc2"
 $      reqcmd := mcr 'exe_dir'openssl req
 $      x509cmd := mcr 'exe_dir'openssl x509 'digest'
 $      verifycmd := mcr 'exe_dir'openssl verify
+$      dummycnf := sys$disk:[-.apps]openssl-vms.cnf
 $
 $      CAkey="""keyCA.ss"""
 $      CAcert="""certCA.ss"""
@@ -48,14 +49,14 @@ $           write sys$output "error using 'x509' convert a certificate to a certificate r
 $              exit 3
 $      endif
 $
-$      'reqcmd' -verify -in 'CAreq' -noout
+$      'reqcmd' -config 'dummycnf' -verify -in 'CAreq' -noout
 $      if $severity .ne. 1
 $      then
 $              write sys$output "first generated request is invalid"
 $              exit 3
 $      endif
 $
-$      'reqcmd' -verify -in 'CAreq2' -noout
+$      'reqcmd' -config 'dummycnf' -verify -in 'CAreq2' -noout
 $      if $severity .ne. 1
 $      then
 $              write sys$output "second generated request is invalid"
@@ -101,4 +102,4 @@ $
 $      write sys$output "The generated user certificate is ",Ucert
 $      write sys$output "The generated user private key is ",Ukey
 $
-$      delete err.ss;*
+$      if f$search("err.ss;*") .nes. "" then delete err.ss;*
index 06c9f65..93a9aef 100644 (file)
@@ -54,6 +54,54 @@ $    write sys$output "test sslv2/sslv3 with both client and server authentication"
 $      mcr 'exe_dir'ssltest -server_auth -client_auth "-CAfile" certs.tmp
 $      if $severity .ne. 1 then goto exit3
 $
+$      write sys$output "test sslv2 via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl2 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv2 with server authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl2 -server_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv2 with client authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl2 -client_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv2 with both client and server authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl2 -server_auth -client_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv3 via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl3 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv3 with server authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl3 -server_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv3 with client authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl3 -client_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$      write sys$output "test sslv3 with both client and server authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -ssl3 -server_auth -client_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv2/sslv3 via BIO pair"
+$      mcr 'exe_dir'ssltest 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv2/sslv3 with server authentication"
+$      mcr 'exe_dir'ssltest -bio_pair -server_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv2/sslv3 with client authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -client_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
+$      write sys$output "test sslv2/sslv3 with both client and server authentication via BIO pair"
+$      mcr 'exe_dir'ssltest -bio_pair -server_auth -client_auth "-CAfile" certs.tmp 
+$      if $severity .ne. 1 then goto exit3
+$
 $      RET = 1
 $      goto exit
 $ exit3:
index 6483fa0..9eb1d26 100644 (file)
@@ -4,7 +4,7 @@ $       __arch := VAX
 $      if f$getsyi("cpu") .ge. 128 then __arch := AXP
 $      exe_dir := sys$disk:[-.'__arch'.exe.apps]
 $
-$      cmd := mcr 'exe_dir'openssl req
+$      cmd := mcr 'exe_dir'openssl req -config [-.apps]openssl-vms.cnf
 $
 $      t := testreq.pem
 $      if p1 .nes. "" then t = p1