From 8c197cc55eda97fba9c51254fd0e1da7259ab174 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Ulf=20M=C3=B6ller?= Date: Wed, 28 Jul 1999 23:25:59 +0000 Subject: [PATCH] VMS updates. Submitted by: Richard Levitte --- VMS/TODO | 18 ++++++ VMS/install.com | 6 ++ VMS/vms_idhacks.h | 126 +++++++++++++++++++++++++++++++++++++++++ apps/makeapps.com | 7 ++- apps/pkcs8.c | 1 + apps/s_client.c | 13 +++-- apps/s_server.c | 17 +++--- apps/s_socket.c | 11 ++-- crypto/crypto-lib.com | 6 +- crypto/des/des-lib.com | 4 +- crypto/des/des.h | 6 +- crypto/install.com | 2 +- crypto/pem/pem.h | 14 ++--- crypto/pkcs7/pkcs7.h | 4 ++ makevms.com | 35 +++++++----- rsaref/rsaref-lib.com | 3 +- ssl/ssl-lib.com | 3 +- ssl/ssl.h | 4 ++ test/testgen.com | 4 +- test/testss.com | 7 ++- test/testssl.com | 48 ++++++++++++++++ test/treq.com | 2 +- 22 files changed, 282 insertions(+), 59 deletions(-) create mode 100644 VMS/TODO create mode 100644 VMS/vms_idhacks.h 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 or to me directly if you +have any ideas. + +-- +Richard Levitte +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 +#include #include #include #include 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 +#include +#include +#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 -#include -#include #define USE_SOCKETS -#ifdef NO_STDIO -#define APPS_WIN16 -#endif #include "apps.h" #include #include 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 +#include +#include +#include +#include +#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 -#include -#include -#include -#include -#ifdef NO_STDIO -#define APPS_WIN16 -#endif #include #include #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 +#include +#include +#include +#include + /* 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 -#include -#include -#include -#include #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 #include /* DES_LONG */ #include /* 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 +#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 #include +#ifdef VMS +#include +#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 -- 2.34.1