summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUlf Möller <ulf@openssl.org>1999-07-28 23:25:59 +0000
committerUlf Möller <ulf@openssl.org>1999-07-28 23:25:59 +0000
commit8c197cc55eda97fba9c51254fd0e1da7259ab174 (patch)
tree06dce59bd50795c2f822df8d3ec26a15e6eb7919
parent3e3d2ea2fc9e9b702f94d5870f1a0a2f0c4c59f5 (diff)
VMS updates.
Submitted by: Richard Levitte <levitte@stacken.kth.se>
-rw-r--r--VMS/TODO18
-rw-r--r--VMS/install.com6
-rw-r--r--VMS/vms_idhacks.h126
-rw-r--r--apps/makeapps.com7
-rw-r--r--apps/pkcs8.c1
-rw-r--r--apps/s_client.c13
-rw-r--r--apps/s_server.c17
-rw-r--r--apps/s_socket.c11
-rw-r--r--crypto/crypto-lib.com6
-rw-r--r--crypto/des/des-lib.com4
-rw-r--r--crypto/des/des.h6
-rw-r--r--crypto/install.com2
-rw-r--r--crypto/pem/pem.h14
-rw-r--r--crypto/pkcs7/pkcs7.h4
-rwxr-xr-xmakevms.com35
-rw-r--r--rsaref/rsaref-lib.com3
-rw-r--r--ssl/ssl-lib.com3
-rw-r--r--ssl/ssl.h4
-rw-r--r--test/testgen.com4
-rw-r--r--test/testss.com7
-rw-r--r--test/testssl.com48
-rw-r--r--test/treq.com2
22 files changed, 282 insertions, 59 deletions
diff --git a/VMS/TODO b/VMS/TODO
new file mode 100644
index 0000000000..359e069191
--- /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
diff --git a/VMS/install.com b/VMS/install.com
index 2eadcfe150..d941392c23 100644
--- a/VMS/install.com
+++ b/VMS/install.com
@@ -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
index 0000000000..8cf9e9c61f
--- /dev/null
+++ b/VMS/vms_idhacks.h
@@ -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 */
diff --git a/apps/makeapps.com b/apps/makeapps.com
index ab8c8fac61..8a15a130ed 100644
--- a/apps/makeapps.com
+++ b/apps/makeapps.com
@@ -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.
$!
diff --git a/apps/pkcs8.c b/apps/pkcs8.c
index 9e9b92b33e..a05388300a 100644
--- a/apps/pkcs8.c
+++ b/apps/pkcs8.c
@@ -56,6 +56,7 @@
*
*/
#include <stdio.h>
+#include <string.h>
#include <openssl/pem.h>
#include <openssl/err.h>
#include <openssl/evp.h>
diff --git a/apps/s_client.c b/apps/s_client.c
index 84133b81fe..96e446c2a4 100644
--- a/apps/s_client.c
+++ b/apps/s_client.c
@@ -56,6 +56,13 @@
* [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
@@ -65,13 +72,7 @@
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>
diff --git a/apps/s_server.c b/apps/s_server.c
index 5b079182e0..54989316f8 100644
--- a/apps/s_server.c
+++ b/apps/s_server.c
@@ -56,6 +56,15 @@
* [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
@@ -65,14 +74,6 @@
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
diff --git a/apps/s_socket.c b/apps/s_socket.c
index 45c2939052..888b66df18 100644
--- a/apps/s_socket.c
+++ b/apps/s_socket.c
@@ -56,6 +56,12 @@
* [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
@@ -65,11 +71,6 @@
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"
diff --git a/crypto/crypto-lib.com b/crypto/crypto-lib.com
index 4178044191..bf916528eb 100644
--- a/crypto/crypto-lib.com
+++ b/crypto/crypto-lib.com
@@ -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,"+ -
diff --git a/crypto/des/des-lib.com b/crypto/des/des-lib.com
index 40a34bb0dd..2aea7a0dea 100644
--- a/crypto/des/des-lib.com
+++ b/crypto/des/des-lib.com
@@ -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.
$!
diff --git a/crypto/des/des.h b/crypto/des/des.h
index 141526ba05..54d58ed602 100644
--- a/crypto/des/des.h
+++ b/crypto/des/des.h
@@ -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
diff --git a/crypto/install.com b/crypto/install.com
index 4737a560b5..b75d1b44b2 100644
--- a/crypto/install.com
+++ b/crypto/install.com
@@ -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
diff --git a/crypto/pem/pem.h b/crypto/pem/pem.h
index 5017a87259..91f718826a 100644
--- a/crypto/pem/pem.h
+++ b/crypto/pem/pem.h
@@ -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 */
diff --git a/crypto/pkcs7/pkcs7.h b/crypto/pkcs7/pkcs7.h
index 859718eb11..c42bd6d391 100644
--- a/crypto/pkcs7/pkcs7.h
+++ b/crypto/pkcs7/pkcs7.h
@@ -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
diff --git a/makevms.com b/makevms.com
index 628769ba08..977f2cee42 100755
--- a/makevms.com
+++ b/makevms.com
@@ -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."
diff --git a/rsaref/rsaref-lib.com b/rsaref/rsaref-lib.com
index 5abf73191f..53193720b6 100644
--- a/rsaref/rsaref-lib.com
+++ b/rsaref/rsaref-lib.com
@@ -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.
diff --git a/ssl/ssl-lib.com b/ssl/ssl-lib.com
index 9c8090db50..75fa89f193 100644
--- a/ssl/ssl-lib.com
+++ b/ssl/ssl-lib.com
@@ -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.
diff --git a/ssl/ssl.h b/ssl/ssl.h
index d4dcf4f347..f247d941c3 100644
--- 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 *);
diff --git a/test/testgen.com b/test/testgen.com
index c7a78f7637..ec302f524a 100644
--- a/test/testgen.com
+++ b/test/testgen.com
@@ -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"
diff --git a/test/testss.com b/test/testss.com
index 34eaa7b7ad..ce2c4b43f6 100644
--- a/test/testss.com
+++ b/test/testss.com
@@ -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;*
diff --git a/test/testssl.com b/test/testssl.com
index 06c9f657a7..93a9aef802 100644
--- a/test/testssl.com
+++ b/test/testssl.com
@@ -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:
diff --git a/test/treq.com b/test/treq.com
index 6483fa0672..9eb1d26f6e 100644
--- a/test/treq.com
+++ b/test/treq.com
@@ -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