mirror of
https://github.com/openssl/openssl.git
synced 2024-11-24 02:23:51 +08:00
VMS support.
Submitted by: Richard Levitte <richard@levitte.org>
This commit is contained in:
parent
8d111f4a47
commit
7d7d2cbcb0
3
CHANGES
3
CHANGES
@ -5,6 +5,9 @@
|
||||
|
||||
Changes between 0.9.2b and 0.9.3
|
||||
|
||||
*) VMS support.
|
||||
[Richard Levitte <richard@levitte.org>]
|
||||
|
||||
*) New option -out to asn1parse to allow the parsed structure to be
|
||||
output to a file. This is most useful when combined with the -strparse
|
||||
option to examine the output of things like OCTET STRINGS.
|
||||
|
3
INSTALL
3
INSTALL
@ -2,7 +2,8 @@
|
||||
INSTALLATION ON THE UNIX PLATFORM
|
||||
---------------------------------
|
||||
|
||||
[For instructions for compiling OpenSSL on Windows systems, see INSTALL.W32].
|
||||
[See INSTALL.W32 for instructions for compiling OpenSSL on Windows systems,
|
||||
and INSTALL.VMS for installing on OpenVMS systems.]
|
||||
|
||||
To install OpenSSL, you will need:
|
||||
|
||||
|
204
INSTALL.VMS
Normal file
204
INSTALL.VMS
Normal file
@ -0,0 +1,204 @@
|
||||
VMS Installation instructions
|
||||
written by Richard Levitte
|
||||
<richard@levitte.org>
|
||||
|
||||
|
||||
Intro:
|
||||
======
|
||||
|
||||
This file is divided in the following parts:
|
||||
|
||||
Compilation - Mandatory reading.
|
||||
Test - Mandatory reading.
|
||||
Installation - Mandatory reading.
|
||||
Backward portability - Read if it's an issue.
|
||||
Possible bugs or quirks - A few warnings on things that
|
||||
may go wrong or may surprise you.
|
||||
Report - How to get in touch with me.
|
||||
|
||||
Compilation:
|
||||
============
|
||||
|
||||
I've used the very good command procedures written by Robert Byer
|
||||
<byer@mail.all-net.net>, and just slightly modified them, making
|
||||
them slightly more general and easier to maintain.
|
||||
|
||||
You can actually compile in almost any directory separately. Look
|
||||
for a command procedure name xxx-LIB.COM (in the library directories)
|
||||
or MAKExxx.COM (in the program directories) and read the comments at
|
||||
the top to understand how to use them. However, if you want to
|
||||
compile all you can get, the simplest is to use MAKEVMS.COM in the top
|
||||
directory. The syntax is trhe following:
|
||||
|
||||
@MAKEVMS <option> <rsaref-p> <debug-p> [<compiler>]
|
||||
|
||||
<option> must be one of the following:
|
||||
|
||||
ALL Just build "everything".
|
||||
DATE Just build the "[.INCLUDE]DATE.H" file.
|
||||
SOFTLINKS Just copies some files, to simulate Unix soft links.
|
||||
RSAREF Just build the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB" library.
|
||||
CRYPTO Just build 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 "test" programs for OpenSSL.
|
||||
APPS Just build the "application" programs for OpenSSL.
|
||||
|
||||
<rsaref-p> must be one of the following:
|
||||
|
||||
RSAREF compile using the RSAREF Library
|
||||
NORSAREF compile without using RSAREF
|
||||
|
||||
Note: The RSAREF libraries are NOT INCLUDED and you have to
|
||||
download it from "ftp://ftp.rsa.com/rsaref". You have to
|
||||
get the ".tar-Z" file as the ".zip" file dosen't have the
|
||||
directory structure stored. You have to extract the file
|
||||
into the [.RSAREF] directory as that is where the scripts
|
||||
will look for the files.
|
||||
|
||||
Note 2: I have never done this, so I've no idea if it works or not.
|
||||
|
||||
<debug-p> must be one of the following:
|
||||
|
||||
DEBUG compile with debugging info (will not optimize)
|
||||
NODEBUG compile without debugging info (will optimize)
|
||||
|
||||
<compiler> must be one of the following:
|
||||
|
||||
VAXC For VAX C.
|
||||
DECC For DEC C.
|
||||
GNUC For GNU C.
|
||||
|
||||
|
||||
You will find the crypto library in [.xxx.EXE.CRYPTO], called LIBCRYPTO.OLB,
|
||||
where xxx is VAX or AXP. You will find the SSL library in [.xxx.EXE.SSL],
|
||||
named LIBSSL.OLB, and you will find a bunch of useful programs in
|
||||
[.xxx.EXE.APPS]. However, these shouldn't be used right off unless it's
|
||||
just to test them. For production use, make sure you install first, see
|
||||
Installation below.
|
||||
|
||||
Note: Some programs in this package require a TCP/IP library.
|
||||
|
||||
Note 2: if you want to compile the crypto library only, please make sure
|
||||
you have at least done a @MAKEVMS DATE and a @MAKEVMS SOFTLINKS.
|
||||
A lot of things will break if you don't.
|
||||
|
||||
Test:
|
||||
=====
|
||||
|
||||
Testing is very simple, just do the following:
|
||||
|
||||
@[.TEST]TESTS
|
||||
|
||||
If a test fails, try with defining the logical name OPENSSL_NO_ASM (yes,
|
||||
it's an ugly hack!) and rebuild. Please send a bug report to
|
||||
<openssl-bugs@openssl.org>, including the output of "openssl version -a"
|
||||
and of the failed test.
|
||||
|
||||
Installation:
|
||||
=============
|
||||
|
||||
Installation is easy, just do the following:
|
||||
|
||||
@INSTALL <root>
|
||||
|
||||
<root> is the directory in which everything will be installed,
|
||||
subdirectories, libraries, header files, programs and startup command
|
||||
procedures.
|
||||
|
||||
In the [.VMS] subdirectory of the installation, you will find the
|
||||
following command procedures:
|
||||
|
||||
OPENSSL_STARTUP.COM
|
||||
|
||||
defines all needed logical names. Takes one argument that
|
||||
tells it in what logical name table to insert the logical
|
||||
names. If you insert if it SYS$MANAGER:SYSTARTUP_VMS.COM, the
|
||||
call should look like this:
|
||||
|
||||
@openssldev:[openssldir.VMS]OPENSSL_STARTUP "/SYSTEM"
|
||||
|
||||
OPENSSL_UTILS.COM
|
||||
|
||||
sets up the symbols to the applications. Should be called
|
||||
from for example SYS$MANAGER:SYLOGIN.COM
|
||||
|
||||
The logical names that are set up are the following:
|
||||
|
||||
SSLROOT a dotted concealed logical name pointing at the
|
||||
root directory.
|
||||
SSLLIB points at the directory where CRYPTORTL.OLB and
|
||||
SSLRTL.OLB are installed.
|
||||
SSLINCLUDE points at the directory where the header files are
|
||||
installed.
|
||||
SSLEXE points at the directory where the applications are
|
||||
installed.
|
||||
SSLCERTS the place where the certificates are stored.
|
||||
SSLPRIVATE I'm actually not sure what this is used for.
|
||||
|
||||
|
||||
Backward portability:
|
||||
=====================
|
||||
|
||||
One great problem when you build a library is making sure it will work
|
||||
on as many versions of VMS as possible. Especially, code compiled on
|
||||
OpenVMS version 7.x and above tend to be unusable in version 6.x or
|
||||
lower, because some C library routines have changed names internally
|
||||
(the C programmer won't usually see it, because the old name is
|
||||
maintained through C macros). One obvious solution is to make sure
|
||||
you have a development machine with an old enough version of OpenVMS.
|
||||
However, if you are stuck with a bunch of Alphas running OpenVMS version
|
||||
7.1, you seem to be out of luck. Fortunately, the DEC C header files
|
||||
are cluttered with conditionals that make some declarations and definitions
|
||||
dependent on the OpenVMS version or the C library version, *and* you
|
||||
can use those macros to simulate older OpenVMS or C library versions,
|
||||
by defining the macros _VMS_V6_SOURCE, __VMS_VER and __CTRL_VER with
|
||||
correct values. In the compilation scripts, I've provided the possibility
|
||||
for the user to influense the creation of such macros, through a bunch of
|
||||
symbols, all having names starting with USER_. Here's the list of them:
|
||||
|
||||
USER_CCFLAGS - Used to give additional qualifiers to the
|
||||
compiler. It can't be used to define macros
|
||||
since the scripts will do such things as well.
|
||||
To do such things, use USER_CCDEFS.
|
||||
USER_CCDEFS - Used to define macros on the command line. The
|
||||
value of this symbol will be inserted inside a
|
||||
/DEFINE=(...).
|
||||
USER_CCDISABLEWARNINGS - Used to disable some warnings. The value is
|
||||
inserted inside a /DISABLE=WARNING=(...).
|
||||
|
||||
So, to maintain backward compatibility with older VMS versions, do the
|
||||
following before you start compiling:
|
||||
|
||||
$ USER_CCDEFS := _VMS_V6_SOURCE=1,__VMS_VER=60000000,__CRTL_VER=60000000
|
||||
$ USER_CCDISABLEWARNINGS := PREOPTW
|
||||
|
||||
The USER_CCDISABLEWARNINGS is there because otherwise, DEC C will complain
|
||||
that those macros have been changed.
|
||||
|
||||
Note: Currently, this is only usefull for library compilation. The
|
||||
programs will still be linked with the current version of the
|
||||
C library shareable image, and will thus complain if they are
|
||||
faced with an older version of the same C library shareable image.
|
||||
This will probably be fixed in a future revision of OpenSSL.
|
||||
|
||||
|
||||
Possible bugs or quirks:
|
||||
========================
|
||||
|
||||
I'm not perfectly sure all the programs will use the SSLCERTS:
|
||||
directory by default, it may very well be that you have to give them
|
||||
extra arguments. Please experiment.
|
||||
|
||||
|
||||
Report:
|
||||
=======
|
||||
|
||||
I maintain a few mailinglists for bug reports and such on software that
|
||||
I develop/port/enhance/destroy. Please look at http://www.free.lp.se/
|
||||
for further info.
|
||||
|
||||
|
||||
--
|
||||
Richard Levitte <richard@levitte.org>
|
||||
1999-03-09
|
@ -162,7 +162,7 @@ SHELL=/bin/sh
|
||||
|
||||
TOP= .
|
||||
ONEDIRS=out tmp
|
||||
EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep
|
||||
EDIRS= times doc bugs util include certs ms shlib mt demos perl sf dep VMS
|
||||
WDIRS= windows
|
||||
LIBS= libcrypto.a libssl.a
|
||||
|
||||
@ -308,7 +308,7 @@ dist:
|
||||
@$(MAKE) tar
|
||||
|
||||
dist_pem_h:
|
||||
(cd crypto/pem; $(MAKE) SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
|
||||
(cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
|
||||
|
||||
install: all
|
||||
@-mkdir -p $(INSTALL_PREFIX)$(INSTALLTOP)/bin 2>/dev/null
|
||||
|
3
README
3
README
@ -141,7 +141,8 @@
|
||||
------------
|
||||
|
||||
To install this package under a Unix derivative, read the INSTALL file. For
|
||||
a Win32 platform, read the INSTALL.W32 file.
|
||||
a Win32 platform, read the INSTALL.W32 file. For OpenVMS systems, read
|
||||
INSTALL.VMS.
|
||||
|
||||
For people in the USA, it is possible to compile OpenSSL to use RSA Inc.'s
|
||||
public key library, RSAREF, by configuring OpenSSL with the option "rsaref".
|
||||
|
200
apps/CA.com
Normal file
200
apps/CA.com
Normal file
@ -0,0 +1,200 @@
|
||||
$! CA - wrapper around ca to make it easier to use ... basically ca requires
|
||||
$! some setup stuff to be done before you can use it and this makes
|
||||
$! things easier between now and when Eric is convinced to fix it :-)
|
||||
$!
|
||||
$! CA -newca ... will setup the right stuff
|
||||
$! CA -newreq ... will generate a certificate request
|
||||
$! CA -sign ... will sign the generated request and output
|
||||
$!
|
||||
$! At the end of that grab newreq.pem and newcert.pem (one has the key
|
||||
$! and the other the certificate) and cat them together and that is what
|
||||
$! you want/need ... I'll make even this a little cleaner later.
|
||||
$!
|
||||
$!
|
||||
$! 12-Jan-96 tjh Added more things ... including CA -signcert which
|
||||
$! converts a certificate to a request and then signs it.
|
||||
$! 10-Jan-96 eay Fixed a few more bugs and added the SSLEAY_CONFIG
|
||||
$! environment variable so this can be driven from
|
||||
$! a script.
|
||||
$! 25-Jul-96 eay Cleaned up filenames some more.
|
||||
$! 11-Jun-96 eay Fixed a few filename missmatches.
|
||||
$! 03-May-96 eay Modified to use 'openssl cmd' instead of 'cmd'.
|
||||
$! 18-Apr-96 tjh Original hacking
|
||||
$!
|
||||
$! Tim Hudson
|
||||
$! tjh@cryptsoft.com
|
||||
$!
|
||||
$!
|
||||
$! default ssleay.cnf file has setup as per the following
|
||||
$! demoCA ... where everything is stored
|
||||
$
|
||||
$ IF F$TYPE(SSLEAY_CONFIG) .EQS. "" THEN SSLEAY_CONFIG := SSLLIB:SSLEAY.CNF
|
||||
$
|
||||
$ DAYS = "-days 365"
|
||||
$ REQ = openssl + " req " + SSLEAY_CONFIG
|
||||
$ CA = openssl + " ca " + SSLEAY_CONFIG
|
||||
$ VERIFY = openssl + " verify"
|
||||
$ X509 = openssl + " x509"
|
||||
$ echo = "write sys$Output"
|
||||
$!
|
||||
$ s = F$PARSE(F$ENVIRONMENT("DEFAULT"),"[]") - "].;"
|
||||
$ CATOP := 's'.demoCA
|
||||
$ CAKEY := ]cakey.pem
|
||||
$ CACERT := ]cacert.pem
|
||||
$
|
||||
$ __INPUT := SYS$COMMAND
|
||||
$ RET = 1
|
||||
$!
|
||||
$ i = 1
|
||||
$opt_loop:
|
||||
$ if i .gt. 8 then goto opt_loop_end
|
||||
$
|
||||
$ prog_opt = F$EDIT(P'i',"lowercase")
|
||||
$
|
||||
$ IF (prog_opt .EQS. "?" .OR. prog_opt .EQS. "-h" .OR. prog_opt .EQS. "-help")
|
||||
$ THEN
|
||||
$ echo "usage: CA -newcert|-newreq|-newca|-sign|-verify"
|
||||
$ exit
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .EQS. "-input")
|
||||
$ THEN
|
||||
$ ! Get input from somewhere other than SYS$COMMAND
|
||||
$ i = i + 1
|
||||
$ __INPUT = P'i'
|
||||
$ GOTO opt_loop_continue
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .EQS. "-newcert")
|
||||
$ THEN
|
||||
$ ! Create a certificate.
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ REQ -new -x509 -keyout newreq.pem -out newreq.pem 'DAYS'
|
||||
$ RET=$STATUS
|
||||
$ echo "Certificate (and private key) is in newreq.pem"
|
||||
$ GOTO opt_loop_continue
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .EQS. "-newreq")
|
||||
$ THEN
|
||||
$ ! Create a certificate request
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ REQ -new -keyout newreq.pem -out newreq.pem 'DAYS'
|
||||
$ RET=$STATUS
|
||||
$ echo "Request (and private key) is in newreq.pem"
|
||||
$ GOTO opt_loop_continue
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .EQS. "-newca")
|
||||
$ THEN
|
||||
$ ! If explicitly asked for or it doesn't exist then setup the directory
|
||||
$ ! structure that Eric likes to manage things.
|
||||
$ IF F$SEARCH(CATOP+"]serial.") .EQS. ""
|
||||
$ THEN
|
||||
$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP']
|
||||
$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.certs]
|
||||
$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.crl]
|
||||
$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.newcerts]
|
||||
$ CREATE /DIR /PROTECTION=OWNER:RWED 'CATOP'.private]
|
||||
$ OPEN /WRITE ser_file 'CATOP']serial.
|
||||
$ WRITE ser_file "01"
|
||||
$ CLOSE ser_file
|
||||
$ APPEND/NEW NL: 'CATOP']index.txt
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF F$SEARCH(CATOP+".private"+CAKEY) .EQS. ""
|
||||
$ THEN
|
||||
$ READ '__INPUT' FILE -
|
||||
/PROMT="CA certificate filename (or enter to create)"
|
||||
$ IF F$SEARCH(FILE) .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'FILE' 'CATOP'.private'CAKEY'
|
||||
$ RET=$STATUS
|
||||
$ ELSE
|
||||
$ echo "Making CA certificate ..."
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ REQ -new -x509 -keyout 'CATOP'.private'CAKEY' -
|
||||
-out 'CATOP''CACERT' 'DAYS'
|
||||
$ RET=$STATUS
|
||||
$ ENDIF
|
||||
$ ENDIF
|
||||
$ GOTO opt_loop_continue
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .EQS. "-xsign")
|
||||
$ THEN
|
||||
$!
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ CA -policy policy_anything -infiles newreq.pem
|
||||
$ RET=$STATUS
|
||||
$ GOTO opt_loop_continue
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF ((prog_opt .EQS. "-sign") .OR. (prog_opt .EQS. "-signreq"))
|
||||
$ THEN
|
||||
$!
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ CA -policy policy_anything -out newcert.pem -infiles newreq.pem
|
||||
$ RET=$STATUS
|
||||
$ type newcert.pem
|
||||
$ echo "Signed certificate is in newcert.pem"
|
||||
$ GOTO opt_loop_continue
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .EQS. "-signcert")
|
||||
$ THEN
|
||||
$!
|
||||
$ echo "Cert passphrase will be requested twice - bug?"
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ X509 -x509toreq -in newreq.pem -signkey newreq.pem -out tmp.pem
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ CA -policy policy_anything -out newcert.pem -infiles tmp.pem
|
||||
y
|
||||
y
|
||||
$ type newcert.pem
|
||||
$ echo "Signed certificate is in newcert.pem"
|
||||
$ GOTO opt_loop_continue
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .EQS. "-verify")
|
||||
$ THEN
|
||||
$!
|
||||
$ i = i + 1
|
||||
$ IF (p'i' .EQS. "")
|
||||
$ THEN
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ VERIFY "-CAfile" 'CATOP''CACERT' newcert.pem
|
||||
$ ELSE
|
||||
$ j = i
|
||||
$ verify_opt_loop:
|
||||
$ IF j .GT. 8 THEN GOTO verify_opt_loop_end
|
||||
$ IF p'j' .NES. ""
|
||||
$ THEN
|
||||
$ DEFINE/USER SYS$INPUT '__INPUT'
|
||||
$ __tmp = p'j'
|
||||
$ VERIFY "-CAfile" 'CATOP''CACERT' '__tmp'
|
||||
$ tmp=$STATUS
|
||||
$ IF tmp .NE. 0 THEN RET=tmp
|
||||
$ ENDIF
|
||||
$ j = j + 1
|
||||
$ GOTO verify_opt_loop
|
||||
$ verify_opt_loop_end:
|
||||
$ ENDIF
|
||||
$
|
||||
$ GOTO opt_loop_end
|
||||
$ ENDIF
|
||||
$!
|
||||
$ IF (prog_opt .NES. "")
|
||||
$ THEN
|
||||
$!
|
||||
$ echo "Unknown argument ''prog_opt'"
|
||||
$
|
||||
$ EXIT 3
|
||||
$ ENDIF
|
||||
$
|
||||
$opt_loop_continue:
|
||||
$ i = i + 1
|
||||
$ GOTO opt_loop
|
||||
$
|
||||
$opt_loop_end:
|
||||
$ EXIT 'RET'
|
@ -20,7 +20,7 @@ EX_LIBS=
|
||||
|
||||
CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
GENERAL=Makefile makeapps.com install.com
|
||||
|
||||
DLIBCRYPTO=../libcrypto.a
|
||||
DLIBSSL=../libssl.a
|
||||
|
22
apps/apps.c
22
apps/apps.c
@ -201,6 +201,27 @@ void program_name(char *in, char *out, int size)
|
||||
out[n]='\0';
|
||||
}
|
||||
#else
|
||||
#ifdef VMS
|
||||
void program_name(char *in, char *out, int size)
|
||||
{
|
||||
char *p=in, *q;
|
||||
char *chars=":]>";
|
||||
|
||||
while(*chars != '\0')
|
||||
{
|
||||
q=strrchr(p,*chars);
|
||||
if (q > p)
|
||||
p = q + 1;
|
||||
chars++;
|
||||
}
|
||||
|
||||
q=strrchr(p,'.');
|
||||
if (q == NULL)
|
||||
q = in+size;
|
||||
strncpy(out,p,q-p);
|
||||
out[q-p]='\0';
|
||||
}
|
||||
#else
|
||||
void program_name(char *in, char *out, int size)
|
||||
{
|
||||
char *p;
|
||||
@ -214,6 +235,7 @@ void program_name(char *in, char *out, int size)
|
||||
out[size-1]='\0';
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
int WIN32_rename(char *from, char *to)
|
||||
|
52
apps/ca.c
52
apps/ca.c
@ -76,8 +76,23 @@
|
||||
#include <openssl/pem.h>
|
||||
|
||||
#ifndef W_OK
|
||||
# ifdef VMS
|
||||
# if defined(__DECC)
|
||||
# include <unistd.h>
|
||||
# else
|
||||
# include <unixlib.h>
|
||||
# endif
|
||||
# else
|
||||
# include <sys/file.h>
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef W_OK
|
||||
# define F_OK 0
|
||||
# define X_OK 1
|
||||
# define W_OK 2
|
||||
# define R_OK 4
|
||||
#endif
|
||||
|
||||
#undef PROG
|
||||
#define PROG ca_main
|
||||
@ -395,9 +410,14 @@ bad:
|
||||
if (configfile == NULL)
|
||||
{
|
||||
/* We will just use 'buf[0]' as a temporary buffer. */
|
||||
#ifdef VMS
|
||||
strncpy(buf[0],X509_get_default_cert_area(),
|
||||
sizeof(buf[0])-1-sizeof(CONFIG_FILE));
|
||||
#else
|
||||
strncpy(buf[0],X509_get_default_cert_area(),
|
||||
sizeof(buf[0])-2-sizeof(CONFIG_FILE));
|
||||
strcat(buf[0],"/");
|
||||
#endif
|
||||
strcat(buf[0],CONFIG_FILE);
|
||||
configfile=buf[0];
|
||||
}
|
||||
@ -537,7 +557,12 @@ bad:
|
||||
BIO_printf(bio_err,"there needs to be defined a directory for new certificate to be placed in\n");
|
||||
goto err;
|
||||
}
|
||||
#ifdef VMS
|
||||
/* For technical reasons, VMS misbehaves with X_OK */
|
||||
if (access(outdir,R_OK|W_OK) != 0)
|
||||
#else
|
||||
if (access(outdir,R_OK|W_OK|X_OK) != 0)
|
||||
#endif
|
||||
{
|
||||
BIO_printf(bio_err,"I am unable to acces the %s directory\n",outdir);
|
||||
perror(outdir);
|
||||
@ -855,12 +880,23 @@ bad:
|
||||
BIO_printf(bio_err,"Write out database with %d new entries\n",sk_num(cert_sk));
|
||||
|
||||
strncpy(buf[0],serialfile,BSIZE-4);
|
||||
|
||||
#ifdef VMS
|
||||
strcat(buf[0],"-new");
|
||||
#else
|
||||
strcat(buf[0],".new");
|
||||
#endif
|
||||
|
||||
if (!save_serial(buf[0],serial)) goto err;
|
||||
|
||||
strncpy(buf[1],dbfile,BSIZE-4);
|
||||
|
||||
#ifdef VMS
|
||||
strcat(buf[1],"-new");
|
||||
#else
|
||||
strcat(buf[1],".new");
|
||||
#endif
|
||||
|
||||
if (BIO_write_filename(out,buf[1]) <= 0)
|
||||
{
|
||||
perror(dbfile);
|
||||
@ -884,7 +920,11 @@ bad:
|
||||
p=(char *)x->cert_info->serialNumber->data;
|
||||
|
||||
strncpy(buf[2],outdir,BSIZE-(j*2)-6);
|
||||
|
||||
#ifndef VMS
|
||||
strcat(buf[2],"/");
|
||||
#endif
|
||||
|
||||
n=(unsigned char *)&(buf[2][strlen(buf[2])]);
|
||||
if (j > 0)
|
||||
{
|
||||
@ -917,7 +957,13 @@ bad:
|
||||
{
|
||||
/* Rename the database and the serial file */
|
||||
strncpy(buf[2],serialfile,BSIZE-4);
|
||||
|
||||
#ifdef VMS
|
||||
strcat(buf[2],"-old");
|
||||
#else
|
||||
strcat(buf[2],".old");
|
||||
#endif
|
||||
|
||||
BIO_free(in);
|
||||
BIO_free(out);
|
||||
in=NULL;
|
||||
@ -939,7 +985,13 @@ bad:
|
||||
}
|
||||
|
||||
strncpy(buf[2],dbfile,BSIZE-4);
|
||||
|
||||
#ifdef VMS
|
||||
strcat(buf[2],"-old");
|
||||
#else
|
||||
strcat(buf[2],".old");
|
||||
#endif
|
||||
|
||||
if (rename(dbfile,buf[2]) < 0)
|
||||
{
|
||||
BIO_printf(bio_err,"unabel to rename %s to %s\n",
|
||||
|
@ -62,7 +62,7 @@
|
||||
|
||||
#define MONOLITH
|
||||
#define USE_SOCKETS
|
||||
#include "../e_os.h"
|
||||
#include <openssl/e_os.h>
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/stack.h>
|
||||
|
69
apps/install.com
Normal file
69
apps/install.com
Normal file
@ -0,0 +1,69 @@
|
||||
$! INSTALL.COM -- Installs the files in a given directory tree
|
||||
$!
|
||||
$! Author: Richard Levitte <richard@levitte.org>
|
||||
$! Time of creation: 22-MAY-1998 10:13
|
||||
$!
|
||||
$! P1 root of the directory tree
|
||||
$!
|
||||
$ IF P1 .EQS. ""
|
||||
$ THEN
|
||||
$ WRITE SYS$OUTPUT "First argument missing."
|
||||
$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
|
||||
$ EXIT
|
||||
$ ENDIF
|
||||
$
|
||||
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
||||
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
||||
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
||||
- "[000000." - "][" - "[" - "]"
|
||||
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
||||
$
|
||||
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
||||
$ DEFINE/NOLOG WRK_SSLVEXE WRK_SSLROOT:[VAX_EXE]
|
||||
$ DEFINE/NOLOG WRK_SSLAEXE WRK_SSLROOT:[ALPHA_EXE]
|
||||
$ DEFINE/NOLOG WRK_SSLLIB WRK_SSLROOT:[LIB]
|
||||
$
|
||||
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
||||
$ IF F$PARSE("WRK_SSLVEXE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLVEXE:
|
||||
$ IF F$PARSE("WRK_SSLAEXE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLAEXE:
|
||||
$ IF F$PARSE("WRK_SSLLIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLLIB:
|
||||
$
|
||||
$ EXE := openssl
|
||||
$
|
||||
$ VEXE_DIR := [-.VAX.EXE.APPS]
|
||||
$ AEXE_DIR := [-.AXP.EXE.APPS]
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_EXE:
|
||||
$ E = F$EDIT(F$ELEMENT(I, ",", EXE),"TRIM")
|
||||
$ I = I + 1
|
||||
$ IF E .EQS. "," THEN GOTO LOOP_EXE_END
|
||||
$ SET NOON
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.EXE WRK_SSLVEXE:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVEXE:'E'.EXE
|
||||
$ ENDIF
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.EXE WRK_SSLAEXE:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLAEXE:'E'.EXE
|
||||
$ ENDIF
|
||||
$ SET ON
|
||||
$ GOTO LOOP_EXE
|
||||
$ LOOP_EXE_END:
|
||||
$
|
||||
$ SET NOON
|
||||
$ COPY CA.COM WRK_SSLAEXE:CA.COM/LOG
|
||||
$ SET FILE/PROT=W:RE WRK_SSLAEXE:CA.COM
|
||||
$ COPY CA.COM WRK_SSLVEXE:CA.COM/LOG
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVEXE:CA.COM
|
||||
$ COPY OPENSSL-VMS.CNF WRK_SSLROOT:[000000]OPENSSL.CNF/LOG
|
||||
$ SET FILE/PROT=W:R WRK_SSLROOT:[000000]OPENSSL.CNF
|
||||
$ SET ON
|
||||
$
|
||||
$ EXIT
|
1137
apps/makeapps.com
Normal file
1137
apps/makeapps.com
Normal file
File diff suppressed because it is too large
Load Diff
190
apps/openssl-vms.cnf
Normal file
190
apps/openssl-vms.cnf
Normal file
@ -0,0 +1,190 @@
|
||||
#
|
||||
# OpenSSL example configuration file.
|
||||
# This is mostly being used for generation of certificate requests.
|
||||
#
|
||||
|
||||
RANDFILE = $ENV::HOME.rnd
|
||||
oid_file = $ENV::HOME.oid
|
||||
oid_section = new_oids
|
||||
|
||||
[ new_oids ]
|
||||
|
||||
# We can add new OIDs in here for use by 'ca' and 'req'.
|
||||
# Add a simple OID like this:
|
||||
# testoid1=1.2.3.4
|
||||
# Or use config file substitution like this:
|
||||
# testoid2=${testoid1}.5.6
|
||||
|
||||
####################################################################
|
||||
[ ca ]
|
||||
default_ca = CA_default # The default ca section
|
||||
|
||||
####################################################################
|
||||
[ CA_default ]
|
||||
|
||||
dir = sys\$disk:[.demoCA # Where everything is kept
|
||||
certs = $dir.certs] # Where the issued certs are kept
|
||||
crl_dir = $dir.crl] # Where the issued crl are kept
|
||||
database = $dir]index.txt # database index file.
|
||||
new_certs_dir = $dir.newcerts] # default place for new certs.
|
||||
|
||||
certificate = $dir]cacert.pem # The CA certificate
|
||||
serial = $dir]serial. # The current serial number
|
||||
crl = $dir]crl.pem # The current CRL
|
||||
private_key = $dir.private]cakey.pem# The private key
|
||||
RANDFILE = $dir.private].rand # private random number file
|
||||
|
||||
x509_extensions = usr_cert # The extentions to add to the cert
|
||||
default_days = 365 # how long to certify for
|
||||
default_crl_days= 30 # how long before next CRL
|
||||
default_md = md5 # which md to use.
|
||||
preserve = no # keep passed DN ordering
|
||||
|
||||
# A few difference way of specifying how similar the request should look
|
||||
# For type CA, the listed attributes must be the same, and the optional
|
||||
# and supplied fields are just that :-)
|
||||
policy = policy_match
|
||||
|
||||
# For the CA policy
|
||||
[ policy_match ]
|
||||
countryName = match
|
||||
stateOrProvinceName = match
|
||||
organizationName = match
|
||||
organizationalUnitName = optional
|
||||
commonName = supplied
|
||||
emailAddress = optional
|
||||
|
||||
# For the 'anything' policy
|
||||
# At this point in time, you must list all acceptable 'object'
|
||||
# types.
|
||||
[ policy_anything ]
|
||||
countryName = optional
|
||||
stateOrProvinceName = optional
|
||||
localityName = optional
|
||||
organizationName = optional
|
||||
organizationalUnitName = optional
|
||||
commonName = supplied
|
||||
emailAddress = optional
|
||||
|
||||
####################################################################
|
||||
[ req ]
|
||||
default_bits = 1024
|
||||
default_keyfile = privkey.pem
|
||||
distinguished_name = req_distinguished_name
|
||||
attributes = req_attributes
|
||||
x509_extensions = v3_ca # The extentions to add to the self signed cert
|
||||
|
||||
[ req_distinguished_name ]
|
||||
countryName = Country Name (2 letter code)
|
||||
countryName_default = AU
|
||||
countryName_min = 2
|
||||
countryName_max = 2
|
||||
|
||||
stateOrProvinceName = State or Province Name (full name)
|
||||
stateOrProvinceName_default = Some-State
|
||||
|
||||
localityName = Locality Name (eg, city)
|
||||
|
||||
0.organizationName = Organization Name (eg, company)
|
||||
0.organizationName_default = Internet Widgits Pty Ltd
|
||||
|
||||
# we can do this but it is not needed normally :-)
|
||||
#1.organizationName = Second Organization Name (eg, company)
|
||||
#1.organizationName_default = World Wide Web Pty Ltd
|
||||
|
||||
organizationalUnitName = Organizational Unit Name (eg, section)
|
||||
#organizationalUnitName_default =
|
||||
|
||||
commonName = Common Name (eg, YOUR name)
|
||||
commonName_max = 64
|
||||
|
||||
emailAddress = Email Address
|
||||
emailAddress_max = 40
|
||||
|
||||
# SET-ex3 = SET extension number 3
|
||||
|
||||
[ req_attributes ]
|
||||
challengePassword = A challenge password
|
||||
challengePassword_min = 4
|
||||
challengePassword_max = 20
|
||||
|
||||
unstructuredName = An optional company name
|
||||
|
||||
[ usr_cert ]
|
||||
|
||||
# These extensions are added when 'ca' signs a request.
|
||||
|
||||
# This goes against PKIX guidelines but some CAs do it and some software
|
||||
# requires this to avoid interpreting an end user certificate as a CA.
|
||||
|
||||
basicConstraints=CA:FALSE
|
||||
|
||||
# Here are some examples of the usage of nsCertType. If it is omitted
|
||||
# the certificate can be used for anything *except* object signing.
|
||||
|
||||
# This is OK for an SSL server.
|
||||
#nsCertType = server
|
||||
|
||||
# For an object signing certificate this would be used.
|
||||
#nsCertType = objsign
|
||||
|
||||
# For normal client use this is typical
|
||||
#nsCertType = client, email
|
||||
|
||||
# This is typical also
|
||||
|
||||
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||
|
||||
nsComment = "OpenSSL Generated Certificate"
|
||||
|
||||
# PKIX recommendations
|
||||
subjectKeyIdentifier=hash
|
||||
authorityKeyIdentifier=keyid,issuer:always
|
||||
|
||||
# Import the email address.
|
||||
|
||||
subjectAltName=email:copy
|
||||
|
||||
# Copy subject details
|
||||
|
||||
issuerAltName=issuer:copy
|
||||
|
||||
#nsCaRevocationUrl = http://www.domain.dom/ca-crl.pem
|
||||
#nsBaseUrl
|
||||
#nsRevocationUrl
|
||||
#nsRenewalUrl
|
||||
#nsCaPolicyUrl
|
||||
#nsSslServerName
|
||||
|
||||
[ v3_ca]
|
||||
|
||||
# Extensions for a typical CA
|
||||
|
||||
# It's a CA certificate
|
||||
basicConstraints = CA:true
|
||||
|
||||
# PKIX recommendation.
|
||||
|
||||
subjectKeyIdentifier=hash
|
||||
|
||||
authorityKeyIdentifier=keyid:always,issuer:always
|
||||
|
||||
# This is what PKIX recommends but some broken software chokes on critical
|
||||
# extensions.
|
||||
#basicConstraints = critical,CA:true
|
||||
|
||||
# Key usage: again this should really be critical.
|
||||
keyUsage = cRLSign, keyCertSign
|
||||
|
||||
# Some might want this also
|
||||
#nsCertType = sslCA, emailCA
|
||||
|
||||
# Include email address in subject alt name: another PKIX recommendation
|
||||
subjectAltName=email:copy
|
||||
# Copy issuer details
|
||||
issuerAltName=issuer:copy
|
||||
|
||||
# RAW DER hex encoding of an extension: beware experts only!
|
||||
# 1.2.3.5=RAW:02:03
|
||||
# You can even override a supported extension:
|
||||
# basicConstraints= critical, RAW:30:03:01:01:FF
|
@ -147,7 +147,9 @@ int main(int Argc, char *Argv[])
|
||||
if (p == NULL)
|
||||
{
|
||||
strcpy(config_name,X509_get_default_cert_area());
|
||||
#ifndef VMS
|
||||
strcat(config_name,"/");
|
||||
#endif
|
||||
strcat(config_name,OPENSSL_CONF);
|
||||
p=config_name;
|
||||
}
|
||||
|
@ -361,7 +361,9 @@ bad:
|
||||
if (p == NULL)
|
||||
{
|
||||
strcpy(config_name,X509_get_default_cert_area());
|
||||
#ifndef VMS
|
||||
strcat(config_name,"/");
|
||||
#endif
|
||||
strcat(config_name,OPENSSL_CONF);
|
||||
p=config_name;
|
||||
}
|
||||
|
@ -56,6 +56,30 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#if (defined(VMS) || defined(__VMS)) && !defined(FD_SET)
|
||||
/* VAX C does not defined fd_set and friends, but it's actually quite simple */
|
||||
/* These definitions are borrowed from SOCKETSHR. /Richard Levitte */
|
||||
#define MAX_NOFILE 32
|
||||
#define NBBY 8 /* number of bits in a byte */
|
||||
|
||||
#ifndef FD_SETSIZE
|
||||
#define FD_SETSIZE MAX_NOFILE
|
||||
#endif /* FD_SETSIZE */
|
||||
|
||||
/* How many things we'll allow select to use. 0 if unlimited */
|
||||
#define MAXSELFD MAX_NOFILE
|
||||
typedef int fd_mask; /* int here! VMS prototypes int, not long */
|
||||
#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask (power of 2!)*/
|
||||
#define NFDSHIFT 5 /* Shift based on above */
|
||||
|
||||
typedef fd_mask fd_set;
|
||||
#define FD_SET(n, p) (*(p) |= (1 << ((n) % NFDBITS)))
|
||||
#define FD_CLR(n, p) (*(p) &= ~(1 << ((n) % NFDBITS)))
|
||||
#define FD_ISSET(n, p) (*(p) & (1 << ((n) % NFDBITS)))
|
||||
#define FD_ZERO(p) memset((char *)(p), 0, sizeof(*(p)))
|
||||
#endif
|
||||
|
||||
#define PORT 4433
|
||||
#define PORT_STR "4433"
|
||||
#define PROTOCOL "tcp"
|
||||
|
@ -56,6 +56,15 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
/* 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
|
||||
is needed to have fileno() declared correctly... So let's define u_int */
|
||||
#if defined(__DECC) && !defined(__U_INT)
|
||||
#define __U_INT
|
||||
typedef unsigned int u_int;
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -70,6 +79,11 @@
|
||||
#include <openssl/pem.h>
|
||||
#include "s_apps.h"
|
||||
|
||||
#if (__VMS_VER < 70000000) /* FIONBIO used as a switch to enable ioctl,
|
||||
and that isn't in VMS < 7.0 */
|
||||
#undef FIONBIO
|
||||
#endif
|
||||
|
||||
#if defined(NO_RSA) && !defined(NO_SSL2)
|
||||
#define NO_SSL2
|
||||
#endif
|
||||
@ -454,7 +468,14 @@ re_start:
|
||||
/* printf("mode tty(%d %d%d) ssl(%d%d)\n",
|
||||
tty_on,read_tty,write_tty,read_ssl,write_ssl);*/
|
||||
|
||||
i=select(width,&readfds,&writefds,NULL,NULL);
|
||||
/* Note: under VMS with SOCKETSHR the third parameter
|
||||
* is currently of type (int *) whereas under other
|
||||
* systems it is (void *) if you don't have a cast it
|
||||
* will choke the compiler: if you do have a cast then
|
||||
* you can either go for (int *) or (void *).
|
||||
*/
|
||||
i=select(width,(void *)&readfds,(void *)&writefds,
|
||||
NULL,NULL);
|
||||
if ( i < 0)
|
||||
{
|
||||
BIO_printf(bio_err,"bad select %d\n",
|
||||
|
@ -56,6 +56,15 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
/* 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
|
||||
is needed to have fileno() declared correctly... So let's define u_int */
|
||||
#if defined(__DECC) && !defined(__U_INT)
|
||||
#define __U_INT
|
||||
typedef unsigned int u_int;
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -74,6 +83,11 @@
|
||||
#include <openssl/ssl.h>
|
||||
#include "s_apps.h"
|
||||
|
||||
#if (__VMS_VER < 70000000) /* FIONBIO used as a switch to enable ioctl,
|
||||
and that isn't in VMS < 7.0 */
|
||||
#undef FIONBIO
|
||||
#endif
|
||||
|
||||
#if defined(NO_RSA) && !defined(NO_SSL2)
|
||||
#define NO_SSL2
|
||||
#endif
|
||||
@ -94,8 +108,12 @@ static DH *get_dh512(void);
|
||||
/* static void s_server_init(void);*/
|
||||
|
||||
#ifndef S_ISDIR
|
||||
#if defined(VMS) && !defined(__DECC)
|
||||
#define S_ISDIR(a) (((a) & S_IFMT) == S_IFDIR)
|
||||
#else
|
||||
#define S_ISDIR(a) (((a) & _S_IFMT) == _S_IFDIR)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef NO_DH
|
||||
static unsigned char dh512_p[]={
|
||||
@ -610,7 +628,13 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
||||
FD_SET(fileno(stdin),&readfds);
|
||||
#endif
|
||||
FD_SET(s,&readfds);
|
||||
i=select(width,&readfds,NULL,NULL,NULL);
|
||||
/* Note: under VMS with SOCKETSHR the third parameter is
|
||||
* currently of type (int *) whereas under other systems
|
||||
* it is (void *) if you don't have a cast it will choke
|
||||
* the compiler: if you do have a cast then you can either
|
||||
* go for (int *) or (void *).
|
||||
*/
|
||||
i=select(width,(void *)&readfds,NULL,NULL,NULL);
|
||||
if (i <= 0) continue;
|
||||
if (FD_ISSET(fileno(stdin),&readfds))
|
||||
{
|
||||
|
@ -56,6 +56,15 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
/* 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
|
||||
is needed to have fileno() declared correctly... So let's define u_int */
|
||||
#if defined(__DECC) && !defined(__U_INT)
|
||||
#define __U_INT
|
||||
typedef unsigned int u_int;
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -69,6 +78,14 @@
|
||||
#include "s_apps.h"
|
||||
#include <openssl/ssl.h>
|
||||
|
||||
#if (__VMS_VER < 70000000) /* FIONBIO used as a switch to enable ioctl,
|
||||
and that isn't in VMS < 7.0 */
|
||||
#undef FIONBIO
|
||||
#endif
|
||||
#ifdef VMS /* for vfork() */
|
||||
#include <processes.h>
|
||||
#endif
|
||||
|
||||
static struct hostent *GetHostByName(char *name);
|
||||
int sock_init(void );
|
||||
#ifdef WIN16
|
||||
@ -206,7 +223,12 @@ int nbio_sock_error(int sock)
|
||||
int size;
|
||||
|
||||
size=sizeof(int);
|
||||
i=getsockopt(sock,SOL_SOCKET,SO_ERROR,(char *)&j,&size);
|
||||
/* Note: under VMS with SOCKETSHR the third parameter is currently
|
||||
* of type (int *) whereas under other systems it is (void *) if
|
||||
* you don't have a cast it will choke the compiler: if you do
|
||||
* have a cast then you can either go for (int *) or (void *).
|
||||
*/
|
||||
i=getsockopt(sock,SOL_SOCKET,SO_ERROR,(char *)&j,(void *)&size);
|
||||
if (i < 0)
|
||||
return(1);
|
||||
else
|
||||
@ -321,7 +343,7 @@ int init_server_long(int *sock, int port, char *ip)
|
||||
{
|
||||
int j = 1;
|
||||
setsockopt(s, SOL_SOCKET, SO_REUSEADDR,
|
||||
(const void *) &j, sizeof j);
|
||||
(void *) &j, sizeof j);
|
||||
}
|
||||
#endif
|
||||
if (bind(s,(struct sockaddr *)&server,sizeof(server)) == -1)
|
||||
@ -365,7 +387,12 @@ redoit:
|
||||
|
||||
memset((char *)&from,0,sizeof(from));
|
||||
len=sizeof(from);
|
||||
ret=accept(acc_sock,(struct sockaddr *)&from,&len);
|
||||
/* Note: under VMS with SOCKETSHR the third parameter is currently
|
||||
* of type (int *) whereas under other systems it is (void *) if
|
||||
* you don't have a cast it will choke the compiler: if you do
|
||||
* have a cast then you can either go for (int *) or (void *).
|
||||
*/
|
||||
ret=accept(acc_sock,(struct sockaddr *)&from,(void *)&len);
|
||||
if (ret == INVALID_SOCKET)
|
||||
{
|
||||
#ifdef WINDOWS
|
||||
@ -589,7 +616,11 @@ int spawn(int argc, char **argv, int *in, int *out)
|
||||
|
||||
if ((pipe(p1) < 0) || (pipe(p2) < 0)) return(-1);
|
||||
|
||||
#ifdef VMS
|
||||
if ((pid=vfork()) == 0)
|
||||
#else
|
||||
if ((pid=fork()) == 0)
|
||||
#endif
|
||||
{ /* child */
|
||||
if (dup2(CHILD_WRITE,fileno(stdout)) < 0)
|
||||
perror("dup2");
|
||||
|
@ -74,10 +74,10 @@
|
||||
#ifdef NO_STDIO
|
||||
#define APPS_WIN16
|
||||
#endif
|
||||
#define USE_SOCKETS
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/pem.h>
|
||||
#define USE_SOCKETS
|
||||
#include "apps.h"
|
||||
#include "s_apps.h"
|
||||
#include <openssl/err.h>
|
||||
@ -86,11 +86,10 @@
|
||||
#include "wintext.h"
|
||||
#endif
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -98,15 +97,15 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
@ -138,6 +137,7 @@ struct tms {
|
||||
#undef PROG
|
||||
#define PROG s_time_main
|
||||
|
||||
#undef ioctl
|
||||
#define ioctl ioctlsocket
|
||||
|
||||
#define SSL_CONNECT_NAME "localhost:4433"
|
||||
@ -668,7 +668,13 @@ static SSL *doConnection(SSL *scon)
|
||||
width=i+1;
|
||||
FD_ZERO(&readfds);
|
||||
FD_SET(i,&readfds);
|
||||
select(width,&readfds,NULL,NULL,NULL);
|
||||
/* Note: under VMS with SOCKETSHR the third parameter
|
||||
* is currently of type (int *) whereas under other
|
||||
* systems it is (void *) if you don't have a cast it
|
||||
* will choke the compiler: if you do have a cast then
|
||||
* you can either go for (int *) or (void *).
|
||||
*/
|
||||
select(width,(void *)&readfds,NULL,NULL,NULL);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
19
apps/speed.c
19
apps/speed.c
@ -82,11 +82,10 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -94,15 +93,15 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -31,7 +31,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
|
||||
|
||||
GENERAL=Makefile README
|
||||
GENERAL=Makefile README crypto-lib.com install.com
|
||||
|
||||
LIB= $(TOP)/libcrypto.a
|
||||
LIBSRC= cryptlib.c mem.c cversion.c ex_data.c tmdiff.c cpt_err.c
|
||||
|
@ -58,6 +58,11 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#ifdef VMS
|
||||
#include <descrip.h>
|
||||
#include <lnmdef.h>
|
||||
#include <starlet.h>
|
||||
#endif
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
@ -181,6 +186,43 @@ ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t)
|
||||
ts=&data;
|
||||
#else
|
||||
ts=gmtime(&t);
|
||||
#endif
|
||||
#ifdef VMS
|
||||
if (ts == NULL)
|
||||
{
|
||||
static $DESCRIPTOR(tabnam,"LNM$DCL_LOGICAL");
|
||||
static $DESCRIPTOR(lognam,"SYS$TIMEZONE_DIFFERENTIAL");
|
||||
char result[256];
|
||||
unsigned int reslen = 0;
|
||||
struct {
|
||||
short buflen;
|
||||
short code;
|
||||
void *bufaddr;
|
||||
unsigned int *reslen;
|
||||
} itemlist[] = {
|
||||
{ 0, LNM$_STRING, 0, 0 },
|
||||
{ 0, 0, 0, 0 },
|
||||
};
|
||||
int status;
|
||||
|
||||
/* Get the value for SYS$TIMEZONE_DIFFERENTIAL */
|
||||
itemlist[0].buflen = sizeof(result);
|
||||
itemlist[0].bufaddr = result;
|
||||
itemlist[0].reslen = &reslen;
|
||||
status = sys$trnlnm(0, &tabnam, &lognam, 0, itemlist);
|
||||
if (!(status & 1))
|
||||
return NULL;
|
||||
result[reslen] = '\0';
|
||||
|
||||
/* Get the numerical value of the equivalence string */
|
||||
status = atoi(result);
|
||||
|
||||
/* and use it to move time to GMT */
|
||||
t -= status;
|
||||
|
||||
/* then convert the result to the time structure */
|
||||
ts=(struct tm *)localtime(&t);
|
||||
}
|
||||
#endif
|
||||
p=(char *)s->data;
|
||||
if ((p == NULL) || (s->length < 14))
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* define PART1, PART2, PART3 or PART4 to build only with a few of the options.
|
||||
* This is for machines with 64k code segment size restrictions. */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern void exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern void exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
|
||||
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern int exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern int exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -195,7 +195,7 @@ int BIO_sock_error(int sock)
|
||||
* a cast it will choke the compiler: if you do have a cast then
|
||||
* you can either go for (char *) or (void *).
|
||||
*/
|
||||
i=getsockopt(sock,SOL_SOCKET,SO_ERROR,(void *)&j,&size);
|
||||
i=getsockopt(sock,SOL_SOCKET,SO_ERROR,(void *)&j,(void *)&size);
|
||||
if (i < 0)
|
||||
return(1);
|
||||
else
|
||||
@ -408,6 +408,8 @@ void BIO_sock_cleanup(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !defined(VMS) || __VMS_VER >= 70000000
|
||||
|
||||
int BIO_socket_ioctl(int fd, long type, unsigned long *arg)
|
||||
{
|
||||
int i;
|
||||
@ -417,6 +419,7 @@ int BIO_socket_ioctl(int fd, long type, unsigned long *arg)
|
||||
SYSerr(SYS_F_IOCTLSOCKET,get_last_socket_error());
|
||||
return(i);
|
||||
}
|
||||
#endif /* __VMS_VER */
|
||||
|
||||
/* The reason I have implemented this instead of using sscanf is because
|
||||
* Visual C 1.52c gives an unresolved external when linking a DLL :-( */
|
||||
@ -593,7 +596,12 @@ int BIO_accept(int sock, char **addr)
|
||||
|
||||
memset((char *)&from,0,sizeof(from));
|
||||
len=sizeof(from);
|
||||
ret=accept(sock,(struct sockaddr *)&from,&len);
|
||||
/* Note: under VMS with SOCKETSHR the third parameter is currently
|
||||
* of type (int *) whereas under other systems it is (void *) if
|
||||
* you don't have a cast it will choke the compiler: if you do
|
||||
* have a cast then you can either go for (int *) or (void *).
|
||||
*/
|
||||
ret=accept(sock,(struct sockaddr *)&from,(void *)&len);
|
||||
if (ret == INVALID_SOCKET)
|
||||
{
|
||||
SYSerr(SYS_F_ACCEPT,get_last_socket_error());
|
||||
|
@ -70,6 +70,11 @@
|
||||
#define SOCKET_PROTOCOL IPPROTO_TCP
|
||||
#endif
|
||||
|
||||
#if (__VMS_VER < 70000000) /* FIONBIO used as a switch to enable ioctl,
|
||||
and that isn't in VMS < 7.0 */
|
||||
#undef FIONBIO
|
||||
#endif
|
||||
|
||||
typedef struct bio_accept_st
|
||||
{
|
||||
int state;
|
||||
|
@ -70,6 +70,12 @@
|
||||
#define SOCKET_PROTOCOL IPPROTO_TCP
|
||||
#endif
|
||||
|
||||
#if (__VMS_VER < 70000000) /* FIONBIO used as a switch to enable ioctl,
|
||||
and that isn't in VMS < 7.0 */
|
||||
#undef FIONBIO
|
||||
#endif
|
||||
|
||||
|
||||
typedef struct bio_connect_st
|
||||
{
|
||||
int state;
|
||||
|
@ -58,6 +58,7 @@
|
||||
|
||||
/* Written by David L. Jones <jonesd@kcgl1.eng.ohio-state.edu>
|
||||
* Date: 22-JUL-1996
|
||||
* Revised: 25-SEP-1997 Update for 0.8.1, BIO_CTRL_SET -> BIO_C_SET_FD
|
||||
*/
|
||||
/* VMS */
|
||||
#include <stdio.h>
|
||||
@ -68,7 +69,8 @@
|
||||
#include <openssl/bio.h>
|
||||
|
||||
#include <iodef.h> /* VMS IO$_ definitions */
|
||||
extern int SYS$QIOW();
|
||||
#include <starlet.h>
|
||||
|
||||
typedef unsigned short io_channel;
|
||||
/*************************************************************************/
|
||||
struct io_status { short status, count; long flags; };
|
||||
@ -114,11 +116,17 @@ BIO_METHOD *BIO_s_rtcp(void)
|
||||
/*****************************************************************************/
|
||||
/* Decnet I/O routines.
|
||||
*/
|
||||
|
||||
#ifdef __DECC
|
||||
#pragma message save
|
||||
#pragma message disable DOLLARID
|
||||
#endif
|
||||
|
||||
static int get ( io_channel chan, char *buffer, int maxlen, int *length )
|
||||
{
|
||||
int status;
|
||||
struct io_status iosb;
|
||||
status = SYS$QIOW ( 0, chan, IO$_READVBLK, &iosb, 0, 0,
|
||||
status = sys$qiow ( 0, chan, IO$_READVBLK, &iosb, 0, 0,
|
||||
buffer, maxlen, 0, 0, 0, 0 );
|
||||
if ( (status&1) == 1 ) status = iosb.status;
|
||||
if ( (status&1) == 1 ) *length = iosb.count;
|
||||
@ -129,11 +137,16 @@ static int put ( io_channel chan, char *buffer, int length )
|
||||
{
|
||||
int status;
|
||||
struct io_status iosb;
|
||||
status = SYS$QIOW ( 0, chan, IO$_WRITEVBLK, &iosb, 0, 0,
|
||||
status = sys$qiow ( 0, chan, IO$_WRITEVBLK, &iosb, 0, 0,
|
||||
buffer, length, 0, 0, 0, 0 );
|
||||
if ( (status&1) == 1 ) status = iosb.status;
|
||||
return status;
|
||||
}
|
||||
|
||||
#ifdef __DECC
|
||||
#pragma message restore
|
||||
#endif
|
||||
|
||||
/***************************************************************************/
|
||||
|
||||
static int rtcp_new(BIO *bi)
|
||||
@ -243,7 +256,7 @@ static long rtcp_ctrl(BIO *b, int cmd, long num, char *ptr)
|
||||
case BIO_CTRL_EOF:
|
||||
ret = 1;
|
||||
break;
|
||||
case BIO_CTRL_SET:
|
||||
case BIO_C_SET_FD:
|
||||
b->num = num;
|
||||
ret = 1;
|
||||
break;
|
||||
|
6695
crypto/bn/asm/vms.mar
Normal file
6695
crypto/bn/asm/vms.mar
Normal file
File diff suppressed because it is too large
Load Diff
@ -68,6 +68,10 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef VMS
|
||||
#undef BN_LLONG /* experimental, so far... */
|
||||
#endif
|
||||
|
||||
#define BN_MUL_COMBA
|
||||
#define BN_SQR_COMBA
|
||||
#define BN_RECURSION
|
||||
|
@ -231,16 +231,16 @@ extern "C" {
|
||||
|
||||
#endif
|
||||
|
||||
extern int bn_limit_bits;
|
||||
extern int bn_limit_num; /* (1<<bn_limit_bits) */
|
||||
EXTERN int bn_limit_bits;
|
||||
EXTERN int bn_limit_num; /* (1<<bn_limit_bits) */
|
||||
/* Recursive 'low' limit */
|
||||
extern int bn_limit_bits_low;
|
||||
extern int bn_limit_num_low; /* (1<<bn_limit_bits_low) */
|
||||
EXTERN int bn_limit_bits_low;
|
||||
EXTERN int bn_limit_num_low; /* (1<<bn_limit_bits_low) */
|
||||
/* Do modified 'high' part calculation' */
|
||||
extern int bn_limit_bits_high;
|
||||
extern int bn_limit_num_high; /* (1<<bn_limit_bits_high) */
|
||||
extern int bn_limit_bits_mont;
|
||||
extern int bn_limit_num_mont; /* (1<<bn_limit_bits_mont) */
|
||||
EXTERN int bn_limit_bits_high;
|
||||
EXTERN int bn_limit_num_high; /* (1<<bn_limit_bits_high) */
|
||||
EXTERN int bn_limit_bits_mont;
|
||||
EXTERN int bn_limit_num_mont; /* (1<<bn_limit_bits_mont) */
|
||||
|
||||
|
||||
BIGNUM *bn_expand2(BIGNUM *b, int bits);
|
||||
|
@ -71,14 +71,14 @@ const char *BN_version="Big Number" OPENSSL_VERSION_PTEXT;
|
||||
* 7 - 128 == 4096
|
||||
* 8 - 256 == 8192
|
||||
*/
|
||||
int bn_limit_bits=0;
|
||||
int bn_limit_num=8; /* (1<<bn_limit_bits) */
|
||||
int bn_limit_bits_low=0;
|
||||
int bn_limit_num_low=8; /* (1<<bn_limit_bits_low) */
|
||||
int bn_limit_bits_high=0;
|
||||
int bn_limit_num_high=8; /* (1<<bn_limit_bits_high) */
|
||||
int bn_limit_bits_mont=0;
|
||||
int bn_limit_num_mont=8; /* (1<<bn_limit_bits_mont) */
|
||||
GLOBAL int bn_limit_bits=0;
|
||||
GLOBAL int bn_limit_num=8; /* (1<<bn_limit_bits) */
|
||||
GLOBAL int bn_limit_bits_low=0;
|
||||
GLOBAL int bn_limit_num_low=8; /* (1<<bn_limit_bits_low) */
|
||||
GLOBAL int bn_limit_bits_high=0;
|
||||
GLOBAL int bn_limit_num_high=8; /* (1<<bn_limit_bits_high) */
|
||||
GLOBAL int bn_limit_bits_mont=0;
|
||||
GLOBAL int bn_limit_num_mont=8; /* (1<<bn_limit_bits_mont) */
|
||||
|
||||
void BN_set_params(int mult, int high, int low, int mont)
|
||||
{
|
||||
|
@ -69,11 +69,10 @@
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -81,15 +80,15 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -69,11 +69,10 @@
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -81,15 +80,15 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
66
crypto/bn/vms-helper.c
Normal file
66
crypto/bn/vms-helper.c
Normal file
@ -0,0 +1,66 @@
|
||||
/* vms-helper.c */
|
||||
/* ====================================================================
|
||||
* 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).
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "cryptlib.h"
|
||||
#include "bn_lcl.h"
|
||||
|
||||
bn_div_words_abort(int i)
|
||||
{
|
||||
#if !defined(NO_STDIO) && !defined(WIN16)
|
||||
fprintf(stderr,"Division would overflow (%d)\n",i);
|
||||
#endif
|
||||
abort();
|
||||
}
|
@ -60,6 +60,8 @@
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#include <openssl/e_os.h> /* EXTERN */
|
||||
|
||||
#undef c2l
|
||||
#define c2l(c,l) (l =((unsigned long)(*((c)++))) , \
|
||||
l|=((unsigned long)(*((c)++)))<< 8L, \
|
||||
@ -213,12 +215,11 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
extern CAST_LONG CAST_S_table0[256];
|
||||
extern CAST_LONG CAST_S_table1[256];
|
||||
extern CAST_LONG CAST_S_table2[256];
|
||||
extern CAST_LONG CAST_S_table3[256];
|
||||
extern CAST_LONG CAST_S_table4[256];
|
||||
extern CAST_LONG CAST_S_table5[256];
|
||||
extern CAST_LONG CAST_S_table6[256];
|
||||
extern CAST_LONG CAST_S_table7[256];
|
||||
|
||||
EXTERN CAST_LONG CAST_S_table0[256];
|
||||
EXTERN CAST_LONG CAST_S_table1[256];
|
||||
EXTERN CAST_LONG CAST_S_table2[256];
|
||||
EXTERN CAST_LONG CAST_S_table3[256];
|
||||
EXTERN CAST_LONG CAST_S_table4[256];
|
||||
EXTERN CAST_LONG CAST_S_table5[256];
|
||||
EXTERN CAST_LONG CAST_S_table6[256];
|
||||
EXTERN CAST_LONG CAST_S_table7[256];
|
||||
|
@ -55,7 +55,7 @@
|
||||
* copied and put under another distribution licence
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
CAST_LONG CAST_S_table0[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table0[256]={
|
||||
0x30fb40d4,0x9fa0ff0b,0x6beccd2f,0x3f258c7a,
|
||||
0x1e213f2f,0x9c004dd3,0x6003e540,0xcf9fc949,
|
||||
0xbfd4af27,0x88bbbdb5,0xe2034090,0x98d09675,
|
||||
@ -121,7 +121,7 @@ CAST_LONG CAST_S_table0[256]={
|
||||
0x1a69e783,0x02cc4843,0xa2f7c579,0x429ef47d,
|
||||
0x427b169c,0x5ac9f049,0xdd8f0f00,0x5c8165bf,
|
||||
};
|
||||
CAST_LONG CAST_S_table1[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table1[256]={
|
||||
0x1f201094,0xef0ba75b,0x69e3cf7e,0x393f4380,
|
||||
0xfe61cf7a,0xeec5207a,0x55889c94,0x72fc0651,
|
||||
0xada7ef79,0x4e1d7235,0xd55a63ce,0xde0436ba,
|
||||
@ -187,7 +187,7 @@ CAST_LONG CAST_S_table1[256]={
|
||||
0x43d79572,0x7e6dd07c,0x06dfdf1e,0x6c6cc4ef,
|
||||
0x7160a539,0x73bfbe70,0x83877605,0x4523ecf1,
|
||||
};
|
||||
CAST_LONG CAST_S_table2[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table2[256]={
|
||||
0x8defc240,0x25fa5d9f,0xeb903dbf,0xe810c907,
|
||||
0x47607fff,0x369fe44b,0x8c1fc644,0xaececa90,
|
||||
0xbeb1f9bf,0xeefbcaea,0xe8cf1950,0x51df07ae,
|
||||
@ -253,7 +253,7 @@ CAST_LONG CAST_S_table2[256]={
|
||||
0xf7baefd5,0x4142ed9c,0xa4315c11,0x83323ec5,
|
||||
0xdfef4636,0xa133c501,0xe9d3531c,0xee353783,
|
||||
};
|
||||
CAST_LONG CAST_S_table3[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table3[256]={
|
||||
0x9db30420,0x1fb6e9de,0xa7be7bef,0xd273a298,
|
||||
0x4a4f7bdb,0x64ad8c57,0x85510443,0xfa020ed1,
|
||||
0x7e287aff,0xe60fb663,0x095f35a1,0x79ebf120,
|
||||
@ -319,7 +319,7 @@ CAST_LONG CAST_S_table3[256]={
|
||||
0x7ae5290c,0x3cb9536b,0x851e20fe,0x9833557e,
|
||||
0x13ecf0b0,0xd3ffb372,0x3f85c5c1,0x0aef7ed2,
|
||||
};
|
||||
CAST_LONG CAST_S_table4[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table4[256]={
|
||||
0x7ec90c04,0x2c6e74b9,0x9b0e66df,0xa6337911,
|
||||
0xb86a7fff,0x1dd358f5,0x44dd9d44,0x1731167f,
|
||||
0x08fbf1fa,0xe7f511cc,0xd2051b00,0x735aba00,
|
||||
@ -385,7 +385,7 @@ CAST_LONG CAST_S_table4[256]={
|
||||
0xe822fe15,0x88570983,0x750e6249,0xda627e55,
|
||||
0x5e76ffa8,0xb1534546,0x6d47de08,0xefe9e7d4,
|
||||
};
|
||||
CAST_LONG CAST_S_table5[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table5[256]={
|
||||
0xf6fa8f9d,0x2cac6ce1,0x4ca34867,0xe2337f7c,
|
||||
0x95db08e7,0x016843b4,0xeced5cbc,0x325553ac,
|
||||
0xbf9f0960,0xdfa1e2ed,0x83f0579d,0x63ed86b9,
|
||||
@ -451,7 +451,7 @@ CAST_LONG CAST_S_table5[256]={
|
||||
0xa2d762cf,0x49c92f54,0x38b5f331,0x7128a454,
|
||||
0x48392905,0xa65b1db8,0x851c97bd,0xd675cf2f,
|
||||
};
|
||||
CAST_LONG CAST_S_table6[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table6[256]={
|
||||
0x85e04019,0x332bf567,0x662dbfff,0xcfc65693,
|
||||
0x2a8d7f6f,0xab9bc912,0xde6008a1,0x2028da1f,
|
||||
0x0227bce7,0x4d642916,0x18fac300,0x50f18b82,
|
||||
@ -517,7 +517,7 @@ CAST_LONG CAST_S_table6[256]={
|
||||
0x518f36b2,0x84b1d370,0x0fedce83,0x878ddada,
|
||||
0xf2a279c7,0x94e01be8,0x90716f4b,0x954b8aa3,
|
||||
};
|
||||
CAST_LONG CAST_S_table7[256]={
|
||||
GLOBAL CAST_LONG CAST_S_table7[256]={
|
||||
0xe216300d,0xbbddfffc,0xa7ebdabd,0x35648095,
|
||||
0x7789f8b7,0xe6c1121b,0x0e241600,0x052ce8b5,
|
||||
0x11a9cfb0,0xe5952f11,0xece7990a,0x9386d174,
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
|
||||
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern int exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern int exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* define PART1, PART2, PART3 or PART4 to build only with a few of the options.
|
||||
* This is for machines with 64k code segment size restrictions. */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern void exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern void exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -105,7 +105,11 @@ LHASH *CONF_load(LHASH *h, char *file, long *line)
|
||||
goto err;
|
||||
}
|
||||
|
||||
#ifdef VMS
|
||||
in=fopen(file,"r");
|
||||
#else
|
||||
in=fopen(file,"rb");
|
||||
#endif
|
||||
if (in == NULL)
|
||||
{
|
||||
SYSerr(SYS_F_FOPEN,get_last_sys_error());
|
||||
|
@ -73,10 +73,17 @@ extern "C" {
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/opensslconf.h>
|
||||
|
||||
#ifndef VMS
|
||||
#define X509_CERT_AREA OPENSSLDIR
|
||||
#define X509_CERT_DIR OPENSSLDIR "/certs"
|
||||
#define X509_CERT_FILE OPENSSLDIR "/cert.pem"
|
||||
#define X509_PRIVATE_DIR OPENSSLDIR "/private"
|
||||
#else
|
||||
#define X509_CERT_AREA "SSLROOT:[000000]"
|
||||
#define X509_CERT_DIR "SSLCERTS:"
|
||||
#define X509_CERT_FILE "SSLCERTS:cert.pem"
|
||||
#define X509_PRIVATE_DIR "SSLPRIVATE:"
|
||||
#endif
|
||||
|
||||
#define X509_CERT_DIR_EVP "SSL_CERT_DIR"
|
||||
#define X509_CERT_FILE_EVP "SSL_CERT_FILE"
|
||||
|
1218
crypto/crypto-lib.com
Normal file
1218
crypto/crypto-lib.com
Normal file
File diff suppressed because it is too large
Load Diff
@ -231,7 +231,7 @@ typedef struct crypto_ex_data_func_st
|
||||
#endif /* MDEBUG */
|
||||
|
||||
/* Case insensiteve linking causes problems.... */
|
||||
#ifdef WIN16
|
||||
#if defined(WIN16) || defined(VMS)
|
||||
#define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings
|
||||
#endif
|
||||
|
||||
|
1001
crypto/des/des-lib.com
Normal file
1001
crypto/des/des-lib.com
Normal file
File diff suppressed because it is too large
Load Diff
@ -59,7 +59,19 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifndef MSDOS
|
||||
#ifndef VMS
|
||||
#include <unistd.h>
|
||||
#else /* VMS */
|
||||
#ifdef __DECC
|
||||
#include <unistd.h>
|
||||
#if __CRTL_VER < 70000000
|
||||
#define RAND
|
||||
#endif
|
||||
#else /* not __DECC */
|
||||
#include <math.h>
|
||||
#define RAND
|
||||
#endif /* __DECC */
|
||||
#endif /* VMS */
|
||||
#else
|
||||
#include <io.h>
|
||||
#define RAND
|
||||
|
@ -69,6 +69,12 @@ extern "C" {
|
||||
|
||||
#include <stdio.h>
|
||||
#include <openssl/opensslconf.h> /* DES_LONG */
|
||||
#include <openssl/e_os.h> /* EXTERN */
|
||||
|
||||
#ifdef VMS
|
||||
#undef des_init_random_number_generator
|
||||
#define des_init_random_number_generator des_init_random_num_generator
|
||||
#endif
|
||||
|
||||
typedef unsigned char des_cblock[8];
|
||||
typedef unsigned char *des_cblocks; /* Unfortunately there's no way to say that
|
||||
@ -132,9 +138,9 @@ typedef des_key_schedule bit_64;
|
||||
#define des_fixup_key_parity des_set_odd_parity
|
||||
#define des_check_key_parity check_parity
|
||||
|
||||
extern int des_check_key; /* defaults to false */
|
||||
extern int des_rw_mode; /* defaults to DES_PCBC_MODE */
|
||||
extern int des_set_weak_key_flag; /* set the weak key flag */
|
||||
EXTERN int des_check_key; /* defaults to false */
|
||||
EXTERN int des_rw_mode; /* defaults to DES_PCBC_MODE */
|
||||
EXTERN int des_set_weak_key_flag; /* set the weak key flag */
|
||||
|
||||
const char *des_options(void);
|
||||
void des_ecb3_encrypt(const des_cblock input, des_cblock output,
|
||||
|
@ -68,8 +68,10 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifndef MSDOS
|
||||
#if !defined(VMS) || defined(__DECC)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#endif
|
||||
#include <openssl/des.h>
|
||||
|
||||
#include <openssl/opensslconf.h>
|
||||
@ -84,6 +86,17 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef VMS
|
||||
#ifndef __DECC
|
||||
#include <math.h>
|
||||
#define RAND
|
||||
#else
|
||||
#if __CRTL_VER < 70000000
|
||||
#define RAND
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(__STDC__) || defined(VMS) || defined(M_XENIX) || defined(MSDOS)
|
||||
#include <string.h>
|
||||
#endif
|
||||
@ -418,7 +431,7 @@
|
||||
PERM_OP(l,r,tt, 4,0x0f0f0f0fL); \
|
||||
}
|
||||
|
||||
extern const DES_LONG des_SPtrans[8][64];
|
||||
EXTERN const DES_LONG des_SPtrans[8][64];
|
||||
|
||||
void fcrypt_body(DES_LONG *out,des_key_schedule ks,
|
||||
DES_LONG Eswap0, DES_LONG Eswap1);
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* define PART1, PART2, PART3 or PART4 to build only with a few of the options.
|
||||
* This is for machines with 64k code segment size restrictions. */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern void exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,19 +78,20 @@ extern void exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(sun) || defined(__ultrix)
|
||||
#define _POSIX_SOURCE
|
||||
#include <limits.h>
|
||||
|
@ -56,5 +56,5 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
extern char *DES_version; /* SSLeay version string */
|
||||
extern char *libdes_version; /* old libdes version string */
|
||||
EXTERN char *DES_version; /* SSLeay version string */
|
||||
EXTERN char *libdes_version; /* old libdes version string */
|
||||
|
@ -65,7 +65,9 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifndef MSDOS
|
||||
#if !defined(VMS) || defined(__DECC)
|
||||
#include <unistd.h>
|
||||
#endif /* VMS */
|
||||
#else
|
||||
#include <io.h>
|
||||
#endif
|
||||
|
@ -60,8 +60,8 @@
|
||||
#include "spr.h"
|
||||
#include <openssl/opensslv.h>
|
||||
|
||||
const char *libdes_version="libdes v 3.24 - 20-Apr-1996 - eay";
|
||||
const char *DES_version="DES" OPENSSL_VERSION_PTEXT;
|
||||
GLOBAL const char *libdes_version="libdes v 3.24 - 20-Apr-1996 - eay";
|
||||
GLOBAL const char *DES_version="DES" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
const char *des_options(void)
|
||||
{
|
||||
|
@ -63,7 +63,7 @@
|
||||
|
||||
/* This has some uglies in it but it works - even over sockets. */
|
||||
/*extern int errno;*/
|
||||
int des_rw_mode=DES_PCBC_MODE;
|
||||
GLOBAL int des_rw_mode=DES_PCBC_MODE;
|
||||
|
||||
|
||||
/*
|
||||
|
@ -86,6 +86,13 @@
|
||||
#include <setjmp.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef VMS /* prototypes for sys$whatever */
|
||||
#include <starlet.h>
|
||||
#ifdef __DECC
|
||||
#pragma message disable DOLLARID
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef WIN_CONSOLE_BUG
|
||||
#include <windows.h>
|
||||
#include <wincon.h>
|
||||
@ -275,10 +282,10 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
|
||||
memcpy(&(tty_new),&(tty_orig),sizeof(tty_orig));
|
||||
#endif
|
||||
#ifdef VMS
|
||||
status = SYS$ASSIGN(&terminal,&channel,0,0);
|
||||
status = sys$assign(&terminal,&channel,0,0);
|
||||
if (status != SS$_NORMAL)
|
||||
return(-1);
|
||||
status=SYS$QIOW(0,channel,IO$_SENSEMODE,&iosb,0,0,tty_orig,12,0,0,0,0);
|
||||
status=sys$qiow(0,channel,IO$_SENSEMODE,&iosb,0,0,tty_orig,12,0,0,0,0);
|
||||
if ((status != SS$_NORMAL) || (iosb.iosb$w_value != SS$_NORMAL))
|
||||
return(-1);
|
||||
#endif
|
||||
@ -298,7 +305,7 @@ int des_read_pw(char *buf, char *buff, int size, const char *prompt,
|
||||
tty_new[0] = tty_orig[0];
|
||||
tty_new[1] = tty_orig[1] | TT$M_NOECHO;
|
||||
tty_new[2] = tty_orig[2];
|
||||
status = SYS$QIOW(0,channel,IO$_SETMODE,&iosb,0,0,tty_new,12,0,0,0,0);
|
||||
status = sys$qiow(0,channel,IO$_SETMODE,&iosb,0,0,tty_new,12,0,0,0,0);
|
||||
if ((status != SS$_NORMAL) || (iosb.iosb$w_value != SS$_NORMAL))
|
||||
return(-1);
|
||||
#endif
|
||||
@ -349,14 +356,14 @@ error:
|
||||
#endif
|
||||
#ifdef VMS
|
||||
if (ps >= 2)
|
||||
status = SYS$QIOW(0,channel,IO$_SETMODE,&iosb,0,0
|
||||
status = sys$qiow(0,channel,IO$_SETMODE,&iosb,0,0
|
||||
,tty_orig,12,0,0,0,0);
|
||||
#endif
|
||||
|
||||
if (ps >= 1) popsig();
|
||||
if (stdin != tty) fclose(tty);
|
||||
#ifdef VMS
|
||||
status = SYS$DASSGN(channel);
|
||||
status = sys$dassgn(channel);
|
||||
#endif
|
||||
return(!ok);
|
||||
}
|
||||
|
@ -68,7 +68,7 @@
|
||||
#include "sk.h"
|
||||
|
||||
static int check_parity(const des_cblock key);
|
||||
int des_check_key=0;
|
||||
GLOBAL int des_check_key=0;
|
||||
|
||||
void des_set_odd_parity(des_cblock key)
|
||||
{
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
|
||||
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern int exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern int exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -56,7 +56,7 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
const DES_LONG des_SPtrans[8][64]={
|
||||
GLOBAL const DES_LONG des_SPtrans[8][64]={
|
||||
{
|
||||
/* nibble 0 */
|
||||
0x02080800L, 0x00080000L, 0x02000002L, 0x02080802L,
|
||||
|
@ -58,7 +58,7 @@
|
||||
|
||||
#include "des_locl.h"
|
||||
|
||||
extern int des_check_key;
|
||||
EXTERN int des_check_key;
|
||||
|
||||
void des_string_to_key(const char *str, des_cblock key)
|
||||
{
|
||||
|
@ -1,90 +0,0 @@
|
||||
$! --- VMS.com ---
|
||||
$!
|
||||
$ GoSub defines
|
||||
$ GoSub linker_options
|
||||
$ If (P1 .nes. "")
|
||||
$ Then
|
||||
$ GoSub 'P1'
|
||||
$ Else
|
||||
$ GoSub lib
|
||||
$ GoSub destest
|
||||
$ GoSub rpw
|
||||
$ GoSub speed
|
||||
$ GoSub des
|
||||
$ EndIF
|
||||
$!
|
||||
$ Exit
|
||||
$!
|
||||
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
$!
|
||||
$DEFINES:
|
||||
$ OPT_FILE := "VAX_LINKER_OPTIONS.OPT"
|
||||
$!
|
||||
$ CC_OPTS := "/NODebug/OPTimize/NOWarn"
|
||||
$!
|
||||
$ LINK_OPTS := "/NODebug/NOTraceback/Contiguous"
|
||||
$!
|
||||
$ OBJS = "cbc_cksm.obj,cbc_enc.obj,ecb_enc.obj,pcbc_enc.obj," + -
|
||||
"qud_cksm.obj,rand_key.obj,read_pwd.obj,set_key.obj," + -
|
||||
"str2key.obj,enc_read.obj,enc_writ.obj,fcrypt.obj," + -
|
||||
"cfb_enc.obj,ecb3_enc.obj,ofb_enc.obj"
|
||||
|
||||
|
||||
$!
|
||||
$ LIBDES = "cbc_cksm.c,cbc_enc.c,ecb_enc.c,enc_read.c," + -
|
||||
"enc_writ.c,pcbc_enc.c,qud_cksm.c,rand_key.c," + -
|
||||
"read_pwd.c,set_key.c,str2key.c,fcrypt.c," + -
|
||||
"cfb_enc.c,ecb3_enc.c,ofb_enc.c"
|
||||
$ Return
|
||||
$!
|
||||
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
$!
|
||||
$LINKER_OPTIONS:
|
||||
$ If (f$search(OPT_FILE) .eqs. "")
|
||||
$ Then
|
||||
$ Create 'OPT_FILE'
|
||||
$DECK
|
||||
! Default system options file to link against the sharable C runtime library
|
||||
!
|
||||
Sys$Share:VAXcRTL.exe/Share
|
||||
$EOD
|
||||
$ EndIF
|
||||
$ Return
|
||||
$!
|
||||
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
$!
|
||||
$LIB:
|
||||
$ CC 'CC_OPTS' 'LIBDES'
|
||||
$ If (f$search("LIBDES.OLB") .nes. "")
|
||||
$ Then Library /Object /Replace libdes 'OBJS'
|
||||
$ Else Library /Create /Object libdes 'OBJS'
|
||||
$ EndIF
|
||||
$ Return
|
||||
$!
|
||||
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
$!
|
||||
$DESTEST:
|
||||
$ CC 'CC_OPTS' destest
|
||||
$ Link 'link_opts' /Exec=destest destest.obj,libdes/LIBRARY,'opt_file'/Option
|
||||
$ Return
|
||||
$!
|
||||
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
$!
|
||||
$RPW:
|
||||
$ CC 'CC_OPTS' rpw
|
||||
$ Link 'link_opts' /Exec=rpw rpw.obj,libdes/LIBRARY,'opt_file'/Option
|
||||
$ Return
|
||||
$!
|
||||
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
$!
|
||||
$SPEED:
|
||||
$ CC 'CC_OPTS' speed
|
||||
$ Link 'link_opts' /Exec=speed speed.obj,libdes/LIBRARY,'opt_file'/Option
|
||||
$ Return
|
||||
$!
|
||||
$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
$!
|
||||
$DES:
|
||||
$ CC 'CC_OPTS' des
|
||||
$ Link 'link_opts' /Exec=des des.obj,libdes/LIBRARY,'opt_file'/Option
|
||||
$ Return
|
@ -59,7 +59,7 @@
|
||||
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
|
||||
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern int exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern int exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
128
crypto/install.com
Normal file
128
crypto/install.com
Normal file
@ -0,0 +1,128 @@
|
||||
$! INSTALL.COM -- Installs the files in a given directory tree
|
||||
$!
|
||||
$! Author: Richard Levitte <richard@levitte.org>
|
||||
$! Time of creation: 22-MAY-1998 10:13
|
||||
$!
|
||||
$! P1 root of the directory tree
|
||||
$!
|
||||
$ IF P1 .EQS. ""
|
||||
$ THEN
|
||||
$ WRITE SYS$OUTPUT "First argument missing."
|
||||
$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
|
||||
$ EXIT
|
||||
$ ENDIF
|
||||
$
|
||||
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
||||
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
||||
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
||||
- "[000000." - "][" - "[" - "]"
|
||||
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
||||
$
|
||||
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
||||
$ DEFINE/NOLOG WRK_SSLVLIB WRK_SSLROOT:[VAX_LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLALIB WRK_SSLROOT:[ALPHA_LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
|
||||
$
|
||||
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
||||
$ IF F$PARSE("WRK_SSLVLIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLVLIB:
|
||||
$ IF F$PARSE("WRK_SSLALIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLALIB:
|
||||
$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLINCLUDE:
|
||||
$
|
||||
$ SDIRS := ,MD2,MD5,SHA,MDC2,HMAC,RIPEMD,-
|
||||
DES,RC2,RC4,RC5,IDEA,BF,CAST,-
|
||||
BN,RSA,DSA,DH,-
|
||||
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_MD2 := md2.h
|
||||
$ EXHEADER_MD5 := md5.h
|
||||
$ EXHEADER_SHA := sha.h
|
||||
$ EXHEADER_MDC2 := mdc2.h
|
||||
$ EXHEADER_HMAC := hmac.h
|
||||
$ EXHEADER_RIPEMD := ripemd.h
|
||||
$ EXHEADER_DES := des.h
|
||||
$ EXHEADER_RC2 := rc2.h
|
||||
$ EXHEADER_RC4 := rc4.h
|
||||
$ EXHEADER_RC5 := rc5.h
|
||||
$ EXHEADER_IDEA := idea.h
|
||||
$ EXHEADER_BF := blowfish.h
|
||||
$ EXHEADER_CAST := cast.h
|
||||
$ EXHEADER_BN := bn.h
|
||||
$ EXHEADER_RSA := rsa.h
|
||||
$ EXHEADER_DSA := dsa.h
|
||||
$ EXHEADER_DH := dh.h
|
||||
$ EXHEADER_BUFFER := buffer.h
|
||||
$ EXHEADER_BIO := bio.h
|
||||
$ EXHEADER_STACK := stack.h,safestack.h
|
||||
$ EXHEADER_LHASH := lhash.h
|
||||
$ EXHEADER_RAND := rand.h
|
||||
$ EXHEADER_ERR := err.h
|
||||
$ EXHEADER_OBJECTS := objects.h
|
||||
$ EXHEADER_EVP := evp.h
|
||||
$ EXHEADER_ASN1 := asn1.h,asn1_mac.h
|
||||
$ EXHEADER_PEM := pem.h,pem2.h
|
||||
$ EXHEADER_X509 := x509.h,x509_vfy.h
|
||||
$ EXHEADER_X509V3 := x509v3.h
|
||||
$ EXHEADER_CONF := conf.h
|
||||
$ EXHEADER_TXT_DB := txt_db.h
|
||||
$ EXHEADER_PKCS7 := pkcs7.h
|
||||
$ EXHEADER_PKCS12 := pkcs12.h
|
||||
$ EXHEADER_COMP := comp.h
|
||||
$ LIBS := LIBCRYPTO
|
||||
$
|
||||
$ VEXE_DIR := [-.VAX.EXE.CRYPTO]
|
||||
$ AEXE_DIR := [-.AXP.EXE.CRYPTO]
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_SDIRS:
|
||||
$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
|
||||
$ I = I + 1
|
||||
$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
|
||||
$ tmp = EXHEADER_'D'
|
||||
$ IF D .EQS. ""
|
||||
$ THEN
|
||||
$ COPY 'tmp' WRK_SSLINCLUDE: /LOG
|
||||
$ ELSE
|
||||
$ COPY [.'D']'tmp' WRK_SSLINCLUDE: /LOG
|
||||
$ ENDIF
|
||||
$ GOTO LOOP_SDIRS
|
||||
$ LOOP_SDIRS_END:
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_LIB:
|
||||
$ E = F$EDIT(F$ELEMENT(I, ",", LIBS),"TRIM")
|
||||
$ I = I + 1
|
||||
$ IF E .EQS. "," THEN GOTO LOOP_LIB_END
|
||||
$ SET NOON
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".OLB") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.OLB WRK_SSLVLIB:'E'.OLB/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVLIB:'E'.OLB
|
||||
$ ENDIF
|
||||
$ ! Preparing for the time when we have shareable images
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.EXE WRK_SSLVLIB:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVLIB:'E'.EXE
|
||||
$ ENDIF
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".OLB") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.OLB WRK_SSLALIB:'E'.OLB/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLALIB:'E'.OLB
|
||||
$ ENDIF
|
||||
$ ! Preparing for the time when we have shareable images
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.EXE WRK_SSLALIB:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLALIB:'E'.EXE
|
||||
$ ENDIF
|
||||
$ SET ON
|
||||
$ GOTO LOOP_LIB
|
||||
$ LOOP_LIB_END:
|
||||
$
|
||||
$ EXIT
|
@ -1,31 +0,0 @@
|
||||
$!
|
||||
$! Compile crypto.c as several subset modules and insert in crypto-xxx.olb.
|
||||
$! If P1 is specifed, it specifies alternate list of subsets to compile.
|
||||
$!
|
||||
$ libname = "CRYPTO-AXP.OLB"
|
||||
$ subset_list = "LIB,ASN1,BN,BUFFER,CONF,DES,DH,DSA,ERROR,EVP,IDEA,LHASH,MD," + -
|
||||
"METH,OBJECTS,PEM,RAND,RC,RSA,SHA,STACK,TXT_DB,X509"
|
||||
$ if p1 .nes. "" then subset_list = p1
|
||||
$!
|
||||
$ if f$getsyi("CPU") .lt. 128 then libname = "CRYPTO-VAX.OLB"
|
||||
$ if f$search(libname) .eqs. "" then library/create/object/log 'libname'
|
||||
$!
|
||||
$ cc = "cc/include=[-.include]/prefix=all" + P2
|
||||
$!
|
||||
$ i = 0
|
||||
$ next_subset:
|
||||
$ subset = f$element(i,",",subset_list)
|
||||
$ if subset .eqs. "," then goto done
|
||||
$ i = i + 1
|
||||
$ create crypto_'subset'.subset
|
||||
#include "crypto.c"
|
||||
$ ofile = "sys$disk:[]crypto_" + subset + ".obj"
|
||||
$ on warning then goto next_subset
|
||||
$ write sys$output "Compiling ", ofile
|
||||
$ cc /object='ofile' crypto_'subset'.subset -
|
||||
/define=(CRYPTO_SUBSET,CRYPTO_'subset'_SUBSET)
|
||||
$ library/replace/log 'libname'/module=CRYPTO_'subset' 'ofile'
|
||||
$ goto next_subset
|
||||
$!
|
||||
$ done:
|
||||
$ exit
|
@ -4,9 +4,11 @@
|
||||
/* Generate 80386 code? */
|
||||
#undef I386_ONLY
|
||||
|
||||
#if !(defined(VMS) || defined(__VMS)) /* VMS uses logical names instead */
|
||||
#if defined(HEADER_CRYPTLIB_H) && !defined(OPENSSLDIR)
|
||||
#define OPENSSLDIR "/usr/local/ssl"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(HEADER_IDEA_H) && !defined(IDEA_INT)
|
||||
#define IDEA_INT unsigned int
|
||||
|
@ -368,6 +368,16 @@ void PEM_dek_info(char *buf, const char *type, int len, char *str);
|
||||
|
||||
#ifndef SSLEAY_MACROS
|
||||
|
||||
#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
|
||||
|
||||
#ifndef WIN16
|
||||
X509 *PEM_read_X509(FILE *fp,X509 **x,int (*cb)());
|
||||
X509_REQ *PEM_read_X509_REQ(FILE *fp,X509_REQ **x,int (*cb)());
|
||||
|
@ -56,6 +56,7 @@
|
||||
* [including the GNU Public Licence.]
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -113,7 +114,17 @@ int RAND_write_file(const char *file)
|
||||
FILE *out;
|
||||
int n;
|
||||
|
||||
/* Under VMS, fopen(file, "wb") will craete a new version of the
|
||||
same file. This is not good, so let's try updating an existing
|
||||
one, and create file only if it doesn't already exist. This
|
||||
should be completely harmless on system that have no file
|
||||
versions. -- Richard Levitte */
|
||||
out=fopen(file,"rb+");
|
||||
if (out == NULL && errno == ENOENT)
|
||||
{
|
||||
errno = 0;
|
||||
out=fopen(file,"wb");
|
||||
}
|
||||
if (out == NULL) goto err;
|
||||
chmod(file,0600);
|
||||
n=RAND_DATA;
|
||||
@ -156,7 +167,9 @@ char *RAND_file_name(char *buf, int size)
|
||||
if (((int)(strlen(s)+strlen(RFILE)+2)) > size)
|
||||
return(RFILE);
|
||||
strcpy(buf,s);
|
||||
#ifndef VMS
|
||||
strcat(buf,"/");
|
||||
#endif
|
||||
strcat(buf,RFILE);
|
||||
ret=buf;
|
||||
}
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
|
||||
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern int exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern int exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
|
||||
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern int exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern int exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -59,7 +59,7 @@
|
||||
/* 11-Sep-92 Andrew Daviel Support for Silicon Graphics IRIX added */
|
||||
/* 06-Apr-92 Luke Brennan Support for VMS and add extra signal calls */
|
||||
|
||||
#ifndef MSDOS
|
||||
#if !defined(MSDOS) && (!defined(VMS) || defined(__DECC))
|
||||
#define TIMES
|
||||
#endif
|
||||
|
||||
@ -71,7 +71,6 @@
|
||||
extern int exit();
|
||||
#endif
|
||||
#include <signal.h>
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
#include <time.h>
|
||||
#endif
|
||||
@ -79,15 +78,15 @@ extern int exit();
|
||||
#include <sys/types.h>
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
#include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#ifndef TIMES
|
||||
#include <sys/timeb.h>
|
||||
#endif
|
||||
|
@ -67,11 +67,12 @@
|
||||
|
||||
#ifndef MSDOS
|
||||
# ifndef WIN32
|
||||
# if !defined(VMS) || defined(__DECC)
|
||||
# define TIMES
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef VMS
|
||||
#ifndef _IRIX
|
||||
# include <time.h>
|
||||
#endif
|
||||
@ -79,15 +80,14 @@
|
||||
# include <sys/types.h>
|
||||
# include <sys/times.h>
|
||||
#endif
|
||||
#else /* VMS */
|
||||
# include <types.h>
|
||||
struct tms {
|
||||
time_t tms_utime;
|
||||
time_t tms_stime;
|
||||
time_t tms_uchild; /* I dunno... */
|
||||
time_t tms_uchildsys; /* so these names are a guess :-) */
|
||||
}
|
||||
#endif /* VMS */
|
||||
|
||||
/* Depending on the VMS version, the tms structure is perhaps defined.
|
||||
The __TMS macro will show if it was. If it wasn't defined, we should
|
||||
undefine TIMES, since that tells the rest of the program how things
|
||||
should be handled. -- Richard Levitte */
|
||||
#if defined(VMS) && defined(__DECC) && !defined(__TMS)
|
||||
#undef TIMES
|
||||
#endif
|
||||
|
||||
#if defined(sun) || defined(__ultrix)
|
||||
#define _POSIX_SOURCE
|
||||
|
@ -63,6 +63,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifdef VMS
|
||||
#undef X509_REVOKED_get_ext_by_critical
|
||||
#define X509_REVOKED_get_ext_by_critical X509_REVOKED_get_ext_by_critic
|
||||
#endif
|
||||
|
||||
#include <openssl/stack.h>
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/safestack.h>
|
||||
|
@ -259,6 +259,21 @@ struct x509_store_state_st /* X509_STORE_CTX */
|
||||
/* The application is not happy */
|
||||
#define X509_V_ERR_APPLICATION_VERIFICATION 50
|
||||
|
||||
/* These functions are being redefined in another directory,
|
||||
and clash when the linker is case-insensitive, so let's
|
||||
hide them a little, by giving them an extra 'o' at the
|
||||
beginning of the name... */
|
||||
#ifdef VMS
|
||||
#undef X509v3_cleanup_extensions
|
||||
#define X509v3_cleanup_extensions oX509v3_cleanup_extensions
|
||||
#undef X509v3_add_extension
|
||||
#define X509v3_add_extension oX509v3_add_extension
|
||||
#undef X509v3_add_netscape_extensions
|
||||
#define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions
|
||||
#undef X509v3_add_standard_extensions
|
||||
#define X509v3_add_standard_extensions oX509v3_add_standard_extensions
|
||||
#endif
|
||||
|
||||
#ifdef HEADER_LHASH_H
|
||||
X509_OBJECT *X509_OBJECT_retrieve_by_subject(LHASH *h,int type,X509_NAME *name);
|
||||
#endif
|
||||
|
70
e_os.h
70
e_os.h
@ -192,27 +192,68 @@ extern "C" {
|
||||
|
||||
#else /* The non-microsoft world world */
|
||||
|
||||
# if defined(__VMS) && !defined(VMS)
|
||||
# define VMS 1
|
||||
# endif
|
||||
|
||||
# ifdef VMS
|
||||
/* some programs don't include stdlib, so exit() and others give implicit
|
||||
function warnings */
|
||||
# include <stdlib.h>
|
||||
# if defined(__DECC)
|
||||
# include <unistd.h>
|
||||
# else
|
||||
# include <unixlib.h>
|
||||
# endif
|
||||
# define OPENSSL_CONF "openssl.cnf"
|
||||
# define SSLEAY_CONF OPENSSL_CONF
|
||||
# define RFILE ".rnd"
|
||||
# define LIST_SEPARATOR_CHAR ','
|
||||
# define NUL_DEV "NLA0:"
|
||||
/* We need to do this, because DEC C converts exit code 0 to 1, but not 1
|
||||
to 0. We will convert 1 to 3! Also, add the inhibit message bit... */
|
||||
# ifndef MONOLITH
|
||||
# define EXIT(n) do { int __VMS_EXIT = n; \
|
||||
if (__VMS_EXIT == 1) __VMS_EXIT = 3; \
|
||||
__VMS_EXIT |= 0x10000000; \
|
||||
exit(n); return(n); } while(0)
|
||||
# else
|
||||
# define EXIT(n) do { int __VMS_EXIT = n; \
|
||||
if (__VMS_EXIT == 1) __VMS_EXIT = 3; \
|
||||
__VMS_EXIT |= 0x10000000; \
|
||||
return(n); } while(0)
|
||||
# endif
|
||||
# else
|
||||
# include <unistd.h>
|
||||
# endif
|
||||
|
||||
# define OPENSSL_CONF "openssl.cnf"
|
||||
# define SSLEAY_CONF OPENSSL_CONF
|
||||
# define RFILE ".rnd"
|
||||
# define LIST_SEPARATOR_CHAR ':'
|
||||
# define NUL_DEV "/dev/null"
|
||||
# ifndef MONOLITH
|
||||
# define EXIT(n) exit(n); return(n)
|
||||
# else
|
||||
# define EXIT(n) return(n)
|
||||
# endif
|
||||
# define NUL_DEV "/dev/null"
|
||||
# endif
|
||||
|
||||
# define SSLeay_getpid() getpid()
|
||||
|
||||
#endif
|
||||
|
||||
/* Definitions of GLOBAL and EXTERN, to define and declare certain global
|
||||
symbols that, with some compilers under VMS, have to be defined and
|
||||
declared explicitely with globaldef and globalref. On other OS:es,
|
||||
these macros are defined with something sensible. */
|
||||
#if defined(VMS) && !defined(__DECC)
|
||||
#define EXTERN globalref
|
||||
#define GLOBAL globaldef
|
||||
#else
|
||||
#define EXTERN extern
|
||||
#define GLOBAL
|
||||
#endif
|
||||
|
||||
/*************/
|
||||
|
||||
#ifdef USE_SOCKETS
|
||||
@ -236,16 +277,21 @@ extern HINSTANCE _hInstance;
|
||||
|
||||
# else
|
||||
|
||||
# ifndef VMS
|
||||
/* unix world */
|
||||
# include <netdb.h>
|
||||
# include <sys/types.h>
|
||||
# ifndef VMS
|
||||
# include <sys/param.h>
|
||||
# endif
|
||||
# include <sys/time.h> /* Needed under linux for FD_XXX */
|
||||
|
||||
# include <netdb.h>
|
||||
# if defined(VMS) && !defined(__DECC)
|
||||
# include <socket.h>
|
||||
# include <in.h>
|
||||
# else
|
||||
# include <sys/socket.h>
|
||||
# ifdef FILIO_H
|
||||
# include <sys/filio.h> /* Added for FIONBIO under unixware */
|
||||
# endif
|
||||
# include <sys/param.h>
|
||||
# include <sys/time.h> /* Needed under linux for FD_XXX */
|
||||
# include <netinet/in.h>
|
||||
# endif
|
||||
|
||||
@ -261,11 +307,21 @@ extern HINSTANCE _hInstance;
|
||||
# if defined(sun)
|
||||
# include <sys/filio.h>
|
||||
# else
|
||||
# ifndef VMS
|
||||
# include <sys/ioctl.h>
|
||||
# else
|
||||
/* ioctl is only in VMS > 7.0 and when socketshr is not used */
|
||||
# if !defined(TCPIP_TYPE_SOCKETSHR) && defined(__VMS_VER) && (__VMS_VER > 70000000)
|
||||
# include <sys/ioctl.h>
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# ifdef VMS
|
||||
# include <unixio.h>
|
||||
# if defined(TCPIP_TYPE_SOCKETSHR)
|
||||
# include <socketshr.h>
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# define SSLeay_Read(a,b,c) read((a),(b),(c))
|
||||
|
88
install.com
Normal file
88
install.com
Normal file
@ -0,0 +1,88 @@
|
||||
$! INSTALL.COM -- Installs the files in a given directory tree
|
||||
$!
|
||||
$! Author: Richard Levitte <richard@levitte.org>
|
||||
$! Time of creation: 22-MAY-1998 10:13
|
||||
$!
|
||||
$! P1 root of the directory tree
|
||||
$!
|
||||
$ IF P1 .EQS. ""
|
||||
$ THEN
|
||||
$ WRITE SYS$OUTPUT "First argument missing."
|
||||
$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
|
||||
$ EXIT
|
||||
$ ENDIF
|
||||
$
|
||||
$ ARCH = "AXP"
|
||||
$ IF F$GETSYI("CPU") .LT. 128 THEN ARCH = "VAX"
|
||||
$
|
||||
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
||||
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
||||
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
||||
- ".][000000" - "[000000." - "][" - "[" - "]"
|
||||
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
||||
$
|
||||
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
||||
$ DEFINE/NOLOG WRK_SSLVLIB WRK_SSLROOT:[VAX_LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLALIB WRK_SSLROOT:[ALPHA_LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLLIB WRK_SSLROOT:[LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
|
||||
$ DEFINE/NOLOG WRK_SSLVEXE WRK_SSLROOT:[VAX_EXE]
|
||||
$ DEFINE/NOLOG WRK_SSLAEXE WRK_SSLROOT:[ALPHA_EXE]
|
||||
$ DEFINE/NOLOG WRK_SSLCERTS WRK_SSLROOT:[CERTS]
|
||||
$ 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_SSLVEXE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLVEXE:
|
||||
$ IF F$PARSE("WRK_SSLAEXE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLAEXE:
|
||||
$ IF F$PARSE("WRK_SSLVLIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLVLIB:
|
||||
$ IF F$PARSE("WRK_SSLALIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLALIB:
|
||||
$ IF F$PARSE("WRK_SSLLIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLLIB:
|
||||
$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLINCLUDE:
|
||||
$ IF F$PARSE("WRK_SSLCERTS:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLCERTS:
|
||||
$ IF F$PARSE("WRK_SSLPRIVATE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLPRIVATE:
|
||||
$ IF F$PARSE("WRK_SSLROOT:[VMS]") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLROOT:[VMS]
|
||||
$
|
||||
$ SDIRS := CRYPTO,SSL,RSAREF,APPS,VMS!,TEST,TOOLS
|
||||
$ EXHEADER := e_os.h
|
||||
$
|
||||
$ COPY 'EXHEADER' WRK_SSLINCLUDE: /LOG
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_SDIRS:
|
||||
$ D = F$ELEMENT(I, ",", SDIRS)
|
||||
$ I = I + 1
|
||||
$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
|
||||
$ WRITE SYS$OUTPUT "Installing ",D," files."
|
||||
$ SET DEFAULT [.'D']
|
||||
$ @INSTALL 'ROOT']
|
||||
$ SET DEFAULT [-]
|
||||
$ GOTO LOOP_SDIRS
|
||||
$ LOOP_SDIRS_END:
|
||||
$
|
||||
$ DEASSIGN WRK_SSLROOT
|
||||
$ DEASSIGN WRK_SSLVLIB
|
||||
$ DEASSIGN WRK_SSLALIB
|
||||
$ DEASSIGN WRK_SSLLIB
|
||||
$ DEASSIGN WRK_SSLINCLUDE
|
||||
$ DEASSIGN WRK_SSLVEXE
|
||||
$ DEASSIGN WRK_SSLAEXE
|
||||
$ DEASSIGN WRK_SSLCERTS
|
||||
$ DEASSIGN WRK_SSLPRIVATE
|
||||
$
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " Installation done!"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " You might want to purge ",ROOT,"...]"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$
|
||||
$ EXIT
|
937
makevms.com
937
makevms.com
@ -1,65 +1,898 @@
|
||||
$!
|
||||
$! This procedure compiles the SSL sources into 2 libraries:
|
||||
$! [.CRYPTO]CRYPTO-xxx.OLB ! crypto-graphics subroutines
|
||||
$! [.SSL]SSL-xxx.OLB ! SSL protocol.
|
||||
$! MAKEVMS.COM
|
||||
$! Original Author: UNKNOWN
|
||||
$! Rewritten By: Robert Byer
|
||||
$! Vice-President
|
||||
$! A-Com Computing, Inc.
|
||||
$! byer@mail.all-net.net
|
||||
$!
|
||||
$! where 'xxx' specifies the machine achitecture: AXP or VAX
|
||||
$! Changes by Richard Levitte <richard@levitte.org>
|
||||
$!
|
||||
$! To perform 1 sub-option, specify P1 as one of:
|
||||
$! INCLUDE CRYPTO SSL SSL_TASK
|
||||
$! This procedure creates the SSL libraries of "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB"
|
||||
$! "[.xxx.EXE.SSL]LIBSSL.OLB" and if specified "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB".
|
||||
$! The "xxx" denotes the machine architecture of AXP or VAX.
|
||||
$!
|
||||
$! Requirements:
|
||||
$! DECC 4.0 (may work with other versions)
|
||||
$! OpenVMS 6.1 (may work with other versions)
|
||||
$! This procedures accepts two command line options listed below.
|
||||
$!
|
||||
$ original_default = f$environment("DEFAULT")
|
||||
$ proc = f$environment("PROCEDURE")
|
||||
$ proc_dir = f$parse("1.1;1",proc) - "1.1;1"
|
||||
$ set default 'proc_dir'
|
||||
$! Specify one of the following build options for P1.
|
||||
$!
|
||||
$! Copy all include files to [.include]
|
||||
$! ALL Just build "everything".
|
||||
$! DATE Just build the "[.INCLUDE.OPENSSL]DATE.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.
|
||||
$! 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.
|
||||
$!
|
||||
$ set noon
|
||||
$ if P1 .nes. "" then goto do_'p1'
|
||||
$ do_include
|
||||
$ write sys$output "Rebuilding [.include] directory..."
|
||||
$ delete [.include]*.h;*
|
||||
$ backup [.*...]*.h; includes.bck/save
|
||||
$ backup includes.bck/save [.include]
|
||||
$ delete includes.bck;
|
||||
$ if p1 .nes. "" then goto cleanup
|
||||
$!
|
||||
$! Build crypto lib.
|
||||
$! Specify RSAREF as P2 to compile using the RSAREF Library.
|
||||
$! If you specify NORSAREF, it will compile without using RSAREF.
|
||||
$! (If in the United States, You Must Compile Using RSAREF).
|
||||
$!
|
||||
$ do_crypto:
|
||||
$ write sys$Output "Making CRYPTO library"
|
||||
$ set default [.crypto]
|
||||
$ @libvms
|
||||
$ set default [-]
|
||||
$ if p1 .nes. "" then goto cleanup
|
||||
$! Note: The RSAREF libraries are NOT INCLUDED and you have to
|
||||
$! download it from "ftp://ftp.rsa.com/rsaref". You have to
|
||||
$! get the ".tar-Z" file as the ".zip" file dosen't have the
|
||||
$! directory structure stored. You have to extract the file
|
||||
$! into the [.RSAREF] directory as that is where the scripts
|
||||
$! will look for the files.
|
||||
$!
|
||||
$! Build SSL lib.
|
||||
$! Speficy DEBUG or NODEBUG as P3 to compile with or without debugging
|
||||
$! information.
|
||||
$!
|
||||
$ do_ssl:
|
||||
$ write sys$output "Making SSL library"
|
||||
$ set default [.ssl]
|
||||
$ libname = "ssl-axp.olb"
|
||||
$ if f$getsyi("CPU") .lt. 128 then libname = "ssl-vax.olb"
|
||||
$ if f$search(libname) .eqs. "" then library/create/log 'libname'
|
||||
$ cc ssl.c/include=[-.include]/prefix=all
|
||||
$ library/replace 'libname' ssl.obj
|
||||
$ set default [-]
|
||||
$ if p1 .nes. "" then goto cleanup
|
||||
$! Specify which compiler at P4 to try to compile under.
|
||||
$!
|
||||
$ do_ssl_task:
|
||||
$ write sys$output "Building SSL_TASK.EXE, the DECnet-based SSL engine"
|
||||
$ set default [.ssl]
|
||||
$ libname = "ssl-axp.olb"
|
||||
$ if f$getsyi("CPU") .lt. 128 then libname = "ssl-vax.olb"
|
||||
$ cc ssl_task/include=[-.include]/prefix=all
|
||||
$ cryptolib = "[-.crypto]crypto-" + f$element(1,"-",libname)
|
||||
$ link ssl_task,'libname'/library,'cryptolib'/library
|
||||
$! VAXC For VAX C.
|
||||
$! DECC For DEC C.
|
||||
$! GNUC For GNU C.
|
||||
$! LINK To only link the programs from existing object files.
|
||||
$!
|
||||
$ cleanup:
|
||||
$ set default 'original_default'
|
||||
$ write sys$output "Done"
|
||||
$! If you don't speficy a compiler, it will try to determine which
|
||||
$! "C" compiler to use.
|
||||
$!
|
||||
$! P5, if defined, sets a TCP/IP library to use, through one of the following
|
||||
$! keywords:
|
||||
$!
|
||||
$! UCX for UCX or UCX emulation
|
||||
$! SOCKETSHR for SOCKETSHR+NETLIB
|
||||
$!
|
||||
$! P6, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
|
||||
$!
|
||||
$!
|
||||
$! Check Which Architecture We Are Using.
|
||||
$!
|
||||
$ IF (F$GETSYI("CPU").GE.128)
|
||||
$ THEN
|
||||
$!
|
||||
$! The Architecture Is AXP.
|
||||
$!
|
||||
$ ARCH := AXP
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! The Architecture Is VAX.
|
||||
$!
|
||||
$ ARCH := VAX
|
||||
$!
|
||||
$! End The Architecture Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To Make Sure We Have Valid Command Line Parameters.
|
||||
$!
|
||||
$ GOSUB CHECK_OPTIONS
|
||||
$!
|
||||
$! Check To See What We Are To Do.
|
||||
$!
|
||||
$ IF (BUILDALL.EQS."TRUE")
|
||||
$ THEN
|
||||
$!
|
||||
$! Since Nothing Special Was Specified, Do Everything.
|
||||
$! First, Fix The Unix Softlinks.
|
||||
$!
|
||||
$ GOSUB SOFTLINKS
|
||||
$!
|
||||
$! Create The "DATE.H" Include File.
|
||||
$!
|
||||
$ GOSUB DATE
|
||||
$!
|
||||
$! Check To See If We Are Going To Be Building The
|
||||
$! [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
|
||||
$!
|
||||
$ IF (RSAREF.EQS."RSAREF")
|
||||
$ THEN
|
||||
$!
|
||||
$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
|
||||
$!
|
||||
$ GOSUB RSAREF
|
||||
$!
|
||||
$! End The RSAREF Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
|
||||
$!
|
||||
$ GOSUB CRYPTO
|
||||
$!
|
||||
$! 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
|
||||
$!
|
||||
$! Build The [.xxx.EXE.APPS] OpenSSL Application Utilities.
|
||||
$!
|
||||
$ GOSUB APPS
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Build Just What The User Wants Us To Build.
|
||||
$!
|
||||
$ GOSUB 'BUILDALL'
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! Rebuild The "[.INCLUDE.OPENSSL]DATE.H" file.
|
||||
$!
|
||||
$ DATE:
|
||||
$!
|
||||
$! Tell The User We Are Creating The [.CRYPTO]DATE.H File.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Creating [.CRYPTO]DATE.H Include File."
|
||||
$!
|
||||
$! Create The [.CRYPTO]DATE.H File.
|
||||
$!
|
||||
$ OPEN/WRITE H_FILE SYS$DISK:[.CRYPTO]DATE.H
|
||||
$!
|
||||
$! Get The Current Date & Time.
|
||||
$!
|
||||
$ TIME = F$TIME()
|
||||
$!
|
||||
$! Write The [.CRYPTO]DATE.H File.
|
||||
$!
|
||||
$ WRITE H_FILE "#define DATE ""''TIME'"" "
|
||||
$!
|
||||
$! Close The [.CRYPTO]DATE.H File.
|
||||
$!
|
||||
$ CLOSE H_FILE
|
||||
$!
|
||||
$! That's All, Time To RETURN.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Copy a lot of files around.
|
||||
$!
|
||||
$ SOFTLINKS:
|
||||
$!
|
||||
$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files."
|
||||
$!
|
||||
$ DELETE SYS$DISK:[.APPS]MD5.C;*,RMD160.C;*
|
||||
$!
|
||||
$! Copy MD5.C from [.CRYPTO.MD5] into [.APPS]
|
||||
$!
|
||||
$ COPY SYS$DISK:[.CRYPTO.MD5]MD5.C SYS$DISK:[.APPS]
|
||||
$!
|
||||
$! Copy RMD160.C from [.CRYPTO.RIPEMD] into [.APPS]
|
||||
$!
|
||||
$ COPY SYS$DISK:[.CRYPTO.RIPEMD]RMD160.C SYS$DISK:[.APPS]
|
||||
$!
|
||||
$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Rebuilding The '[.TEST]*.C' Files."
|
||||
$!
|
||||
$! First, We Have To "Rebuild" The "[.TEST]" Directory, So Delete
|
||||
$! All The "C" Files That Are Currently There Now.
|
||||
$!
|
||||
$ DELETE SYS$DISK:[.TEST]*.C;*
|
||||
$!
|
||||
$! Copy all the *TEST.C files from [.CRYPTO...] into [.TEST]
|
||||
$!
|
||||
$ COPY SYS$DISK:[.CRYPTO.*]%*TEST.C SYS$DISK:[.TEST]
|
||||
$!
|
||||
$! Copy all the *TEST.C files from [.SSL...] into [.TEST]
|
||||
$!
|
||||
$ COPY SYS$DISK:[.SSL]%*TEST.C SYS$DISK:[.TEST]
|
||||
$!
|
||||
$! Tell The User We Are Rebuilding The [.INCLUDE.OPENSSL] Directory.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Rebuilding The '[.INCLUDE.OPENSSL]' Directory."
|
||||
$!
|
||||
$! First, make sure the directory exists
|
||||
$!
|
||||
$ IF F$PARSE("SYS$DISK:[.INCLUDE.OPENSSL]") .EQS. "" THEN -
|
||||
CREATE/DIRECTORY SYS$DISK:[.INCLUDE.OPENSSL]
|
||||
$!
|
||||
$! Copy All The ".H" Files From The Main Directory.
|
||||
$!
|
||||
$ EXHEADER := e_os.h
|
||||
$ COPY 'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
|
||||
$!
|
||||
$! Copy All The ".H" Files From The [.CRYPTO] Directory Tree.
|
||||
$!
|
||||
$ SDIRS := ,MD2,MD5,SHA,MDC2,HMAC,RIPEMD,-
|
||||
DES,RC2,RC4,RC5,IDEA,BF,CAST,-
|
||||
BN,RSA,DSA,DH,-
|
||||
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_MD2 := md2.h
|
||||
$ EXHEADER_MD5 := md5.h
|
||||
$ EXHEADER_SHA := sha.h
|
||||
$ EXHEADER_MDC2 := mdc2.h
|
||||
$ EXHEADER_HMAC := hmac.h
|
||||
$ EXHEADER_RIPEMD := ripemd.h
|
||||
$ EXHEADER_DES := des.h
|
||||
$ EXHEADER_RC2 := rc2.h
|
||||
$ EXHEADER_RC4 := rc4.h
|
||||
$ EXHEADER_RC5 := rc5.h
|
||||
$ EXHEADER_IDEA := idea.h
|
||||
$ EXHEADER_BF := blowfish.h
|
||||
$ EXHEADER_CAST := cast.h
|
||||
$ EXHEADER_BN := bn.h
|
||||
$ EXHEADER_RSA := rsa.h
|
||||
$ EXHEADER_DSA := dsa.h
|
||||
$ EXHEADER_DH := dh.h
|
||||
$ EXHEADER_BUFFER := buffer.h
|
||||
$ EXHEADER_BIO := bio.h
|
||||
$ EXHEADER_STACK := stack.h,safestack.h
|
||||
$ EXHEADER_LHASH := lhash.h
|
||||
$ EXHEADER_RAND := rand.h
|
||||
$ EXHEADER_ERR := err.h
|
||||
$ EXHEADER_OBJECTS := objects.h
|
||||
$ EXHEADER_EVP := evp.h
|
||||
$ EXHEADER_ASN1 := asn1.h,asn1_mac.h
|
||||
$ EXHEADER_PEM := pem.h,pem2.h
|
||||
$ EXHEADER_X509 := x509.h,x509_vfy.h
|
||||
$ EXHEADER_X509V3 := x509v3.h
|
||||
$ EXHEADER_CONF := conf.h
|
||||
$ EXHEADER_TXT_DB := txt_db.h
|
||||
$ EXHEADER_PKCS7 := pkcs7.h
|
||||
$ EXHEADER_PKCS12 := pkcs12.h
|
||||
$ EXHEADER_COMP := comp.h
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_SDIRS:
|
||||
$ D = F$EDIT(F$ELEMENT(I, ",", SDIRS),"TRIM")
|
||||
$ I = I + 1
|
||||
$ IF D .EQS. "," THEN GOTO LOOP_SDIRS_END
|
||||
$ tmp = EXHEADER_'D'
|
||||
$ IF D .EQS. ""
|
||||
$ THEN
|
||||
$ COPY [.CRYPTO]'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG
|
||||
$ ELSE
|
||||
$ COPY [.CRYPTO.'D']'tmp' SYS$DISK:[.INCLUDE.OPENSSL] /LOG
|
||||
$ ENDIF
|
||||
$ GOTO LOOP_SDIRS
|
||||
$ LOOP_SDIRS_END:
|
||||
$!
|
||||
$! Copy All The ".H" Files From The [.RSAREF] Directory.
|
||||
$!
|
||||
$ EXHEADER := rsaref.h
|
||||
$ COPY SYS$DISK:[.RSAREF]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
|
||||
$!
|
||||
$! Copy All The ".H" Files From The [.SSL] Directory.
|
||||
$!
|
||||
$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h
|
||||
$ COPY SYS$DISK:[.SSL]'EXHEADER' SYS$DISK:[.INCLUDE.OPENSSL]
|
||||
$!
|
||||
$! Purge all doubles
|
||||
$!
|
||||
$ PURGE SYS$DISK:[.INCLUDE.OPENSSL]*.H
|
||||
$!
|
||||
$! That's All, Time To RETURN.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Build The "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library.
|
||||
$!
|
||||
$ CRYPTO:
|
||||
$!
|
||||
$! Tell The User What We Are Doing.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.CRYPTO]LIBCRYPTO.OLB Library."
|
||||
$!
|
||||
$! Go To The [.CRYPTO] Directory.
|
||||
$!
|
||||
$ SET DEFAULT SYS$DISK:[.CRYPTO]
|
||||
$!
|
||||
$! Build The [.xxx.EXE.CRYPTO]LIBCRYPTO.OLB Library.
|
||||
$!
|
||||
$ @CRYPTO-LIB 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
|
||||
$!
|
||||
$! Go Back To The Main Directory.
|
||||
$!
|
||||
$ SET DEFAULT [-]
|
||||
$!
|
||||
$! Time To RETURN.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE Library.
|
||||
$!
|
||||
$ RSAREF:
|
||||
$!
|
||||
$! Tell The User What We Are Doing.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.RSAREF]LIBRSAGLUE.OLB Library."
|
||||
$!
|
||||
$! Go To The [.RSAREF] Directory.
|
||||
$!
|
||||
$ SET DEFAULT SYS$DISK:[.RSAREF]
|
||||
$!
|
||||
$! Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
|
||||
$!
|
||||
$ @RSAREF-LIB LIBRARY 'DEBUGGER' "''COMPILER'" 'ISSEVEN'
|
||||
$!
|
||||
$! Go Back To The Main Directory.
|
||||
$!
|
||||
$ SET DEFAULT [-]
|
||||
$!
|
||||
$! Time To Return.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Build The "[.xxx.EXE.SSL]LIBSSL.OLB" Library.
|
||||
$!
|
||||
$ SSL:
|
||||
$!
|
||||
$! Tell The User What We Are Doing.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "Building The [.",ARCH,".EXE.SSL]LIBSSL.OLB Library."
|
||||
$!
|
||||
$! Go To The [.SSL] Directory.
|
||||
$!
|
||||
$ SET DEFAULT SYS$DISK:[.SSL]
|
||||
$!
|
||||
$! Build The [.xxx.EXE.SSL]LIBSSL.OLB Library.
|
||||
$!
|
||||
$ @SSL-LIB LIBRARY 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
|
||||
$!
|
||||
$! Go Back To The Main Directory.
|
||||
$!
|
||||
$ SET DEFAULT [-]
|
||||
$!
|
||||
$! 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, [.",ARCH,".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 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
|
||||
$!
|
||||
$! Go Back To The Main Directory.
|
||||
$!
|
||||
$ SET DEFAULT [-]
|
||||
$!
|
||||
$! That's All, Time To RETURN.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Build The OpenSSL Test Programs.
|
||||
$!
|
||||
$ TEST:
|
||||
$!
|
||||
$! Tell The User What We Are Doing.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "Building The OpenSSL [.",ARCH,".EXE.TEST] Test Utilities."
|
||||
$!
|
||||
$! Go To The [.TEST] Directory.
|
||||
$!
|
||||
$ SET DEFAULT SYS$DISK:[.TEST]
|
||||
$!
|
||||
$! Build The Test Programs.
|
||||
$!
|
||||
$ @MAKETESTS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
|
||||
$!
|
||||
$! Go Back To The Main Directory.
|
||||
$!
|
||||
$ SET DEFAULT [-]
|
||||
$!
|
||||
$! That's All, Time To RETURN.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Build The OpenSSL Application Programs.
|
||||
$!
|
||||
$ APPS:
|
||||
$!
|
||||
$! Tell The User What We Are Doing.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "Building OpenSSL [.",ARCH,".EXE.APPS] Applications."
|
||||
$!
|
||||
$! Go To The [.APPS] Directory.
|
||||
$!
|
||||
$ SET DEFAULT SYS$DISK:[.APPS]
|
||||
$!
|
||||
$! Build The Application Programs.
|
||||
$!
|
||||
$ @MAKEAPPS 'RSAREF' 'DEBUGGER' "''COMPILER'" "''TCPIP_TYPE'" 'ISSEVEN'
|
||||
$!
|
||||
$! Go Back To The Main Directory.
|
||||
$!
|
||||
$ SET DEFAULT [-]
|
||||
$!
|
||||
$! That's All, Time To RETURN.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Check The User's Options.
|
||||
$!
|
||||
$ CHECK_OPTIONS:
|
||||
$!
|
||||
$! Check To See If P1 Is Blank.
|
||||
$!
|
||||
$ IF (P1.EQS."ALL")
|
||||
$ THEN
|
||||
$!
|
||||
$! P1 Is ALL, So Build Everything.
|
||||
$!
|
||||
$ BUILDALL = "TRUE"
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Else, Check To See If P1 Has A Valid Arguement.
|
||||
$!
|
||||
$ IF (P1.EQS."DATE").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
|
||||
$!
|
||||
$! A Valid Arguement.
|
||||
$!
|
||||
$ BUILDALL = P1
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Tell The User We Don't Know What They Want.
|
||||
$!
|
||||
$ 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 " 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."
|
||||
$ 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 ""
|
||||
$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " AXP : Alpha Architecture."
|
||||
$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The Valid Argument Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P1 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If P2 Is Blank.
|
||||
$!
|
||||
$ IF (P2.EQS."NORSAREF")
|
||||
$ THEN
|
||||
$!
|
||||
$! P2 Is NORSAREF, So Compile Without RSAREF.
|
||||
$!
|
||||
$ RSAREF = "NORSAREF"
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Check To See If We Are To Compile Using The RSAREF Library.
|
||||
$!
|
||||
$ IF (P2.EQS."RSAREF")
|
||||
$ THEN
|
||||
$!
|
||||
$! Compile With RSAREF Library.
|
||||
$!
|
||||
$ RSAREF = "RSAREF"
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Tell The User Entered An Invalid Option..
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " RSAREF : To Compile With The RSAREF Library."
|
||||
$ WRITE SYS$OUTPUT " NORSAREF : To Compile With The Regular RSA Library."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The Valid Arguemnt Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P2 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If P3 Is Blank.
|
||||
$!
|
||||
$ IF (P3.EQS."NODEBUG")
|
||||
$ THEN
|
||||
$!
|
||||
$! P3 Is NODEBUG, So Compile Without Debugger Information.
|
||||
$!
|
||||
$ DEBUGGER = "NODEBUG"
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Check To See If We Are To Compile With Debugger Information.
|
||||
$!
|
||||
$ IF (P3.EQS."DEBUG")
|
||||
$ THEN
|
||||
$!
|
||||
$! Compile With Debugger Information.
|
||||
$!
|
||||
$ DEBUGGER = "DEBUG"
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Tell The User Entered An Invalid Option..
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
|
||||
$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The Valid Arguement Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P3 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If P4 Is Blank.
|
||||
$!
|
||||
$ IF (P4.EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! O.K., The User Didn't Specify A Compiler, Let's Try To
|
||||
$! Find Out Which One To Use.
|
||||
$!
|
||||
$! Check To See If We Have GNU C.
|
||||
$!
|
||||
$ IF (F$TRNLNM("GNU_CC").NES."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like GNUC, Set To Use GNUC.
|
||||
$!
|
||||
$ COMPILER = "GNUC"
|
||||
$!
|
||||
$! Tell The User We Are Using GNUC.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
|
||||
$!
|
||||
$! End The GNU C Compiler Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If We Have VAXC Or DECC.
|
||||
$!
|
||||
$ IF (F$GETSYI("CPU").GE.128).OR.(F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like DECC, Set To Use DECC.
|
||||
$!
|
||||
$ COMPILER = "DECC"
|
||||
$!
|
||||
$! Tell The User We Are Using DECC.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Looks Like VAXC, Set To Use VAXC.
|
||||
$!
|
||||
$ COMPILER = "VAXC"
|
||||
$!
|
||||
$! Tell The User We Are Using VAX C.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
|
||||
$!
|
||||
$! End The DECC & VAXC Compiler Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Check To See If The User Entered A Valid Paramter.
|
||||
$!
|
||||
$ IF (P4.EQS."VAXC").OR.(P4.EQS."DECC").OR.(P4.EQS."GNUC").OR.(P4.EQS."LINK")
|
||||
$ THEN
|
||||
$!
|
||||
$! Check To See If The User Wanted To Just LINK.
|
||||
$!
|
||||
$ IF (P4.EQS."LINK")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like LINK-only
|
||||
$!
|
||||
$ COMPILER = "LINK"
|
||||
$!
|
||||
$! Tell The User We Are Only Linking.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "LINK Only. This actually NOT YET SUPPORTED!"
|
||||
$!
|
||||
$! End LINK Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If The User Wanted DECC.
|
||||
$!
|
||||
$ IF (P4.EQS."DECC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like DECC, Set To Use DECC.
|
||||
$!
|
||||
$ COMPILER = "DECC"
|
||||
$!
|
||||
$! Tell The User We Are Using DECC.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
|
||||
$!
|
||||
$! End DECC Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If We Are To Use VAXC.
|
||||
$!
|
||||
$ IF (P4.EQS."VAXC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like VAXC, Set To Use VAXC.
|
||||
$!
|
||||
$ COMPILER = "VAXC"
|
||||
$!
|
||||
$! Tell The User We Are Using VAX C.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
|
||||
$!
|
||||
$! End VAXC Check
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If We Are To Use GNU C.
|
||||
$!
|
||||
$ IF (P4.EQS."GNUC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like GNUC, Set To Use GNUC.
|
||||
$!
|
||||
$ COMPILER = "GNUC"
|
||||
$!
|
||||
$! Tell The User We Are Using GNUC.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
|
||||
$!
|
||||
$! End The GNU C Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Else The User Entered An Invalid Arguement.
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Tell The User We Don't Know What They Want.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The Option ",P4," Is Invalid. The Valid Options Are:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
|
||||
$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
|
||||
$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The Valid Arguement Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P4 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Time to check the contents of P5, and to make sure we get the correct library.
|
||||
$!
|
||||
$ IF P5.EQS."SOCKETSHR" .OR. P5.EQS."MULTINET" .OR. P5.EQS."UCX"
|
||||
$ THEN
|
||||
$!
|
||||
$! Check to see if SOCKETSHR was chosen
|
||||
$!
|
||||
$ IF P5.EQS."SOCKETSHR"
|
||||
$ THEN
|
||||
$!
|
||||
$! Set the library to use SOCKETSHR
|
||||
$!
|
||||
$ TCPIP_LIB = "[-.VMS]SOCKETSHR_SHR.OPT/OPT"
|
||||
$!
|
||||
$! Tell the user
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using SOCKETSHR for TCP/IP"
|
||||
$!
|
||||
$! Done with SOCKETSHR
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check to see if MULTINET was chosen
|
||||
$!
|
||||
$ IF P5.EQS."MULTINET"
|
||||
$ THEN
|
||||
$!
|
||||
$! Set the library to use UCX emulation.
|
||||
$!
|
||||
$ P5 = "UCX"
|
||||
$!
|
||||
$! Tell the user
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using MultiNet via UCX emulation for TCP/IP"
|
||||
$!
|
||||
$! Done with MULTINET
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check to see if UCX was chosen
|
||||
$!
|
||||
$ IF P5.EQS."UCX"
|
||||
$ THEN
|
||||
$!
|
||||
$! Set the library to use UCX.
|
||||
$!
|
||||
$ TCPIP_LIB = "[-.VMS]UCX_SHR_DECC.OPT/OPT"
|
||||
$!
|
||||
$! Tell the user
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using UCX or an emulation thereof for TCP/IP"
|
||||
$!
|
||||
$! Done with UCX
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Set the TCPIP_TYPE symbol
|
||||
$!
|
||||
$ TCPIP_TYPE = P5
|
||||
$!
|
||||
$! Print info
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB
|
||||
$!
|
||||
$! Else The User Entered An Invalid Arguement.
|
||||
$!
|
||||
$ ELSE
|
||||
$ IF P5 .NES. ""
|
||||
$ THEN
|
||||
$!
|
||||
$! Tell The User We Don't Know What They Want.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The Option ",P5," Is Invalid. The Valid Options Are:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " SOCKETSHR : To link with SOCKETSHR TCP/IP library."
|
||||
$ WRITE SYS$OUTPUT " UCX : To link with UCX TCP/IP library."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$ ELSE
|
||||
$!
|
||||
$! Set the TCPIP_TYPE symbol
|
||||
$!
|
||||
$ TCPIP_TYPE = P5
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Done with TCP/IP libraries
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Special Threads For OpenVMS v7.1 Or Later
|
||||
$!
|
||||
$! Written By: Richard Levitte
|
||||
$! richard@levitte.org
|
||||
$!
|
||||
$!
|
||||
$! Check To See If We Have A Option For P6.
|
||||
$!
|
||||
$ IF (P6.EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Get The Version Of VMS We Are Using.
|
||||
$!
|
||||
$ ISSEVEN :=
|
||||
$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
|
||||
$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
|
||||
$!
|
||||
$! Check To See If The VMS Version Is v7.1 Or Later.
|
||||
$!
|
||||
$ IF (TMP.GE.71)
|
||||
$ THEN
|
||||
$!
|
||||
$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
|
||||
$!
|
||||
$ ISSEVEN := ,PTHREAD_USE_D4
|
||||
$!
|
||||
$! End The VMS Version Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P6 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Time To RETURN...
|
||||
$!
|
||||
$ RETURN
|
||||
|
@ -17,7 +17,7 @@ AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile
|
||||
GENERAL=Makefile rsaref-lib.com install.com
|
||||
TEST=
|
||||
APPS=
|
||||
|
||||
|
69
rsaref/install.com
Normal file
69
rsaref/install.com
Normal file
@ -0,0 +1,69 @@
|
||||
$! INSTALL.COM -- Installs the files in a given directory tree
|
||||
$!
|
||||
$! Author: Richard Levitte <richard@levitte.org>
|
||||
$! Time of creation: 22-MAY-1998 10:13
|
||||
$!
|
||||
$! P1 root of the directory tree
|
||||
$!
|
||||
$ IF P1 .EQS. ""
|
||||
$ THEN
|
||||
$ WRITE SYS$OUTPUT "First argument missing."
|
||||
$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
|
||||
$ EXIT
|
||||
$ ENDIF
|
||||
$
|
||||
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
||||
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
||||
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
||||
- "[000000." - "][" - "[" - "]"
|
||||
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
||||
$
|
||||
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
||||
$ DEFINE/NOLOG WRK_SSLVLIB WRK_SSLROOT:[VAX_LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLALIB WRK_SSLROOT:[ALPHA_LIB]
|
||||
$
|
||||
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
||||
$ IF F$PARSE("WRK_SSLVLIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLVLIB:
|
||||
$ IF F$PARSE("WRK_SSLALIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLALIB:
|
||||
$
|
||||
$ LIBS := LIBRSAGLUE
|
||||
$
|
||||
$ VEXE_DIR := [-.VAX.EXE.CRYPTO]
|
||||
$ AEXE_DIR := [-.AXP.EXE.CRYPTO]
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_LIB:
|
||||
$ E = F$EDIT(F$ELEMENT(I, ",", LIBS),"TRIM")
|
||||
$ I = I + 1
|
||||
$ IF E .EQS. "," THEN GOTO LOOP_LIB_END
|
||||
$ SET NOON
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".OLB") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.OLB WRK_SSLVLIB:'E'.OLB/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVLIB:'E'.OLB
|
||||
$ ENDIF
|
||||
$ ! Preparing for the time when we have shareable images
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.EXE WRK_SSLVLIB:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVLIB:'E'.EXE
|
||||
$ ENDIF
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".OLB") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.OLB WRK_SSLALIB:'E'.OLB/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLALIB:'E'.OLB
|
||||
$ ENDIF
|
||||
$ ! Preparing for the time when we have shareable images
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.EXE WRK_SSLALIB:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLALIB:'E'.EXE
|
||||
$ ENDIF
|
||||
$ SET ON
|
||||
$ GOTO LOOP_LIB
|
||||
$ LOOP_LIB_END:
|
||||
$
|
||||
$ EXIT
|
901
rsaref/rsaref-lib.com
Normal file
901
rsaref/rsaref-lib.com
Normal file
@ -0,0 +1,901 @@
|
||||
$!
|
||||
$! RSAREF-LIB.COM
|
||||
$! Written By: Robert Byer
|
||||
$! Vice-President
|
||||
$! A-Com Computing, Inc.
|
||||
$! byer@mail.all-net.net
|
||||
$!
|
||||
$! Changes by Richard Levitte <richard@levitte.org>
|
||||
$!
|
||||
$! This command files compiles and creates the "[.xxx.EXE.RSAREF]LIBRSAGLUE.OLB"
|
||||
$! library. The "xxx" denotes the machine architecture of AXP or VAX.
|
||||
$!
|
||||
$! Specify one of the following to build just that part or "ALL" to
|
||||
$! just build everything.
|
||||
$!
|
||||
$! ALL To Just Build "Everything".
|
||||
$! LIBRARY To Just Build The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
|
||||
$! DHDEMO To Just Build The [.xxx.EXE.RSAREF]DHDEMO.EXE Program.
|
||||
$! RDEMO To Just Build The [.xxx.EXE.RSAREF]RDEMO.EXE Program.
|
||||
$!
|
||||
$! Specify DEBUG or NODEBUG as P2 to compile with or without debugging
|
||||
$! information.
|
||||
$!
|
||||
$! Specify which compiler at P3 to try to compile under.
|
||||
$!
|
||||
$! VAXC For VAX C.
|
||||
$! DECC For DEC C.
|
||||
$! GNUC For GNU C.
|
||||
$!
|
||||
$! If you don't speficy a compiler, it will prompt you for one.
|
||||
$!
|
||||
$! P4, if defined, sets a compiler thread NOT needed on OpenVMS 7.1 (and up)
|
||||
$!
|
||||
$!
|
||||
$! Check Which Architecture We Are Using.
|
||||
$!
|
||||
$ IF (F$GETSYI("CPU").GE.128)
|
||||
$ THEN
|
||||
$!
|
||||
$! The Architecture Is AXP
|
||||
$!
|
||||
$ ARCH := AXP
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! The Architecture Is VAX.
|
||||
$!
|
||||
$ ARCH := VAX
|
||||
$!
|
||||
$! End The Architecture Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To Make Sure We Have Valid Command Line Parameters.
|
||||
$!
|
||||
$ GOSUB CHECK_OPTIONS
|
||||
$!
|
||||
$! Initialise logical names and such
|
||||
$!
|
||||
$ GOSUB INITIALISE
|
||||
$!
|
||||
$! Tell The User What Kind of Machine We Run On.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine."
|
||||
$!
|
||||
$! Define The OBJ Directory Name.
|
||||
$!
|
||||
$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.RSAREF]
|
||||
$!
|
||||
$! Check To See If The Architecture Specific OBJ Directory Exists.
|
||||
$!
|
||||
$ IF (F$PARSE(OBJ_DIR).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! It Dosen't Exist, So Create It.
|
||||
$!
|
||||
$ CREATE/DIR 'OBJ_DIR'
|
||||
$!
|
||||
$! End The Architecture Specific OBJ Directory Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Define The EXE Directory Name.
|
||||
$!
|
||||
$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.RSAREF]
|
||||
$!
|
||||
$! Check To See If The Architecture Specific EXE Directory Exists.
|
||||
$!
|
||||
$ IF (F$PARSE(EXE_DIR).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! It Dosen't Exist, So Create It.
|
||||
$!
|
||||
$ CREATE/DIR 'EXE_DIR'
|
||||
$!
|
||||
$! End The Architecture Specific EXE Directory Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Define The Library Name.
|
||||
$!
|
||||
$ LIB_NAME := 'EXE_DIR'LIBRSAGLUE.OLB
|
||||
$!
|
||||
$! Check To See What We Are To Do.
|
||||
$!
|
||||
$ IF (BUILDALL.EQS."TRUE")
|
||||
$ THEN
|
||||
$!
|
||||
$! Since Nothing Special Was Specified, Do Everything.
|
||||
$!
|
||||
$ GOSUB LIBRARY
|
||||
$ GOSUB DHDEMO
|
||||
$ GOSUB RDEMO
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Build Just What The User Wants Us To Build.
|
||||
$!
|
||||
$ GOSUB 'BUILDALL'
|
||||
$!
|
||||
$! End The BUILDALL Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT:
|
||||
$ GOSUB CLEANUP
|
||||
$ EXIT
|
||||
$!
|
||||
$ LIBRARY:
|
||||
$!
|
||||
$! Tell The User That We Are Compiling.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Compiling The ",LIB_NAME," Files."
|
||||
$!
|
||||
$! Check To See If We Already Have A "LIBRSAGLUE.OLB" Library...
|
||||
$!
|
||||
$ IF (F$SEARCH(LIB_NAME).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Guess Not, Create The Library.
|
||||
$!
|
||||
$ LIBRARY/CREATE/OBJECT 'LIB_NAME'
|
||||
$!
|
||||
$! End The Library Exist Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Define The RSAREF Library Files.
|
||||
$!
|
||||
$ LIB_RSAREF = "DESC,DIGIT,MD2C,MD5C,NN,PRIME,RSA,R_DH,R_ENCODE,R_ENHANC," + -
|
||||
"R_KEYGEN,R_RANDOM,R_STDLIB"
|
||||
$!
|
||||
$! Define A File Counter And Set It To "0".
|
||||
$!
|
||||
$ FILE_COUNTER = 0
|
||||
$!
|
||||
$! Top Of The File Loop.
|
||||
$!
|
||||
$ NEXT_FILE:
|
||||
$!
|
||||
$! O.K, Extract The File Name From The File List.
|
||||
$!
|
||||
$ FILE_NAME = F$ELEMENT(FILE_COUNTER,",",LIB_RSAREF)
|
||||
$!
|
||||
$! Check To See If We Are At The End Of The File List.
|
||||
$!
|
||||
$ IF (FILE_NAME.EQS.",") THEN GOTO FILE_DONE
|
||||
$!
|
||||
$! Increment The Counter.
|
||||
$!
|
||||
$ FILE_COUNTER = FILE_COUNTER + 1
|
||||
$!
|
||||
$! Create The Source File Name.
|
||||
$!
|
||||
$ SOURCE_FILE = "SYS$DISK:[.SOURCE]" + FILE_NAME + ".C"
|
||||
$!
|
||||
$! Tell The User We Are Compiling The Source File.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT " ",FILE_NAME,".C"
|
||||
$!
|
||||
$! Create The Object File Name.
|
||||
$!
|
||||
$ OBJECT_FILE = OBJ_DIR + FILE_NAME + ".OBJ"
|
||||
$ ON WARNING THEN GOTO NEXT_FILE
|
||||
$!
|
||||
$! Check To See If The File We Want To Compile Actually Exists.
|
||||
$!
|
||||
$ IF (F$SEARCH(SOURCE_FILE).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Tell The User That The File Dosen't Exist.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The File ",SOURCE_FILE," Dosen't Exist."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Exit The Build.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The File Exist Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Compile The File.
|
||||
$!
|
||||
$ ON ERROR THEN GOTO NEXT_FILE
|
||||
$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
|
||||
$!
|
||||
$! Add It To The Library.
|
||||
$!
|
||||
$ LIBRARY/REPLACE/OBJECT 'LIB_NAME' 'OBJECT_FILE'
|
||||
$!
|
||||
$! Time To Clean Up The Object File.
|
||||
$!
|
||||
$ DELETE 'OBJECT_FILE';*
|
||||
$!
|
||||
$! Go Back And Do It Again.
|
||||
$!
|
||||
$ GOTO NEXT_FILE
|
||||
$!
|
||||
$! All Done With This Library Part.
|
||||
$!
|
||||
$ FILE_DONE:
|
||||
$!
|
||||
$! Tell The User That We Are All Done.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Library ",LIB_NAME," Built."
|
||||
$!
|
||||
$! All Done, Time To Return.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Compile The [.xxx.EXE.RSAREF]DHDEMO Program.
|
||||
$!
|
||||
$ DHDEMO:
|
||||
$!
|
||||
$! Check To See If We Have The Proper Libraries.
|
||||
$!
|
||||
$ GOSUB LIB_CHECK
|
||||
$!
|
||||
$! Check To See If We Have A Linker Option File.
|
||||
$!
|
||||
$ GOSUB CHECK_OPT_FILE
|
||||
$!
|
||||
$! Check To See If The File We Want To Compile Actually Exists.
|
||||
$!
|
||||
$ IF (F$SEARCH("SYS$DISK:[.RDEMO]DHDEMO.C").EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Tell The User That The File Dosen't Exist.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The File [.RDEMO]DHDEMO.C Dosen't Exist."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Exit The Build.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The [.RDEMO]DHDEMO.C File Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Tell The User What We Are Building.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Building ",EXE_DIR,"DHDEMO.EXE"
|
||||
$!
|
||||
$! Compile The DHDEMO Program.
|
||||
$!
|
||||
$ CC/OBJECT='OBJ_DIR'DHDEMO.OBJ SYS$DISK:[.RDEMO]DHDEMO.C
|
||||
$!
|
||||
$! Link The DHDEMO Program.
|
||||
$!
|
||||
$ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS -
|
||||
/EXE='EXE_DIR'DHDEMO.EXE 'OBJ_DIR'DHDEMO.OBJ, -
|
||||
'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION
|
||||
$!
|
||||
$! All Done, Time To Return.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Compile The RDEMO Program.
|
||||
$!
|
||||
$ RDEMO:
|
||||
$!
|
||||
$! Check To See If We Have The Proper Libraries.
|
||||
$!
|
||||
$ GOSUB LIB_CHECK
|
||||
$!
|
||||
$! Check To See If We Have A Linker Option File.
|
||||
$!
|
||||
$ GOSUB CHECK_OPT_FILE
|
||||
$!
|
||||
$! Check To See If The File We Want To Compile Actually Exists.
|
||||
$!
|
||||
$ IF (F$SEARCH("SYS$DISK:[.RDEMO]RDEMO.C").EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Tell The User That The File Dosen't Exist.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The File [.RDEMO]RDEMO.C Dosen't Exist."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Exit The Build.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The [.RDEMO]RDEMO.C File Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Tell The User What We Are Building.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Building ",EXE_DIR,"RDEMO.EXE"
|
||||
$!
|
||||
$! Compile The RDEMO Program.
|
||||
$!
|
||||
$ CC/OBJECT='OBJ_DIR'RDEMO.OBJ SYS$DISK:[.RDEMO]RDEMO.C
|
||||
$!
|
||||
$! Link The RDEMO Program.
|
||||
$!
|
||||
$ LINK/'DEBUGGER'/'TRACEBACK'/CONTIGUOUS -
|
||||
/EXE='EXE_DIR'RDEMO.EXE 'OBJ_DIR'RDEMO.OBJ, -
|
||||
'LIB_NAME'/LIBRARY,'OPT_FILE'/OPTION
|
||||
$!
|
||||
$! All Done, Time To Return.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Check For The Link Option FIle.
|
||||
$!
|
||||
$ CHECK_OPT_FILE:
|
||||
$!
|
||||
$! Check To See If We Need To Make A VAX C Option File.
|
||||
$!
|
||||
$ IF (COMPILER.EQS."VAXC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Check To See If We Already Have A VAX C Linker Option File.
|
||||
$!
|
||||
$ IF (F$SEARCH(OPT_FILE).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! We Need A VAX C Linker Option File.
|
||||
$!
|
||||
$ CREATE 'OPT_FILE'
|
||||
$DECK
|
||||
!
|
||||
! Default System Options File To Link Agianst
|
||||
! The Sharable VAX C Runtime Library.
|
||||
!
|
||||
SYS$SHARE:VAXCRTL.EXE/SHARE
|
||||
$EOD
|
||||
$!
|
||||
$! End The Option File Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The VAXC Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If We Need A GNU C Option File.
|
||||
$!
|
||||
$ IF (COMPILER.EQS."GNUC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Check To See If We Already Have A GNU C Linker Option File.
|
||||
$!
|
||||
$ IF (F$SEARCH(OPT_FILE).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! We Need A GNU C Linker Option File.
|
||||
$!
|
||||
$ CREATE 'OPT_FILE'
|
||||
$DECK
|
||||
!
|
||||
! Default System Options File To Link Agianst
|
||||
! The Sharable C Runtime Library.
|
||||
!
|
||||
GNU_CC:[000000]GCCLIB/LIBRARY
|
||||
SYS$SHARE:VAXCRTL/SHARE
|
||||
$EOD
|
||||
$!
|
||||
$! End The Option File Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The GNU C Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If We Need A DEC C Option File.
|
||||
$!
|
||||
$ IF (COMPILER.EQS."DECC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Check To See If We Already Have A DEC C Linker Option File.
|
||||
$!
|
||||
$ IF (F$SEARCH(OPT_FILE).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Figure Out If We Need An AXP Or A VAX Linker Option File.
|
||||
$!
|
||||
$ IF (ARCH.EQS."VAX")
|
||||
$ THEN
|
||||
$!
|
||||
$! We Need A DEC C Linker Option File For VAX.
|
||||
$!
|
||||
$ CREATE 'OPT_FILE'
|
||||
$DECK
|
||||
!
|
||||
! Default System Options File To Link Agianst
|
||||
! The Sharable DEC C Runtime Library.
|
||||
!
|
||||
SYS$SHARE:DECC$SHR.EXE/SHARE
|
||||
$EOD
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Create The AXP Linker Option File.
|
||||
$!
|
||||
$ CREATE 'OPT_FILE'
|
||||
$DECK
|
||||
!
|
||||
! Default System Options File For AXP To Link Agianst
|
||||
! The Sharable C Runtime Library.
|
||||
!
|
||||
SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
|
||||
SYS$SHARE:CMA$OPEN_RTL/SHARE
|
||||
$EOD
|
||||
$!
|
||||
$! End The VAX/AXP DEC C Option File Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The Option File Search.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The DEC C Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Tell The User What Linker Option File We Are Using.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
|
||||
$!
|
||||
$! Time To RETURN.
|
||||
$!
|
||||
$ RETURN
|
||||
$ LIB_CHECK:
|
||||
$!
|
||||
$! Look For The Library LIBRSAGLUE.OLB.
|
||||
$!
|
||||
$ IF (F$SEARCH(LIB_NAME).EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Tell The User We Can't Find The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "Can't Find The Library ",LIB_NAME,"."
|
||||
$ WRITE SYS$OUTPUT "We Can't Link Without It."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! And Ask If They Would Like To Build It.
|
||||
$!
|
||||
$ INQUIRE YESNO "Would You Like To Build The Library Now (Y/N)?"
|
||||
$!
|
||||
$! Check The Answer.
|
||||
$!
|
||||
$ IF (YESNO.EQS."Y").OR.(YESNO.EQS."y")
|
||||
$ THEN
|
||||
$!
|
||||
$! Then Build The Library.
|
||||
$!
|
||||
$ GOSUB LIBRARY
|
||||
$!
|
||||
$! When Done With That, RETURN To Finish What Ever We Were Doing
|
||||
$! That Needed The Library.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Since We Can't Link Without It, Exit.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The Answer Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The Library Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Time To Return.
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$! Check The User's Options.
|
||||
$!
|
||||
$ CHECK_OPTIONS:
|
||||
$!
|
||||
$! Check To See If P1 Is Blank.
|
||||
$!
|
||||
$ IF (P1.EQS."ALL")
|
||||
$ THEN
|
||||
$!
|
||||
$! P1 Is Blank, So Build Everything.
|
||||
$!
|
||||
$ BUILDALL = "TRUE"
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Else, Check To See If P1 Has A Valid Arguement.
|
||||
$!
|
||||
$ IF (P1.EQS."LIBRARY").OR.(P1.EQS."DHDEMO").OR.(P1.EQS."RDEMO")
|
||||
$ THEN
|
||||
$!
|
||||
$! A Valid Arguement.
|
||||
$!
|
||||
$ BUILDALL = P1
|
||||
$!
|
||||
$! Else....
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Tell The User We Don't Know What They Want.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The Option ",P1," Is Invalid. The Valid Options Are:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " ALL : To Just Build Everything."
|
||||
$ WRITE SYS$OUTPUT " LIBRARY : To Compile Just The [.xxx.EXE.RSAREF]LIBRSAGLUE.OLB Library."
|
||||
$ WRITE SYS$OUTPUT " DHDEMO : To Compile Just The [.xxx.EXE.RSAREF]DHDEMO Program."
|
||||
$ WRITE SYS$OUTPUT " RDEMO : To Compile Just The [.xxx.EXE.RSAREF]RDEMO Program.
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " AXP : Alpha Architecture."
|
||||
$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The Valid Arguement Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P1 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If P2 Is Blank.
|
||||
$!
|
||||
$ IF (P2.EQS."NODEBUG")
|
||||
$ THEN
|
||||
$!
|
||||
$! P2 Is "NODEBUG" So Compile Without Debugger Information.
|
||||
$!
|
||||
$ DEBUGGER = "NODEBUG"
|
||||
$ TRACEBACK = "NOTRACEBACK"
|
||||
$ GCC_OPTIMIZE = "OPTIMIZE"
|
||||
$ CC_OPTIMIZE = "OPTIMIZE"
|
||||
$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
|
||||
$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
|
||||
$ ELSE
|
||||
$!
|
||||
$! Check To See If We Are To Compile With Debugger Information.
|
||||
$!
|
||||
$ IF (P2.EQS."DEBUG")
|
||||
$ THEN
|
||||
$!
|
||||
$! Compile With Debugger Information.
|
||||
$!
|
||||
$ DEBUGGER = "DEBUG"
|
||||
$ TRACEBACK = "TRACEBACK"
|
||||
$ GCC_OPTIMIZE = "NOOPTIMIZE"
|
||||
$ CC_OPTIMIZE = "NOOPTIMIZE"
|
||||
$ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
|
||||
$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
|
||||
$ ELSE
|
||||
$!
|
||||
$! Tell The User Entered An Invalid Option..
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " DEBUG : Compile With The Debugger Information."
|
||||
$ WRITE SYS$OUTPUT " NODEBUG : Compile Without The Debugger Information."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The Valid Arguement Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P2 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Special Threads For OpenVMS v7.1 Or Later.
|
||||
$!
|
||||
$! Written By: Richard Levitte
|
||||
$! richard@levitte.org
|
||||
$!
|
||||
$!
|
||||
$! Check To See If We Have A Option For P4.
|
||||
$!
|
||||
$ IF (P4.EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Get The Version Of VMS We Are Using.
|
||||
$!
|
||||
$ ISSEVEN :=
|
||||
$ TMP = F$ELEMENT(0,"-",F$EXTRACT(1,4,F$GETSYI("VERSION")))
|
||||
$ TMP = F$INTEGER(F$ELEMENT(0,".",TMP)+F$ELEMENT(1,".",TMP))
|
||||
$!
|
||||
$! Check To See If The VMS Version Is v7.1 Or Later.
|
||||
$!
|
||||
$ IF (TMP.GE.71)
|
||||
$ THEN
|
||||
$!
|
||||
$! We Have OpenVMS v7.1 Or Later, So Use The Special Threads.
|
||||
$!
|
||||
$ ISSEVEN := ,PTHREAD_USE_D4
|
||||
$!
|
||||
$! End The VMS Version Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The P4 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If P3 Is Blank.
|
||||
$!
|
||||
$ IF (P3.EQS."")
|
||||
$ THEN
|
||||
$!
|
||||
$! O.K., The User Didn't Specify A Compiler, Let's Try To
|
||||
$! Find Out Which One To Use.
|
||||
$!
|
||||
$! Check To See If We Have GNU C.
|
||||
$!
|
||||
$ IF (F$TRNLNM("GNU_CC").NES."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like GNUC, Set To Use GNUC.
|
||||
$!
|
||||
$ COMPILER = "GNUC"
|
||||
$!
|
||||
$! End The GNU C Compiler Check.
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Check To See If We Have VAXC Or DECC.
|
||||
$!
|
||||
$ IF (ARCH.EQS."ALPHA").OR.(F$TRNLNM("DECC$CC_DEFAULT").NES."")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like DECC, Set To Use DECC.
|
||||
$!
|
||||
$ COMPILER = "DECC"
|
||||
$!
|
||||
$! Tell The User We Are Using DECC.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
|
||||
$!
|
||||
$! Else...
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Looks Like VAXC, Set To Use VAXC.
|
||||
$!
|
||||
$ COMPILER = "VAXC"
|
||||
$!
|
||||
$! End The VAXC Compiler Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The DECC & VAXC Compiler Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! End The Compiler Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Set Up Initial CC Definitions, Possibly With User Ones
|
||||
$!
|
||||
$ CCDEFS = "VMS=1"
|
||||
$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
|
||||
$ CCEXTRAFLAGS = ""
|
||||
$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
|
||||
$ CCDISABLEWARNINGS = ""
|
||||
$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
|
||||
CCDISABLEWARNINGS = USER_CCDISABLEWARNINGS
|
||||
$!
|
||||
$! Check To See If The User Entered A Valid Paramter.
|
||||
$!
|
||||
$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Check To See If The User Wanted DECC.
|
||||
$!
|
||||
$ IF (P3.EQS."DECC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like DECC, Set To Use DECC.
|
||||
$!
|
||||
$ COMPILER = "DECC"
|
||||
$!
|
||||
$! Tell The User We Are Using DECC.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using DECC 'C' Compiler."
|
||||
$!
|
||||
$! Use DECC...
|
||||
$!
|
||||
$ CC = "CC"
|
||||
$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
|
||||
THEN CC = "CC/DECC"
|
||||
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + -
|
||||
"/NOLIST/PREFIX=ALL" + -
|
||||
"/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[.SOURCE])" + CCEXTRAFLAGS
|
||||
$!
|
||||
$! Define The Linker Options File Name.
|
||||
$!
|
||||
$ OPT_FILE = "SYS$DISK:[]VAX_DECC_OPTIONS.OPT"
|
||||
$!
|
||||
$! End DECC Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If We Are To Use VAXC.
|
||||
$!
|
||||
$ IF (P3.EQS."VAXC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like VAXC, Set To Use VAXC.
|
||||
$!
|
||||
$ COMPILER = "VAXC"
|
||||
$!
|
||||
$! Tell The User We Are Using VAX C.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using VAXC 'C' Compiler."
|
||||
$!
|
||||
$! Compile Using VAXC.
|
||||
$!
|
||||
$ CC = "CC"
|
||||
$ IF ARCH.EQS."AXP"
|
||||
$ THEN
|
||||
$ WRITE SYS$OUTPUT "There is no VAX C on Alpha!"
|
||||
$ EXIT
|
||||
$ ENDIF
|
||||
$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
|
||||
$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
|
||||
"/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[.SOURCE])" + CCEXTRAFLAGS
|
||||
$ CCDEFS = CCDEFS + ",""VAXC"""
|
||||
$!
|
||||
$! Define <sys> As SYS$COMMON:[SYSLIB]
|
||||
$!
|
||||
$ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
|
||||
$!
|
||||
$! Define The Linker Options File Name.
|
||||
$!
|
||||
$ OPT_FILE = "SYS$DISK:[]VAX_VAXC_OPTIONS.OPT"
|
||||
$!
|
||||
$! End VAXC Check
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Check To See If We Are To Use GNU C.
|
||||
$!
|
||||
$ IF (P3.EQS."GNUC")
|
||||
$ THEN
|
||||
$!
|
||||
$! Looks Like GNUC, Set To Use GNUC.
|
||||
$!
|
||||
$ COMPILER = "GNUC"
|
||||
$!
|
||||
$! Tell The User We Are Using GNUC.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Using GNU 'C' Compiler."
|
||||
$!
|
||||
$! Use GNU C...
|
||||
$!
|
||||
$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
|
||||
"/INCLUDE=(SYS$DISK:[-.CRYPTO],SYS$DISK:[.SOURCE])" + CCEXTRAFLAGS
|
||||
$!
|
||||
$! Define The Linker Options File Name.
|
||||
$!
|
||||
$ OPT_FILE = "SYS$DISK:[]VAX_GNUC_OPTIONS.OPT"
|
||||
$!
|
||||
$! End The GNU C Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Set up default defines
|
||||
$!
|
||||
$ CCDEFS = """FLAT_INC=1""," + CCDEFS
|
||||
$ CCDEFS = CCDEFS + ",""RSAref=1"""
|
||||
$!
|
||||
$! Finish up the definition of CC.
|
||||
$!
|
||||
$ IF COMPILER .EQS. "DECC"
|
||||
$ THEN
|
||||
$ IF CCDISABLEWARNINGS .NES. ""
|
||||
$ THEN
|
||||
$ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
|
||||
$ ENDIF
|
||||
$ ELSE
|
||||
$ CCDISABLEWARNINGS = ""
|
||||
$ ENDIF
|
||||
$ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
|
||||
$!
|
||||
$! Show user the result
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT "Main Compiling Command: ",CC
|
||||
$!
|
||||
$! Else The User Entered An Invalid Arguement.
|
||||
$!
|
||||
$ ELSE
|
||||
$!
|
||||
$! Tell The User We Don't Know What They Want.
|
||||
$!
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT "The Option ",P3," Is Invalid. The Valid Options Are:"
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$ WRITE SYS$OUTPUT " VAXC : To Compile With VAX C."
|
||||
$ WRITE SYS$OUTPUT " DECC : To Compile With DEC C."
|
||||
$ WRITE SYS$OUTPUT " GNUC : To Compile With GNU C."
|
||||
$ WRITE SYS$OUTPUT ""
|
||||
$!
|
||||
$! Time To EXIT.
|
||||
$!
|
||||
$ EXIT
|
||||
$!
|
||||
$! End The P3 Check.
|
||||
$!
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Time To RETURN...
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$ INITIALISE:
|
||||
$!
|
||||
$! Save old value of the logical name OPENSSL
|
||||
$!
|
||||
$ __SAVE_OPENSSL = F$TRNLNM("OPENSSL","LNM$PROCESS_TABLE")
|
||||
$!
|
||||
$! Save directory information
|
||||
$!
|
||||
$ __HERE = F$PARSE(F$PARSE("A.;",F$ENVIRONMENT("PROCEDURE"))-"A.;","[]A.;") - "A.;"
|
||||
$ __TOP = __HERE - "RSAREF]"
|
||||
$ __INCLUDE = __TOP + "INCLUDE.OPENSSL]"
|
||||
$!
|
||||
$! Set up the logical name OPENSSL to point at the include directory
|
||||
$!
|
||||
$ DEFINE OPENSSL/NOLOG '__INCLUDE'
|
||||
$!
|
||||
$! Done
|
||||
$!
|
||||
$ RETURN
|
||||
$!
|
||||
$ CLEANUP:
|
||||
$!
|
||||
$! Restore the logical name OPENSSL if it had a value
|
||||
$!
|
||||
$ IF __SAVE_OPENSSL .EQS. ""
|
||||
$ THEN
|
||||
$ DEASSIGN OPENSSL
|
||||
$ ELSE
|
||||
$ DEFINE/NOLOG OPENSSL '__SAVE_OPENSSL'
|
||||
$ ENDIF
|
||||
$!
|
||||
$! Done
|
||||
$!
|
||||
$ RETURN
|
@ -17,7 +17,7 @@ AR= ar r
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile README
|
||||
GENERAL=Makefile README ssl-lib.com install.com
|
||||
TEST=ssltest.c
|
||||
APPS=
|
||||
|
||||
|
102
ssl/install.com
Normal file
102
ssl/install.com
Normal file
@ -0,0 +1,102 @@
|
||||
$! INSTALL.COM -- Installs the files in a given directory tree
|
||||
$!
|
||||
$! Author: Richard Levitte <richard@levitte.org>
|
||||
$! Time of creation: 22-MAY-1998 10:13
|
||||
$!
|
||||
$! P1 root of the directory tree
|
||||
$!
|
||||
$ IF P1 .EQS. ""
|
||||
$ THEN
|
||||
$ WRITE SYS$OUTPUT "First argument missing."
|
||||
$ WRITE SYS$OUTPUT "Should be the directory where you want things installed."
|
||||
$ EXIT
|
||||
$ ENDIF
|
||||
$
|
||||
$ ROOT = F$PARSE(P1,"[]A.;0",,,"SYNTAX_ONLY,NO_CONCEAL") - "A.;0"
|
||||
$ ROOT_DEV = F$PARSE(ROOT,,,"DEVICE","SYNTAX_ONLY")
|
||||
$ ROOT_DIR = F$PARSE(ROOT,,,"DIRECTORY","SYNTAX_ONLY") -
|
||||
- "[000000." - "][" - "[" - "]"
|
||||
$ ROOT = ROOT_DEV + "[" + ROOT_DIR
|
||||
$
|
||||
$ DEFINE/NOLOG WRK_SSLROOT 'ROOT'.] /TRANS=CONC
|
||||
$ DEFINE/NOLOG WRK_SSLVLIB WRK_SSLROOT:[VAX_LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLALIB WRK_SSLROOT:[ALPHA_LIB]
|
||||
$ DEFINE/NOLOG WRK_SSLINCLUDE WRK_SSLROOT:[INCLUDE]
|
||||
$ DEFINE/NOLOG WRK_SSLVEXE WRK_SSLROOT:[VAX_EXE]
|
||||
$ DEFINE/NOLOG WRK_SSLAEXE WRK_SSLROOT:[ALPHA_EXE]
|
||||
$
|
||||
$ IF F$PARSE("WRK_SSLROOT:[000000]") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLROOT:[000000]
|
||||
$ IF F$PARSE("WRK_SSLVLIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLVLIB:
|
||||
$ IF F$PARSE("WRK_SSLALIB:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLALIB:
|
||||
$ IF F$PARSE("WRK_SSLINCLUDE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLINCLUDE:
|
||||
$ IF F$PARSE("WRK_SSLVEXE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLVEXE:
|
||||
$ IF F$PARSE("WRK_SSLAEXE:") .EQS. "" THEN -
|
||||
CREATE/DIR/LOG WRK_SSLAEXE:
|
||||
$
|
||||
$ EXHEADER := ssl.h,ssl2.h,ssl3.h,ssl23.h,tls1.h
|
||||
$ E_EXE := ssl_task
|
||||
$ LIBS := LIBSSL
|
||||
$
|
||||
$ VEXE_DIR := [-.VAX.EXE.SSL]
|
||||
$ AEXE_DIR := [-.AXP.EXE.SSL]
|
||||
$
|
||||
$ COPY 'EXHEADER' WRK_SSLINCLUDE:/LOG
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_EXE:
|
||||
$ E = F$EDIT(F$ELEMENT(I, ",", E_EXE),"TRIM")
|
||||
$ I = I + 1
|
||||
$ IF E .EQS. "," THEN GOTO LOOP_EXE_END
|
||||
$ SET NOON
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.EXE WRK_SSLVEXE:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVEXE:'E'.EXE
|
||||
$ ENDIF
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.EXE WRK_SSLAEXE:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLAEXE:'E'.EXE
|
||||
$ ENDIF
|
||||
$ SET ON
|
||||
$ GOTO LOOP_EXE
|
||||
$ LOOP_EXE_END:
|
||||
$
|
||||
$ I = 0
|
||||
$ LOOP_LIB:
|
||||
$ E = F$EDIT(F$ELEMENT(I, ",", LIBS),"TRIM")
|
||||
$ I = I + 1
|
||||
$ IF E .EQS. "," THEN GOTO LOOP_LIB_END
|
||||
$ SET NOON
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".OLB") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.OLB WRK_SSLVLIB:'E'.OLB/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVLIB:'E'.OLB
|
||||
$ ENDIF
|
||||
$ ! Preparing for the time when we have shareable images
|
||||
$ IF F$SEARCH(VEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'VEXE_DIR''E'.EXE WRK_SSLVLIB:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLVLIB:'E'.EXE
|
||||
$ ENDIF
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".OLB") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.OLB WRK_SSLALIB:'E'.OLB/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLALIB:'E'.OLB
|
||||
$ ENDIF
|
||||
$ ! Preparing for the time when we have shareable images
|
||||
$ IF F$SEARCH(AEXE_DIR+E+".EXE") .NES. ""
|
||||
$ THEN
|
||||
$ COPY 'AEXE_DIR''E'.EXE WRK_SSLALIB:'E'.EXE/log
|
||||
$ SET FILE/PROT=W:RE WRK_SSLALIB:'E'.EXE
|
||||
$ ENDIF
|
||||
$ SET ON
|
||||
$ GOTO LOOP_LIB
|
||||
$ LOOP_LIB_END:
|
||||
$
|
||||
$ EXIT
|
@ -68,7 +68,7 @@ const char *ssl2_version_str="SSLv2" OPENSSL_VERSION_PTEXT;
|
||||
|
||||
#define SSL2_NUM_CIPHERS (sizeof(ssl2_ciphers)/sizeof(SSL_CIPHER))
|
||||
|
||||
SSL_CIPHER ssl2_ciphers[]={
|
||||
GLOBAL SSL_CIPHER ssl2_ciphers[]={
|
||||
/* NULL_WITH_MD5 v3 */
|
||||
#if 0
|
||||
{
|
||||
|
@ -67,7 +67,8 @@ const char *ssl3_version_str="SSLv3" OPENSSL_VERSION_PTEXT;
|
||||
#define SSL3_NUM_CIPHERS (sizeof(ssl3_ciphers)/sizeof(SSL_CIPHER))
|
||||
|
||||
static long ssl3_default_timeout(void );
|
||||
SSL_CIPHER ssl3_ciphers[]={
|
||||
|
||||
GLOBAL SSL_CIPHER ssl3_ciphers[]={
|
||||
/* The RSA ciphers */
|
||||
/* Cipher 01 */
|
||||
{
|
||||
|
1199
ssl/ssl-lib.com
Normal file
1199
ssl/ssl-lib.com
Normal file
File diff suppressed because it is too large
Load Diff
@ -61,7 +61,7 @@
|
||||
#include <string.h>
|
||||
|
||||
#define USE_SOCKETS
|
||||
#include "../e_os.h"
|
||||
#include <openssl/e_os.h>
|
||||
|
||||
#include <openssl/buffer.h>
|
||||
#include <openssl/stack.h>
|
||||
|
21
ssl/ssl.h
21
ssl/ssl.h
@ -698,10 +698,6 @@ struct ssl_st
|
||||
#define SSL_get_timeout(a) SSL_SESSION_get_timeout(a)
|
||||
#define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b))
|
||||
|
||||
/* VMS linker has a 31 char name limit */
|
||||
#define SSL_CTX_set_cert_verify_callback(a,b,c) \
|
||||
SSL_CTX_set_cert_verify_cb((a),(b),(c))
|
||||
|
||||
#if 1 /*SSLEAY_MACROS*/
|
||||
#define d2i_SSL_SESSION_bio(bp,s_id) (SSL_SESSION *)ASN1_d2i_bio( \
|
||||
(char *(*)())SSL_SESSION_new,(char *(*)())d2i_SSL_SESSION, \
|
||||
@ -818,6 +814,21 @@ struct ssl_st
|
||||
#define SSL_CTX_add_extra_chain_cert(ctx,x509) \
|
||||
SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)
|
||||
|
||||
/* VMS uses only 31 characters for symbols. */
|
||||
#ifdef VMS
|
||||
#undef SSL_CTX_set_cert_verify_callback
|
||||
#define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb
|
||||
#undef SSL_CTX_use_certificate_chain_file
|
||||
#define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file
|
||||
#undef SSL_CTX_set_default_verify_paths
|
||||
#define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths
|
||||
#undef SSL_get_ex_data_X509_STORE_CTX_idx
|
||||
#define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_data_X509_STOR_CTX_i
|
||||
#undef SSL_add_file_cert_subjects_to_stack
|
||||
#define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_sub_to_stack
|
||||
#undef SSL_add_dir_cert_subjects_to_stack
|
||||
#define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_sub_to_stack
|
||||
#endif
|
||||
|
||||
#ifdef HEADER_BIO_H
|
||||
BIO_METHOD *BIO_f_ssl(void);
|
||||
@ -933,7 +944,7 @@ int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *);
|
||||
void SSL_CTX_set_verify(SSL_CTX *ctx,int mode,
|
||||
int (*callback)(int, X509_STORE_CTX *));
|
||||
void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth);
|
||||
void SSL_CTX_set_cert_verify_cb(SSL_CTX *ctx, int (*cb)(),char *arg);
|
||||
void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(),char *arg);
|
||||
#ifndef NO_RSA
|
||||
int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);
|
||||
#endif
|
||||
|
@ -107,8 +107,10 @@
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#ifndef WIN32
|
||||
#ifndef VMS
|
||||
#include <dirent.h>
|
||||
#endif
|
||||
#endif
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/pem.h>
|
||||
@ -640,6 +642,7 @@ err:
|
||||
*/
|
||||
|
||||
#ifndef WIN32
|
||||
#ifndef VMS /* XXXX This may be fixed in the future */
|
||||
|
||||
int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
|
||||
const char *dir)
|
||||
@ -673,3 +676,4 @@ int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
@ -70,7 +70,7 @@ static STACK *ssl_ctx_meth=NULL;
|
||||
static int ssl_meth_num=0;
|
||||
static int ssl_ctx_meth_num=0;
|
||||
|
||||
SSL3_ENC_METHOD ssl3_undef_enc_method={
|
||||
GLOBAL SSL3_ENC_METHOD ssl3_undef_enc_method={
|
||||
ssl_undefined_function,
|
||||
ssl_undefined_function,
|
||||
ssl_undefined_function,
|
||||
|
@ -334,9 +334,14 @@ typedef struct ssl3_comp_st
|
||||
COMP_METHOD *method; /* The method :-) */
|
||||
} SSL3_COMP;
|
||||
|
||||
extern SSL3_ENC_METHOD ssl3_undef_enc_method;
|
||||
extern SSL_CIPHER ssl2_ciphers[];
|
||||
extern SSL_CIPHER ssl3_ciphers[];
|
||||
EXTERN SSL3_ENC_METHOD ssl3_undef_enc_method;
|
||||
EXTERN SSL_CIPHER ssl2_ciphers[];
|
||||
EXTERN SSL_CIPHER ssl3_ciphers[];
|
||||
|
||||
#ifdef VMS
|
||||
#undef SSL_COMP_get_compression_methods
|
||||
#define SSL_COMP_get_compression_methods SSL_COMP_get_compress_methods
|
||||
#endif
|
||||
|
||||
|
||||
SSL_METHOD *ssl_bad_method(int ver);
|
||||
|
@ -124,7 +124,7 @@ int LIB$INIT_TIMER(), LIB$SHOW_TIMER();
|
||||
#include <string.h> /* from ssltest.c */
|
||||
#include <errno.h>
|
||||
#include <openssl/buffer.h>
|
||||
#include "../e_os.h"
|
||||
#include <openssl/e_os.h>
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/ssl.h>
|
||||
#include <openssl/err.h>
|
||||
@ -224,8 +224,12 @@ int main ( int argc, char **argv )
|
||||
printf("cipher list: %s\n", cipher ? cipher : "{undefined}" );
|
||||
|
||||
SSL_load_error_strings();
|
||||
SSLeay_add_all_algorithms();
|
||||
|
||||
/* DRM, this was the original, but there is no such thing as SSLv2()
|
||||
s_ctx=SSL_CTX_new(SSLv2());
|
||||
*/
|
||||
s_ctx=SSL_CTX_new(SSLv2_server_method());
|
||||
|
||||
if (s_ctx == NULL) goto end;
|
||||
|
||||
@ -267,8 +271,12 @@ int doit(io_channel chan, SSL_CTX *s_ctx )
|
||||
c_to_s=BIO_new(BIO_s_rtcp());
|
||||
s_to_c=BIO_new(BIO_s_rtcp());
|
||||
if ((s_to_c == NULL) || (c_to_s == NULL)) goto err;
|
||||
/* original, DRM 24-SEP-1997
|
||||
BIO_set_fd ( c_to_s, "", chan );
|
||||
BIO_set_fd ( s_to_c, "", chan );
|
||||
*/
|
||||
BIO_set_fd ( c_to_s, 0, chan );
|
||||
BIO_set_fd ( s_to_c, 0, chan );
|
||||
|
||||
c_bio=BIO_new(BIO_f_ssl());
|
||||
s_bio=BIO_new(BIO_f_ssl());
|
||||
|
@ -74,8 +74,13 @@
|
||||
#define NO_SSL2
|
||||
#endif
|
||||
|
||||
#ifdef VMS
|
||||
# define TEST_SERVER_CERT "SYS$DISK:[-.APPS]SERVER.PEM"
|
||||
# define TEST_CLIENT_CERT "SYS$DISK:[-.APPS]CLIENT.PEM"
|
||||
#else
|
||||
# define TEST_SERVER_CERT "../apps/server.pem"
|
||||
# define TEST_CLIENT_CERT "../apps/client.pem"
|
||||
#endif
|
||||
|
||||
int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
|
||||
#ifndef NO_RSA
|
||||
|
@ -19,7 +19,10 @@ EX_LIBS= #-lnsl -lsocket
|
||||
|
||||
CFLAGS= $(INCLUDES) $(CFLAG)
|
||||
|
||||
GENERAL=Makefile.ssl
|
||||
GENERAL=Makefile.ssl maketests.com \
|
||||
tests.com testenc.com tx509.com trsa.com tcrl.com tsid.com treq.com \
|
||||
tpkcs7.com tpkcs7d.com tverify.com testgen.com testss.com testssl.com \
|
||||
testca.com VMSca-response.1 VMSca-response.2
|
||||
|
||||
DLIBCRYPTO= ../libcrypto.a
|
||||
DLIBSSL= ../libssl.a
|
||||
|
1
test/VMSca-response.1
Normal file
1
test/VMSca-response.1
Normal file
@ -0,0 +1 @@
|
||||
|
2
test/VMSca-response.2
Normal file
2
test/VMSca-response.2
Normal file
@ -0,0 +1,2 @@
|
||||
y
|
||||
y
|
1053
test/maketests.com
Normal file
1053
test/maketests.com
Normal file
File diff suppressed because it is too large
Load Diff
78
test/tcrl.com
Normal file
78
test/tcrl.com
Normal file
@ -0,0 +1,78 @@
|
||||
$! TCRL.COM -- Tests crl keys
|
||||
$
|
||||
$ __arch := VAX
|
||||
$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
|
||||
$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
|
||||
$
|
||||
$ cmd := mcr 'exe_dir'openssl crl
|
||||
$
|
||||
$ t := testcrl.pem
|
||||
$ if p1 .nes. "" then t = p1
|
||||
$
|
||||
$ write sys$output "testing CRL conversions"
|
||||
$ copy 't' fff.p
|
||||
$
|
||||
$ write sys$output "p -> d"
|
||||
$ 'cmd' -in fff.p -inform p -outform d -out f.d
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$! write sys$output "p -> t"
|
||||
$! 'cmd' -in fff.p -inform p -outform t -out f.t
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$ write sys$output "p -> p"
|
||||
$ 'cmd' -in fff.p -inform p -outform p -out f.p
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$ write sys$output "d -> d"
|
||||
$ 'cmd' -in f.d -inform d -outform d -out ff.d1
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$! write sys$output "t -> d"
|
||||
$! 'cmd' -in f.t -inform t -outform d -out ff.d2
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$ write sys$output "p -> d"
|
||||
$ 'cmd' -in f.p -inform p -outform d -out ff.d3
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$! write sys$output "d -> t"
|
||||
$! 'cmd' -in f.d -inform d -outform t -out ff.t1
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$! write sys$output "t -> t"
|
||||
$! 'cmd' -in f.t -inform t -outform t -out ff.t2
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$! write sys$output "p -> t"
|
||||
$! 'cmd' -in f.p -inform p -outform t -out ff.t3
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$ write sys$output "d -> p"
|
||||
$ 'cmd' -in f.d -inform d -outform p -out ff.p1
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$! write sys$output "t -> p"
|
||||
$! 'cmd' -in f.t -inform t -outform p -out ff.p2
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$ write sys$output "p -> p"
|
||||
$ 'cmd' -in f.p -inform p -outform p -out ff.p3
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$ difference/output=nl: fff.p f.p
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$ difference/output=nl: fff.p ff.p1
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$! difference/output=nl: fff.p ff.p2
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$ difference/output=nl: fff.p ff.p3
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$! difference/output=nl: f.t ff.t1
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$! difference/output=nl: f.t ff.t2
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$! difference/output=nl: f.t ff.t3
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$ difference/output=nl: f.p ff.p1
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$! difference/output=nl: f.p ff.p2
|
||||
$! if $severity .ne. 1 then exit 3
|
||||
$ difference/output=nl: f.p ff.p3
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$ delete f.*;*,ff.*;*,fff.*;*
|
76
test/testca.com
Normal file
76
test/testca.com
Normal file
@ -0,0 +1,76 @@
|
||||
$! TESTCA.COM
|
||||
$
|
||||
$ __arch := VAX
|
||||
$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
|
||||
$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
|
||||
$
|
||||
$ openssl := mcr 'exe_dir'openssl
|
||||
$
|
||||
$ SSLEAY_CONFIG="-config ""CAss.cnf"""
|
||||
$
|
||||
$ set noon
|
||||
$ if f$search("demoCA.dir") .nes. ""
|
||||
$ then
|
||||
$ call deltree [.demoCA]*.*
|
||||
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;*
|
||||
$ delete demoCA.dir;*
|
||||
$ endif
|
||||
$ set on
|
||||
$ open/read sys$ca_input VMSca-response.1
|
||||
$ @[-.apps]CA.com -input sys$ca_input -newca
|
||||
$ close sys$ca_input
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$
|
||||
$ SSLEAY_CONFIG="-config ""Uss.cnf"""
|
||||
$ @[-.apps]CA.com -newreq
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$
|
||||
$ SSLEAY_CONFIG="-config [-.apps]openssl-vms.cnf"
|
||||
$ open/read sys$ca_input VMSca-response.2
|
||||
$ @[-.apps]CA.com -input sys$ca_input -sign
|
||||
$ close sys$ca_input
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$
|
||||
$ @[-.apps]CA.com -verify newcert.pem
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$
|
||||
$ set noon
|
||||
$ call deltree [.demoCA]*.*
|
||||
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) demoCA.dir;*
|
||||
$ delete demoCA.dir;*,newcert.pem;*,newreq.pem;*
|
||||
$ set on
|
||||
$! #usage: CA -newcert|-newreq|-newca|-sign|-verify
|
||||
$
|
||||
$ exit
|
||||
$
|
||||
$ deltree: subroutine ! P1 is a name of a directory
|
||||
$ on control_y then goto dt_STOP
|
||||
$ on warning then goto dt_exit
|
||||
$ _dt_def = f$trnlnm("SYS$DISK")+f$directory()
|
||||
$ if f$parse(p1) .eqs. "" then exit
|
||||
$ set default 'f$parse(p1,,,"DEVICE")''f$parse(p1,,,"DIRECTORY")'
|
||||
$ p1 = f$parse(p1,,,"NAME") + f$parse(p1,,,"TYPE")
|
||||
$ _fp = f$parse(".DIR",p1)
|
||||
$ dt_loop:
|
||||
$ _f = f$search(_fp)
|
||||
$ if _f .eqs. "" then goto dt_loopend
|
||||
$ call deltree [.'f$parse(_f,,,"NAME")']*.*
|
||||
$ goto dt_loop
|
||||
$ dt_loopend:
|
||||
$ _fp = f$parse(p1,".;*")
|
||||
$ if f$search(_fp) .eqs. "" then goto dt_exit
|
||||
$ set noon
|
||||
$ set file/prot=(S:RWED,O:RWED,G:RWED,W:RWED) '_fp'
|
||||
$ set on
|
||||
$ delete/nolog '_fp'
|
||||
$ dt_exit:
|
||||
$ set default '_dt_def'
|
||||
$ exit
|
||||
$ dt_STOP:
|
||||
$ set default '_dt_def'
|
||||
$ stop/id=""
|
||||
$ exit
|
||||
$ endsubroutine
|
50
test/testenc.com
Normal file
50
test/testenc.com
Normal file
@ -0,0 +1,50 @@
|
||||
$! TESTENC.COM -- Test encoding and decoding
|
||||
$
|
||||
$ __arch := VAX
|
||||
$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
|
||||
$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
|
||||
$
|
||||
$ testsrc := makefile.ssl
|
||||
$ test := p.txt
|
||||
$ cmd := mcr 'exe_dir'openssl
|
||||
$
|
||||
$ copy 'testsrc' 'test'
|
||||
$
|
||||
$ write sys$output "cat"
|
||||
$ 'cmd' enc -in 'test' -out 'test'-cipher
|
||||
$ 'cmd' enc -in 'test'-cipher -out 'test'-clear
|
||||
$ difference/output=nl: 'test' 'test'-clear
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$ delete 'test'-cipher;*,'test'-clear;*
|
||||
$
|
||||
$ write sys$output "base64"
|
||||
$ 'cmd' enc -a -e -in 'test' -out 'test'-cipher
|
||||
$ 'cmd' enc -a -d -in 'test'-cipher -out 'test'-clear
|
||||
$ difference/output=nl: 'test' 'test'-clear
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$ delete 'test'-cipher;*,'test'-clear;*
|
||||
$
|
||||
$ define/user sys$output 'test'-cipher-commands
|
||||
$ 'cmd' list-cipher-commands
|
||||
$ open/read f 'test'-cipher-commands
|
||||
$ loop_cipher_commands:
|
||||
$ read/end=loop_cipher_commands_end f i
|
||||
$ write sys$output i
|
||||
$ 'cmd' 'i' -bufsize 113 -e -k test -in 'test' -out 'test'-'i'-cipher
|
||||
$ 'cmd' 'i' -bufsize 157 -d -k test -in 'test'-'i'-cipher -out 'test'-'i'-clear
|
||||
$ difference/output=nl: 'test' 'test'-'i'-clear
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$ delete 'test'-'i'-cipher;*,'test'-'i'-clear;*
|
||||
$
|
||||
$ write sys$output i," base64"
|
||||
$ 'cmd' 'i' -bufsize 113 -a -e -k test -in 'test' -out 'test'-'i'-cipher
|
||||
$ 'cmd' 'i' -bufsize 157 -a -d -k test -in 'test'-'i'-cipher -out 'test'-'i'-clear
|
||||
$ difference/output=nl: 'test' 'test'-'i'-clear
|
||||
$ if $severity .ne. 1 then exit 3
|
||||
$ delete 'test'-'i'-cipher;*,'test'-'i'-clear;*
|
||||
$
|
||||
$ goto loop_cipher_commands
|
||||
$ loop_cipher_commands_end:
|
||||
$ close f
|
||||
$ delete 'test'-cipher-commands;*
|
||||
$ delete 'test';*
|
33
test/testgen.com
Normal file
33
test/testgen.com
Normal file
@ -0,0 +1,33 @@
|
||||
$! TETSGEN.COM
|
||||
$
|
||||
$ __arch := VAX
|
||||
$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
|
||||
$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
|
||||
$
|
||||
$ T := testcert
|
||||
$ KEY = 512
|
||||
$ CA := [-.certs]testca.pem
|
||||
$
|
||||
$ set noon
|
||||
$ delete 'T'.1;*,'T'.2;*,'T'.key;*
|
||||
$ set on
|
||||
$
|
||||
$ write sys$output "generating certificate request"
|
||||
$
|
||||
$ write sys$output "There should be a 2 sequences of .'s and some +'s."
|
||||
$ write sys$output "There should not be more that at most 80 per line"
|
||||
$ write sys$output "This could take some time."
|
||||
$
|
||||
$ mcr 'exe_dir'openssl req -config test.cnf -new -out testreq.pem
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "problems creating request"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$
|
||||
$ mcr 'exe_dir'openssl req -verify -in testreq.pem -noout
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "signature on req is wrong"
|
||||
$ exit 3
|
||||
$ endif
|
203
test/tests.com
Normal file
203
test/tests.com
Normal file
@ -0,0 +1,203 @@
|
||||
$! TESTS.COM -- Performs the necessary tests
|
||||
$!
|
||||
$! P1 tests to be performed. Empty means all.
|
||||
$
|
||||
$ __proc = f$element(0,";",f$environment("procedure"))
|
||||
$ __here = f$parse(f$parse("A.;",__proc) - "A.;","[]A.;") - "A.;"
|
||||
$ __save_default = f$environment("default")
|
||||
$ __arch := VAX
|
||||
$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
|
||||
$ texe_dir := sys$disk:[-.'__arch'.exe.test]
|
||||
$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
|
||||
$
|
||||
$ set default '__here'
|
||||
$ on control_y then goto exit
|
||||
$ on error then goto exit
|
||||
$
|
||||
$ if p1 .nes. ""
|
||||
$ then
|
||||
$ tests = p1
|
||||
$ else
|
||||
$ tests := -
|
||||
test_des,test_idea,test_sha,test_md5,test_hmac,test_md2,test_mdc2,-
|
||||
test_rc2,test_rc4,test_rc5,test_bf,test_cast,-
|
||||
test_rand,test_bn,test_enc,test_x509,test_rsa,test_crl,test_sid,-
|
||||
test_reqgen,test_req,test_pkcs7,test_verify,test_dh,test_dsa,-
|
||||
test_ss,test_ssl,test_ca
|
||||
$ endif
|
||||
$ tests = f$edit(tests,"COLLAPSE")
|
||||
$
|
||||
$ BNTEST := bntest
|
||||
$ EXPTEST := exptest
|
||||
$ IDEATEST := ideatest
|
||||
$ SHATEST := shatest
|
||||
$ SHA1TEST := sha1test
|
||||
$ MDC2TEST := mdc2test
|
||||
$ RMDTEST := rmdtest
|
||||
$ MD2TEST := md2test
|
||||
$ MD5TEST := md5test
|
||||
$ HMACTEST := hmactest
|
||||
$ RC2TEST := rc2test
|
||||
$ RC4TEST := rc4test
|
||||
$ RC5TEST := rc5test
|
||||
$ BFTEST := bftest
|
||||
$ CASTTEST := casttest
|
||||
$ DESTEST := destest
|
||||
$ RANDTEST := randtest
|
||||
$ DHTEST := dhtest
|
||||
$ DSATEST := dsatest
|
||||
$ METHTEST := methtest
|
||||
$ SSLTEST := ssltest
|
||||
$ RSATEST := rsa_oaep_test
|
||||
$
|
||||
$ tests_i = 0
|
||||
$ loop_tests:
|
||||
$ tests_e = f$element(tests_i,",",tests)
|
||||
$ tests_i = tests_i + 1
|
||||
$ if tests_e .eqs. "," then goto exit
|
||||
$ goto 'tests_e'
|
||||
$
|
||||
$ test_des:
|
||||
$ mcr 'texe_dir''destest'
|
||||
$ goto loop_tests
|
||||
$ test_idea:
|
||||
$ mcr 'texe_dir''ideatest'
|
||||
$ goto loop_tests
|
||||
$ test_sha:
|
||||
$ mcr 'texe_dir''shatest'
|
||||
$ mcr 'texe_dir''sha1test'
|
||||
$ goto loop_tests
|
||||
$ test_mdc2:
|
||||
$ mcr 'texe_dir''mdc2test'
|
||||
$ goto loop_tests
|
||||
$ test_md5:
|
||||
$ mcr 'texe_dir''md5test'
|
||||
$ goto loop_tests
|
||||
$ test_hmac:
|
||||
$ mcr 'texe_dir''hmactest'
|
||||
$ goto loop_tests
|
||||
$ test_md2:
|
||||
$ mcr 'texe_dir''md2test'
|
||||
$ goto loop_tests
|
||||
$ test_rmd:
|
||||
$ mcr 'texe_dir''rmdtest'
|
||||
$ goto loop_tests
|
||||
$ test_bf:
|
||||
$ mcr 'texe_dir''bftest'
|
||||
$ goto loop_tests
|
||||
$ test_cast:
|
||||
$ mcr 'texe_dir''casttest'
|
||||
$ goto loop_tests
|
||||
$ test_rc2:
|
||||
$ mcr 'texe_dir''rc2test'
|
||||
$ goto loop_tests
|
||||
$ test_rc4:
|
||||
$ mcr 'texe_dir''rc4test'
|
||||
$ goto loop_tests
|
||||
$ test_rc5:
|
||||
$ mcr 'texe_dir''rc5test'
|
||||
$ goto loop_tests
|
||||
$ test_rand:
|
||||
$ mcr 'texe_dir''randtest'
|
||||
$ goto loop_tests
|
||||
$ test_enc:
|
||||
$ @testenc.com
|
||||
$ goto loop_tests
|
||||
$ test_x509:
|
||||
$ define sys$error nla0:
|
||||
$ write sys$output "test normal x509v1 certificate"
|
||||
$ @tx509.com
|
||||
$ write sys$output "test first x509v3 certificate"
|
||||
$ @tx509.com v3-cert1.pem
|
||||
$ write sys$output "test second x509v3 certificate"
|
||||
$ @tx509.com v3-cert2.pem
|
||||
$ deassign sys$error
|
||||
$ goto loop_tests
|
||||
$ test_rsa:
|
||||
$ define sys$error nla0:
|
||||
$ @trsa.com
|
||||
$ deassign sys$error
|
||||
$ mcr 'texe_dir''rsatest'
|
||||
$ goto loop_tests
|
||||
$ test_crl:
|
||||
$ define sys$error nla0:
|
||||
$ @tcrl.com
|
||||
$ deassign sys$error
|
||||
$ goto loop_tests
|
||||
$ test_sid:
|
||||
$ define sys$error nla0:
|
||||
$ @tsid.com
|
||||
$ deassign sys$error
|
||||
$ goto loop_tests
|
||||
$ test_req:
|
||||
$ define sys$error nla0:
|
||||
$ @treq.com
|
||||
$ @treq.com testreq2.pem
|
||||
$ deassign sys$error
|
||||
$ goto loop_tests
|
||||
$ test_pkcs7:
|
||||
$ define sys$error nla0:
|
||||
$ @tpkcs7.com
|
||||
$ @tpkcs7d.com
|
||||
$ deassign sys$error
|
||||
$ goto loop_tests
|
||||
$ test_bn:
|
||||
$ write sys$output "starting big number library test, could take a while..."
|
||||
$ create bntest-vms.fdl
|
||||
FILE
|
||||
ORGANIZATION sequential
|
||||
RECORD
|
||||
FORMAT stream_lf
|
||||
$ create/fdl=bntest-vms.fdl bntest-vms.sh
|
||||
$ open/append foo bntest-vms.sh
|
||||
$ type/output=foo: sys$input:
|
||||
<< __FOO__ bc | awk '{ \
|
||||
if ($$0 != "0") {print "error"; exit(1); } \
|
||||
if (((NR+1)%64) == 0) print NR+1," tests done"; }'
|
||||
$ define/user sys$output bntest-vms.tmp
|
||||
$ mcr 'texe_dir''bntest'
|
||||
$ copy bntest-vms.tmp foo:
|
||||
$ delete bntest-vms.tmp;*
|
||||
$ type/output=foo: sys$input:
|
||||
__FOO__
|
||||
$ close foo
|
||||
$ write sys$output "-- copy the [.test]bntest-vms.sh file to a Unix system and run it"
|
||||
$ write sys$output "-- through sh or bash to verify that the bignum operations went well."
|
||||
$ write sys$output ""
|
||||
$ write sys$output "test a^b%c implementations"
|
||||
$ mcr 'texe_dir''exptest'
|
||||
$ goto loop_tests
|
||||
$ test_verify:
|
||||
$ write sys$output "The following command should have some OK's and some failures"
|
||||
$ write sys$output "There are definitly a few expired certificates"
|
||||
$ @tverify.com
|
||||
$ goto loop_tests
|
||||
$ test_dh:
|
||||
$ write sys$output "Generate as set of DH parameters"
|
||||
$ mcr 'texe_dir''dhtest'
|
||||
$ goto loop_tests
|
||||
$ test_dsa:
|
||||
$ write sys$output "Generate as set of DSA parameters"
|
||||
$ mcr 'texe_dir''dsatest'
|
||||
$ goto loop_tests
|
||||
$ test_reqgen:
|
||||
$ write sys$output "Generate and verify a certificate request"
|
||||
$ @testgen.com
|
||||
$ goto loop_tests
|
||||
$ test_ss:
|
||||
$ write sys$output "Generate and certify a test certificate"
|
||||
$ @testss.com
|
||||
$ goto loop_tests
|
||||
$ test_ssl:
|
||||
$ write sys$output "test SSL protocol"
|
||||
$ @testssl.com
|
||||
$ goto loop_tests
|
||||
$ test_ca:
|
||||
$ write sys$output "Generate and certify a test certificate via the 'ca' program"
|
||||
$ @testca.com
|
||||
$ goto loop_tests
|
||||
$
|
||||
$
|
||||
$ exit:
|
||||
$ set default '__save_default'
|
||||
$ exit
|
104
test/testss.com
Normal file
104
test/testss.com
Normal file
@ -0,0 +1,104 @@
|
||||
$! TESTSS.COM
|
||||
$
|
||||
$ __arch := VAX
|
||||
$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
|
||||
$ exe_dir := sys$disk:[-.'__arch'.exe.apps]
|
||||
$
|
||||
$ digest="-mdc2"
|
||||
$ reqcmd := mcr 'exe_dir'openssl req
|
||||
$ x509cmd := mcr 'exe_dir'openssl x509 'digest'
|
||||
$ verifycmd := mcr 'exe_dir'openssl verify
|
||||
$
|
||||
$ CAkey="""keyCA.ss"""
|
||||
$ CAcert="""certCA.ss"""
|
||||
$ CAreq="""reqCA.ss"""
|
||||
$ CAconf="""CAss.cnf"""
|
||||
$ CAreq2="""req2CA.ss""" ! temp
|
||||
$
|
||||
$ Uconf="""Uss.cnf"""
|
||||
$ Ukey="""keyU.ss"""
|
||||
$ Ureq="""reqU.ss"""
|
||||
$ Ucert="""certU.ss"""
|
||||
$
|
||||
$ write sys$output ""
|
||||
$ write sys$output "make a certificate request using 'req'"
|
||||
$ 'reqcmd' -config 'CAconf' -out 'CAreq' -keyout 'CAkey' -new ! -out err.ss
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "error using 'req' to generate a certificate request"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$ write sys$output ""
|
||||
$ write sys$output "convert the certificate request into a self signed certificate using 'x509'"
|
||||
$ define /user sys$output err.ss
|
||||
$ 'x509cmd' "-CAcreateserial" -in 'CAreq' -days 30 -req -out 'CAcert' -signkey 'CAkey'
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "error using 'x509' to self sign a certificate request"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$
|
||||
$ write sys$output ""
|
||||
$ write sys$output "convert a certificate into a certificate request using 'x509'"
|
||||
$ define /user sys$output err.ss
|
||||
$ 'x509cmd' -in 'CAcert' -x509toreq -signkey 'CAkey' -out 'CAreq2'
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "error using 'x509' convert a certificate to a certificate request"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$
|
||||
$ 'reqcmd' -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
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "second generated request is invalid"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$
|
||||
$ 'verifycmd' "-CAfile" 'CAcert' 'CAcert'
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "first generated cert is invalid"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$
|
||||
$ write sys$output ""
|
||||
$ write sys$output "make another certificate request using 'req'"
|
||||
$ define /user sys$output err.ss
|
||||
$ 'reqcmd' -config 'Uconf' -out 'Ureq' -keyout 'Ukey' -new
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "error using 'req' to generate a certificate request"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$
|
||||
$ write sys$output ""
|
||||
$ write sys$output "sign certificate request with the just created CA via 'x509'"
|
||||
$ define /user sys$output err.ss
|
||||
$ 'x509cmd' "-CAcreateserial" -in 'Ureq' -days 30 -req -out 'Ucert' "-CA" 'CAcert' "-CAkey" 'CAkey'
|
||||
$ if $severity .ne. 1
|
||||
$ then
|
||||
$ write sys$output "error using 'x509' to sign a certificate request"
|
||||
$ exit 3
|
||||
$ endif
|
||||
$
|
||||
$ 'verifycmd' "-CAfile" 'CAcert' 'Ucert'
|
||||
$ write sys$output ""
|
||||
$ write sys$output "Certificate details"
|
||||
$ 'x509cmd' -subject -issuer -startdate -enddate -noout -in 'Ucert'
|
||||
$
|
||||
$ write sys$output ""
|
||||
$ write sys$output "The generated CA certificate is ",CAcert
|
||||
$ write sys$output "The generated CA private key is ",CAkey
|
||||
$
|
||||
$ write sys$output "The generated user certificate is ",Ucert
|
||||
$ write sys$output "The generated user private key is ",Ukey
|
||||
$
|
||||
$ delete err.ss;*
|
63
test/testssl.com
Normal file
63
test/testssl.com
Normal file
@ -0,0 +1,63 @@
|
||||
$! TESTSSL.COM
|
||||
$
|
||||
$ __arch := VAX
|
||||
$ if f$getsyi("cpu") .ge. 128 then __arch := AXP
|
||||
$ exe_dir := sys$disk:[-.'__arch'.exe.test]
|
||||
$
|
||||
$ copy/concatenate [-.certs]*.pem certs.tmp
|
||||
$
|
||||
$ write sys$output "test sslv2"
|
||||
$ mcr 'exe_dir'ssltest -ssl2
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv2 with server authentication"
|
||||
$ mcr 'exe_dir'ssltest -ssl2 -server_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv2 with client authentication"
|
||||
$ mcr 'exe_dir'ssltest -ssl2 -client_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv2 with both client and server authentication"
|
||||
$ mcr 'exe_dir'ssltest -ssl2 -server_auth -client_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv3"
|
||||
$ mcr 'exe_dir'ssltest -ssl3
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv3 with server authentication"
|
||||
$ mcr 'exe_dir'ssltest -ssl3 -server_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv3 with client authentication"
|
||||
$ mcr 'exe_dir'ssltest -ssl3 -client_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv3 with both client and server authentication"
|
||||
$ mcr 'exe_dir'ssltest -ssl3 -server_auth -client_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv2/sslv3"
|
||||
$ mcr 'exe_dir'ssltest
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv2/sslv3 with server authentication"
|
||||
$ mcr 'exe_dir'ssltest -server_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ write sys$output "test sslv2/sslv3 with client authentication"
|
||||
$ mcr 'exe_dir'ssltest -client_auth "-CAfile" certs.tmp
|
||||
$ if $severity .ne. 1 then goto exit3
|
||||
$
|
||||
$ 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
|
||||
$
|
||||
$ RET = 1
|
||||
$ goto exit
|
||||
$ exit3:
|
||||
$ RET = 3
|
||||
$ exit:
|
||||
$ delete certs.tmp;*
|
||||
$ exit 'RET'
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user