summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto')
-rw-r--r--src/lib/libcrypto/Attic/Makefile4
-rw-r--r--src/lib/libcrypto/crypto-lib.com339
-rw-r--r--src/lib/libcrypto/dso/dso_vms.c179
-rw-r--r--src/lib/libcrypto/evp/evp_test.c1
-rwxr-xr-xsrc/lib/libcrypto/install-crypto.com196
-rw-r--r--src/lib/libcrypto/rand/md_rand.c11
-rw-r--r--src/lib/libcrypto/rand/rand_vms.c16
-rw-r--r--src/lib/libcrypto/rc5/rc5_locl.h4
-rw-r--r--src/lib/libcrypto/util/cygwin.sh11
-rw-r--r--src/lib/libcrypto/util/libeay.num16
-rw-r--r--src/lib/libcrypto/util/mk1mf.pl20
-rw-r--r--src/lib/libcrypto/util/mkdef.pl3
-rw-r--r--src/lib/libcrypto/util/pl/VC-32.pl6
13 files changed, 627 insertions, 179 deletions
diff --git a/src/lib/libcrypto/Attic/Makefile b/src/lib/libcrypto/Attic/Makefile
index c1033f6d77..85d9f249c5 100644
--- a/src/lib/libcrypto/Attic/Makefile
+++ b/src/lib/libcrypto/Attic/Makefile
@@ -74,7 +74,9 @@ x86_64cpuid.s: x86_64cpuid.pl
74 $(PERL) x86_64cpuid.pl $(PERLASM_SCHEME) > $@ 74 $(PERL) x86_64cpuid.pl $(PERLASM_SCHEME) > $@
75ia64cpuid.s: ia64cpuid.S 75ia64cpuid.s: ia64cpuid.S
76 $(CC) $(CFLAGS) -E ia64cpuid.S > $@ 76 $(CC) $(CFLAGS) -E ia64cpuid.S > $@
77ppccpuid.s: ppccpuid.pl; $(PERL) ppccpuid.pl $(PERLASM_SCHEME) $@ 77ppccpuid.s: ppccpuid.pl; $(PERL) ppccpuid.pl $(PERLASM_SCHEME) $@
78alphacpuid.s: alphacpuid.pl
79 $(PERL) $< | $(CC) -E - | tee $@ > /dev/null
78 80
79testapps: 81testapps:
80 [ -z "$(THIS)" ] || ( if echo $(SDIRS) | fgrep ' des '; \ 82 [ -z "$(THIS)" ] || ( if echo $(SDIRS) | fgrep ' des '; \
diff --git a/src/lib/libcrypto/crypto-lib.com b/src/lib/libcrypto/crypto-lib.com
index a4b6635091..a29c0afd93 100644
--- a/src/lib/libcrypto/crypto-lib.com
+++ b/src/lib/libcrypto/crypto-lib.com
@@ -47,11 +47,33 @@ $! P6, if defined, sets a choice of crypto methods to compile.
47$! WARNING: this should only be done to recompile some part of an already 47$! WARNING: this should only be done to recompile some part of an already
48$! fully compiled library. 48$! fully compiled library.
49$! 49$!
50$! P7, if defined, specifies the C pointer size. Ignored on VAX.
51$! ("64=ARGV" gives more efficient code with HP C V7.3 or newer.)
52$! Supported values are:
53$!
54$! "" Compile with default (/NOPOINTER_SIZE)
55$! 32 Compile with /POINTER_SIZE=32 (SHORT)
56$! 64 Compile with /POINTER_SIZE=64[=ARGV] (LONG[=ARGV]).
57$! (Automatically select ARGV if compiler supports it.)
58$! 64= Compile with /POINTER_SIZE=64 (LONG).
59$! 64=ARGV Compile with /POINTER_SIZE=64=ARGV (LONG=ARGV).
60$!
61$! P8, if defined, specifies a directory where ZLIB files (zlib.h,
62$! libz.olb) may be found. Optionally, a non-default object library
63$! name may be included ("dev:[dir]libz_64.olb", for example).
64$!
65$!
66$! Announce/identify.
67$!
68$ proc = f$environment( "procedure")
69$ write sys$output "@@@ "+ -
70 f$parse( proc, , , "name")+ f$parse( proc, , , "type")
50$! 71$!
51$! Define A TCP/IP Library That We Will Need To Link To. 72$! Define A TCP/IP Library That We Will Need To Link To.
52$! (That Is, If We Need To Link To One.) 73$! (That Is, If We Need To Link To One.)
53$! 74$!
54$ TCPIP_LIB = "" 75$ TCPIP_LIB = ""
76$ ZLIB_LIB = ""
55$! 77$!
56$! Check Which Architecture We Are Using. 78$! Check Which Architecture We Are Using.
57$! 79$!
@@ -75,6 +97,11 @@ $! End The Architecture Check.
75$! 97$!
76$ ENDIF 98$ ENDIF
77$! 99$!
100$ ARCHD = ARCH
101$ LIB32 = "32"
102$ OPT_FILE = ""
103$ POINTER_SIZE = ""
104$!
78$! Define The Different Encryption Types. 105$! Define The Different Encryption Types.
79$! NOTE: Some might think this list ugly. However, it's made this way to 106$! NOTE: Some might think this list ugly. However, it's made this way to
80$! reflect the SDIRS variable in [-]Makefile.org as closely as possible, 107$! reflect the SDIRS variable in [-]Makefile.org as closely as possible,
@@ -91,17 +118,29 @@ $ ENCRYPT_TYPES = "Basic,"+ -
91 "EVP,EVP_2,EVP_3,ASN1,ASN1_2,PEM,X509,X509V3,"+ - 118 "EVP,EVP_2,EVP_3,ASN1,ASN1_2,PEM,X509,X509V3,"+ -
92 "CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,"+ - 119 "CONF,TXT_DB,PKCS7,PKCS12,COMP,OCSP,UI,KRB5,"+ -
93 "STORE,CMS,PQUEUE,TS,JPAKE" 120 "STORE,CMS,PQUEUE,TS,JPAKE"
94$! Define The OBJ Directory.
95$! 121$!
96$ OBJ_DIR := SYS$DISK:[-.'ARCH'.OBJ.CRYPTO] 122$! Check To Make Sure We Have Valid Command Line Parameters.
123$!
124$ GOSUB CHECK_OPTIONS
97$! 125$!
98$! Define The EXE Directory. 126$! Define The OBJ and EXE Directories.
99$! 127$!
100$ EXE_DIR := SYS$DISK:[-.'ARCH'.EXE.CRYPTO] 128$ OBJ_DIR := SYS$DISK:[-.'ARCHD'.OBJ.CRYPTO]
129$ EXE_DIR := SYS$DISK:[-.'ARCHD'.EXE.CRYPTO]
101$! 130$!
102$! Check To Make Sure We Have Valid Command Line Parameters. 131$! Specify the destination directory in any /MAP option.
103$! 132$!
104$ GOSUB CHECK_OPTIONS 133$ if (LINKMAP .eqs. "MAP")
134$ then
135$ LINKMAP = LINKMAP+ "=''EXE_DIR'"
136$ endif
137$!
138$! Add the location prefix to the linker options file name.
139$!
140$ if (OPT_FILE .nes. "")
141$ then
142$ OPT_FILE = EXE_DIR+ OPT_FILE
143$ endif
105$! 144$!
106$! Initialise logical names and such 145$! Initialise logical names and such
107$! 146$!
@@ -109,7 +148,7 @@ $ GOSUB INITIALISE
109$! 148$!
110$! Tell The User What Kind of Machine We Run On. 149$! Tell The User What Kind of Machine We Run On.
111$! 150$!
112$ WRITE SYS$OUTPUT "Compiling On A ",ARCH," Machine." 151$ WRITE SYS$OUTPUT "Host system architecture: ''ARCHD'"
113$! 152$!
114$! 153$!
115$! Check To See If The Architecture Specific OBJ Directory Exists. 154$! Check To See If The Architecture Specific OBJ Directory Exists.
@@ -140,11 +179,11 @@ $ ENDIF
140$! 179$!
141$! Define The Library Name. 180$! Define The Library Name.
142$! 181$!
143$ LIB_NAME := 'EXE_DIR'LIBCRYPTO.OLB 182$ LIB_NAME := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB
144$! 183$!
145$! Define The CRYPTO-LIB We Are To Use. 184$! Define The CRYPTO-LIB We Are To Use.
146$! 185$!
147$ CRYPTO_LIB := 'EXE_DIR'LIBCRYPTO.OLB 186$ CRYPTO_LIB := 'EXE_DIR'SSL_LIBCRYPTO'LIB32'.OLB
148$! 187$!
149$! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library... 188$! Check To See If We Already Have A "[.xxx.EXE.CRYPTO]LIBCRYPTO.OLB" Library...
150$! 189$!
@@ -193,7 +232,7 @@ $ LIB_CAST = "c_skey,c_ecb,c_enc,c_cfb64,c_ofb64"
193$ LIB_CAMELLIA = "camellia,cmll_misc,cmll_ecb,cmll_cbc,cmll_ofb,"+ - 232$ LIB_CAMELLIA = "camellia,cmll_misc,cmll_ecb,cmll_cbc,cmll_ofb,"+ -
194 "cmll_cfb,cmll_ctr" 233 "cmll_cfb,cmll_ctr"
195$ LIB_SEED = "seed,seed_ecb,seed_cbc,seed_cfb,seed_ofb" 234$ LIB_SEED = "seed,seed_ecb,seed_cbc,seed_cfb,seed_ofb"
196$ LIB_MODES = "cbc128,ctr128,cfb128,ofb128" 235$ LIB_MODES = "cbc128,ctr128,cts128,cfb128,ofb128"
197$ LIB_BN_ASM = "[.asm]vms.mar,vms-helper" 236$ LIB_BN_ASM = "[.asm]vms.mar,vms-helper"
198$ IF F$TRNLNM("OPENSSL_NO_ASM") .OR. ARCH .NES. "VAX" THEN - 237$ IF F$TRNLNM("OPENSSL_NO_ASM") .OR. ARCH .NES. "VAX" THEN -
199 LIB_BN_ASM = "bn_asm" 238 LIB_BN_ASM = "bn_asm"
@@ -301,15 +340,23 @@ $ LIB_JPAKE = "jpake,jpake_err"
301$! 340$!
302$! Setup exceptional compilations 341$! Setup exceptional compilations
303$! 342$!
304$ ! Add definitions for no threads on OpenVMS 7.1 and higher 343$ CC3_SHOWN = 0
344$ CC4_SHOWN = 0
345$ CC5_SHOWN = 0
346$ CC6_SHOWN = 0
347$!
348$! The following lists must have leading and trailing commas, and no
349$! embedded spaces. (They are scanned for ",name,".)
350$!
351$ ! Add definitions for no threads on OpenVMS 7.1 and higher.
305$ COMPILEWITH_CC3 = ",bss_rtcp," 352$ COMPILEWITH_CC3 = ",bss_rtcp,"
306$ ! Disable the DOLLARID warning 353$ ! Disable the DOLLARID warning. Not needed with /STANDARD=RELAXED.
307$ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time,o_dir" 354$ COMPILEWITH_CC4 = "" !!! ",a_utctm,bss_log,o_time,o_dir,"
308$ ! Disable disjoint optimization 355$ ! Disable disjoint optimization on VAX with DECC.
309$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + - 356$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + -
310 "seed,sha_dgst,sha1dgst,rmd_dgst,bf_enc," 357 "seed,sha_dgst,sha1dgst,rmd_dgst,bf_enc,"
311$ ! Disable the MIXLINKAGE warning 358$ ! Disable the MIXLINKAGE warning.
312$ COMPILEWITH_CC6 = ",enc_read,set_key," 359$ COMPILEWITH_CC6 = "" !!! ",enc_read,set_key,"
313$! 360$!
314$! Figure Out What Other Modules We Are To Build. 361$! Figure Out What Other Modules We Are To Build.
315$! 362$!
@@ -515,31 +562,60 @@ $ WRITE SYS$OUTPUT "Compiling The ",FILE_NAME," File. (",BUILDALL,",",STATE,"
515$ ENDIF 562$ ENDIF
516$ IF (MODULE_NAME.NES."") 563$ IF (MODULE_NAME.NES."")
517$ THEN 564$ THEN
518$ WRITE SYS$OUTPUT " ",FILE_NAME,"" 565$ WRITE SYS$OUTPUT " ",FILE_NAME,""
519$ ENDIF 566$ ENDIF
520$! 567$!
521$! Compile The File. 568$! Compile The File.
522$! 569$!
523$ ON ERROR THEN GOTO NEXT_FILE 570$ ON ERROR THEN GOTO NEXT_FILE
524$ FILE_NAME0 = F$ELEMENT(0,".",FILE_NAME) 571$ FILE_NAME0 = ","+ F$ELEMENT(0,".",FILE_NAME)+ ","
525$ IF FILE_NAME - ".mar" .NES. FILE_NAME 572$ IF FILE_NAME - ".mar" .NES. FILE_NAME
526$ THEN 573$ THEN
527$ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE' 574$ MACRO/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
528$ ELSE 575$ ELSE
529$ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3 576$ IF COMPILEWITH_CC3 - FILE_NAME0 .NES. COMPILEWITH_CC3
530$ THEN 577$ THEN
578$ write sys$output " \Using special rule (3)"
579$ if (.not. CC3_SHOWN)
580$ then
581$ CC3_SHOWN = 1
582$ x = " "+ CC3
583$ write /symbol sys$output x
584$ endif
531$ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE' 585$ CC3/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
532$ ELSE 586$ ELSE
533$ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4 587$ IF COMPILEWITH_CC4 - FILE_NAME0 .NES. COMPILEWITH_CC4
534$ THEN 588$ THEN
589$ write /symbol sys$output " \Using special rule (4)"
590$ if (.not. CC4_SHOWN)
591$ then
592$ CC4_SHOWN = 1
593$ x = " "+ CC4
594$ write /symbol sys$output x
595$ endif
535$ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE' 596$ CC4/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
536$ ELSE 597$ ELSE
537$ IF COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5 598$ IF CC5_DIFFERENT .AND. -
599 (COMPILEWITH_CC5 - FILE_NAME0 .NES. COMPILEWITH_CC5)
538$ THEN 600$ THEN
601$ write sys$output " \Using special rule (5)"
602$ if (.not. CC5_SHOWN)
603$ then
604$ CC5_SHOWN = 1
605$ x = " "+ CC5
606$ write /symbol sys$output x
607$ endif
539$ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE' 608$ CC5/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
540$ ELSE 609$ ELSE
541$ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6 610$ IF COMPILEWITH_CC6 - FILE_NAME0 .NES. COMPILEWITH_CC6
542$ THEN 611$ THEN
612$ write sys$output " \Using special rule (6)"
613$ if (.not. CC6_SHOWN)
614$ then
615$ CC6_SHOWN = 1
616$ x = " "+ CC6
617$ write /symbol sys$output x
618$ endif
543$ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE' 619$ CC6/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
544$ ELSE 620$ ELSE
545$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE' 621$ CC/OBJECT='OBJECT_FILE' 'SOURCE_FILE'
@@ -586,38 +662,22 @@ $! SHOW SYMBOL APPLICATION*
586$! 662$!
587$! Tell the user what happens 663$! Tell the user what happens
588$! 664$!
589$ WRITE SYS$OUTPUT " ",APPLICATION,".exe" 665$ WRITE SYS$OUTPUT " ",APPLICATION,".exe"
590$! 666$!
591$! Link The Program. 667$! Link The Program.
592$! 668$!
593$ ON ERROR THEN GOTO NEXT_APPLICATION 669$ ON ERROR THEN GOTO NEXT_APPLICATION
594$! 670$!
595$! Check To See If We Are To Link With A Specific TCP/IP Library. 671$! Link With A TCP/IP Library.
596$! 672$!
597$ IF (TCPIP_LIB.NES."") 673$ LINK /'DEBUGGER' /'LINKMAP' /'TRACEBACK' -
598$ THEN 674 /EXE='EXE_DIR''APPLICATION'.EXE -
675 'OBJ_DIR''APPLICATION_OBJECTS', -
676 'CRYPTO_LIB'/LIBRARY -
677 'TCPIP_LIB' -
678 'ZLIB_LIB' -
679 ,'OPT_FILE' /OPTIONS
599$! 680$!
600$! Link With A TCP/IP Library.
601$!
602$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE -
603 'OBJ_DIR''APPLICATION_OBJECTS', -
604 'CRYPTO_LIB'/LIBRARY, -
605 'TCPIP_LIB','OPT_FILE'/OPTION
606$!
607$! Else...
608$!
609$ ELSE
610$!
611$! Don't Link With A TCP/IP Library.
612$!
613$ LINK/'DEBUGGER'/'TRACEBACK'/EXE='EXE_DIR''APPLICATION'.EXE -
614 'OBJ_DIR''APPLICATION_OBJECTS',-
615 'CRYPTO_LIB'/LIBRARY, -
616 'OPT_FILE'/OPTION
617$!
618$! End The TCP/IP Library Check.
619$!
620$ ENDIF
621$ GOTO NEXT_APPLICATION 681$ GOTO NEXT_APPLICATION
622$ APPLICATION_DONE: 682$ APPLICATION_DONE:
623$ ENDIF 683$ ENDIF
@@ -656,7 +716,7 @@ $!
656$ CREATE 'OPT_FILE' 716$ CREATE 'OPT_FILE'
657$DECK 717$DECK
658! 718!
659! Default System Options File To Link Agianst 719! Default System Options File To Link Against
660! The Sharable VAX C Runtime Library. 720! The Sharable VAX C Runtime Library.
661! 721!
662SYS$SHARE:VAXCRTL.EXE/SHARE 722SYS$SHARE:VAXCRTL.EXE/SHARE
@@ -685,7 +745,7 @@ $!
685$ CREATE 'OPT_FILE' 745$ CREATE 'OPT_FILE'
686$DECK 746$DECK
687! 747!
688! Default System Options File To Link Agianst 748! Default System Options File To Link Against
689! The Sharable C Runtime Library. 749! The Sharable C Runtime Library.
690! 750!
691GNU_CC:[000000]GCCLIB/LIBRARY 751GNU_CC:[000000]GCCLIB/LIBRARY
@@ -720,7 +780,7 @@ $!
720$ CREATE 'OPT_FILE' 780$ CREATE 'OPT_FILE'
721$DECK 781$DECK
722! 782!
723! Default System Options File To Link Agianst 783! Default System Options File To Link Against
724! The Sharable DEC C Runtime Library. 784! The Sharable DEC C Runtime Library.
725! 785!
726SYS$SHARE:DECC$SHR.EXE/SHARE 786SYS$SHARE:DECC$SHR.EXE/SHARE
@@ -735,7 +795,7 @@ $!
735$ CREATE 'OPT_FILE' 795$ CREATE 'OPT_FILE'
736$DECK 796$DECK
737! 797!
738! Default System Options File For non-VAX To Link Agianst 798! Default System Options File For non-VAX To Link Against
739! The Sharable C Runtime Library. 799! The Sharable C Runtime Library.
740! 800!
741SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE 801SYS$SHARE:CMA$OPEN_LIB_SHR/SHARE
@@ -756,7 +816,7 @@ $ ENDIF
756$! 816$!
757$! Tell The User What Linker Option File We Are Using. 817$! Tell The User What Linker Option File We Are Using.
758$! 818$!
759$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"." 819$ WRITE SYS$OUTPUT "Using Linker Option File ",OPT_FILE,"."
760$! 820$!
761$! Time To RETURN. 821$! Time To RETURN.
762$! 822$!
@@ -803,8 +863,8 @@ $ WRITE SYS$OUTPUT " APPS : To Compile Just The [.xxx.EXE.CRYPTO]*.E
803$ WRITE SYS$OUTPUT "" 863$ WRITE SYS$OUTPUT ""
804$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:" 864$ WRITE SYS$OUTPUT " Where 'xxx' Stands For:"
805$ WRITE SYS$OUTPUT "" 865$ WRITE SYS$OUTPUT ""
806$ WRITE SYS$OUTPUT " ALPHA : Alpha Architecture." 866$ WRITE SYS$OUTPUT " ALPHA[64]: Alpha Architecture."
807$ WRITE SYS$OUTPUT " IA64 : IA64 Architecture." 867$ WRITE SYS$OUTPUT " IA64[64] : IA64 Architecture."
808$ WRITE SYS$OUTPUT " VAX : VAX Architecture." 868$ WRITE SYS$OUTPUT " VAX : VAX Architecture."
809$ WRITE SYS$OUTPUT "" 869$ WRITE SYS$OUTPUT ""
810$! 870$!
@@ -825,15 +885,16 @@ $!
825$ IF (P2.EQS."NODEBUG") 885$ IF (P2.EQS."NODEBUG")
826$ THEN 886$ THEN
827$! 887$!
828$! P2 Is NODEBUG, So Compile Without The Debugger Information. 888$! P2 Is NODEBUG, So Compile Without The Debugger Information.
829$! 889$!
830$ DEBUGGER = "NODEBUG" 890$ DEBUGGER = "NODEBUG"
831$ TRACEBACK = "NOTRACEBACK" 891$ LINKMAP = "NOMAP"
832$ GCC_OPTIMIZE = "OPTIMIZE" 892$ TRACEBACK = "NOTRACEBACK"
833$ CC_OPTIMIZE = "OPTIMIZE" 893$ GCC_OPTIMIZE = "OPTIMIZE"
834$ MACRO_OPTIMIZE = "OPTIMIZE" 894$ CC_OPTIMIZE = "OPTIMIZE"
835$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile." 895$ MACRO_OPTIMIZE = "OPTIMIZE"
836$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization." 896$ WRITE SYS$OUTPUT "No Debugger Information Will Be Produced During Compile."
897$ WRITE SYS$OUTPUT "Compiling With Compiler Optimization."
837$ ELSE 898$ ELSE
838$! 899$!
839$! Check To See If We Are To Compile With Debugger Information. 900$! Check To See If We Are To Compile With Debugger Information.
@@ -844,6 +905,7 @@ $!
844$! Compile With Debugger Information. 905$! Compile With Debugger Information.
845$! 906$!
846$ DEBUGGER = "DEBUG" 907$ DEBUGGER = "DEBUG"
908$ LINKMAP = "MAP"
847$ TRACEBACK = "TRACEBACK" 909$ TRACEBACK = "TRACEBACK"
848$ GCC_OPTIMIZE = "NOOPTIMIZE" 910$ GCC_OPTIMIZE = "NOOPTIMIZE"
849$ CC_OPTIMIZE = "NOOPTIMIZE" 911$ CC_OPTIMIZE = "NOOPTIMIZE"
@@ -852,7 +914,7 @@ $ WRITE SYS$OUTPUT "Debugger Information Will Be Produced During Compile."
852$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization." 914$ WRITE SYS$OUTPUT "Compiling Without Compiler Optimization."
853$ ELSE 915$ ELSE
854$! 916$!
855$! They Entered An Invalid Option.. 917$! They Entered An Invalid Option.
856$! 918$!
857$ WRITE SYS$OUTPUT "" 919$ WRITE SYS$OUTPUT ""
858$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:" 920$ WRITE SYS$OUTPUT "The Option ",P2," Is Invalid. The Valid Options Are:"
@@ -907,6 +969,60 @@ $! End The P5 Check.
907$! 969$!
908$ ENDIF 970$ ENDIF
909$! 971$!
972$! Check P7 (POINTER_SIZE).
973$!
974$ IF (P7 .NES. "") .AND. (ARCH .NES. "VAX")
975$ THEN
976$!
977$ IF (P7 .EQS. "32")
978$ THEN
979$ POINTER_SIZE = " /POINTER_SIZE=32"
980$ ELSE
981$ POINTER_SIZE = F$EDIT( P7, "COLLAPSE, UPCASE")
982$ IF ((POINTER_SIZE .EQS. "64") .OR. -
983 (POINTER_SIZE .EQS. "64=") .OR. -
984 (POINTER_SIZE .EQS. "64=ARGV"))
985$ THEN
986$ ARCHD = ARCH+ "_64"
987$ LIB32 = ""
988$ POINTER_SIZE = " /POINTER_SIZE=64"
989$ ELSE
990$!
991$! Tell The User Entered An Invalid Option.
992$!
993$ WRITE SYS$OUTPUT ""
994$ WRITE SYS$OUTPUT "The Option ", P7, -
995 " Is Invalid. The Valid Options Are:"
996$ WRITE SYS$OUTPUT ""
997$ WRITE SYS$OUTPUT -
998 " """" : Compile with default (short) pointers."
999$ WRITE SYS$OUTPUT -
1000 " 32 : Compile with 32-bit (short) pointers."
1001$ WRITE SYS$OUTPUT -
1002 " 64 : Compile with 64-bit (long) pointers (auto ARGV)."
1003$ WRITE SYS$OUTPUT -
1004 " 64= : Compile with 64-bit (long) pointers (no ARGV)."
1005$ WRITE SYS$OUTPUT -
1006 " 64=ARGV : Compile with 64-bit (long) pointers (ARGV)."
1007$ WRITE SYS$OUTPUT ""
1008$!
1009$! Time To EXIT.
1010$!
1011$ EXIT
1012$!
1013$ ENDIF
1014$!
1015$ ENDIF
1016$!
1017$! End The P7 (POINTER_SIZE) Check.
1018$!
1019$ ENDIF
1020$!
1021$! Set basic C compiler /INCLUDE directories.
1022$!
1023$ CC_INCLUDES = "SYS$DISK:[.''ARCHD'],SYS$DISK:[],SYS$DISK:[-],"+ -
1024 "SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1]"
1025$!
910$! Check To See If P3 Is Blank. 1026$! Check To See If P3 Is Blank.
911$! 1027$!
912$ IF (P3.EQS."") 1028$ IF (P3.EQS."")
@@ -1007,11 +1123,64 @@ $ CCDEFS = "TCPIP_TYPE_''P4',DSO_VMS"
1007$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS 1123$ IF F$TYPE(USER_CCDEFS) .NES. "" THEN CCDEFS = CCDEFS + "," + USER_CCDEFS
1008$ CCEXTRAFLAGS = "" 1124$ CCEXTRAFLAGS = ""
1009$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS 1125$ IF F$TYPE(USER_CCFLAGS) .NES. "" THEN CCEXTRAFLAGS = USER_CCFLAGS
1010$ CCDISABLEWARNINGS = "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR" 1126$ CCDISABLEWARNINGS = "" !!! "LONGLONGTYPE,LONGLONGSUFX,FOUNDCR"
1011$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN - 1127$ IF F$TYPE(USER_CCDISABLEWARNINGS) .NES. "" THEN -
1012 CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS 1128 CCDISABLEWARNINGS = CCDISABLEWARNINGS + "," + USER_CCDISABLEWARNINGS
1013$! 1129$!
1014$! Check To See If The User Entered A Valid Paramter. 1130$! Check To See If We Have A ZLIB Option.
1131$!
1132$ ZLIB = P8
1133$ IF (ZLIB .NES. "")
1134$ THEN
1135$!
1136$! Check for expected ZLIB files.
1137$!
1138$ err = 0
1139$ file1 = f$parse( "zlib.h", ZLIB, , , "SYNTAX_ONLY")
1140$ if (f$search( file1) .eqs. "")
1141$ then
1142$ WRITE SYS$OUTPUT ""
1143$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
1144$ WRITE SYS$OUTPUT " Can't find header: ''file1'"
1145$ err = 1
1146$ endif
1147$ file1 = f$parse( "A.;", ZLIB)- "A.;"
1148$!
1149$ file2 = f$parse( ZLIB, "libz.olb", , , "SYNTAX_ONLY")
1150$ if (f$search( file2) .eqs. "")
1151$ then
1152$ if (err .eq. 0)
1153$ then
1154$ WRITE SYS$OUTPUT ""
1155$ WRITE SYS$OUTPUT "The Option ", ZLIB, " Is Invalid."
1156$ endif
1157$ WRITE SYS$OUTPUT " Can't find library: ''file2'"
1158$ WRITE SYS$OUTPUT ""
1159$ err = err+ 2
1160$ endif
1161$ if (err .eq. 1)
1162$ then
1163$ WRITE SYS$OUTPUT ""
1164$ endif
1165$!
1166$ if (err .ne. 0)
1167$ then
1168$ EXIT
1169$ endif
1170$!
1171$ CCDEFS = """ZLIB=1"", "+ CCDEFS
1172$ CC_INCLUDES = CC_INCLUDES+ ", "+ file1
1173$ ZLIB_LIB = ", ''file2' /library"
1174$!
1175$! Print info
1176$!
1177$ WRITE SYS$OUTPUT "ZLIB library spec: ", file2
1178$!
1179$! End The ZLIB Check.
1180$!
1181$ ENDIF
1182$!
1183$! Check To See If The User Entered A Valid Parameter.
1015$! 1184$!
1016$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC") 1185$ IF (P3.EQS."VAXC").OR.(P3.EQS."DECC").OR.(P3.EQS."GNUC")
1017$ THEN 1186$ THEN
@@ -1034,14 +1203,14 @@ $!
1034$ CC = "CC" 1203$ CC = "CC"
1035$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" - 1204$ IF ARCH.EQS."VAX" .AND. F$TRNLNM("DECC$CC_DEFAULT").NES."/DECC" -
1036 THEN CC = "CC/DECC" 1205 THEN CC = "CC/DECC"
1037$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/STANDARD=ANSI89" + - 1206$ CC = CC + " /''CC_OPTIMIZE' /''DEBUGGER' /STANDARD=RELAXED"+ -
1038 "/NOLIST/PREFIX=ALL" + - 1207 "''POINTER_SIZE' /NOLIST /PREFIX=ALL" + -
1039 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[._''ARCH'],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1])" + - 1208 " /INCLUDE=(''CC_INCLUDES')"+ -
1040 CCEXTRAFLAGS 1209 CCEXTRAFLAGS
1041$! 1210$!
1042$! Define The Linker Options File Name. 1211$! Define The Linker Options File Name.
1043$! 1212$!
1044$ OPT_FILE = "''EXE_DIR'VAX_DECC_OPTIONS.OPT" 1213$ OPT_FILE = "VAX_DECC_OPTIONS.OPT"
1045$! 1214$!
1046$! End DECC Check. 1215$! End DECC Check.
1047$! 1216$!
@@ -1070,7 +1239,7 @@ $ EXIT
1070$ ENDIF 1239$ ENDIF
1071$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC" 1240$ IF F$TRNLNM("DECC$CC_DEFAULT").EQS."/DECC" THEN CC = "CC/VAXC"
1072$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 1241$ CC = CC + "/''CC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
1073 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[._''ARCH'],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1])" + - 1242 "/INCLUDE=(''CC_INCLUDES')"+ -
1074 CCEXTRAFLAGS 1243 CCEXTRAFLAGS
1075$ CCDEFS = """VAXC""," + CCDEFS 1244$ CCDEFS = """VAXC""," + CCDEFS
1076$! 1245$!
@@ -1080,7 +1249,7 @@ $ DEFINE/NOLOG SYS SYS$COMMON:[SYSLIB]
1080$! 1249$!
1081$! Define The Linker Options File Name. 1250$! Define The Linker Options File Name.
1082$! 1251$!
1083$ OPT_FILE = "''EXE_DIR'VAX_VAXC_OPTIONS.OPT" 1252$ OPT_FILE = "VAX_VAXC_OPTIONS.OPT"
1084$! 1253$!
1085$! End VAXC Check 1254$! End VAXC Check
1086$! 1255$!
@@ -1102,12 +1271,12 @@ $!
1102$! Use GNU C... 1271$! Use GNU C...
1103$! 1272$!
1104$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + - 1273$ CC = "GCC/NOCASE_HACK/''GCC_OPTIMIZE'/''DEBUGGER'/NOLIST" + -
1105 "/INCLUDE=(SYS$DISK:[],SYS$DISK:[._''ARCH'],SYS$DISK:[-],SYS$DISK:[.ENGINE.VENDOR_DEFNS],SYS$DISK:[.EVP],SYS$DISK:[.ASN1])" + - 1274 "/INCLUDE=(''CC_INCLUDES')"+ -
1106 CCEXTRAFLAGS 1275 CCEXTRAFLAGS
1107$! 1276$!
1108$! Define The Linker Options File Name. 1277$! Define The Linker Options File Name.
1109$! 1278$!
1110$ OPT_FILE = "''EXE_DIR'VAX_GNUC_OPTIONS.OPT" 1279$ OPT_FILE = "VAX_GNUC_OPTIONS.OPT"
1111$! 1280$!
1112$! End The GNU C Check. 1281$! End The GNU C Check.
1113$! 1282$!
@@ -1128,22 +1297,24 @@ $ CC6DISABLEWARNINGS = "MIXLINKAGE"
1128$ ELSE 1297$ ELSE
1129$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID" 1298$ CC4DISABLEWARNINGS = CCDISABLEWARNINGS + ",DOLLARID"
1130$ CC6DISABLEWARNINGS = CCDISABLEWARNINGS + ",MIXLINKAGE" 1299$ CC6DISABLEWARNINGS = CCDISABLEWARNINGS + ",MIXLINKAGE"
1131$ CCDISABLEWARNINGS = "/WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))" 1300$ CCDISABLEWARNINGS = " /WARNING=(DISABLE=(" + CCDISABLEWARNINGS + "))"
1132$ ENDIF 1301$ ENDIF
1133$ CC4DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))" 1302$ CC4DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC4DISABLEWARNINGS + "))"
1134$ CC6DISABLEWARNINGS = "/WARNING=(DISABLE=(" + CC6DISABLEWARNINGS + "))" 1303$ CC6DISABLEWARNINGS = " /WARNING=(DISABLE=(" + CC6DISABLEWARNINGS + "))"
1135$ ELSE 1304$ ELSE
1136$ CCDISABLEWARNINGS = "" 1305$ CCDISABLEWARNINGS = ""
1137$ CC4DISABLEWARNINGS = "" 1306$ CC4DISABLEWARNINGS = ""
1138$ CC6DISABLEWARNINGS = "" 1307$ CC6DISABLEWARNINGS = ""
1139$ ENDIF 1308$ ENDIF
1140$ CC3 = CC + "/DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS 1309$ CC3 = CC + " /DEFINE=(" + CCDEFS + ISSEVEN + ")" + CCDISABLEWARNINGS
1141$ CC = CC + "/DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS 1310$ CC = CC + " /DEFINE=(" + CCDEFS + ")" + CCDISABLEWARNINGS
1142$ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG" 1311$ IF ARCH .EQS. "VAX" .AND. COMPILER .EQS. "DECC" .AND. P2 .NES. "DEBUG"
1143$ THEN 1312$ THEN
1144$ CC5 = CC + "/OPTIMIZE=NODISJOINT" 1313$ CC5 = CC + " /OPTIMIZE=NODISJOINT"
1314$ CC5_DIFFERENT = 1
1145$ ELSE 1315$ ELSE
1146$ CC5 = CC + "/NOOPTIMIZE" 1316$ CC5 = CC
1317$ CC5_DIFFERENT = 0
1147$ ENDIF 1318$ ENDIF
1148$ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS 1319$ CC4 = CC - CCDISABLEWARNINGS + CC4DISABLEWARNINGS
1149$ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS 1320$ CC6 = CC - CCDISABLEWARNINGS + CC6DISABLEWARNINGS
@@ -1196,7 +1367,7 @@ $ THEN
1196$! 1367$!
1197$! Set the library to use SOCKETSHR 1368$! Set the library to use SOCKETSHR
1198$! 1369$!
1199$ TCPIP_LIB = "SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT/OPT" 1370$ TCPIP_LIB = ",SYS$DISK:[-.VMS]SOCKETSHR_SHR.OPT /OPTIONS"
1200$! 1371$!
1201$! Done with SOCKETSHR 1372$! Done with SOCKETSHR
1202$! 1373$!
@@ -1222,13 +1393,13 @@ $ THEN
1222$! 1393$!
1223$! Set the library to use UCX. 1394$! Set the library to use UCX.
1224$! 1395$!
1225$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT/OPT" 1396$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC.OPT /OPTIONS"
1226$ IF F$TRNLNM("UCX$IPC_SHR") .NES. "" 1397$ IF F$TRNLNM("UCX$IPC_SHR") .NES. ""
1227$ THEN 1398$ THEN
1228$ TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT/OPT" 1399$ TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_DECC_LOG.OPT /OPTIONS"
1229$ ELSE 1400$ ELSE
1230$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN - 1401$ IF COMPILER .NES. "DECC" .AND. ARCH .EQS. "VAX" THEN -
1231 TCPIP_LIB = "SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT/OPT" 1402 TCPIP_LIB = ",SYS$DISK:[-.VMS]UCX_SHR_VAXC.OPT /OPTIONS"
1232$ ENDIF 1403$ ENDIF
1233$! 1404$!
1234$! Done with UCX 1405$! Done with UCX
@@ -1242,7 +1413,7 @@ $ THEN
1242$! 1413$!
1243$! Set the library to use TCPIP (post UCX). 1414$! Set the library to use TCPIP (post UCX).
1244$! 1415$!
1245$ TCPIP_LIB = "SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT/OPT" 1416$ TCPIP_LIB = ",SYS$DISK:[-.VMS]TCPIP_SHR_DECC.OPT /OPTIONS"
1246$! 1417$!
1247$! Done with TCPIP 1418$! Done with TCPIP
1248$! 1419$!
@@ -1263,7 +1434,7 @@ $ ENDIF
1263$! 1434$!
1264$! Print info 1435$! Print info
1265$! 1436$!
1266$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB 1437$ WRITE SYS$OUTPUT "TCP/IP library spec: ", TCPIP_LIB- ","
1267$! 1438$!
1268$! Else The User Entered An Invalid Argument. 1439$! Else The User Entered An Invalid Argument.
1269$! 1440$!
diff --git a/src/lib/libcrypto/dso/dso_vms.c b/src/lib/libcrypto/dso/dso_vms.c
index 321512772a..eee20d14f1 100644
--- a/src/lib/libcrypto/dso/dso_vms.c
+++ b/src/lib/libcrypto/dso/dso_vms.c
@@ -68,8 +68,20 @@
68#include <stsdef.h> 68#include <stsdef.h>
69#include <descrip.h> 69#include <descrip.h>
70#include <starlet.h> 70#include <starlet.h>
71#include "vms_rms.h"
71#endif 72#endif
72 73
74/* Some compiler options may mask the declaration of "_malloc32". */
75#if __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE
76# if __INITIAL_POINTER_SIZE == 64
77# pragma pointer_size save
78# pragma pointer_size 32
79 void * _malloc32 (__size_t);
80# pragma pointer_size restore
81# endif /* __INITIAL_POINTER_SIZE == 64 */
82#endif /* __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE */
83
84
73#ifndef OPENSSL_SYS_VMS 85#ifndef OPENSSL_SYS_VMS
74DSO_METHOD *DSO_METHOD_vms(void) 86DSO_METHOD *DSO_METHOD_vms(void)
75 { 87 {
@@ -121,14 +133,13 @@ typedef struct dso_internal_st
121 /* This should contain the name only, no directory, 133 /* This should contain the name only, no directory,
122 * no extension, nothing but a name. */ 134 * no extension, nothing but a name. */
123 struct dsc$descriptor_s filename_dsc; 135 struct dsc$descriptor_s filename_dsc;
124 char filename[FILENAME_MAX+1]; 136 char filename[ NAMX_MAXRSS+ 1];
125 /* This contains whatever is not in filename, if needed. 137 /* This contains whatever is not in filename, if needed.
126 * Normally not defined. */ 138 * Normally not defined. */
127 struct dsc$descriptor_s imagename_dsc; 139 struct dsc$descriptor_s imagename_dsc;
128 char imagename[FILENAME_MAX+1]; 140 char imagename[ NAMX_MAXRSS+ 1];
129 } DSO_VMS_INTERNAL; 141 } DSO_VMS_INTERNAL;
130 142
131
132DSO_METHOD *DSO_METHOD_vms(void) 143DSO_METHOD *DSO_METHOD_vms(void)
133 { 144 {
134 return(&dso_meth_vms); 145 return(&dso_meth_vms);
@@ -139,7 +150,22 @@ static int vms_load(DSO *dso)
139 void *ptr = NULL; 150 void *ptr = NULL;
140 /* See applicable comments in dso_dl.c */ 151 /* See applicable comments in dso_dl.c */
141 char *filename = DSO_convert_filename(dso, NULL); 152 char *filename = DSO_convert_filename(dso, NULL);
142 DSO_VMS_INTERNAL *p; 153
154/* Ensure 32-bit pointer for "p", and appropriate malloc() function. */
155#if __INITIAL_POINTER_SIZE == 64
156# define DSO_MALLOC _malloc32
157# pragma pointer_size save
158# pragma pointer_size 32
159#else /* __INITIAL_POINTER_SIZE == 64 */
160# define DSO_MALLOC OPENSSL_malloc
161#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
162
163 DSO_VMS_INTERNAL *p = NULL;
164
165#if __INITIAL_POINTER_SIZE == 64
166# pragma pointer_size restore
167#endif /* __INITIAL_POINTER_SIZE == 64 */
168
143 const char *sp1, *sp2; /* Search result */ 169 const char *sp1, *sp2; /* Search result */
144 170
145 if(filename == NULL) 171 if(filename == NULL)
@@ -192,7 +218,7 @@ static int vms_load(DSO *dso)
192 goto err; 218 goto err;
193 } 219 }
194 220
195 p = (DSO_VMS_INTERNAL *)OPENSSL_malloc(sizeof(DSO_VMS_INTERNAL)); 221 p = DSO_MALLOC(sizeof(DSO_VMS_INTERNAL));
196 if(p == NULL) 222 if(p == NULL)
197 { 223 {
198 DSOerr(DSO_F_VMS_LOAD,ERR_R_MALLOC_FAILURE); 224 DSOerr(DSO_F_VMS_LOAD,ERR_R_MALLOC_FAILURE);
@@ -290,18 +316,38 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym)
290 int flags = 0; 316 int flags = 0;
291#endif 317#endif
292 struct dsc$descriptor_s symname_dsc; 318 struct dsc$descriptor_s symname_dsc;
293 *sym = NULL;
294 319
295 symname_dsc.dsc$w_length = strlen(symname); 320/* Arrange 32-bit pointer to (copied) string storage, if needed. */
296 symname_dsc.dsc$b_dtype = DSC$K_DTYPE_T; 321#if __INITIAL_POINTER_SIZE == 64
297 symname_dsc.dsc$b_class = DSC$K_CLASS_S; 322# define SYMNAME symname_32p
298 symname_dsc.dsc$a_pointer = (char *)symname; /* The cast is needed */ 323# pragma pointer_size save
324# pragma pointer_size 32
325 char *symname_32p;
326# pragma pointer_size restore
327 char symname_32[ NAMX_MAXRSS+ 1];
328#else /* __INITIAL_POINTER_SIZE == 64 */
329# define SYMNAME ((char *) symname)
330#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
331
332 *sym = NULL;
299 333
300 if((dso == NULL) || (symname == NULL)) 334 if((dso == NULL) || (symname == NULL))
301 { 335 {
302 DSOerr(DSO_F_VMS_BIND_SYM,ERR_R_PASSED_NULL_PARAMETER); 336 DSOerr(DSO_F_VMS_BIND_SYM,ERR_R_PASSED_NULL_PARAMETER);
303 return; 337 return;
304 } 338 }
339
340#if __INITIAL_POINTER_SIZE == 64
341 /* Copy the symbol name to storage with a 32-bit pointer. */
342 symname_32p = symname_32;
343 strcpy( symname_32p, symname);
344#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
345
346 symname_dsc.dsc$w_length = strlen(SYMNAME);
347 symname_dsc.dsc$b_dtype = DSC$K_DTYPE_T;
348 symname_dsc.dsc$b_class = DSC$K_CLASS_S;
349 symname_dsc.dsc$a_pointer = SYMNAME;
350
305 if(sk_void_num(dso->meth_data) < 1) 351 if(sk_void_num(dso->meth_data) < 1)
306 { 352 {
307 DSOerr(DSO_F_VMS_BIND_SYM,DSO_R_STACK_ERROR); 353 DSOerr(DSO_F_VMS_BIND_SYM,DSO_R_STACK_ERROR);
@@ -372,64 +418,60 @@ static DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname)
372 return sym; 418 return sym;
373 } 419 }
374 420
421
375static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2) 422static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2)
376 { 423 {
377 int status; 424 int status;
378 int filespec1len, filespec2len; 425 int filespec1len, filespec2len;
379 struct FAB fab; 426 struct FAB fab;
380#ifdef NAML$C_MAXRSS 427 struct NAMX_STRUCT nam;
381 struct NAML nam; 428 char esa[ NAMX_MAXRSS+ 1];
382 char esa[NAML$C_MAXRSS];
383#else
384 struct NAM nam;
385 char esa[NAM$C_MAXRSS];
386#endif
387 char *merged; 429 char *merged;
388 430
431/* Arrange 32-bit pointer to (copied) string storage, if needed. */
432#if __INITIAL_POINTER_SIZE == 64
433# define FILESPEC1 filespec1_32p;
434# define FILESPEC2 filespec2_32p;
435# pragma pointer_size save
436# pragma pointer_size 32
437 char *filespec1_32p;
438 char *filespec2_32p;
439# pragma pointer_size restore
440 char filespec1_32[ NAMX_MAXRSS+ 1];
441 char filespec2_32[ NAMX_MAXRSS+ 1];
442#else /* __INITIAL_POINTER_SIZE == 64 */
443# define FILESPEC1 ((char *) filespec1)
444# define FILESPEC2 ((char *) filespec2)
445#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
446
389 if (!filespec1) filespec1 = ""; 447 if (!filespec1) filespec1 = "";
390 if (!filespec2) filespec2 = ""; 448 if (!filespec2) filespec2 = "";
391 filespec1len = strlen(filespec1); 449 filespec1len = strlen(filespec1);
392 filespec2len = strlen(filespec2); 450 filespec2len = strlen(filespec2);
393 451
452#if __INITIAL_POINTER_SIZE == 64
453 /* Copy the file names to storage with a 32-bit pointer. */
454 filespec1_32p = filespec1_32;
455 filespec2_32p = filespec2_32;
456 strcpy( filespec1_32p, filespec1);
457 strcpy( filespec2_32p, filespec2);
458#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
459
394 fab = cc$rms_fab; 460 fab = cc$rms_fab;
395#ifdef NAML$C_MAXRSS 461 nam = CC_RMS_NAMX;
396 nam = cc$rms_naml;
397#else
398 nam = cc$rms_nam;
399#endif
400 462
401 fab.fab$l_fna = (char *)filespec1; 463 FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNA = FILESPEC1;
402 fab.fab$b_fns = filespec1len; 464 FAB_OR_NAML( fab, nam).FAB_OR_NAML_FNS = filespec1len;
403 fab.fab$l_dna = (char *)filespec2; 465 FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNA = FILESPEC2;
404 fab.fab$b_dns = filespec2len; 466 FAB_OR_NAML( fab, nam).FAB_OR_NAML_DNS = filespec2len;
405#ifdef NAML$C_MAXRSS 467 NAMX_DNA_FNA_SET( fab)
406 if (filespec1len > NAM$C_MAXRSS) 468
407 { 469 nam.NAMX_ESA = esa;
408 fab.fab$l_fna = 0; 470 nam.NAMX_ESS = NAMX_MAXRSS;
409 fab.fab$b_fns = 0; 471 nam.NAMX_NOP = NAM$M_SYNCHK | NAM$M_PWD;
410 nam.naml$l_long_filename = (char *)filespec1; 472 SET_NAMX_NO_SHORT_UPCASE( nam);
411 nam.naml$l_long_filename_size = filespec1len; 473
412 } 474 fab.FAB_NAMX = &nam;
413 if (filespec2len > NAM$C_MAXRSS)
414 {
415 fab.fab$l_dna = 0;
416 fab.fab$b_dns = 0;
417 nam.naml$l_long_defname = (char *)filespec2;
418 nam.naml$l_long_defname_size = filespec2len;
419 }
420 nam.naml$l_esa = esa;
421 nam.naml$b_ess = NAM$C_MAXRSS;
422 nam.naml$l_long_expand = esa;
423 nam.naml$l_long_expand_alloc = sizeof(esa);
424 nam.naml$b_nop = NAM$M_SYNCHK | NAM$M_PWD;
425 nam.naml$v_no_short_upcase = 1;
426 fab.fab$l_naml = &nam;
427#else
428 nam.nam$l_esa = esa;
429 nam.nam$b_ess = NAM$C_MAXRSS;
430 nam.nam$b_nop = NAM$M_SYNCHK | NAM$M_PWD;
431 fab.fab$l_nam = &nam;
432#endif
433 475
434 status = sys$parse(&fab, 0, 0); 476 status = sys$parse(&fab, 0, 0);
435 477
@@ -460,33 +502,12 @@ static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2)
460 } 502 }
461 return(NULL); 503 return(NULL);
462 } 504 }
463#ifdef NAML$C_MAXRSS 505
464 if (nam.naml$l_long_expand_size) 506 merged = OPENSSL_malloc( nam.NAMX_ESL+ 1);
465 {
466 merged = OPENSSL_malloc(nam.naml$l_long_expand_size + 1);
467 if(!merged)
468 goto malloc_err;
469 strncpy(merged, nam.naml$l_long_expand,
470 nam.naml$l_long_expand_size);
471 merged[nam.naml$l_long_expand_size] = '\0';
472 }
473 else
474 {
475 merged = OPENSSL_malloc(nam.naml$b_esl + 1);
476 if(!merged)
477 goto malloc_err;
478 strncpy(merged, nam.naml$l_esa,
479 nam.naml$b_esl);
480 merged[nam.naml$b_esl] = '\0';
481 }
482#else
483 merged = OPENSSL_malloc(nam.nam$b_esl + 1);
484 if(!merged) 507 if(!merged)
485 goto malloc_err; 508 goto malloc_err;
486 strncpy(merged, nam.nam$l_esa, 509 strncpy( merged, nam.NAMX_ESA, nam.NAMX_ESL);
487 nam.nam$b_esl); 510 merged[ nam.NAMX_ESL] = '\0';
488 merged[nam.nam$b_esl] = '\0';
489#endif
490 return(merged); 511 return(merged);
491 malloc_err: 512 malloc_err:
492 DSOerr(DSO_F_VMS_MERGER, 513 DSOerr(DSO_F_VMS_MERGER,
diff --git a/src/lib/libcrypto/evp/evp_test.c b/src/lib/libcrypto/evp/evp_test.c
index 902efac975..55c7cdfdcc 100644
--- a/src/lib/libcrypto/evp/evp_test.c
+++ b/src/lib/libcrypto/evp/evp_test.c
@@ -435,6 +435,7 @@ int main(int argc,char **argv)
435 EXIT(3); 435 EXIT(3);
436 } 436 }
437 } 437 }
438 fclose(f);
438 439
439#ifndef OPENSSL_NO_ENGINE 440#ifndef OPENSSL_NO_ENGINE
440 ENGINE_cleanup(); 441 ENGINE_cleanup();
diff --git a/src/lib/libcrypto/install-crypto.com b/src/lib/libcrypto/install-crypto.com
new file mode 100755
index 0000000000..85b3d583cf
--- /dev/null
+++ b/src/lib/libcrypto/install-crypto.com
@@ -0,0 +1,196 @@
1$! INSTALL.COM -- Installs the files in a given directory tree
2$!
3$! Author: Richard Levitte <richard@levitte.org>
4$! Time of creation: 22-MAY-1998 10:13
5$!
6$! Changes by Zoltan Arpadffy <zoli@polarhome.com>
7$!
8$! P1 root of the directory tree
9$! P2 "64" for 64-bit pointers.
10$!
11$!
12$! Announce/identify.
13$!
14$ proc = f$environment( "procedure")
15$ write sys$output "@@@ "+ -
16 f$parse( proc, , , "name")+ f$parse( proc, , , "type")
17$!
18$ on error then goto tidy
19$ on control_c then goto tidy
20$!
21$ if (p1 .eqs. "")
22$ then
23$ write sys$output "First argument missing."
24$ write sys$output -
25 "It should be the directory where you want things installed."
26$ exit
27$ endif
28$!
29$ if (f$getsyi( "cpu") .lt. 128)
30$ then
31$ arch = "VAX"
32$ else
33$ arch = f$edit( f$getsyi( "arch_name"), "upcase")
34$ if (arch .eqs. "") then arch = "UNK"
35$ endif
36$!
37$ archd = arch
38$ lib32 = "32"
39$ shr = "_SHR32"
40$!
41$ if (p2 .nes. "")
42$ then
43$ if (p2 .eqs. "64")
44$ then
45$ archd = arch+ "_64"
46$ lib32 = ""
47$ shr = "_SHR"
48$ else
49$ if (p2 .nes. "32")
50$ then
51$ write sys$output "Second argument invalid."
52$ write sys$output "It should be "32", "64", or nothing."
53$ exit
54$ endif
55$ endif
56$ endif
57$!
58$ root = f$parse( p1, "[]A.;0", , , "syntax_only, no_conceal") - "A.;0"
59$ root_dev = f$parse( root, , , "device", "syntax_only")
60$ root_dir = f$parse( root, , , "directory", "syntax_only") - -
61 "[000000." - "][" - "[" - "]"
62$ root = root_dev + "[" + root_dir
63$!
64$ define /nolog wrk_sslroot 'root'.] /trans=conc
65$ define /nolog wrk_sslinclude wrk_sslroot:[include]
66$ define /nolog wrk_sslxlib wrk_sslroot:['arch'_lib]
67$!
68$ if f$parse("wrk_sslroot:[000000]") .eqs. "" then -
69 create /directory /log wrk_sslroot:[000000]
70$ if f$parse("wrk_sslinclude:") .eqs. "" then -
71 create /directory /log wrk_sslinclude:
72$ if f$parse("wrk_sslxlib:") .eqs. "" then -
73 create /directory /log wrk_sslxlib:
74$!
75$ sdirs := , -
76 'archd', -
77 objects, -
78 md2, md4, md5, sha, mdc2, hmac, ripemd, whrlpool, -
79 des, aes, rc2, rc4, rc5, idea, bf, cast, camellia, seed, -
80 bn, ec, rsa, dsa, ecdsa, dh, ecdh, dso, engine, -
81 buffer, bio, stack, lhash, rand, err, -
82 evp, asn1, pem, x509, x509v3, conf, txt_db, pkcs7, pkcs12, comp, ocsp, -
83 ui, krb5, -
84 store, cms, pqueue, ts, jpake
85$!
86$ exheader_ := crypto.h, opensslv.h, ebcdic.h, symhacks.h, ossl_typ.h
87$ exheader_'archd' := opensslconf.h
88$ exheader_objects := objects.h, obj_mac.h
89$ exheader_md2 := md2.h
90$ exheader_md4 := md4.h
91$ exheader_md5 := md5.h
92$ exheader_sha := sha.h
93$ exheader_mdc2 := mdc2.h
94$ exheader_hmac := hmac.h
95$ exheader_ripemd := ripemd.h
96$ exheader_whrlpool := whrlpool.h
97$ exheader_des := des.h, des_old.h
98$ exheader_aes := aes.h
99$ exheader_rc2 := rc2.h
100$ exheader_rc4 := rc4.h
101$ exheader_rc5 := rc5.h
102$ exheader_idea := idea.h
103$ exheader_bf := blowfish.h
104$ exheader_cast := cast.h
105$ exheader_camellia := camellia.h
106$ exheader_seed := seed.h
107$ exheader_modes := modes.h
108$ exheader_bn := bn.h
109$ exheader_ec := ec.h
110$ exheader_rsa := rsa.h
111$ exheader_dsa := dsa.h
112$ exheader_ecdsa := ecdsa.h
113$ exheader_dh := dh.h
114$ exheader_ecdh := ecdh.h
115$ exheader_dso := dso.h
116$ exheader_engine := engine.h
117$ exheader_buffer := buffer.h
118$ exheader_bio := bio.h
119$ exheader_stack := stack.h, safestack.h
120$ exheader_lhash := lhash.h
121$ exheader_rand := rand.h
122$ exheader_err := err.h
123$ exheader_evp := evp.h
124$ exheader_asn1 := asn1.h, asn1_mac.h, asn1t.h
125$ exheader_pem := pem.h, pem2.h
126$ exheader_x509 := x509.h, x509_vfy.h
127$ exheader_x509v3 := x509v3.h
128$ exheader_conf := conf.h, conf_api.h
129$ exheader_txt_db := txt_db.h
130$ exheader_pkcs7 := pkcs7.h
131$ exheader_pkcs12 := pkcs12.h
132$ exheader_comp := comp.h
133$ exheader_ocsp := ocsp.h
134$ exheader_ui := ui.h, ui_compat.h
135$ exheader_krb5 := krb5_asn.h
136$! exheader_store := store.h, str_compat.h
137$ exheader_store := store.h
138$ exheader_cms := cms.h
139$ exheader_pqueue := pqueue.h
140$ exheader_ts := ts.h
141$ exheader_jpake := jpake.h
142$ libs := ssl_libcrypto
143$!
144$ exe_dir := [-.'archd'.exe.crypto]
145$!
146$! Header files.
147$!
148$ i = 0
149$ loop_sdirs:
150$ d = f$edit( f$element( i, ",", sdirs), "trim")
151$ i = i + 1
152$ if d .eqs. "," then goto loop_sdirs_end
153$ tmp = exheader_'d'
154$ if (d .nes. "") then d = "."+ d
155$ copy /protection = w:re ['d']'tmp' wrk_sslinclude: /log
156$ goto loop_sdirs
157$ loop_sdirs_end:
158$!
159$! Object libraries, shareable images.
160$!
161$ i = 0
162$ loop_lib:
163$ e = f$edit( f$element( i, ",", libs), "trim")
164$ i = i + 1
165$ if e .eqs. "," then goto loop_lib_end
166$ set noon
167$ file = exe_dir+ e+ lib32+ ".olb"
168$ if f$search( file) .nes. ""
169$ then
170$ copy /protection = w:re 'file' wrk_sslxlib: /log
171$ endif
172$!
173$ file = exe_dir+ e+ shr+ ".exe"
174$ if f$search( file) .nes. ""
175$ then
176$ copy /protection = w:re 'file' wrk_sslxlib: /log
177$ endif
178$ set on
179$ goto loop_lib
180$ loop_lib_end:
181$!
182$ tidy:
183$!
184$ call deass wrk_sslroot
185$ call deass wrk_sslinclude
186$ call deass wrk_sslxlib
187$!
188$ exit
189$!
190$ deass: subroutine
191$ if (f$trnlnm( p1, "LNM$PROCESS") .nes. "")
192$ then
193$ deassign /process 'p1'
194$ endif
195$ endsubroutine
196$!
diff --git a/src/lib/libcrypto/rand/md_rand.c b/src/lib/libcrypto/rand/md_rand.c
index 88088ce73c..b2f04ff13e 100644
--- a/src/lib/libcrypto/rand/md_rand.c
+++ b/src/lib/libcrypto/rand/md_rand.c
@@ -476,11 +476,14 @@ static int ssleay_rand_bytes(unsigned char *buf, int num)
476 MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c)); 476 MD_Update(&m,(unsigned char *)&(md_c[0]),sizeof(md_c));
477 477
478#ifndef PURIFY /* purify complains */ 478#ifndef PURIFY /* purify complains */
479 /* DO NOT REMOVE THE FOLLOWING CALL TO MD_Update()! */ 479 /* The following line uses the supplied buffer as a small
480 * source of entropy: since this buffer is often uninitialised
481 * it may cause programs such as purify or valgrind to
482 * complain. So for those builds it is not used: the removal
483 * of such a small source of entropy has negligible impact on
484 * security.
485 */
480 MD_Update(&m,buf,j); 486 MD_Update(&m,buf,j);
481 /* We know that line may cause programs such as
482 purify and valgrind to complain about use of
483 uninitialized data. */
484#endif 487#endif
485 488
486 k=(st_idx+MD_DIGEST_LENGTH/2)-st_num; 489 k=(st_idx+MD_DIGEST_LENGTH/2)-st_num;
diff --git a/src/lib/libcrypto/rand/rand_vms.c b/src/lib/libcrypto/rand/rand_vms.c
index 1267a3acae..0bfd8ff7e4 100644
--- a/src/lib/libcrypto/rand/rand_vms.c
+++ b/src/lib/libcrypto/rand/rand_vms.c
@@ -69,6 +69,17 @@
69# pragma message disable DOLLARID 69# pragma message disable DOLLARID
70#endif 70#endif
71 71
72/* Use 32-bit pointers almost everywhere. Define the type to which to
73 * cast a pointer passed to an external function.
74 */
75#if __INITIAL_POINTER_SIZE == 64
76# define PTR_T __void_ptr64
77# pragma pointer_size save
78# pragma pointer_size 32
79#else /* __INITIAL_POINTER_SIZE == 64 */
80# define PTR_T void *
81#endif /* __INITIAL_POINTER_SIZE == 64 [else] */
82
72static struct items_data_st 83static struct items_data_st
73 { 84 {
74 short length, code; /* length is amount of bytes */ 85 short length, code; /* length is amount of bytes */
@@ -125,11 +136,12 @@ int RAND_poll(void)
125 { 136 {
126 if (status == SS$_NORMAL) 137 if (status == SS$_NORMAL)
127 { 138 {
128 RAND_add(data_buffer, total_length, total_length/2); 139 RAND_add( (PTR_T)data_buffer, total_length,
140 total_length/2);
129 } 141 }
130 } 142 }
131 sys$gettim(iosb); 143 sys$gettim(iosb);
132 RAND_add((unsigned char *)iosb, sizeof(iosb), sizeof(iosb)/2); 144 RAND_add( (PTR_T)iosb, sizeof(iosb), sizeof(iosb)/2);
133 return 1; 145 return 1;
134} 146}
135 147
diff --git a/src/lib/libcrypto/rc5/rc5_locl.h b/src/lib/libcrypto/rc5/rc5_locl.h
index 282dd38822..d337f73fad 100644
--- a/src/lib/libcrypto/rc5/rc5_locl.h
+++ b/src/lib/libcrypto/rc5/rc5_locl.h
@@ -154,14 +154,14 @@
154# define ROTATE_l32(a,n) ({ register unsigned int ret; \ 154# define ROTATE_l32(a,n) ({ register unsigned int ret; \
155 asm ("roll %%cl,%0" \ 155 asm ("roll %%cl,%0" \
156 : "=r"(ret) \ 156 : "=r"(ret) \
157 : "c"(n),"0"(a) \ 157 : "c"(n),"0"((unsigned int)(a)) \
158 : "cc"); \ 158 : "cc"); \
159 ret; \ 159 ret; \
160 }) 160 })
161# define ROTATE_r32(a,n) ({ register unsigned int ret; \ 161# define ROTATE_r32(a,n) ({ register unsigned int ret; \
162 asm ("rorl %%cl,%0" \ 162 asm ("rorl %%cl,%0" \
163 : "=r"(ret) \ 163 : "=r"(ret) \
164 : "c"(n),"0"(a) \ 164 : "c"(n),"0"((unsigned int)(a)) \
165 : "cc"); \ 165 : "cc"); \
166 ret; \ 166 ret; \
167 }) 167 })
diff --git a/src/lib/libcrypto/util/cygwin.sh b/src/lib/libcrypto/util/cygwin.sh
index a4f2e740b4..d6228521e6 100644
--- a/src/lib/libcrypto/util/cygwin.sh
+++ b/src/lib/libcrypto/util/cygwin.sh
@@ -8,7 +8,7 @@
8#set -x 8#set -x
9 9
10CONFIG_OPTIONS="--prefix=/usr shared zlib no-idea no-rc5" 10CONFIG_OPTIONS="--prefix=/usr shared zlib no-idea no-rc5"
11INSTALL_PREFIX=/tmp/install 11INSTALL_PREFIX=/tmp/install/INSTALL
12 12
13VERSION= 13VERSION=
14SUBVERSION=$1 14SUBVERSION=$1
@@ -124,8 +124,12 @@ strip usr/bin/*.exe usr/bin/*.dll usr/lib/engines/*.so
124chmod u-w usr/lib/engines/*.so 124chmod u-w usr/lib/engines/*.so
125 125
126# Runtime package 126# Runtime package
127find etc usr/bin usr/lib/engines usr/share/doc usr/ssl/certs \ 127tar cjf libopenssl${VERSION//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2 \
128 usr/ssl/man/man[157] usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private \ 128 usr/bin/cyg*dll
129# Base package
130find etc usr/bin/openssl.exe usr/bin/c_rehash usr/lib/engines usr/share/doc \
131 usr/ssl/certs usr/ssl/man/man[157] usr/ssl/misc usr/ssl/openssl.cnf \
132 usr/ssl/private \
129 -empty -o \! -type d | 133 -empty -o \! -type d |
130tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 - 134tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
131# Development package 135# Development package
@@ -135,6 +139,7 @@ tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 -
135 139
136ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2 140ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2
137ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 141ls -l openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2
142ls -l libopenssl${VERSION//[!0-9]/}-${VERSION}-${SUBVERSION}.tar.bz2
138 143
139cleanup 144cleanup
140 145
diff --git a/src/lib/libcrypto/util/libeay.num b/src/lib/libcrypto/util/libeay.num
index 6f3067ae2b..b23619f20a 100644
--- a/src/lib/libcrypto/util/libeay.num
+++ b/src/lib/libcrypto/util/libeay.num
@@ -4178,3 +4178,19 @@ UI_method_get_prompt_constructr 4550 EXIST:VMS:FUNCTION:
4178UI_method_set_prompt_constructor 4551 EXIST:!VMS:FUNCTION: 4178UI_method_set_prompt_constructor 4551 EXIST:!VMS:FUNCTION:
4179UI_method_set_prompt_constructr 4551 EXIST:VMS:FUNCTION: 4179UI_method_set_prompt_constructr 4551 EXIST:VMS:FUNCTION:
4180EVP_read_pw_string_min 4552 EXIST::FUNCTION: 4180EVP_read_pw_string_min 4552 EXIST::FUNCTION:
4181CRYPTO_cts128_encrypt 4553 EXIST::FUNCTION:
4182CRYPTO_cts128_decrypt_block 4554 EXIST::FUNCTION:
4183CRYPTO_cfb128_1_encrypt 4555 EXIST::FUNCTION:
4184CRYPTO_cbc128_encrypt 4556 EXIST::FUNCTION:
4185CRYPTO_ctr128_encrypt 4557 EXIST::FUNCTION:
4186CRYPTO_ofb128_encrypt 4558 EXIST::FUNCTION:
4187CRYPTO_cts128_decrypt 4559 EXIST::FUNCTION:
4188CRYPTO_cts128_encrypt_block 4560 EXIST::FUNCTION:
4189CRYPTO_cbc128_decrypt 4561 EXIST::FUNCTION:
4190CRYPTO_cfb128_encrypt 4562 EXIST::FUNCTION:
4191CRYPTO_cfb128_8_encrypt 4563 EXIST::FUNCTION:
4192OPENSSL_strcasecmp 4564 EXIST::FUNCTION:
4193OPENSSL_memcmp 4565 EXIST::FUNCTION:
4194OPENSSL_strncasecmp 4566 EXIST::FUNCTION:
4195OPENSSL_gmtime 4567 EXIST::FUNCTION:
4196OPENSSL_gmtime_adj 4568 EXIST::FUNCTION:
diff --git a/src/lib/libcrypto/util/mk1mf.pl b/src/lib/libcrypto/util/mk1mf.pl
index 280e9de1ad..afe8c7326d 100644
--- a/src/lib/libcrypto/util/mk1mf.pl
+++ b/src/lib/libcrypto/util/mk1mf.pl
@@ -13,6 +13,7 @@ $banner="\t\@echo Building OpenSSL";
13 13
14my $no_static_engine = 1; 14my $no_static_engine = 1;
15my $engines = ""; 15my $engines = "";
16my $otherlibs = "";
16local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic 17local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic
17local $zlib_lib = ""; 18local $zlib_lib = "";
18local $perl_asm = 0; # 1 to autobuild asm files from perl scripts 19local $perl_asm = 0; # 1 to autobuild asm files from perl scripts
@@ -266,6 +267,7 @@ $cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
266$cflags.=" -DOPENSSL_NO_EC" if $no_ec; 267$cflags.=" -DOPENSSL_NO_EC" if $no_ec;
267$cflags.=" -DOPENSSL_NO_ECDSA" if $no_ecdsa; 268$cflags.=" -DOPENSSL_NO_ECDSA" if $no_ecdsa;
268$cflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh; 269$cflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh;
270$cflags.=" -DOPENSSL_NO_GOST" if $no_gost;
269$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine; 271$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
270$cflags.=" -DOPENSSL_NO_HW" if $no_hw; 272$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
271$cflags.=" -DOPENSSL_NO_JPAKE" if $no_jpake; 273$cflags.=" -DOPENSSL_NO_JPAKE" if $no_jpake;
@@ -356,6 +358,12 @@ for (;;)
356 $lib=$val; 358 $lib=$val;
357 $lib =~ s/^.*\/([^\/]+)$/$1/; 359 $lib =~ s/^.*\/([^\/]+)$/$1/;
358 } 360 }
361 if ($key eq "LIBNAME" && $no_static_engine)
362 {
363 $lib=$val;
364 $lib =~ s/^.*\/([^\/]+)$/$1/;
365 $otherlibs .= " $lib";
366 }
359 367
360 if ($key eq "EXHEADER") 368 if ($key eq "EXHEADER")
361 { $exheader.=&var_add($dir,$val, 1); } 369 { $exheader.=&var_add($dir,$val, 1); }
@@ -658,7 +666,7 @@ foreach (split(/\s+/,$test))
658 $rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)"); 666 $rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
659 } 667 }
660 668
661$defs.=&do_defs("E_SHLIB",$engines,"\$(ENG_D)",$shlibp); 669$defs.=&do_defs("E_SHLIB",$engines . $otherlibs,"\$(ENG_D)",$shlibp);
662 670
663foreach (split(/\s+/,$engines)) 671foreach (split(/\s+/,$engines))
664 { 672 {
@@ -671,6 +679,14 @@ foreach (split(/\s+/,$engines))
671$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)"); 679$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
672$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)"); 680$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
673 681
682foreach (split(" ",$otherlibs))
683 {
684 my $uc = $_;
685 $uc =~ tr /a-z/A-Z/;
686 $rules.= &do_lib_rule("\$(${uc}OBJ)","\$(ENG_D)$o$_$shlibp", "", $shlib, "");
687
688 }
689
674$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)"); 690$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
675 691
676print $defs; 692print $defs;
@@ -708,6 +724,7 @@ sub var_add
708 return("") if $no_dsa && $dir =~ /\/dsa/; 724 return("") if $no_dsa && $dir =~ /\/dsa/;
709 return("") if $no_dh && $dir =~ /\/dh/; 725 return("") if $no_dh && $dir =~ /\/dh/;
710 return("") if $no_ec && $dir =~ /\/ec/; 726 return("") if $no_ec && $dir =~ /\/ec/;
727 return("") if $no_gost && $dir =~ /\/ccgost/;
711 return("") if $no_cms && $dir =~ /\/cms/; 728 return("") if $no_cms && $dir =~ /\/cms/;
712 return("") if $no_jpake && $dir =~ /\/jpake/; 729 return("") if $no_jpake && $dir =~ /\/jpake/;
713 if ($no_des && $dir =~ /\/des/) 730 if ($no_des && $dir =~ /\/des/)
@@ -1047,6 +1064,7 @@ sub read_options
1047 "no-ec" => \$no_ec, 1064 "no-ec" => \$no_ec,
1048 "no-ecdsa" => \$no_ecdsa, 1065 "no-ecdsa" => \$no_ecdsa,
1049 "no-ecdh" => \$no_ecdh, 1066 "no-ecdh" => \$no_ecdh,
1067 "no-gost" => \$no_gost,
1050 "no-engine" => \$no_engine, 1068 "no-engine" => \$no_engine,
1051 "no-hw" => \$no_hw, 1069 "no-hw" => \$no_hw,
1052 "just-ssl" => 1070 "just-ssl" =>
diff --git a/src/lib/libcrypto/util/mkdef.pl b/src/lib/libcrypto/util/mkdef.pl
index a4a17e3ae9..ab47329097 100644
--- a/src/lib/libcrypto/util/mkdef.pl
+++ b/src/lib/libcrypto/util/mkdef.pl
@@ -257,6 +257,8 @@ $ssl.=" ssl/tls1.h";
257 257
258my $crypto ="crypto/crypto.h"; 258my $crypto ="crypto/crypto.h";
259$crypto.=" crypto/o_dir.h"; 259$crypto.=" crypto/o_dir.h";
260$crypto.=" crypto/o_str.h";
261$crypto.=" crypto/o_time.h";
260$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des; 262$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des;
261$crypto.=" crypto/idea/idea.h" ; # unless $no_idea; 263$crypto.=" crypto/idea/idea.h" ; # unless $no_idea;
262$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4; 264$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4;
@@ -316,6 +318,7 @@ $crypto.=" crypto/krb5/krb5_asn.h";
316$crypto.=" crypto/pqueue/pqueue.h"; 318$crypto.=" crypto/pqueue/pqueue.h";
317$crypto.=" crypto/cms/cms.h"; 319$crypto.=" crypto/cms/cms.h";
318$crypto.=" crypto/jpake/jpake.h"; 320$crypto.=" crypto/jpake/jpake.h";
321$crypto.=" crypto/modes/modes.h";
319 322
320my $symhacks="crypto/symhacks.h"; 323my $symhacks="crypto/symhacks.h";
321 324
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl
index c3e29fda96..5f25fc41bf 100644
--- a/src/lib/libcrypto/util/pl/VC-32.pl
+++ b/src/lib/libcrypto/util/pl/VC-32.pl
@@ -138,8 +138,8 @@ else
138 } 138 }
139 139
140# generate symbols.pdb unconditionally 140# generate symbols.pdb unconditionally
141$app_cflag.=" /Zi /Fd$tmp_def/app"; 141$app_cflag.=" /Zi /Fd\$(TMP_D)/app";
142$lib_cflag.=" /Zi /Fd$tmp_def/lib"; 142$lib_cflag.=" /Zi /Fd\$(TMP_D)/lib";
143$lflags.=" /debug"; 143$lflags.=" /debug";
144 144
145$obj='.obj'; 145$obj='.obj';
@@ -195,7 +195,7 @@ if ($FLAVOR =~ /WIN64A/) {
195 my $ver=`nasm -v 2>NUL`; 195 my $ver=`nasm -v 2>NUL`;
196 my $vew=`nasmw -v 2>NUL`; 196 my $vew=`nasmw -v 2>NUL`;
197 # pick newest version 197 # pick newest version
198 $asm=($ver gt $vew?"nasm":"nasmw")." -f win32"; 198 $asm=($ver ge $vew?"nasm":"nasmw")." -f win32";
199 $asmtype="win32n"; 199 $asmtype="win32n";
200 $afile='-o '; 200 $afile='-o ';
201} else { 201} else {