summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/util')
-rw-r--r--src/lib/libcrypto/util/ck_errf.pl13
-rw-r--r--src/lib/libcrypto/util/clean-depend.pl7
-rw-r--r--src/lib/libcrypto/util/cygwin.sh22
-rw-r--r--src/lib/libcrypto/util/domd2
-rw-r--r--src/lib/libcrypto/util/libeay.num915
-rw-r--r--src/lib/libcrypto/util/mk1mf.pl590
-rw-r--r--src/lib/libcrypto/util/mkdef.pl142
-rw-r--r--src/lib/libcrypto/util/mkdir-p.pl1
-rw-r--r--src/lib/libcrypto/util/mkerr.pl135
-rw-r--r--src/lib/libcrypto/util/mkfiles.pl17
-rw-r--r--src/lib/libcrypto/util/mklink.pl1
-rw-r--r--src/lib/libcrypto/util/mkstack.pl1
-rw-r--r--src/lib/libcrypto/util/pl/BC-32.pl13
-rw-r--r--src/lib/libcrypto/util/pl/Mingw32.pl17
-rw-r--r--src/lib/libcrypto/util/pl/OS2-EMX.pl11
-rw-r--r--src/lib/libcrypto/util/pl/VC-32.pl294
-rw-r--r--src/lib/libcrypto/util/pl/linux.pl11
-rw-r--r--src/lib/libcrypto/util/pl/ultrix.pl11
-rw-r--r--src/lib/libcrypto/util/pl/unix.pl9
-rw-r--r--src/lib/libcrypto/util/ssleay.num28
20 files changed, 1580 insertions, 660 deletions
diff --git a/src/lib/libcrypto/util/ck_errf.pl b/src/lib/libcrypto/util/ck_errf.pl
index 7a24d6c5a2..344b422c34 100644
--- a/src/lib/libcrypto/util/ck_errf.pl
+++ b/src/lib/libcrypto/util/ck_errf.pl
@@ -13,16 +13,21 @@ foreach $file (@ARGV)
13 $func=""; 13 $func="";
14 while (<IN>) 14 while (<IN>)
15 { 15 {
16 if (/^[a-zA-Z].+[\s*]([A-Za-z_0-9]+)\(.*\)/) 16 if (!/;$/ && /^([a-zA-Z].*[\s*])?([A-Za-z_0-9]+)\(.*[),]/)
17 { 17 {
18 $func=$1; 18 /^([^()]*(\([^()]*\)[^()]*)*)\(/;
19 $1 =~ /([A-Za-z_0-9]*)$/;
20 $func = $1;
19 $func =~ tr/A-Z/a-z/; 21 $func =~ tr/A-Z/a-z/;
20 } 22 }
21 if (/([A-Z0-9]+)err\(([^,]+)/) 23 if (/([A-Z0-9]+)err\(([^,]+)/)
22 { 24 {
23 next if ($func eq "");
24 $errlib=$1; 25 $errlib=$1;
25 $n=$2; 26 $n=$2;
27
28 if ($func eq "")
29 { print "$file:$.:???:$n\n"; next; }
30
26 if ($n !~ /([^_]+)_F_(.+)$/) 31 if ($n !~ /([^_]+)_F_(.+)$/)
27 { 32 {
28 # print "check -$file:$.:$func:$n\n"; 33 # print "check -$file:$.:$func:$n\n";
@@ -32,7 +37,7 @@ foreach $file (@ARGV)
32 $n=$2; 37 $n=$2;
33 38
34 if ($lib ne $errlib) 39 if ($lib ne $errlib)
35 { print "$file:$.:$func:$n\n"; next; } 40 { print "$file:$.:$func:$n [${errlib}err]\n"; next; }
36 41
37 $n =~ tr/A-Z/a-z/; 42 $n =~ tr/A-Z/a-z/;
38 if (($n ne $func) && ($errlib ne "SYS")) 43 if (($n ne $func) && ($errlib ne "SYS"))
diff --git a/src/lib/libcrypto/util/clean-depend.pl b/src/lib/libcrypto/util/clean-depend.pl
index 6c485d1e2f..2b2bdb4048 100644
--- a/src/lib/libcrypto/util/clean-depend.pl
+++ b/src/lib/libcrypto/util/clean-depend.pl
@@ -37,8 +37,11 @@ foreach $file (sort keys %files) {
37 $file=~s/^\.\///; 37 $file=~s/^\.\///;
38 push @{$files{$file}},$origfile; 38 push @{$files{$file}},$origfile;
39 my $prevdep=""; 39 my $prevdep="";
40 foreach $dep (sort @{$files{$file}}) { 40
41 $dep=~s/^\.\///; 41 # Remove leading ./ before sorting
42 my @deps = map { $_ =~ s/^\.\///; $_ } @{$files{$file}};
43
44 foreach $dep (sort @deps) {
42 next if $prevdep eq $dep; # to exterminate duplicates... 45 next if $prevdep eq $dep; # to exterminate duplicates...
43 $prevdep = $dep; 46 $prevdep = $dep;
44 $len=0 if $len+length($dep)+1 >= 80; 47 $len=0 if $len+length($dep)+1 >= 80;
diff --git a/src/lib/libcrypto/util/cygwin.sh b/src/lib/libcrypto/util/cygwin.sh
index 7f791d47f4..89d1dda95b 100644
--- a/src/lib/libcrypto/util/cygwin.sh
+++ b/src/lib/libcrypto/util/cygwin.sh
@@ -47,6 +47,14 @@ function doc_install()
47 create_cygwin_readme 47 create_cygwin_readme
48} 48}
49 49
50function certs_install()
51{
52 CERTS_DIR=${INSTALL_PREFIX}/usr/ssl/certs
53
54 mkdir -p ${CERTS_DIR}
55 cp -rp certs/* ${CERTS_DIR}
56}
57
50function create_cygwin_readme() 58function create_cygwin_readme()
51{ 59{
52 README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin 60 README_DIR=${INSTALL_PREFIX}/usr/share/doc/Cygwin
@@ -104,19 +112,25 @@ base_install
104 112
105doc_install 113doc_install
106 114
115certs_install
116
107create_cygwin_readme 117create_cygwin_readme
108 118
109create_profile_files 119create_profile_files
110 120
111cd ${INSTALL_PREFIX} 121cd ${INSTALL_PREFIX}
112strip usr/bin/*.exe usr/bin/*.dll 122chmod u+w usr/lib/engines/*.so
123strip usr/bin/*.exe usr/bin/*.dll usr/lib/engines/*.so
124chmod u-w usr/lib/engines/*.so
113 125
114# Runtime package 126# Runtime package
115find etc usr/bin usr/share/doc usr/ssl/certs usr/ssl/man/man[157] \ 127find etc usr/bin usr/lib/engines usr/share/doc usr/ssl/certs \
116 usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private -empty -o \! -type d | 128 usr/ssl/man/man[157] usr/ssl/misc usr/ssl/openssl.cnf usr/ssl/private \
129 -empty -o \! -type d |
117tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 - 130tar cjfT openssl-${VERSION}-${SUBVERSION}.tar.bz2 -
118# Development package 131# Development package
119find usr/include usr/lib usr/ssl/man/man3 -empty -o \! -type d | 132find usr/include usr/lib/*.a usr/lib/pkgconfig usr/ssl/man/man3 \
133 -empty -o \! -type d |
120tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 - 134tar cjfT openssl-devel-${VERSION}-${SUBVERSION}.tar.bz2 -
121 135
122ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2 136ls -l openssl-${VERSION}-${SUBVERSION}.tar.bz2
diff --git a/src/lib/libcrypto/util/domd b/src/lib/libcrypto/util/domd
index 5610521f0b..691be7a440 100644
--- a/src/lib/libcrypto/util/domd
+++ b/src/lib/libcrypto/util/domd
@@ -26,7 +26,7 @@ if [ "$MAKEDEPEND" = "gcc" ]; then
26 ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new 26 ${PERL} $TOP/util/clean-depend.pl < Makefile.tmp > Makefile.new
27 rm -f Makefile.tmp 27 rm -f Makefile.tmp
28else 28else
29 ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND -f Makefile $@ 29 ${MAKEDEPEND} -D OPENSSL_DOING_MAKEDEPEND $@
30 ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new 30 ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new
31fi 31fi
32mv Makefile.new Makefile 32mv Makefile.new Makefile
diff --git a/src/lib/libcrypto/util/libeay.num b/src/lib/libcrypto/util/libeay.num
index 4222bef6d6..2989500c4b 100644
--- a/src/lib/libcrypto/util/libeay.num
+++ b/src/lib/libcrypto/util/libeay.num
@@ -123,10 +123,10 @@ BN_dup 128 EXIST::FUNCTION:
123BN_free 129 EXIST::FUNCTION: 123BN_free 129 EXIST::FUNCTION:
124BN_from_montgomery 130 EXIST::FUNCTION: 124BN_from_montgomery 130 EXIST::FUNCTION:
125BN_gcd 131 EXIST::FUNCTION: 125BN_gcd 131 EXIST::FUNCTION:
126BN_generate_prime 132 EXIST::FUNCTION: 126BN_generate_prime 132 EXIST::FUNCTION:DEPRECATED
127BN_get_word 133 EXIST::FUNCTION: 127BN_get_word 133 EXIST::FUNCTION:
128BN_is_bit_set 134 EXIST::FUNCTION: 128BN_is_bit_set 134 EXIST::FUNCTION:
129BN_is_prime 135 EXIST::FUNCTION: 129BN_is_prime 135 EXIST::FUNCTION:DEPRECATED
130BN_lshift 136 EXIST::FUNCTION: 130BN_lshift 136 EXIST::FUNCTION:
131BN_lshift1 137 EXIST::FUNCTION: 131BN_lshift1 137 EXIST::FUNCTION:
132BN_mask_bits 138 EXIST::FUNCTION: 132BN_mask_bits 138 EXIST::FUNCTION:
@@ -193,14 +193,14 @@ DH_check 200 EXIST::FUNCTION:DH
193DH_compute_key 201 EXIST::FUNCTION:DH 193DH_compute_key 201 EXIST::FUNCTION:DH
194DH_free 202 EXIST::FUNCTION:DH 194DH_free 202 EXIST::FUNCTION:DH
195DH_generate_key 203 EXIST::FUNCTION:DH 195DH_generate_key 203 EXIST::FUNCTION:DH
196DH_generate_parameters 204 EXIST::FUNCTION:DH 196DH_generate_parameters 204 EXIST::FUNCTION:DEPRECATED,DH
197DH_new 205 EXIST::FUNCTION:DH 197DH_new 205 EXIST::FUNCTION:DH
198DH_size 206 EXIST::FUNCTION:DH 198DH_size 206 EXIST::FUNCTION:DH
199DHparams_print 207 EXIST::FUNCTION:BIO,DH 199DHparams_print 207 EXIST::FUNCTION:BIO,DH
200DHparams_print_fp 208 EXIST::FUNCTION:DH,FP_API 200DHparams_print_fp 208 EXIST::FUNCTION:DH,FP_API
201DSA_free 209 EXIST::FUNCTION:DSA 201DSA_free 209 EXIST::FUNCTION:DSA
202DSA_generate_key 210 EXIST::FUNCTION:DSA 202DSA_generate_key 210 EXIST::FUNCTION:DSA
203DSA_generate_parameters 211 EXIST::FUNCTION:DSA 203DSA_generate_parameters 211 EXIST::FUNCTION:DEPRECATED,DSA
204DSA_is_prime 212 NOEXIST::FUNCTION: 204DSA_is_prime 212 NOEXIST::FUNCTION:
205DSA_new 213 EXIST::FUNCTION:DSA 205DSA_new 213 EXIST::FUNCTION:DSA
206DSA_print 214 EXIST::FUNCTION:BIO,DSA 206DSA_print 214 EXIST::FUNCTION:BIO,DSA
@@ -474,7 +474,7 @@ RSAPrivateKey_dup 481 EXIST::FUNCTION:RSA
474RSAPublicKey_dup 482 EXIST::FUNCTION:RSA 474RSAPublicKey_dup 482 EXIST::FUNCTION:RSA
475RSA_PKCS1_SSLeay 483 EXIST::FUNCTION:RSA 475RSA_PKCS1_SSLeay 483 EXIST::FUNCTION:RSA
476RSA_free 484 EXIST::FUNCTION:RSA 476RSA_free 484 EXIST::FUNCTION:RSA
477RSA_generate_key 485 EXIST::FUNCTION:RSA 477RSA_generate_key 485 EXIST::FUNCTION:DEPRECATED,RSA
478RSA_new 486 EXIST::FUNCTION:RSA 478RSA_new 486 EXIST::FUNCTION:RSA
479RSA_new_method 487 EXIST::FUNCTION:RSA 479RSA_new_method 487 EXIST::FUNCTION:RSA
480RSA_print 488 EXIST::FUNCTION:BIO,RSA 480RSA_print 488 EXIST::FUNCTION:BIO,RSA
@@ -802,7 +802,7 @@ DES_set_odd_parity 809 EXIST::FUNCTION:DES
802DES_string_to_2keys 810 EXIST::FUNCTION:DES 802DES_string_to_2keys 810 EXIST::FUNCTION:DES
803DES_string_to_key 811 EXIST::FUNCTION:DES 803DES_string_to_key 811 EXIST::FUNCTION:DES
804DES_xcbc_encrypt 812 EXIST::FUNCTION:DES 804DES_xcbc_encrypt 812 EXIST::FUNCTION:DES
805DES_xwhite_in2out 813 EXIST::FUNCTION:DES 805DES_xwhite_in2out 813 NOEXIST::FUNCTION:
806fcrypt_body 814 NOEXIST::FUNCTION: 806fcrypt_body 814 NOEXIST::FUNCTION:
807i2a_ASN1_INTEGER 815 EXIST::FUNCTION:BIO 807i2a_ASN1_INTEGER 815 EXIST::FUNCTION:BIO
808i2a_ASN1_OBJECT 816 EXIST::FUNCTION:BIO 808i2a_ASN1_OBJECT 816 EXIST::FUNCTION:BIO
@@ -1104,7 +1104,7 @@ BN_RECP_CTX_set 1131 EXIST::FUNCTION:
1104BN_mod_mul_reciprocal 1132 EXIST::FUNCTION: 1104BN_mod_mul_reciprocal 1132 EXIST::FUNCTION:
1105BN_mod_exp_recp 1133 EXIST::FUNCTION: 1105BN_mod_exp_recp 1133 EXIST::FUNCTION:
1106BN_div_recp 1134 EXIST::FUNCTION: 1106BN_div_recp 1134 EXIST::FUNCTION:
1107BN_CTX_init 1135 EXIST::FUNCTION: 1107BN_CTX_init 1135 EXIST::FUNCTION:DEPRECATED
1108BN_MONT_CTX_init 1136 EXIST::FUNCTION: 1108BN_MONT_CTX_init 1136 EXIST::FUNCTION:
1109RAND_get_rand_method 1137 EXIST::FUNCTION: 1109RAND_get_rand_method 1137 EXIST::FUNCTION:
1110PKCS7_add_attribute 1138 EXIST::FUNCTION: 1110PKCS7_add_attribute 1138 EXIST::FUNCTION:
@@ -1221,8 +1221,8 @@ BIO_f_reliable 1244 EXIST::FUNCTION:BIO
1221PKCS7_dataFinal 1245 EXIST::FUNCTION: 1221PKCS7_dataFinal 1245 EXIST::FUNCTION:
1222PKCS7_dataDecode 1246 EXIST::FUNCTION: 1222PKCS7_dataDecode 1246 EXIST::FUNCTION:
1223X509V3_EXT_CRL_add_conf 1247 EXIST::FUNCTION: 1223X509V3_EXT_CRL_add_conf 1247 EXIST::FUNCTION:
1224BN_set_params 1248 EXIST::FUNCTION: 1224BN_set_params 1248 EXIST::FUNCTION:DEPRECATED
1225BN_get_params 1249 EXIST::FUNCTION: 1225BN_get_params 1249 EXIST::FUNCTION:DEPRECATED
1226BIO_get_ex_num 1250 NOEXIST::FUNCTION: 1226BIO_get_ex_num 1250 NOEXIST::FUNCTION:
1227BIO_set_ex_free_func 1251 NOEXIST::FUNCTION: 1227BIO_set_ex_free_func 1251 NOEXIST::FUNCTION:
1228EVP_ripemd160 1252 EXIST::FUNCTION:RIPEMD 1228EVP_ripemd160 1252 EXIST::FUNCTION:RIPEMD
@@ -1744,7 +1744,7 @@ X509_REQ_add1_attr_by_txt 2217 EXIST::FUNCTION:
1744X509_ATTRIBUTE_create_by_txt 2218 EXIST::FUNCTION: 1744X509_ATTRIBUTE_create_by_txt 2218 EXIST::FUNCTION:
1745X509at_add1_attr_by_txt 2219 EXIST::FUNCTION: 1745X509at_add1_attr_by_txt 2219 EXIST::FUNCTION:
1746BN_pseudo_rand 2239 EXIST::FUNCTION: 1746BN_pseudo_rand 2239 EXIST::FUNCTION:
1747BN_is_prime_fasttest 2240 EXIST::FUNCTION: 1747BN_is_prime_fasttest 2240 EXIST::FUNCTION:DEPRECATED
1748BN_CTX_end 2241 EXIST::FUNCTION: 1748BN_CTX_end 2241 EXIST::FUNCTION:
1749BN_CTX_start 2242 EXIST::FUNCTION: 1749BN_CTX_start 2242 EXIST::FUNCTION:
1750BN_CTX_get 2243 EXIST::FUNCTION: 1750BN_CTX_get 2243 EXIST::FUNCTION:
@@ -2071,7 +2071,7 @@ PKCS7_ATTR_SIGN_it 2632 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTI
2071UI_add_error_string 2633 EXIST::FUNCTION: 2071UI_add_error_string 2633 EXIST::FUNCTION:
2072KRB5_CHECKSUM_free 2634 EXIST::FUNCTION: 2072KRB5_CHECKSUM_free 2634 EXIST::FUNCTION:
2073OCSP_REQUEST_get_ext 2635 EXIST::FUNCTION: 2073OCSP_REQUEST_get_ext 2635 EXIST::FUNCTION:
2074ENGINE_load_ubsec 2636 EXIST::FUNCTION:ENGINE 2074ENGINE_load_ubsec 2636 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2075ENGINE_register_all_digests 2637 EXIST::FUNCTION:ENGINE 2075ENGINE_register_all_digests 2637 EXIST::FUNCTION:ENGINE
2076PKEY_USAGE_PERIOD_it 2638 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2076PKEY_USAGE_PERIOD_it 2638 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2077PKEY_USAGE_PERIOD_it 2638 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: 2077PKEY_USAGE_PERIOD_it 2638 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -2089,7 +2089,7 @@ OCSP_BASICRESP_get_ext_by_crit 2646 EXIST:VMS:FUNCTION:
2089OCSP_cert_status_str 2647 EXIST::FUNCTION: 2089OCSP_cert_status_str 2647 EXIST::FUNCTION:
2090d2i_OCSP_REQUEST 2648 EXIST::FUNCTION: 2090d2i_OCSP_REQUEST 2648 EXIST::FUNCTION:
2091UI_dup_info_string 2649 EXIST::FUNCTION: 2091UI_dup_info_string 2649 EXIST::FUNCTION:
2092_ossl_old_des_xwhite_in2out 2650 EXIST::FUNCTION:DES 2092_ossl_old_des_xwhite_in2out 2650 NOEXIST::FUNCTION:
2093PKCS12_it 2651 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2093PKCS12_it 2651 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2094PKCS12_it 2651 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: 2094PKCS12_it 2651 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2095OCSP_SINGLERESP_get_ext_by_critical 2652 EXIST:!VMS:FUNCTION: 2095OCSP_SINGLERESP_get_ext_by_critical 2652 EXIST:!VMS:FUNCTION:
@@ -2419,7 +2419,7 @@ UI_get_string_type 2916 EXIST::FUNCTION:
2419ENGINE_unregister_DH 2917 EXIST::FUNCTION:ENGINE 2419ENGINE_unregister_DH 2917 EXIST::FUNCTION:ENGINE
2420ENGINE_register_all_DSA 2918 EXIST::FUNCTION:ENGINE 2420ENGINE_register_all_DSA 2918 EXIST::FUNCTION:ENGINE
2421OCSP_ONEREQ_get_ext_by_critical 2919 EXIST::FUNCTION: 2421OCSP_ONEREQ_get_ext_by_critical 2919 EXIST::FUNCTION:
2422bn_dup_expand 2920 EXIST::FUNCTION: 2422bn_dup_expand 2920 EXIST::FUNCTION:DEPRECATED
2423OCSP_cert_id_new 2921 EXIST::FUNCTION: 2423OCSP_cert_id_new 2921 EXIST::FUNCTION:
2424BASIC_CONSTRAINTS_it 2922 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2424BASIC_CONSTRAINTS_it 2922 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2425BASIC_CONSTRAINTS_it 2922 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: 2425BASIC_CONSTRAINTS_it 2922 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -2545,7 +2545,7 @@ OCSP_RESPONSE_new 3023 EXIST::FUNCTION:
2545AES_set_encrypt_key 3024 EXIST::FUNCTION:AES 2545AES_set_encrypt_key 3024 EXIST::FUNCTION:AES
2546OCSP_resp_count 3025 EXIST::FUNCTION: 2546OCSP_resp_count 3025 EXIST::FUNCTION:
2547KRB5_CHECKSUM_new 3026 EXIST::FUNCTION: 2547KRB5_CHECKSUM_new 3026 EXIST::FUNCTION:
2548ENGINE_load_cswift 3027 EXIST::FUNCTION:ENGINE 2548ENGINE_load_cswift 3027 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2549OCSP_onereq_get0_id 3028 EXIST::FUNCTION: 2549OCSP_onereq_get0_id 3028 EXIST::FUNCTION:
2550ENGINE_set_default_ciphers 3029 EXIST::FUNCTION:ENGINE 2550ENGINE_set_default_ciphers 3029 EXIST::FUNCTION:ENGINE
2551NOTICEREF_it 3030 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2551NOTICEREF_it 3030 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
@@ -2576,7 +2576,7 @@ ASN1_primitive_free 3051 EXIST::FUNCTION:
2576i2d_EXTENDED_KEY_USAGE 3052 EXIST::FUNCTION: 2576i2d_EXTENDED_KEY_USAGE 3052 EXIST::FUNCTION:
2577i2d_OCSP_SIGNATURE 3053 EXIST::FUNCTION: 2577i2d_OCSP_SIGNATURE 3053 EXIST::FUNCTION:
2578asn1_enc_save 3054 EXIST::FUNCTION: 2578asn1_enc_save 3054 EXIST::FUNCTION:
2579ENGINE_load_nuron 3055 EXIST::FUNCTION:ENGINE 2579ENGINE_load_nuron 3055 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2580_ossl_old_des_pcbc_encrypt 3056 EXIST::FUNCTION:DES 2580_ossl_old_des_pcbc_encrypt 3056 EXIST::FUNCTION:DES
2581PKCS12_MAC_DATA_it 3057 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2581PKCS12_MAC_DATA_it 3057 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2582PKCS12_MAC_DATA_it 3057 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: 2582PKCS12_MAC_DATA_it 3057 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -2600,7 +2600,7 @@ asn1_get_choice_selector 3071 EXIST::FUNCTION:
2600i2d_KRB5_CHECKSUM 3072 EXIST::FUNCTION: 2600i2d_KRB5_CHECKSUM 3072 EXIST::FUNCTION:
2601ENGINE_set_table_flags 3073 EXIST::FUNCTION:ENGINE 2601ENGINE_set_table_flags 3073 EXIST::FUNCTION:ENGINE
2602AES_options 3074 EXIST::FUNCTION:AES 2602AES_options 3074 EXIST::FUNCTION:AES
2603ENGINE_load_chil 3075 EXIST::FUNCTION:ENGINE 2603ENGINE_load_chil 3075 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2604OCSP_id_cmp 3076 EXIST::FUNCTION: 2604OCSP_id_cmp 3076 EXIST::FUNCTION:
2605OCSP_BASICRESP_new 3077 EXIST::FUNCTION: 2605OCSP_BASICRESP_new 3077 EXIST::FUNCTION:
2606OCSP_REQUEST_get_ext_by_NID 3078 EXIST::FUNCTION: 2606OCSP_REQUEST_get_ext_by_NID 3078 EXIST::FUNCTION:
@@ -2667,7 +2667,7 @@ OCSP_CRLID_it 3127 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIA
2667OCSP_CRLID_it 3127 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: 2667OCSP_CRLID_it 3127 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2668i2d_KRB5_AUTHENTBODY 3128 EXIST::FUNCTION: 2668i2d_KRB5_AUTHENTBODY 3128 EXIST::FUNCTION:
2669OCSP_REQUEST_get_ext_count 3129 EXIST::FUNCTION: 2669OCSP_REQUEST_get_ext_count 3129 EXIST::FUNCTION:
2670ENGINE_load_atalla 3130 EXIST::FUNCTION:ENGINE 2670ENGINE_load_atalla 3130 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2671X509_NAME_it 3131 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2671X509_NAME_it 3131 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2672X509_NAME_it 3131 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: 2672X509_NAME_it 3131 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2673USERNOTICE_it 3132 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2673USERNOTICE_it 3132 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
@@ -2762,8 +2762,8 @@ DES_read_2passwords 3206 EXIST::FUNCTION:DES
2762DES_read_password 3207 EXIST::FUNCTION:DES 2762DES_read_password 3207 EXIST::FUNCTION:DES
2763UI_UTIL_read_pw 3208 EXIST::FUNCTION: 2763UI_UTIL_read_pw 3208 EXIST::FUNCTION:
2764UI_UTIL_read_pw_string 3209 EXIST::FUNCTION: 2764UI_UTIL_read_pw_string 3209 EXIST::FUNCTION:
2765ENGINE_load_aep 3210 EXIST::FUNCTION:ENGINE 2765ENGINE_load_aep 3210 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2766ENGINE_load_sureware 3211 EXIST::FUNCTION:ENGINE 2766ENGINE_load_sureware 3211 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2767OPENSSL_add_all_algorithms_noconf 3212 EXIST:!VMS:FUNCTION: 2767OPENSSL_add_all_algorithms_noconf 3212 EXIST:!VMS:FUNCTION:
2768OPENSSL_add_all_algo_noconf 3212 EXIST:VMS:FUNCTION: 2768OPENSSL_add_all_algo_noconf 3212 EXIST:VMS:FUNCTION:
2769OPENSSL_add_all_algorithms_conf 3213 EXIST:!VMS:FUNCTION: 2769OPENSSL_add_all_algorithms_conf 3213 EXIST:!VMS:FUNCTION:
@@ -2772,7 +2772,7 @@ OPENSSL_load_builtin_modules 3214 EXIST::FUNCTION:
2772AES_ofb128_encrypt 3215 EXIST::FUNCTION:AES 2772AES_ofb128_encrypt 3215 EXIST::FUNCTION:AES
2773AES_ctr128_encrypt 3216 EXIST::FUNCTION:AES 2773AES_ctr128_encrypt 3216 EXIST::FUNCTION:AES
2774AES_cfb128_encrypt 3217 EXIST::FUNCTION:AES 2774AES_cfb128_encrypt 3217 EXIST::FUNCTION:AES
2775ENGINE_load_4758cca 3218 EXIST::FUNCTION:ENGINE 2775ENGINE_load_4758cca 3218 EXIST::FUNCTION:ENGINE,STATIC_ENGINE
2776_ossl_096_des_random_seed 3219 EXIST::FUNCTION:DES 2776_ossl_096_des_random_seed 3219 EXIST::FUNCTION:DES
2777EVP_aes_256_ofb 3220 EXIST::FUNCTION:AES 2777EVP_aes_256_ofb 3220 EXIST::FUNCTION:AES
2778EVP_aes_192_ofb 3221 EXIST::FUNCTION:AES 2778EVP_aes_192_ofb 3221 EXIST::FUNCTION:AES
@@ -2804,57 +2804,57 @@ OPENSSL_cleanse 3245 EXIST::FUNCTION:
2804ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE 2804ENGINE_setup_bsd_cryptodev 3246 EXIST:__FreeBSD__:FUNCTION:ENGINE
2805ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH 2805ERR_release_err_state_table 3247 EXIST::FUNCTION:LHASH
2806EVP_aes_128_cfb8 3248 EXIST::FUNCTION:AES 2806EVP_aes_128_cfb8 3248 EXIST::FUNCTION:AES
2807FIPS_corrupt_rsa 3249 EXIST:OPENSSL_FIPS:FUNCTION: 2807FIPS_corrupt_rsa 3249 NOEXIST::FUNCTION:
2808FIPS_selftest_des 3250 EXIST:OPENSSL_FIPS:FUNCTION: 2808FIPS_selftest_des 3250 NOEXIST::FUNCTION:
2809EVP_aes_128_cfb1 3251 EXIST::FUNCTION:AES 2809EVP_aes_128_cfb1 3251 EXIST::FUNCTION:AES
2810EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES 2810EVP_aes_192_cfb8 3252 EXIST::FUNCTION:AES
2811FIPS_mode_set 3253 EXIST:OPENSSL_FIPS:FUNCTION: 2811FIPS_mode_set 3253 NOEXIST::FUNCTION:
2812FIPS_selftest_dsa 3254 EXIST:OPENSSL_FIPS:FUNCTION: 2812FIPS_selftest_dsa 3254 NOEXIST::FUNCTION:
2813EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES 2813EVP_aes_256_cfb8 3255 EXIST::FUNCTION:AES
2814FIPS_allow_md5 3256 NOEXIST::FUNCTION: 2814FIPS_allow_md5 3256 NOEXIST::FUNCTION:
2815DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES 2815DES_ede3_cfb_encrypt 3257 EXIST::FUNCTION:DES
2816EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES 2816EVP_des_ede3_cfb8 3258 EXIST::FUNCTION:DES
2817FIPS_rand_seeded 3259 EXIST:OPENSSL_FIPS:FUNCTION: 2817FIPS_rand_seeded 3259 NOEXIST::FUNCTION:
2818AES_cfbr_encrypt_block 3260 EXIST::FUNCTION:AES 2818AES_cfbr_encrypt_block 3260 EXIST::FUNCTION:AES
2819AES_cfb8_encrypt 3261 EXIST::FUNCTION:AES 2819AES_cfb8_encrypt 3261 EXIST::FUNCTION:AES
2820FIPS_rand_seed 3262 EXIST:OPENSSL_FIPS:FUNCTION: 2820FIPS_rand_seed 3262 NOEXIST::FUNCTION:
2821FIPS_corrupt_des 3263 EXIST:OPENSSL_FIPS:FUNCTION: 2821FIPS_corrupt_des 3263 NOEXIST::FUNCTION:
2822EVP_aes_192_cfb1 3264 EXIST::FUNCTION:AES 2822EVP_aes_192_cfb1 3264 EXIST::FUNCTION:AES
2823FIPS_selftest_aes 3265 EXIST:OPENSSL_FIPS:FUNCTION: 2823FIPS_selftest_aes 3265 NOEXIST::FUNCTION:
2824FIPS_set_prng_key 3266 EXIST:OPENSSL_FIPS:FUNCTION: 2824FIPS_set_prng_key 3266 NOEXIST::FUNCTION:
2825EVP_des_cfb8 3267 EXIST::FUNCTION:DES 2825EVP_des_cfb8 3267 EXIST::FUNCTION:DES
2826FIPS_corrupt_dsa 3268 EXIST:OPENSSL_FIPS:FUNCTION: 2826FIPS_corrupt_dsa 3268 NOEXIST::FUNCTION:
2827FIPS_test_mode 3269 EXIST:OPENSSL_FIPS:FUNCTION: 2827FIPS_test_mode 3269 NOEXIST::FUNCTION:
2828FIPS_rand_method 3270 EXIST:OPENSSL_FIPS:FUNCTION: 2828FIPS_rand_method 3270 NOEXIST::FUNCTION:
2829EVP_aes_256_cfb1 3271 EXIST::FUNCTION:AES 2829EVP_aes_256_cfb1 3271 EXIST::FUNCTION:AES
2830ERR_load_FIPS_strings 3272 EXIST:OPENSSL_FIPS:FUNCTION: 2830ERR_load_FIPS_strings 3272 NOEXIST::FUNCTION:
2831FIPS_corrupt_aes 3273 EXIST:OPENSSL_FIPS:FUNCTION: 2831FIPS_corrupt_aes 3273 NOEXIST::FUNCTION:
2832FIPS_selftest_sha1 3274 EXIST:OPENSSL_FIPS:FUNCTION: 2832FIPS_selftest_sha1 3274 NOEXIST::FUNCTION:
2833FIPS_selftest_rsa 3275 EXIST:OPENSSL_FIPS:FUNCTION: 2833FIPS_selftest_rsa 3275 NOEXIST::FUNCTION:
2834FIPS_corrupt_sha1 3276 EXIST:OPENSSL_FIPS:FUNCTION: 2834FIPS_corrupt_sha1 3276 NOEXIST::FUNCTION:
2835EVP_des_cfb1 3277 EXIST::FUNCTION:DES 2835EVP_des_cfb1 3277 EXIST::FUNCTION:DES
2836FIPS_dsa_check 3278 EXIST:OPENSSL_FIPS:FUNCTION: 2836FIPS_dsa_check 3278 NOEXIST::FUNCTION:
2837AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES 2837AES_cfb1_encrypt 3279 EXIST::FUNCTION:AES
2838EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES 2838EVP_des_ede3_cfb1 3280 EXIST::FUNCTION:DES
2839FIPS_rand_check 3281 EXIST:OPENSSL_FIPS:FUNCTION: 2839FIPS_rand_check 3281 NOEXIST::FUNCTION:
2840FIPS_md5_allowed 3282 NOEXIST::FUNCTION: 2840FIPS_md5_allowed 3282 NOEXIST::FUNCTION:
2841FIPS_mode 3283 EXIST:OPENSSL_FIPS:FUNCTION: 2841FIPS_mode 3283 NOEXIST::FUNCTION:
2842FIPS_selftest_failed 3284 EXIST:OPENSSL_FIPS:FUNCTION: 2842FIPS_selftest_failed 3284 NOEXIST::FUNCTION:
2843sk_is_sorted 3285 EXIST::FUNCTION: 2843sk_is_sorted 3285 EXIST::FUNCTION:
2844X509_check_ca 3286 EXIST::FUNCTION: 2844X509_check_ca 3286 EXIST::FUNCTION:
2845private_idea_set_encrypt_key 3287 EXIST:OPENSSL_FIPS:FUNCTION:IDEA 2845private_idea_set_encrypt_key 3287 NOEXIST::FUNCTION:
2846HMAC_CTX_set_flags 3288 EXIST::FUNCTION:HMAC 2846HMAC_CTX_set_flags 3288 NOEXIST::FUNCTION:
2847private_SHA_Init 3289 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA0 2847private_SHA_Init 3289 NOEXIST::FUNCTION:
2848private_CAST_set_key 3290 EXIST:OPENSSL_FIPS:FUNCTION:CAST 2848private_CAST_set_key 3290 NOEXIST::FUNCTION:
2849private_RIPEMD160_Init 3291 EXIST:OPENSSL_FIPS:FUNCTION:RIPEMD 2849private_RIPEMD160_Init 3291 NOEXIST::FUNCTION:
2850private_RC5_32_set_key 3292 EXIST:OPENSSL_FIPS:FUNCTION:RC5 2850private_RC5_32_set_key 3292 NOEXIST::FUNCTION:
2851private_MD5_Init 3293 EXIST:OPENSSL_FIPS:FUNCTION:MD5 2851private_MD5_Init 3293 NOEXIST::FUNCTION:
2852private_RC4_set_key 3294 EXIST:OPENSSL_FIPS:FUNCTION:RC4 2852private_RC4_set_key 3294 NOEXIST::FUNCTION:
2853private_MDC2_Init 3295 EXIST:OPENSSL_FIPS:FUNCTION:MDC2 2853private_MDC2_Init 3295 NOEXIST::FUNCTION:
2854private_RC2_set_key 3296 EXIST:OPENSSL_FIPS:FUNCTION:RC2 2854private_RC2_set_key 3296 NOEXIST::FUNCTION:
2855private_MD4_Init 3297 EXIST:OPENSSL_FIPS:FUNCTION:MD4 2855private_MD4_Init 3297 NOEXIST::FUNCTION:
2856private_BF_set_key 3298 EXIST:OPENSSL_FIPS:FUNCTION:BF 2856private_BF_set_key 3298 NOEXIST::FUNCTION:
2857private_MD2_Init 3299 EXIST:OPENSSL_FIPS:FUNCTION:MD2 2857private_MD2_Init 3299 NOEXIST::FUNCTION:
2858d2i_PROXY_CERT_INFO_EXTENSION 3300 EXIST::FUNCTION: 2858d2i_PROXY_CERT_INFO_EXTENSION 3300 EXIST::FUNCTION:
2859PROXY_POLICY_it 3301 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE: 2859PROXY_POLICY_it 3301 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2860PROXY_POLICY_it 3301 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION: 2860PROXY_POLICY_it 3301 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
@@ -2868,13 +2868,13 @@ PROXY_CERT_INFO_EXTENSION_it 3307 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTI
2868PROXY_POLICY_free 3308 EXIST::FUNCTION: 2868PROXY_POLICY_free 3308 EXIST::FUNCTION:
2869PROXY_POLICY_new 3309 EXIST::FUNCTION: 2869PROXY_POLICY_new 3309 EXIST::FUNCTION:
2870BN_MONT_CTX_set_locked 3310 EXIST::FUNCTION: 2870BN_MONT_CTX_set_locked 3310 EXIST::FUNCTION:
2871FIPS_selftest_rng 3311 EXIST:OPENSSL_FIPS:FUNCTION: 2871FIPS_selftest_rng 3311 NOEXIST::FUNCTION:
2872EVP_sha384 3312 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2872EVP_sha384 3312 EXIST::FUNCTION:SHA,SHA512
2873EVP_sha512 3313 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2873EVP_sha512 3313 EXIST::FUNCTION:SHA,SHA512
2874EVP_sha224 3314 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2874EVP_sha224 3314 EXIST::FUNCTION:SHA,SHA256
2875EVP_sha256 3315 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2875EVP_sha256 3315 EXIST::FUNCTION:SHA,SHA256
2876FIPS_selftest_hmac 3316 EXIST:OPENSSL_FIPS:FUNCTION: 2876FIPS_selftest_hmac 3316 NOEXIST::FUNCTION:
2877FIPS_corrupt_rng 3317 EXIST:OPENSSL_FIPS:FUNCTION: 2877FIPS_corrupt_rng 3317 NOEXIST::FUNCTION:
2878BN_mod_exp_mont_consttime 3318 EXIST::FUNCTION: 2878BN_mod_exp_mont_consttime 3318 EXIST::FUNCTION:
2879RSA_X931_hash_id 3319 EXIST::FUNCTION:RSA 2879RSA_X931_hash_id 3319 EXIST::FUNCTION:RSA
2880RSA_padding_check_X931 3320 EXIST::FUNCTION:RSA 2880RSA_padding_check_X931 3320 EXIST::FUNCTION:RSA
@@ -2882,26 +2882,773 @@ RSA_verify_PKCS1_PSS 3321 EXIST::FUNCTION:RSA
2882RSA_padding_add_X931 3322 EXIST::FUNCTION:RSA 2882RSA_padding_add_X931 3322 EXIST::FUNCTION:RSA
2883RSA_padding_add_PKCS1_PSS 3323 EXIST::FUNCTION:RSA 2883RSA_padding_add_PKCS1_PSS 3323 EXIST::FUNCTION:RSA
2884PKCS1_MGF1 3324 EXIST::FUNCTION:RSA 2884PKCS1_MGF1 3324 EXIST::FUNCTION:RSA
2885BN_X931_generate_Xpq 3325 EXIST:OPENSSL_FIPS:FUNCTION: 2885BN_X931_generate_Xpq 3325 NOEXIST::FUNCTION:
2886RSA_X931_generate_key 3326 EXIST:OPENSSL_FIPS:FUNCTION:RSA 2886RSA_X931_generate_key 3326 NOEXIST::FUNCTION:
2887BN_X931_derive_prime 3327 EXIST:OPENSSL_FIPS:FUNCTION: 2887BN_X931_derive_prime 3327 NOEXIST::FUNCTION:
2888BN_X931_generate_prime 3328 EXIST:OPENSSL_FIPS:FUNCTION: 2888BN_X931_generate_prime 3328 NOEXIST::FUNCTION:
2889RSA_X931_derive 3329 EXIST:OPENSSL_FIPS:FUNCTION:RSA 2889RSA_X931_derive 3329 NOEXIST::FUNCTION:
2890SHA512_Update 3356 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2890BIO_new_dgram 3330 EXIST::FUNCTION:
2891SHA256_Init 3479 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2891BN_get0_nist_prime_384 3331 EXIST::FUNCTION:
2892SHA224 3510 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2892ERR_set_mark 3332 EXIST::FUNCTION:
2893SHA384_Update 3551 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2893X509_STORE_CTX_set0_crls 3333 EXIST::FUNCTION:
2894SHA224_Final 3560 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2894ENGINE_set_STORE 3334 EXIST::FUNCTION:ENGINE
2895SHA224_Update 3562 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2895ENGINE_register_ECDSA 3335 EXIST::FUNCTION:ENGINE
2896SHA512_Final 3581 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2896STORE_method_set_list_start_function 3336 EXIST:!VMS:FUNCTION:
2897SHA224_Init 3631 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2897STORE_meth_set_list_start_fn 3336 EXIST:VMS:FUNCTION:
2898SHA512_Init 3633 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2898BN_BLINDING_invert_ex 3337 EXIST::FUNCTION:
2899SHA256 3654 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2899NAME_CONSTRAINTS_free 3338 EXIST::FUNCTION:
2900SHA256_Transform 3664 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2900STORE_ATTR_INFO_set_number 3339 EXIST::FUNCTION:
2901SHA512 3669 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2901BN_BLINDING_get_thread_id 3340 EXIST::FUNCTION:
2902SHA512_Transform 3675 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2902X509_STORE_CTX_set0_param 3341 EXIST::FUNCTION:
2903SHA256_Final 3712 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2903POLICY_MAPPING_it 3342 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2904SHA384_Init 3737 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2904POLICY_MAPPING_it 3342 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2905SHA384_Final 3740 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2905STORE_parse_attrs_start 3343 EXIST::FUNCTION:
2906SHA384 3745 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA512 2906POLICY_CONSTRAINTS_free 3344 EXIST::FUNCTION:
2907SHA256_Update 3765 EXIST:OPENSSL_FIPS:FUNCTION:SHA,SHA256 2907EVP_PKEY_add1_attr_by_NID 3345 EXIST::FUNCTION:
2908BN_nist_mod_192 3346 EXIST::FUNCTION:
2909EC_GROUP_get_trinomial_basis 3347 EXIST::FUNCTION:EC
2910STORE_set_method 3348 EXIST::FUNCTION:
2911GENERAL_SUBTREE_free 3349 EXIST::FUNCTION:
2912NAME_CONSTRAINTS_it 3350 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2913NAME_CONSTRAINTS_it 3350 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2914ECDH_get_default_method 3351 EXIST::FUNCTION:ECDH
2915PKCS12_add_safe 3352 EXIST::FUNCTION:
2916EC_KEY_new_by_curve_name 3353 EXIST::FUNCTION:EC
2917STORE_method_get_update_store_function 3354 EXIST:!VMS:FUNCTION:
2918STORE_meth_get_update_store_fn 3354 EXIST:VMS:FUNCTION:
2919ENGINE_register_ECDH 3355 EXIST::FUNCTION:ENGINE
2920SHA512_Update 3356 EXIST::FUNCTION:SHA,SHA512
2921i2d_ECPrivateKey 3357 EXIST::FUNCTION:EC
2922BN_get0_nist_prime_192 3358 EXIST::FUNCTION:
2923STORE_modify_certificate 3359 EXIST::FUNCTION:
2924EC_POINT_set_affine_coordinates_GF2m 3360 EXIST:!VMS:FUNCTION:EC
2925EC_POINT_set_affine_coords_GF2m 3360 EXIST:VMS:FUNCTION:EC
2926BN_GF2m_mod_exp_arr 3361 EXIST::FUNCTION:
2927STORE_ATTR_INFO_modify_number 3362 EXIST::FUNCTION:
2928X509_keyid_get0 3363 EXIST::FUNCTION:
2929ENGINE_load_gmp 3364 EXIST::FUNCTION:ENGINE,GMP,STATIC_ENGINE
2930pitem_new 3365 EXIST::FUNCTION:
2931BN_GF2m_mod_mul_arr 3366 EXIST::FUNCTION:
2932STORE_list_public_key_endp 3367 EXIST::FUNCTION:
2933o2i_ECPublicKey 3368 EXIST::FUNCTION:EC
2934EC_KEY_copy 3369 EXIST::FUNCTION:EC
2935BIO_dump_fp 3370 EXIST::FUNCTION:FP_API
2936X509_policy_node_get0_parent 3371 EXIST::FUNCTION:
2937EC_GROUP_check_discriminant 3372 EXIST::FUNCTION:EC
2938i2o_ECPublicKey 3373 EXIST::FUNCTION:EC
2939EC_KEY_precompute_mult 3374 EXIST::FUNCTION:EC
2940a2i_IPADDRESS 3375 EXIST::FUNCTION:
2941STORE_method_set_initialise_function 3376 EXIST:!VMS:FUNCTION:
2942STORE_meth_set_initialise_fn 3376 EXIST:VMS:FUNCTION:
2943X509_STORE_CTX_set_depth 3377 EXIST::FUNCTION:
2944X509_VERIFY_PARAM_inherit 3378 EXIST::FUNCTION:
2945EC_POINT_point2bn 3379 EXIST::FUNCTION:EC
2946STORE_ATTR_INFO_set_dn 3380 EXIST::FUNCTION:
2947X509_policy_tree_get0_policies 3381 EXIST::FUNCTION:
2948EC_GROUP_new_curve_GF2m 3382 EXIST::FUNCTION:EC
2949STORE_destroy_method 3383 EXIST::FUNCTION:
2950ENGINE_unregister_STORE 3384 EXIST::FUNCTION:ENGINE
2951EVP_PKEY_get1_EC_KEY 3385 EXIST::FUNCTION:EC
2952STORE_ATTR_INFO_get0_number 3386 EXIST::FUNCTION:
2953ENGINE_get_default_ECDH 3387 EXIST::FUNCTION:ENGINE
2954EC_KEY_get_conv_form 3388 EXIST::FUNCTION:EC
2955ASN1_OCTET_STRING_NDEF_it 3389 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
2956ASN1_OCTET_STRING_NDEF_it 3389 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
2957STORE_delete_public_key 3390 EXIST::FUNCTION:
2958STORE_get_public_key 3391 EXIST::FUNCTION:
2959STORE_modify_arbitrary 3392 EXIST::FUNCTION:
2960ENGINE_get_static_state 3393 EXIST::FUNCTION:ENGINE
2961pqueue_iterator 3394 EXIST::FUNCTION:
2962ECDSA_SIG_new 3395 EXIST::FUNCTION:ECDSA
2963OPENSSL_DIR_end 3396 EXIST::FUNCTION:
2964BN_GF2m_mod_sqr 3397 EXIST::FUNCTION:
2965EC_POINT_bn2point 3398 EXIST::FUNCTION:EC
2966X509_VERIFY_PARAM_set_depth 3399 EXIST::FUNCTION:
2967EC_KEY_set_asn1_flag 3400 EXIST::FUNCTION:EC
2968STORE_get_method 3401 EXIST::FUNCTION:
2969EC_KEY_get_key_method_data 3402 EXIST::FUNCTION:EC
2970ECDSA_sign_ex 3403 EXIST::FUNCTION:ECDSA
2971STORE_parse_attrs_end 3404 EXIST::FUNCTION:
2972EC_GROUP_get_point_conversion_form 3405 EXIST:!VMS:FUNCTION:EC
2973EC_GROUP_get_point_conv_form 3405 EXIST:VMS:FUNCTION:EC
2974STORE_method_set_store_function 3406 EXIST::FUNCTION:
2975STORE_ATTR_INFO_in 3407 EXIST::FUNCTION:
2976PEM_read_bio_ECPKParameters 3408 EXIST::FUNCTION:EC
2977EC_GROUP_get_pentanomial_basis 3409 EXIST::FUNCTION:EC
2978EVP_PKEY_add1_attr_by_txt 3410 EXIST::FUNCTION:
2979BN_BLINDING_set_flags 3411 EXIST::FUNCTION:
2980X509_VERIFY_PARAM_set1_policies 3412 EXIST::FUNCTION:
2981X509_VERIFY_PARAM_set1_name 3413 EXIST::FUNCTION:
2982X509_VERIFY_PARAM_set_purpose 3414 EXIST::FUNCTION:
2983STORE_get_number 3415 EXIST::FUNCTION:
2984ECDSA_sign_setup 3416 EXIST::FUNCTION:ECDSA
2985BN_GF2m_mod_solve_quad_arr 3417 EXIST::FUNCTION:
2986EC_KEY_up_ref 3418 EXIST::FUNCTION:EC
2987POLICY_MAPPING_free 3419 EXIST::FUNCTION:
2988BN_GF2m_mod_div 3420 EXIST::FUNCTION:
2989X509_VERIFY_PARAM_set_flags 3421 EXIST::FUNCTION:
2990EC_KEY_free 3422 EXIST::FUNCTION:EC
2991STORE_method_set_list_next_function 3423 EXIST:!VMS:FUNCTION:
2992STORE_meth_set_list_next_fn 3423 EXIST:VMS:FUNCTION:
2993PEM_write_bio_ECPrivateKey 3424 EXIST::FUNCTION:EC
2994d2i_EC_PUBKEY 3425 EXIST::FUNCTION:EC
2995STORE_method_get_generate_function 3426 EXIST:!VMS:FUNCTION:
2996STORE_meth_get_generate_fn 3426 EXIST:VMS:FUNCTION:
2997STORE_method_set_list_end_function 3427 EXIST:!VMS:FUNCTION:
2998STORE_meth_set_list_end_fn 3427 EXIST:VMS:FUNCTION:
2999pqueue_print 3428 EXIST::FUNCTION:
3000EC_GROUP_have_precompute_mult 3429 EXIST::FUNCTION:EC
3001EC_KEY_print_fp 3430 EXIST::FUNCTION:EC,FP_API
3002BN_GF2m_mod_arr 3431 EXIST::FUNCTION:
3003PEM_write_bio_X509_CERT_PAIR 3432 EXIST::FUNCTION:
3004EVP_PKEY_cmp 3433 EXIST::FUNCTION:
3005X509_policy_level_node_count 3434 EXIST::FUNCTION:
3006STORE_new_engine 3435 EXIST::FUNCTION:
3007STORE_list_public_key_start 3436 EXIST::FUNCTION:
3008X509_VERIFY_PARAM_new 3437 EXIST::FUNCTION:
3009ECDH_get_ex_data 3438 EXIST::FUNCTION:ECDH
3010EVP_PKEY_get_attr 3439 EXIST::FUNCTION:
3011ECDSA_do_sign 3440 EXIST::FUNCTION:ECDSA
3012ENGINE_unregister_ECDH 3441 EXIST::FUNCTION:ENGINE
3013ECDH_OpenSSL 3442 EXIST::FUNCTION:ECDH
3014EC_KEY_set_conv_form 3443 EXIST::FUNCTION:EC
3015EC_POINT_dup 3444 EXIST::FUNCTION:EC
3016GENERAL_SUBTREE_new 3445 EXIST::FUNCTION:
3017STORE_list_crl_endp 3446 EXIST::FUNCTION:
3018EC_get_builtin_curves 3447 EXIST::FUNCTION:EC
3019X509_policy_node_get0_qualifiers 3448 EXIST:!VMS:FUNCTION:
3020X509_pcy_node_get0_qualifiers 3448 EXIST:VMS:FUNCTION:
3021STORE_list_crl_end 3449 EXIST::FUNCTION:
3022EVP_PKEY_set1_EC_KEY 3450 EXIST::FUNCTION:EC
3023BN_GF2m_mod_sqrt_arr 3451 EXIST::FUNCTION:
3024i2d_ECPrivateKey_bio 3452 EXIST::FUNCTION:BIO,EC
3025ECPKParameters_print_fp 3453 EXIST::FUNCTION:EC,FP_API
3026pqueue_find 3454 EXIST::FUNCTION:
3027ECDSA_SIG_free 3455 EXIST::FUNCTION:ECDSA
3028PEM_write_bio_ECPKParameters 3456 EXIST::FUNCTION:EC
3029STORE_method_set_ctrl_function 3457 EXIST::FUNCTION:
3030STORE_list_public_key_end 3458 EXIST::FUNCTION:
3031EC_KEY_set_private_key 3459 EXIST::FUNCTION:EC
3032pqueue_peek 3460 EXIST::FUNCTION:
3033STORE_get_arbitrary 3461 EXIST::FUNCTION:
3034STORE_store_crl 3462 EXIST::FUNCTION:
3035X509_policy_node_get0_policy 3463 EXIST::FUNCTION:
3036PKCS12_add_safes 3464 EXIST::FUNCTION:
3037BN_BLINDING_convert_ex 3465 EXIST::FUNCTION:
3038X509_policy_tree_free 3466 EXIST::FUNCTION:
3039OPENSSL_ia32cap_loc 3467 EXIST::FUNCTION:
3040BN_GF2m_poly2arr 3468 EXIST::FUNCTION:
3041STORE_ctrl 3469 EXIST::FUNCTION:
3042STORE_ATTR_INFO_compare 3470 EXIST::FUNCTION:
3043BN_get0_nist_prime_224 3471 EXIST::FUNCTION:
3044i2d_ECParameters 3472 EXIST::FUNCTION:EC
3045i2d_ECPKParameters 3473 EXIST::FUNCTION:EC
3046BN_GENCB_call 3474 EXIST::FUNCTION:
3047d2i_ECPKParameters 3475 EXIST::FUNCTION:EC
3048STORE_method_set_generate_function 3476 EXIST:!VMS:FUNCTION:
3049STORE_meth_set_generate_fn 3476 EXIST:VMS:FUNCTION:
3050ENGINE_set_ECDH 3477 EXIST::FUNCTION:ENGINE
3051NAME_CONSTRAINTS_new 3478 EXIST::FUNCTION:
3052SHA256_Init 3479 EXIST::FUNCTION:SHA,SHA256
3053EC_KEY_get0_public_key 3480 EXIST::FUNCTION:EC
3054PEM_write_bio_EC_PUBKEY 3481 EXIST::FUNCTION:EC
3055STORE_ATTR_INFO_set_cstr 3482 EXIST::FUNCTION:
3056STORE_list_crl_next 3483 EXIST::FUNCTION:
3057STORE_ATTR_INFO_in_range 3484 EXIST::FUNCTION:
3058ECParameters_print 3485 EXIST::FUNCTION:BIO,EC
3059STORE_method_set_delete_function 3486 EXIST:!VMS:FUNCTION:
3060STORE_meth_set_delete_fn 3486 EXIST:VMS:FUNCTION:
3061STORE_list_certificate_next 3487 EXIST::FUNCTION:
3062ASN1_generate_nconf 3488 EXIST::FUNCTION:
3063BUF_memdup 3489 EXIST::FUNCTION:
3064BN_GF2m_mod_mul 3490 EXIST::FUNCTION:
3065STORE_method_get_list_next_function 3491 EXIST:!VMS:FUNCTION:
3066STORE_meth_get_list_next_fn 3491 EXIST:VMS:FUNCTION:
3067STORE_ATTR_INFO_get0_dn 3492 EXIST::FUNCTION:
3068STORE_list_private_key_next 3493 EXIST::FUNCTION:
3069EC_GROUP_set_seed 3494 EXIST::FUNCTION:EC
3070X509_VERIFY_PARAM_set_trust 3495 EXIST::FUNCTION:
3071STORE_ATTR_INFO_free 3496 EXIST::FUNCTION:
3072STORE_get_private_key 3497 EXIST::FUNCTION:
3073EVP_PKEY_get_attr_count 3498 EXIST::FUNCTION:
3074STORE_ATTR_INFO_new 3499 EXIST::FUNCTION:
3075EC_GROUP_get_curve_GF2m 3500 EXIST::FUNCTION:EC
3076STORE_method_set_revoke_function 3501 EXIST:!VMS:FUNCTION:
3077STORE_meth_set_revoke_fn 3501 EXIST:VMS:FUNCTION:
3078STORE_store_number 3502 EXIST::FUNCTION:
3079BN_is_prime_ex 3503 EXIST::FUNCTION:
3080STORE_revoke_public_key 3504 EXIST::FUNCTION:
3081X509_STORE_CTX_get0_param 3505 EXIST::FUNCTION:
3082STORE_delete_arbitrary 3506 EXIST::FUNCTION:
3083PEM_read_X509_CERT_PAIR 3507 EXIST:!WIN16:FUNCTION:
3084X509_STORE_set_depth 3508 EXIST::FUNCTION:
3085ECDSA_get_ex_data 3509 EXIST::FUNCTION:ECDSA
3086SHA224 3510 EXIST::FUNCTION:SHA,SHA256
3087BIO_dump_indent_fp 3511 EXIST::FUNCTION:FP_API
3088EC_KEY_set_group 3512 EXIST::FUNCTION:EC
3089BUF_strndup 3513 EXIST::FUNCTION:
3090STORE_list_certificate_start 3514 EXIST::FUNCTION:
3091BN_GF2m_mod 3515 EXIST::FUNCTION:
3092X509_REQ_check_private_key 3516 EXIST::FUNCTION:
3093EC_GROUP_get_seed_len 3517 EXIST::FUNCTION:EC
3094ERR_load_STORE_strings 3518 EXIST::FUNCTION:
3095PEM_read_bio_EC_PUBKEY 3519 EXIST::FUNCTION:EC
3096STORE_list_private_key_end 3520 EXIST::FUNCTION:
3097i2d_EC_PUBKEY 3521 EXIST::FUNCTION:EC
3098ECDSA_get_default_method 3522 EXIST::FUNCTION:ECDSA
3099ASN1_put_eoc 3523 EXIST::FUNCTION:
3100X509_STORE_CTX_get_explicit_policy 3524 EXIST:!VMS:FUNCTION:
3101X509_STORE_CTX_get_expl_policy 3524 EXIST:VMS:FUNCTION:
3102X509_VERIFY_PARAM_table_cleanup 3525 EXIST::FUNCTION:
3103STORE_modify_private_key 3526 EXIST::FUNCTION:
3104X509_VERIFY_PARAM_free 3527 EXIST::FUNCTION:
3105EC_METHOD_get_field_type 3528 EXIST::FUNCTION:EC
3106EC_GFp_nist_method 3529 EXIST::FUNCTION:EC
3107STORE_method_set_modify_function 3530 EXIST:!VMS:FUNCTION:
3108STORE_meth_set_modify_fn 3530 EXIST:VMS:FUNCTION:
3109STORE_parse_attrs_next 3531 EXIST::FUNCTION:
3110ENGINE_load_padlock 3532 EXIST::FUNCTION:ENGINE
3111EC_GROUP_set_curve_name 3533 EXIST::FUNCTION:EC
3112X509_CERT_PAIR_it 3534 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
3113X509_CERT_PAIR_it 3534 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
3114STORE_method_get_revoke_function 3535 EXIST:!VMS:FUNCTION:
3115STORE_meth_get_revoke_fn 3535 EXIST:VMS:FUNCTION:
3116STORE_method_set_get_function 3536 EXIST::FUNCTION:
3117STORE_modify_number 3537 EXIST::FUNCTION:
3118STORE_method_get_store_function 3538 EXIST::FUNCTION:
3119STORE_store_private_key 3539 EXIST::FUNCTION:
3120BN_GF2m_mod_sqr_arr 3540 EXIST::FUNCTION:
3121RSA_setup_blinding 3541 EXIST::FUNCTION:RSA
3122BIO_s_datagram 3542 EXIST::FUNCTION:DGRAM
3123STORE_Memory 3543 EXIST::FUNCTION:
3124sk_find_ex 3544 EXIST::FUNCTION:
3125EC_GROUP_set_curve_GF2m 3545 EXIST::FUNCTION:EC
3126ENGINE_set_default_ECDSA 3546 EXIST::FUNCTION:ENGINE
3127POLICY_CONSTRAINTS_new 3547 EXIST::FUNCTION:
3128BN_GF2m_mod_sqrt 3548 EXIST::FUNCTION:
3129ECDH_set_default_method 3549 EXIST::FUNCTION:ECDH
3130EC_KEY_generate_key 3550 EXIST::FUNCTION:EC
3131SHA384_Update 3551 EXIST::FUNCTION:SHA,SHA512
3132BN_GF2m_arr2poly 3552 EXIST::FUNCTION:
3133STORE_method_get_get_function 3553 EXIST::FUNCTION:
3134STORE_method_set_cleanup_function 3554 EXIST:!VMS:FUNCTION:
3135STORE_meth_set_cleanup_fn 3554 EXIST:VMS:FUNCTION:
3136EC_GROUP_check 3555 EXIST::FUNCTION:EC
3137d2i_ECPrivateKey_bio 3556 EXIST::FUNCTION:BIO,EC
3138EC_KEY_insert_key_method_data 3557 EXIST::FUNCTION:EC
3139STORE_method_get_lock_store_function 3558 EXIST:!VMS:FUNCTION:
3140STORE_meth_get_lock_store_fn 3558 EXIST:VMS:FUNCTION:
3141X509_VERIFY_PARAM_get_depth 3559 EXIST::FUNCTION:
3142SHA224_Final 3560 EXIST::FUNCTION:SHA,SHA256
3143STORE_method_set_update_store_function 3561 EXIST:!VMS:FUNCTION:
3144STORE_meth_set_update_store_fn 3561 EXIST:VMS:FUNCTION:
3145SHA224_Update 3562 EXIST::FUNCTION:SHA,SHA256
3146d2i_ECPrivateKey 3563 EXIST::FUNCTION:EC
3147ASN1_item_ndef_i2d 3564 EXIST::FUNCTION:
3148STORE_delete_private_key 3565 EXIST::FUNCTION:
3149ERR_pop_to_mark 3566 EXIST::FUNCTION:
3150ENGINE_register_all_STORE 3567 EXIST::FUNCTION:ENGINE
3151X509_policy_level_get0_node 3568 EXIST::FUNCTION:
3152i2d_PKCS7_NDEF 3569 EXIST::FUNCTION:
3153EC_GROUP_get_degree 3570 EXIST::FUNCTION:EC
3154ASN1_generate_v3 3571 EXIST::FUNCTION:
3155STORE_ATTR_INFO_modify_cstr 3572 EXIST::FUNCTION:
3156X509_policy_tree_level_count 3573 EXIST::FUNCTION:
3157BN_GF2m_add 3574 EXIST::FUNCTION:
3158EC_KEY_get0_group 3575 EXIST::FUNCTION:EC
3159STORE_generate_crl 3576 EXIST::FUNCTION:
3160STORE_store_public_key 3577 EXIST::FUNCTION:
3161X509_CERT_PAIR_free 3578 EXIST::FUNCTION:
3162STORE_revoke_private_key 3579 EXIST::FUNCTION:
3163BN_nist_mod_224 3580 EXIST::FUNCTION:
3164SHA512_Final 3581 EXIST::FUNCTION:SHA,SHA512
3165STORE_ATTR_INFO_modify_dn 3582 EXIST::FUNCTION:
3166STORE_method_get_initialise_function 3583 EXIST:!VMS:FUNCTION:
3167STORE_meth_get_initialise_fn 3583 EXIST:VMS:FUNCTION:
3168STORE_delete_number 3584 EXIST::FUNCTION:
3169i2d_EC_PUBKEY_bio 3585 EXIST::FUNCTION:BIO,EC
3170BIO_dgram_non_fatal_error 3586 EXIST::FUNCTION:
3171EC_GROUP_get_asn1_flag 3587 EXIST::FUNCTION:EC
3172STORE_ATTR_INFO_in_ex 3588 EXIST::FUNCTION:
3173STORE_list_crl_start 3589 EXIST::FUNCTION:
3174ECDH_get_ex_new_index 3590 EXIST::FUNCTION:ECDH
3175STORE_method_get_modify_function 3591 EXIST:!VMS:FUNCTION:
3176STORE_meth_get_modify_fn 3591 EXIST:VMS:FUNCTION:
3177v2i_ASN1_BIT_STRING 3592 EXIST::FUNCTION:
3178STORE_store_certificate 3593 EXIST::FUNCTION:
3179OBJ_bsearch_ex 3594 EXIST::FUNCTION:
3180X509_STORE_CTX_set_default 3595 EXIST::FUNCTION:
3181STORE_ATTR_INFO_set_sha1str 3596 EXIST::FUNCTION:
3182BN_GF2m_mod_inv 3597 EXIST::FUNCTION:
3183BN_GF2m_mod_exp 3598 EXIST::FUNCTION:
3184STORE_modify_public_key 3599 EXIST::FUNCTION:
3185STORE_method_get_list_start_function 3600 EXIST:!VMS:FUNCTION:
3186STORE_meth_get_list_start_fn 3600 EXIST:VMS:FUNCTION:
3187EC_GROUP_get0_seed 3601 EXIST::FUNCTION:EC
3188STORE_store_arbitrary 3602 EXIST::FUNCTION:
3189STORE_method_set_unlock_store_function 3603 EXIST:!VMS:FUNCTION:
3190STORE_meth_set_unlock_store_fn 3603 EXIST:VMS:FUNCTION:
3191BN_GF2m_mod_div_arr 3604 EXIST::FUNCTION:
3192ENGINE_set_ECDSA 3605 EXIST::FUNCTION:ENGINE
3193STORE_create_method 3606 EXIST::FUNCTION:
3194ECPKParameters_print 3607 EXIST::FUNCTION:BIO,EC
3195EC_KEY_get0_private_key 3608 EXIST::FUNCTION:EC
3196PEM_write_EC_PUBKEY 3609 EXIST:!WIN16:FUNCTION:EC
3197X509_VERIFY_PARAM_set1 3610 EXIST::FUNCTION:
3198ECDH_set_method 3611 EXIST::FUNCTION:ECDH
3199v2i_GENERAL_NAME_ex 3612 EXIST::FUNCTION:
3200ECDH_set_ex_data 3613 EXIST::FUNCTION:ECDH
3201STORE_generate_key 3614 EXIST::FUNCTION:
3202BN_nist_mod_521 3615 EXIST::FUNCTION:
3203X509_policy_tree_get0_level 3616 EXIST::FUNCTION:
3204EC_GROUP_set_point_conversion_form 3617 EXIST:!VMS:FUNCTION:EC
3205EC_GROUP_set_point_conv_form 3617 EXIST:VMS:FUNCTION:EC
3206PEM_read_EC_PUBKEY 3618 EXIST:!WIN16:FUNCTION:EC
3207i2d_ECDSA_SIG 3619 EXIST::FUNCTION:ECDSA
3208ECDSA_OpenSSL 3620 EXIST::FUNCTION:ECDSA
3209STORE_delete_crl 3621 EXIST::FUNCTION:
3210EC_KEY_get_enc_flags 3622 EXIST::FUNCTION:EC
3211ASN1_const_check_infinite_end 3623 EXIST::FUNCTION:
3212EVP_PKEY_delete_attr 3624 EXIST::FUNCTION:
3213ECDSA_set_default_method 3625 EXIST::FUNCTION:ECDSA
3214EC_POINT_set_compressed_coordinates_GF2m 3626 EXIST:!VMS:FUNCTION:EC
3215EC_POINT_set_compr_coords_GF2m 3626 EXIST:VMS:FUNCTION:EC
3216EC_GROUP_cmp 3627 EXIST::FUNCTION:EC
3217STORE_revoke_certificate 3628 EXIST::FUNCTION:
3218BN_get0_nist_prime_256 3629 EXIST::FUNCTION:
3219STORE_method_get_delete_function 3630 EXIST:!VMS:FUNCTION:
3220STORE_meth_get_delete_fn 3630 EXIST:VMS:FUNCTION:
3221SHA224_Init 3631 EXIST::FUNCTION:SHA,SHA256
3222PEM_read_ECPrivateKey 3632 EXIST:!WIN16:FUNCTION:EC
3223SHA512_Init 3633 EXIST::FUNCTION:SHA,SHA512
3224STORE_parse_attrs_endp 3634 EXIST::FUNCTION:
3225BN_set_negative 3635 EXIST::FUNCTION:
3226ERR_load_ECDSA_strings 3636 EXIST::FUNCTION:ECDSA
3227EC_GROUP_get_basis_type 3637 EXIST::FUNCTION:EC
3228STORE_list_public_key_next 3638 EXIST::FUNCTION:
3229i2v_ASN1_BIT_STRING 3639 EXIST::FUNCTION:
3230STORE_OBJECT_free 3640 EXIST::FUNCTION:
3231BN_nist_mod_384 3641 EXIST::FUNCTION:
3232i2d_X509_CERT_PAIR 3642 EXIST::FUNCTION:
3233PEM_write_ECPKParameters 3643 EXIST:!WIN16:FUNCTION:EC
3234ECDH_compute_key 3644 EXIST::FUNCTION:ECDH
3235STORE_ATTR_INFO_get0_sha1str 3645 EXIST::FUNCTION:
3236ENGINE_register_all_ECDH 3646 EXIST::FUNCTION:ENGINE
3237pqueue_pop 3647 EXIST::FUNCTION:
3238STORE_ATTR_INFO_get0_cstr 3648 EXIST::FUNCTION:
3239POLICY_CONSTRAINTS_it 3649 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
3240POLICY_CONSTRAINTS_it 3649 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
3241STORE_get_ex_new_index 3650 EXIST::FUNCTION:
3242EVP_PKEY_get_attr_by_OBJ 3651 EXIST::FUNCTION:
3243X509_VERIFY_PARAM_add0_policy 3652 EXIST::FUNCTION:
3244BN_GF2m_mod_solve_quad 3653 EXIST::FUNCTION:
3245SHA256 3654 EXIST::FUNCTION:SHA,SHA256
3246i2d_ECPrivateKey_fp 3655 EXIST::FUNCTION:EC,FP_API
3247X509_policy_tree_get0_user_policies 3656 EXIST:!VMS:FUNCTION:
3248X509_pcy_tree_get0_usr_policies 3656 EXIST:VMS:FUNCTION:
3249OPENSSL_DIR_read 3657 EXIST::FUNCTION:
3250ENGINE_register_all_ECDSA 3658 EXIST::FUNCTION:ENGINE
3251X509_VERIFY_PARAM_lookup 3659 EXIST::FUNCTION:
3252EC_POINT_get_affine_coordinates_GF2m 3660 EXIST:!VMS:FUNCTION:EC
3253EC_POINT_get_affine_coords_GF2m 3660 EXIST:VMS:FUNCTION:EC
3254EC_GROUP_dup 3661 EXIST::FUNCTION:EC
3255ENGINE_get_default_ECDSA 3662 EXIST::FUNCTION:ENGINE
3256EC_KEY_new 3663 EXIST::FUNCTION:EC
3257SHA256_Transform 3664 EXIST::FUNCTION:SHA,SHA256
3258EC_KEY_set_enc_flags 3665 EXIST::FUNCTION:EC
3259ECDSA_verify 3666 EXIST::FUNCTION:ECDSA
3260EC_POINT_point2hex 3667 EXIST::FUNCTION:EC
3261ENGINE_get_STORE 3668 EXIST::FUNCTION:ENGINE
3262SHA512 3669 EXIST::FUNCTION:SHA,SHA512
3263STORE_get_certificate 3670 EXIST::FUNCTION:
3264ECDSA_do_sign_ex 3671 EXIST::FUNCTION:ECDSA
3265ECDSA_do_verify 3672 EXIST::FUNCTION:ECDSA
3266d2i_ECPrivateKey_fp 3673 EXIST::FUNCTION:EC,FP_API
3267STORE_delete_certificate 3674 EXIST::FUNCTION:
3268SHA512_Transform 3675 EXIST::FUNCTION:SHA,SHA512
3269X509_STORE_set1_param 3676 EXIST::FUNCTION:
3270STORE_method_get_ctrl_function 3677 EXIST::FUNCTION:
3271STORE_free 3678 EXIST::FUNCTION:
3272PEM_write_ECPrivateKey 3679 EXIST:!WIN16:FUNCTION:EC
3273STORE_method_get_unlock_store_function 3680 EXIST:!VMS:FUNCTION:
3274STORE_meth_get_unlock_store_fn 3680 EXIST:VMS:FUNCTION:
3275STORE_get_ex_data 3681 EXIST::FUNCTION:
3276EC_KEY_set_public_key 3682 EXIST::FUNCTION:EC
3277PEM_read_ECPKParameters 3683 EXIST:!WIN16:FUNCTION:EC
3278X509_CERT_PAIR_new 3684 EXIST::FUNCTION:
3279ENGINE_register_STORE 3685 EXIST::FUNCTION:ENGINE
3280RSA_generate_key_ex 3686 EXIST::FUNCTION:RSA
3281DSA_generate_parameters_ex 3687 EXIST::FUNCTION:DSA
3282ECParameters_print_fp 3688 EXIST::FUNCTION:EC,FP_API
3283X509V3_NAME_from_section 3689 EXIST::FUNCTION:
3284EVP_PKEY_add1_attr 3690 EXIST::FUNCTION:
3285STORE_modify_crl 3691 EXIST::FUNCTION:
3286STORE_list_private_key_start 3692 EXIST::FUNCTION:
3287POLICY_MAPPINGS_it 3693 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
3288POLICY_MAPPINGS_it 3693 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
3289GENERAL_SUBTREE_it 3694 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
3290GENERAL_SUBTREE_it 3694 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
3291EC_GROUP_get_curve_name 3695 EXIST::FUNCTION:EC
3292PEM_write_X509_CERT_PAIR 3696 EXIST:!WIN16:FUNCTION:
3293BIO_dump_indent_cb 3697 EXIST::FUNCTION:
3294d2i_X509_CERT_PAIR 3698 EXIST::FUNCTION:
3295STORE_list_private_key_endp 3699 EXIST::FUNCTION:
3296asn1_const_Finish 3700 EXIST::FUNCTION:
3297i2d_EC_PUBKEY_fp 3701 EXIST::FUNCTION:EC,FP_API
3298BN_nist_mod_256 3702 EXIST::FUNCTION:
3299X509_VERIFY_PARAM_add0_table 3703 EXIST::FUNCTION:
3300pqueue_free 3704 EXIST::FUNCTION:
3301BN_BLINDING_create_param 3705 EXIST::FUNCTION:
3302ECDSA_size 3706 EXIST::FUNCTION:ECDSA
3303d2i_EC_PUBKEY_bio 3707 EXIST::FUNCTION:BIO,EC
3304BN_get0_nist_prime_521 3708 EXIST::FUNCTION:
3305STORE_ATTR_INFO_modify_sha1str 3709 EXIST::FUNCTION:
3306BN_generate_prime_ex 3710 EXIST::FUNCTION:
3307EC_GROUP_new_by_curve_name 3711 EXIST::FUNCTION:EC
3308SHA256_Final 3712 EXIST::FUNCTION:SHA,SHA256
3309DH_generate_parameters_ex 3713 EXIST::FUNCTION:DH
3310PEM_read_bio_ECPrivateKey 3714 EXIST::FUNCTION:EC
3311STORE_method_get_cleanup_function 3715 EXIST:!VMS:FUNCTION:
3312STORE_meth_get_cleanup_fn 3715 EXIST:VMS:FUNCTION:
3313ENGINE_get_ECDH 3716 EXIST::FUNCTION:ENGINE
3314d2i_ECDSA_SIG 3717 EXIST::FUNCTION:ECDSA
3315BN_is_prime_fasttest_ex 3718 EXIST::FUNCTION:
3316ECDSA_sign 3719 EXIST::FUNCTION:ECDSA
3317X509_policy_check 3720 EXIST::FUNCTION:
3318EVP_PKEY_get_attr_by_NID 3721 EXIST::FUNCTION:
3319STORE_set_ex_data 3722 EXIST::FUNCTION:
3320ENGINE_get_ECDSA 3723 EXIST::FUNCTION:ENGINE
3321EVP_ecdsa 3724 EXIST::FUNCTION:SHA
3322BN_BLINDING_get_flags 3725 EXIST::FUNCTION:
3323PKCS12_add_cert 3726 EXIST::FUNCTION:
3324STORE_OBJECT_new 3727 EXIST::FUNCTION:
3325ERR_load_ECDH_strings 3728 EXIST::FUNCTION:ECDH
3326EC_KEY_dup 3729 EXIST::FUNCTION:EC
3327EVP_CIPHER_CTX_rand_key 3730 EXIST::FUNCTION:
3328ECDSA_set_method 3731 EXIST::FUNCTION:ECDSA
3329a2i_IPADDRESS_NC 3732 EXIST::FUNCTION:
3330d2i_ECParameters 3733 EXIST::FUNCTION:EC
3331STORE_list_certificate_end 3734 EXIST::FUNCTION:
3332STORE_get_crl 3735 EXIST::FUNCTION:
3333X509_POLICY_NODE_print 3736 EXIST::FUNCTION:
3334SHA384_Init 3737 EXIST::FUNCTION:SHA,SHA512
3335EC_GF2m_simple_method 3738 EXIST::FUNCTION:EC
3336ECDSA_set_ex_data 3739 EXIST::FUNCTION:ECDSA
3337SHA384_Final 3740 EXIST::FUNCTION:SHA,SHA512
3338PKCS7_set_digest 3741 EXIST::FUNCTION:
3339EC_KEY_print 3742 EXIST::FUNCTION:BIO,EC
3340STORE_method_set_lock_store_function 3743 EXIST:!VMS:FUNCTION:
3341STORE_meth_set_lock_store_fn 3743 EXIST:VMS:FUNCTION:
3342ECDSA_get_ex_new_index 3744 EXIST::FUNCTION:ECDSA
3343SHA384 3745 EXIST::FUNCTION:SHA,SHA512
3344POLICY_MAPPING_new 3746 EXIST::FUNCTION:
3345STORE_list_certificate_endp 3747 EXIST::FUNCTION:
3346X509_STORE_CTX_get0_policy_tree 3748 EXIST::FUNCTION:
3347EC_GROUP_set_asn1_flag 3749 EXIST::FUNCTION:EC
3348EC_KEY_check_key 3750 EXIST::FUNCTION:EC
3349d2i_EC_PUBKEY_fp 3751 EXIST::FUNCTION:EC,FP_API
3350PKCS7_set0_type_other 3752 EXIST::FUNCTION:
3351PEM_read_bio_X509_CERT_PAIR 3753 EXIST::FUNCTION:
3352pqueue_next 3754 EXIST::FUNCTION:
3353STORE_method_get_list_end_function 3755 EXIST:!VMS:FUNCTION:
3354STORE_meth_get_list_end_fn 3755 EXIST:VMS:FUNCTION:
3355EVP_PKEY_add1_attr_by_OBJ 3756 EXIST::FUNCTION:
3356X509_VERIFY_PARAM_set_time 3757 EXIST::FUNCTION:
3357pqueue_new 3758 EXIST::FUNCTION:
3358ENGINE_set_default_ECDH 3759 EXIST::FUNCTION:ENGINE
3359STORE_new_method 3760 EXIST::FUNCTION:
3360PKCS12_add_key 3761 EXIST::FUNCTION:
3361DSO_merge 3762 EXIST::FUNCTION:
3362EC_POINT_hex2point 3763 EXIST::FUNCTION:EC
3363BIO_dump_cb 3764 EXIST::FUNCTION:
3364SHA256_Update 3765 EXIST::FUNCTION:SHA,SHA256
3365pqueue_insert 3766 EXIST::FUNCTION:
3366pitem_free 3767 EXIST::FUNCTION:
3367BN_GF2m_mod_inv_arr 3768 EXIST::FUNCTION:
3368ENGINE_unregister_ECDSA 3769 EXIST::FUNCTION:ENGINE
3369BN_BLINDING_set_thread_id 3770 EXIST::FUNCTION:
3370get_rfc3526_prime_8192 3771 EXIST::FUNCTION:
3371X509_VERIFY_PARAM_clear_flags 3772 EXIST::FUNCTION:
3372get_rfc2409_prime_1024 3773 EXIST::FUNCTION:
3373DH_check_pub_key 3774 EXIST::FUNCTION:DH
3374get_rfc3526_prime_2048 3775 EXIST::FUNCTION:
3375get_rfc3526_prime_6144 3776 EXIST::FUNCTION:
3376get_rfc3526_prime_1536 3777 EXIST::FUNCTION:
3377get_rfc3526_prime_3072 3778 EXIST::FUNCTION:
3378get_rfc3526_prime_4096 3779 EXIST::FUNCTION:
3379get_rfc2409_prime_768 3780 EXIST::FUNCTION:
3380X509_VERIFY_PARAM_get_flags 3781 EXIST::FUNCTION:
3381EVP_CIPHER_CTX_new 3782 EXIST::FUNCTION:
3382EVP_CIPHER_CTX_free 3783 EXIST::FUNCTION:
3383Camellia_cbc_encrypt 3784 EXIST::FUNCTION:CAMELLIA
3384Camellia_cfb128_encrypt 3785 EXIST::FUNCTION:CAMELLIA
3385Camellia_cfb1_encrypt 3786 EXIST::FUNCTION:CAMELLIA
3386Camellia_cfb8_encrypt 3787 EXIST::FUNCTION:CAMELLIA
3387Camellia_ctr128_encrypt 3788 EXIST::FUNCTION:CAMELLIA
3388Camellia_cfbr_encrypt_block 3789 EXIST::FUNCTION:CAMELLIA
3389Camellia_decrypt 3790 EXIST::FUNCTION:CAMELLIA
3390Camellia_ecb_encrypt 3791 EXIST::FUNCTION:CAMELLIA
3391Camellia_encrypt 3792 EXIST::FUNCTION:CAMELLIA
3392Camellia_ofb128_encrypt 3793 EXIST::FUNCTION:CAMELLIA
3393Camellia_set_key 3794 EXIST::FUNCTION:CAMELLIA
3394EVP_camellia_128_cbc 3795 EXIST::FUNCTION:CAMELLIA
3395EVP_camellia_128_cfb128 3796 EXIST::FUNCTION:CAMELLIA
3396EVP_camellia_128_cfb1 3797 EXIST::FUNCTION:CAMELLIA
3397EVP_camellia_128_cfb8 3798 EXIST::FUNCTION:CAMELLIA
3398EVP_camellia_128_ecb 3799 EXIST::FUNCTION:CAMELLIA
3399EVP_camellia_128_ofb 3800 EXIST::FUNCTION:CAMELLIA
3400EVP_camellia_192_cbc 3801 EXIST::FUNCTION:CAMELLIA
3401EVP_camellia_192_cfb128 3802 EXIST::FUNCTION:CAMELLIA
3402EVP_camellia_192_cfb1 3803 EXIST::FUNCTION:CAMELLIA
3403EVP_camellia_192_cfb8 3804 EXIST::FUNCTION:CAMELLIA
3404EVP_camellia_192_ecb 3805 EXIST::FUNCTION:CAMELLIA
3405EVP_camellia_192_ofb 3806 EXIST::FUNCTION:CAMELLIA
3406EVP_camellia_256_cbc 3807 EXIST::FUNCTION:CAMELLIA
3407EVP_camellia_256_cfb128 3808 EXIST::FUNCTION:CAMELLIA
3408EVP_camellia_256_cfb1 3809 EXIST::FUNCTION:CAMELLIA
3409EVP_camellia_256_cfb8 3810 EXIST::FUNCTION:CAMELLIA
3410EVP_camellia_256_ecb 3811 EXIST::FUNCTION:CAMELLIA
3411EVP_camellia_256_ofb 3812 EXIST::FUNCTION:CAMELLIA
3412a2i_ipadd 3813 EXIST::FUNCTION:
3413ASIdentifiers_free 3814 EXIST::FUNCTION:RFC3779
3414i2d_ASIdOrRange 3815 EXIST::FUNCTION:RFC3779
3415EVP_CIPHER_block_size 3816 EXIST::FUNCTION:
3416v3_asid_is_canonical 3817 EXIST::FUNCTION:RFC3779
3417IPAddressChoice_free 3818 EXIST::FUNCTION:RFC3779
3418EVP_CIPHER_CTX_set_app_data 3819 EXIST::FUNCTION:
3419BIO_set_callback_arg 3820 EXIST::FUNCTION:
3420v3_addr_add_prefix 3821 EXIST::FUNCTION:RFC3779
3421IPAddressOrRange_it 3822 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3422IPAddressOrRange_it 3822 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3423BIO_set_flags 3823 EXIST::FUNCTION:
3424ASIdentifiers_it 3824 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3425ASIdentifiers_it 3824 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3426v3_addr_get_range 3825 EXIST::FUNCTION:RFC3779
3427BIO_method_type 3826 EXIST::FUNCTION:
3428v3_addr_inherits 3827 EXIST::FUNCTION:RFC3779
3429IPAddressChoice_it 3828 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3430IPAddressChoice_it 3828 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3431AES_ige_encrypt 3829 EXIST::FUNCTION:AES
3432v3_addr_add_range 3830 EXIST::FUNCTION:RFC3779
3433EVP_CIPHER_CTX_nid 3831 EXIST::FUNCTION:
3434d2i_ASRange 3832 EXIST::FUNCTION:RFC3779
3435v3_addr_add_inherit 3833 EXIST::FUNCTION:RFC3779
3436v3_asid_add_id_or_range 3834 EXIST::FUNCTION:RFC3779
3437v3_addr_validate_resource_set 3835 EXIST::FUNCTION:RFC3779
3438EVP_CIPHER_iv_length 3836 EXIST::FUNCTION:
3439EVP_MD_type 3837 EXIST::FUNCTION:
3440v3_asid_canonize 3838 EXIST::FUNCTION:RFC3779
3441IPAddressRange_free 3839 EXIST::FUNCTION:RFC3779
3442v3_asid_add_inherit 3840 EXIST::FUNCTION:RFC3779
3443EVP_CIPHER_CTX_key_length 3841 EXIST::FUNCTION:
3444IPAddressRange_new 3842 EXIST::FUNCTION:RFC3779
3445ASIdOrRange_new 3843 EXIST::FUNCTION:RFC3779
3446EVP_MD_size 3844 EXIST::FUNCTION:
3447EVP_MD_CTX_test_flags 3845 EXIST::FUNCTION:
3448BIO_clear_flags 3846 EXIST::FUNCTION:
3449i2d_ASRange 3847 EXIST::FUNCTION:RFC3779
3450IPAddressRange_it 3848 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3451IPAddressRange_it 3848 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3452IPAddressChoice_new 3849 EXIST::FUNCTION:RFC3779
3453ASIdentifierChoice_new 3850 EXIST::FUNCTION:RFC3779
3454ASRange_free 3851 EXIST::FUNCTION:RFC3779
3455EVP_MD_pkey_type 3852 EXIST::FUNCTION:
3456EVP_MD_CTX_clear_flags 3853 EXIST::FUNCTION:
3457IPAddressFamily_free 3854 EXIST::FUNCTION:RFC3779
3458i2d_IPAddressFamily 3855 EXIST::FUNCTION:RFC3779
3459IPAddressOrRange_new 3856 EXIST::FUNCTION:RFC3779
3460EVP_CIPHER_flags 3857 EXIST::FUNCTION:
3461v3_asid_validate_resource_set 3858 EXIST::FUNCTION:RFC3779
3462d2i_IPAddressRange 3859 EXIST::FUNCTION:RFC3779
3463AES_bi_ige_encrypt 3860 EXIST::FUNCTION:AES
3464BIO_get_callback 3861 EXIST::FUNCTION:
3465IPAddressOrRange_free 3862 EXIST::FUNCTION:RFC3779
3466v3_addr_subset 3863 EXIST::FUNCTION:RFC3779
3467d2i_IPAddressFamily 3864 EXIST::FUNCTION:RFC3779
3468v3_asid_subset 3865 EXIST::FUNCTION:RFC3779
3469BIO_test_flags 3866 EXIST::FUNCTION:
3470i2d_ASIdentifierChoice 3867 EXIST::FUNCTION:RFC3779
3471ASRange_it 3868 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3472ASRange_it 3868 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3473d2i_ASIdentifiers 3869 EXIST::FUNCTION:RFC3779
3474ASRange_new 3870 EXIST::FUNCTION:RFC3779
3475d2i_IPAddressChoice 3871 EXIST::FUNCTION:RFC3779
3476v3_addr_get_afi 3872 EXIST::FUNCTION:RFC3779
3477EVP_CIPHER_key_length 3873 EXIST::FUNCTION:
3478EVP_Cipher 3874 EXIST::FUNCTION:
3479i2d_IPAddressOrRange 3875 EXIST::FUNCTION:RFC3779
3480ASIdOrRange_it 3876 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3481ASIdOrRange_it 3876 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3482EVP_CIPHER_nid 3877 EXIST::FUNCTION:
3483i2d_IPAddressChoice 3878 EXIST::FUNCTION:RFC3779
3484EVP_CIPHER_CTX_block_size 3879 EXIST::FUNCTION:
3485ASIdentifiers_new 3880 EXIST::FUNCTION:RFC3779
3486v3_addr_validate_path 3881 EXIST::FUNCTION:RFC3779
3487IPAddressFamily_new 3882 EXIST::FUNCTION:RFC3779
3488EVP_MD_CTX_set_flags 3883 EXIST::FUNCTION:
3489v3_addr_is_canonical 3884 EXIST::FUNCTION:RFC3779
3490i2d_IPAddressRange 3885 EXIST::FUNCTION:RFC3779
3491IPAddressFamily_it 3886 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3492IPAddressFamily_it 3886 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3493v3_asid_inherits 3887 EXIST::FUNCTION:RFC3779
3494EVP_CIPHER_CTX_cipher 3888 EXIST::FUNCTION:
3495EVP_CIPHER_CTX_get_app_data 3889 EXIST::FUNCTION:
3496EVP_MD_block_size 3890 EXIST::FUNCTION:
3497EVP_CIPHER_CTX_flags 3891 EXIST::FUNCTION:
3498v3_asid_validate_path 3892 EXIST::FUNCTION:RFC3779
3499d2i_IPAddressOrRange 3893 EXIST::FUNCTION:RFC3779
3500v3_addr_canonize 3894 EXIST::FUNCTION:RFC3779
3501ASIdentifierChoice_it 3895 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:RFC3779
3502ASIdentifierChoice_it 3895 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:RFC3779
3503EVP_MD_CTX_md 3896 EXIST::FUNCTION:
3504d2i_ASIdentifierChoice 3897 EXIST::FUNCTION:RFC3779
3505BIO_method_name 3898 EXIST::FUNCTION:
3506EVP_CIPHER_CTX_iv_length 3899 EXIST::FUNCTION:
3507ASIdOrRange_free 3900 EXIST::FUNCTION:RFC3779
3508ASIdentifierChoice_free 3901 EXIST::FUNCTION:RFC3779
3509BIO_get_callback_arg 3902 EXIST::FUNCTION:
3510BIO_set_callback 3903 EXIST::FUNCTION:
3511d2i_ASIdOrRange 3904 EXIST::FUNCTION:RFC3779
3512i2d_ASIdentifiers 3905 EXIST::FUNCTION:RFC3779
3513SEED_decrypt 3908 EXIST::FUNCTION:SEED
3514SEED_encrypt 3909 EXIST::FUNCTION:SEED
3515SEED_cbc_encrypt 3910 EXIST::FUNCTION:SEED
3516EVP_seed_ofb 3911 EXIST::FUNCTION:SEED
3517SEED_cfb128_encrypt 3912 EXIST::FUNCTION:SEED
3518SEED_ofb128_encrypt 3913 EXIST::FUNCTION:SEED
3519EVP_seed_cbc 3914 EXIST::FUNCTION:SEED
3520SEED_ecb_encrypt 3915 EXIST::FUNCTION:SEED
3521EVP_seed_ecb 3916 EXIST::FUNCTION:SEED
3522SEED_set_key 3917 EXIST::FUNCTION:SEED
3523EVP_seed_cfb128 3918 EXIST::FUNCTION:SEED
3524X509_EXTENSIONS_it 3919 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
3525X509_EXTENSIONS_it 3919 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
3526X509_get1_ocsp 3920 EXIST::FUNCTION:
3527OCSP_REQ_CTX_free 3921 EXIST::FUNCTION:
3528i2d_X509_EXTENSIONS 3922 EXIST::FUNCTION:
3529OCSP_sendreq_nbio 3923 EXIST::FUNCTION:
3530OCSP_sendreq_new 3924 EXIST::FUNCTION:
3531d2i_X509_EXTENSIONS 3925 EXIST::FUNCTION:
3532X509_ALGORS_it 3926 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:
3533X509_ALGORS_it 3926 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:
3534X509_ALGOR_get0 3927 EXIST::FUNCTION:
3535X509_ALGOR_set0 3928 EXIST::FUNCTION:
3536AES_unwrap_key 3929 EXIST::FUNCTION:AES
3537AES_wrap_key 3930 EXIST::FUNCTION:AES
3538X509at_get0_data_by_OBJ 3931 EXIST::FUNCTION:
3539ASN1_TYPE_set1 3932 EXIST::FUNCTION:
3540ASN1_STRING_set0 3933 EXIST::FUNCTION:
3541i2d_X509_ALGORS 3934 EXIST::FUNCTION:
3542BIO_f_zlib 3935 EXIST:ZLIB:FUNCTION:
3543COMP_zlib_cleanup 3936 EXIST::FUNCTION:
3544d2i_X509_ALGORS 3937 EXIST::FUNCTION:
3545CMS_ReceiptRequest_free 3938 EXIST::FUNCTION:CMS
3546PEM_write_CMS 3939 EXIST:!WIN16:FUNCTION:CMS
3547CMS_add0_CertificateChoices 3940 EXIST::FUNCTION:CMS
3548CMS_unsigned_add1_attr_by_OBJ 3941 EXIST::FUNCTION:CMS
3549ERR_load_CMS_strings 3942 EXIST::FUNCTION:CMS
3550CMS_sign_receipt 3943 EXIST::FUNCTION:CMS
3551i2d_CMS_ContentInfo 3944 EXIST::FUNCTION:CMS
3552CMS_signed_delete_attr 3945 EXIST::FUNCTION:CMS
3553d2i_CMS_bio 3946 EXIST::FUNCTION:CMS
3554CMS_unsigned_get_attr_by_NID 3947 EXIST::FUNCTION:CMS
3555CMS_verify 3948 EXIST::FUNCTION:CMS
3556SMIME_read_CMS 3949 EXIST::FUNCTION:CMS
3557CMS_decrypt_set1_key 3950 EXIST::FUNCTION:CMS
3558CMS_SignerInfo_get0_algs 3951 EXIST::FUNCTION:CMS
3559CMS_add1_cert 3952 EXIST::FUNCTION:CMS
3560CMS_set_detached 3953 EXIST::FUNCTION:CMS
3561CMS_encrypt 3954 EXIST::FUNCTION:CMS
3562CMS_EnvelopedData_create 3955 EXIST::FUNCTION:CMS
3563CMS_uncompress 3956 EXIST::FUNCTION:CMS
3564CMS_add0_crl 3957 EXIST::FUNCTION:CMS
3565CMS_SignerInfo_verify_content 3958 EXIST::FUNCTION:CMS
3566CMS_unsigned_get0_data_by_OBJ 3959 EXIST::FUNCTION:CMS
3567PEM_write_bio_CMS 3960 EXIST::FUNCTION:CMS
3568CMS_unsigned_get_attr 3961 EXIST::FUNCTION:CMS
3569CMS_RecipientInfo_ktri_cert_cmp 3962 EXIST::FUNCTION:CMS
3570CMS_RecipientInfo_ktri_get0_algs 3963 EXIST:!VMS:FUNCTION:CMS
3571CMS_RecipInfo_ktri_get0_algs 3963 EXIST:VMS:FUNCTION:CMS
3572CMS_ContentInfo_free 3964 EXIST::FUNCTION:CMS
3573CMS_final 3965 EXIST::FUNCTION:CMS
3574CMS_add_simple_smimecap 3966 EXIST::FUNCTION:CMS
3575CMS_SignerInfo_verify 3967 EXIST::FUNCTION:CMS
3576CMS_data 3968 EXIST::FUNCTION:CMS
3577CMS_ContentInfo_it 3969 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:CMS
3578CMS_ContentInfo_it 3969 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:CMS
3579d2i_CMS_ReceiptRequest 3970 EXIST::FUNCTION:CMS
3580CMS_compress 3971 EXIST::FUNCTION:CMS
3581CMS_digest_create 3972 EXIST::FUNCTION:CMS
3582CMS_SignerInfo_cert_cmp 3973 EXIST::FUNCTION:CMS
3583CMS_SignerInfo_sign 3974 EXIST::FUNCTION:CMS
3584CMS_data_create 3975 EXIST::FUNCTION:CMS
3585i2d_CMS_bio 3976 EXIST::FUNCTION:CMS
3586CMS_EncryptedData_set1_key 3977 EXIST::FUNCTION:CMS
3587CMS_decrypt 3978 EXIST::FUNCTION:CMS
3588int_smime_write_ASN1 3979 EXIST::FUNCTION:
3589CMS_unsigned_delete_attr 3980 EXIST::FUNCTION:CMS
3590CMS_unsigned_get_attr_count 3981 EXIST::FUNCTION:CMS
3591CMS_add_smimecap 3982 EXIST::FUNCTION:CMS
3592PEM_read_CMS 3983 EXIST:!WIN16:FUNCTION:CMS
3593CMS_signed_get_attr_by_OBJ 3984 EXIST::FUNCTION:CMS
3594d2i_CMS_ContentInfo 3985 EXIST::FUNCTION:CMS
3595CMS_add_standard_smimecap 3986 EXIST::FUNCTION:CMS
3596CMS_ContentInfo_new 3987 EXIST::FUNCTION:CMS
3597CMS_RecipientInfo_type 3988 EXIST::FUNCTION:CMS
3598CMS_get0_type 3989 EXIST::FUNCTION:CMS
3599CMS_is_detached 3990 EXIST::FUNCTION:CMS
3600CMS_sign 3991 EXIST::FUNCTION:CMS
3601CMS_signed_add1_attr 3992 EXIST::FUNCTION:CMS
3602CMS_unsigned_get_attr_by_OBJ 3993 EXIST::FUNCTION:CMS
3603SMIME_write_CMS 3994 EXIST::FUNCTION:CMS
3604CMS_EncryptedData_decrypt 3995 EXIST::FUNCTION:CMS
3605CMS_get0_RecipientInfos 3996 EXIST::FUNCTION:CMS
3606CMS_add0_RevocationInfoChoice 3997 EXIST::FUNCTION:CMS
3607CMS_decrypt_set1_pkey 3998 EXIST::FUNCTION:CMS
3608CMS_SignerInfo_set1_signer_cert 3999 EXIST::FUNCTION:CMS
3609CMS_get0_signers 4000 EXIST::FUNCTION:CMS
3610CMS_ReceiptRequest_get0_values 4001 EXIST::FUNCTION:CMS
3611CMS_signed_get0_data_by_OBJ 4002 EXIST::FUNCTION:CMS
3612CMS_get0_SignerInfos 4003 EXIST::FUNCTION:CMS
3613CMS_add0_cert 4004 EXIST::FUNCTION:CMS
3614CMS_EncryptedData_encrypt 4005 EXIST::FUNCTION:CMS
3615CMS_digest_verify 4006 EXIST::FUNCTION:CMS
3616CMS_set1_signers_certs 4007 EXIST::FUNCTION:CMS
3617CMS_signed_get_attr 4008 EXIST::FUNCTION:CMS
3618CMS_RecipientInfo_set0_key 4009 EXIST::FUNCTION:CMS
3619CMS_SignedData_init 4010 EXIST::FUNCTION:CMS
3620CMS_RecipientInfo_kekri_get0_id 4011 EXIST::FUNCTION:CMS
3621CMS_verify_receipt 4012 EXIST::FUNCTION:CMS
3622CMS_ReceiptRequest_it 4013 EXIST:!EXPORT_VAR_AS_FUNCTION:VARIABLE:CMS
3623CMS_ReceiptRequest_it 4013 EXIST:EXPORT_VAR_AS_FUNCTION:FUNCTION:CMS
3624PEM_read_bio_CMS 4014 EXIST::FUNCTION:CMS
3625CMS_get1_crls 4015 EXIST::FUNCTION:CMS
3626CMS_add0_recipient_key 4016 EXIST::FUNCTION:CMS
3627SMIME_read_ASN1 4017 EXIST::FUNCTION:
3628CMS_ReceiptRequest_new 4018 EXIST::FUNCTION:CMS
3629CMS_get0_content 4019 EXIST::FUNCTION:CMS
3630CMS_get1_ReceiptRequest 4020 EXIST::FUNCTION:CMS
3631CMS_signed_add1_attr_by_OBJ 4021 EXIST::FUNCTION:CMS
3632CMS_RecipientInfo_kekri_id_cmp 4022 EXIST::FUNCTION:CMS
3633CMS_add1_ReceiptRequest 4023 EXIST::FUNCTION:CMS
3634CMS_SignerInfo_get0_signer_id 4024 EXIST::FUNCTION:CMS
3635CMS_unsigned_add1_attr_by_NID 4025 EXIST::FUNCTION:CMS
3636CMS_unsigned_add1_attr 4026 EXIST::FUNCTION:CMS
3637CMS_signed_get_attr_by_NID 4027 EXIST::FUNCTION:CMS
3638CMS_get1_certs 4028 EXIST::FUNCTION:CMS
3639CMS_signed_add1_attr_by_NID 4029 EXIST::FUNCTION:CMS
3640CMS_unsigned_add1_attr_by_txt 4030 EXIST::FUNCTION:CMS
3641CMS_dataFinal 4031 EXIST::FUNCTION:CMS
3642CMS_RecipientInfo_ktri_get0_signer_id 4032 EXIST:!VMS:FUNCTION:CMS
3643CMS_RecipInfo_ktri_get0_sigr_id 4032 EXIST:VMS:FUNCTION:CMS
3644i2d_CMS_ReceiptRequest 4033 EXIST::FUNCTION:CMS
3645CMS_add1_recipient_cert 4034 EXIST::FUNCTION:CMS
3646CMS_dataInit 4035 EXIST::FUNCTION:CMS
3647CMS_signed_add1_attr_by_txt 4036 EXIST::FUNCTION:CMS
3648CMS_RecipientInfo_decrypt 4037 EXIST::FUNCTION:CMS
3649CMS_signed_get_attr_count 4038 EXIST::FUNCTION:CMS
3650CMS_get0_eContentType 4039 EXIST::FUNCTION:CMS
3651CMS_set1_eContentType 4040 EXIST::FUNCTION:CMS
3652CMS_ReceiptRequest_create0 4041 EXIST::FUNCTION:CMS
3653CMS_add1_signer 4042 EXIST::FUNCTION:CMS
3654CMS_RecipientInfo_set0_pkey 4043 EXIST::FUNCTION:CMS
diff --git a/src/lib/libcrypto/util/mk1mf.pl b/src/lib/libcrypto/util/mk1mf.pl
index 05a6086164..1ac5fd3a50 100644
--- a/src/lib/libcrypto/util/mk1mf.pl
+++ b/src/lib/libcrypto/util/mk1mf.pl
@@ -10,19 +10,11 @@ $OPTIONS="";
10$ssl_version=""; 10$ssl_version="";
11$banner="\t\@echo Building OpenSSL"; 11$banner="\t\@echo Building OpenSSL";
12 12
13my $no_static_engine = 0;
14my $engines = "";
13local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic 15local $zlib_opt = 0; # 0 = no zlib, 1 = static, 2 = dynamic
14local $zlib_lib = ""; 16local $zlib_lib = "";
15 17
16my $fips_canister_path = "";
17my $fips_premain_dso_exe_path = "";
18my $fips_premain_c_path = "";
19my $fips_sha1_exe_path = "";
20
21my $fipslibdir = "";
22my $baseaddr = "";
23
24my $ex_l_libs = "";
25
26 18
27open(IN,"<Makefile") || die "unable to open Makefile!\n"; 19open(IN,"<Makefile") || die "unable to open Makefile!\n";
28while(<IN>) { 20while(<IN>) {
@@ -38,22 +30,21 @@ $infile="MINFO";
38 30
39%ops=( 31%ops=(
40 "VC-WIN32", "Microsoft Visual C++ [4-6] - Windows NT or 9X", 32 "VC-WIN32", "Microsoft Visual C++ [4-6] - Windows NT or 9X",
41 "VC-WIN32-GMAKE", "Microsoft Visual C++ [4-6] - Windows NT or 9X, GNU make", 33 "VC-WIN64I", "Microsoft C/C++ - Win64/IA-64",
34 "VC-WIN64A", "Microsoft C/C++ - Win64/x64",
42 "VC-CE", "Microsoft eMbedded Visual C++ 3.0 - Windows CE ONLY", 35 "VC-CE", "Microsoft eMbedded Visual C++ 3.0 - Windows CE ONLY",
43 "VC-NT", "Microsoft Visual C++ [4-6] - Windows NT ONLY", 36 "VC-NT", "Microsoft Visual C++ [4-6] - Windows NT ONLY",
44 "VC-W31-16", "Microsoft Visual C++ 1.52 - Windows 3.1 - 286",
45 "VC-WIN16", "Alias for VC-W31-32",
46 "VC-W31-32", "Microsoft Visual C++ 1.52 - Windows 3.1 - 386+",
47 "VC-MSDOS","Microsoft Visual C++ 1.52 - MSDOS",
48 "Mingw32", "GNU C++ - Windows NT or 9x", 37 "Mingw32", "GNU C++ - Windows NT or 9x",
49 "Mingw32-files", "Create files with DOS copy ...", 38 "Mingw32-files", "Create files with DOS copy ...",
50 "BC-NT", "Borland C++ 4.5 - Windows NT", 39 "BC-NT", "Borland C++ 4.5 - Windows NT",
51 "BC-W31", "Borland C++ 4.5 - Windows 3.1 - PROBABLY NOT WORKING",
52 "BC-MSDOS","Borland C++ 4.5 - MSDOS",
53 "linux-elf","Linux elf", 40 "linux-elf","Linux elf",
54 "ultrix-mips","DEC mips ultrix", 41 "ultrix-mips","DEC mips ultrix",
55 "FreeBSD","FreeBSD distribution", 42 "FreeBSD","FreeBSD distribution",
56 "OS2-EMX", "EMX GCC OS/2", 43 "OS2-EMX", "EMX GCC OS/2",
44 "netware-clib", "CodeWarrior for NetWare - CLib - with WinSock Sockets",
45 "netware-clib-bsdsock", "CodeWarrior for NetWare - CLib - with BSD Sockets",
46 "netware-libc", "CodeWarrior for NetWare - LibC - with WinSock Sockets",
47 "netware-libc-bsdsock", "CodeWarrior for NetWare - LibC - with BSD Sockets",
57 "default","cc under unix", 48 "default","cc under unix",
58 ); 49 );
59 50
@@ -73,16 +64,20 @@ and [options] can be one of
73 no-md2 no-md4 no-md5 no-sha no-mdc2 - Skip this digest 64 no-md2 no-md4 no-md5 no-sha no-mdc2 - Skip this digest
74 no-ripemd 65 no-ripemd
75 no-rc2 no-rc4 no-rc5 no-idea no-des - Skip this symetric cipher 66 no-rc2 no-rc4 no-rc5 no-idea no-des - Skip this symetric cipher
76 no-bf no-cast no-aes 67 no-bf no-cast no-aes no-camellia no-seed
77 no-rsa no-dsa no-dh - Skip this public key cipher 68 no-rsa no-dsa no-dh - Skip this public key cipher
78 no-ssl2 no-ssl3 - Skip this version of SSL 69 no-ssl2 no-ssl3 - Skip this version of SSL
79 just-ssl - remove all non-ssl keys/digest 70 just-ssl - remove all non-ssl keys/digest
80 no-asm - No x86 asm 71 no-asm - No x86 asm
81 no-krb5 - No KRB5 72 no-krb5 - No KRB5
82 no-ec - No EC 73 no-ec - No EC
74 no-ecdsa - No ECDSA
75 no-ecdh - No ECDH
83 no-engine - No engine 76 no-engine - No engine
84 no-hw - No hw 77 no-hw - No hw
85 nasm - Use NASM for x86 asm 78 nasm - Use NASM for x86 asm
79 nw-nasm - Use NASM x86 asm for NetWare
80 nw-mwasm - Use Metrowerks x86 asm for NetWare
86 gaswin - Use GNU as with Mingw32 81 gaswin - Use GNU as with Mingw32
87 no-socks - No socket code 82 no-socks - No socket code
88 no-err - No error strings 83 no-err - No error strings
@@ -107,6 +102,8 @@ foreach (grep(!/^$/, split(/ /, $OPTIONS)))
107 print STDERR "unknown option - $_\n" if !&read_options; 102 print STDERR "unknown option - $_\n" if !&read_options;
108 } 103 }
109 104
105$no_static_engine = 0 if (!$shlib);
106
110$no_mdc2=1 if ($no_des); 107$no_mdc2=1 if ($no_des);
111 108
112$no_ssl3=1 if ($no_md5 || $no_sha); 109$no_ssl3=1 if ($no_md5 || $no_sha);
@@ -119,13 +116,10 @@ $out_def="out";
119$inc_def="outinc"; 116$inc_def="outinc";
120$tmp_def="tmp"; 117$tmp_def="tmp";
121 118
122$mkdir="-mkdir"; 119$perl="perl" unless defined $perl;
123$mkcanister="ld -r -o"; 120$mkdir="-mkdir" unless defined $mkdir;
124
125$ex_build_targets = "";
126 121
127($ssl,$crypto)=("ssl","crypto"); 122($ssl,$crypto)=("ssl","crypto");
128$cryptocompat = "";
129$ranlib="echo ranlib"; 123$ranlib="echo ranlib";
130 124
131$cc=(defined($VARS{'CC'}))?$VARS{'CC'}:'cc'; 125$cc=(defined($VARS{'CC'}))?$VARS{'CC'}:'cc';
@@ -134,40 +128,16 @@ $bin_dir=(defined($VARS{'BIN'}))?$VARS{'BIN'}:'';
134 128
135# $bin_dir.=$o causes a core dump on my sparc :-( 129# $bin_dir.=$o causes a core dump on my sparc :-(
136 130
131
137$NT=0; 132$NT=0;
138 133
139push(@INC,"util/pl","pl"); 134push(@INC,"util/pl","pl");
140if ($platform eq "VC-MSDOS") 135if (($platform =~ /VC-(.+)/))
141 {
142 $asmbits=16;
143 $msdos=1;
144 require 'VC-16.pl';
145 }
146elsif ($platform eq "VC-W31-16")
147 { 136 {
148 $asmbits=16; 137 $FLAVOR=$1;
149 $msdos=1; $win16=1; 138 $NT = 1 if $1 eq "NT";
150 require 'VC-16.pl';
151 }
152elsif (($platform eq "VC-W31-32") || ($platform eq "VC-WIN16"))
153 {
154 $asmbits=32;
155 $msdos=1; $win16=1;
156 require 'VC-16.pl';
157 }
158elsif (($platform eq "VC-WIN32") || ($platform eq "VC-NT"))
159 {
160 $NT = 1 if $platform eq "VC-NT";
161 require 'VC-32.pl'; 139 require 'VC-32.pl';
162 } 140 }
163elsif ($platform eq "VC-WIN32-GMAKE")
164 {
165 require 'VC-32-GMAKE.pl';
166 }
167elsif ($platform eq "VC-CE")
168 {
169 require 'VC-CE.pl';
170 }
171elsif ($platform eq "Mingw32") 141elsif ($platform eq "Mingw32")
172 { 142 {
173 require 'Mingw32.pl'; 143 require 'Mingw32.pl';
@@ -181,23 +151,6 @@ elsif ($platform eq "BC-NT")
181 $bc=1; 151 $bc=1;
182 require 'BC-32.pl'; 152 require 'BC-32.pl';
183 } 153 }
184elsif ($platform eq "BC-W31")
185 {
186 $bc=1;
187 $msdos=1; $w16=1;
188 require 'BC-16.pl';
189 }
190elsif ($platform eq "BC-Q16")
191 {
192 $msdos=1; $w16=1; $shlib=0; $qw=1;
193 require 'BC-16.pl';
194 }
195elsif ($platform eq "BC-MSDOS")
196 {
197 $asmbits=16;
198 $msdos=1;
199 require 'BC-16.pl';
200 }
201elsif ($platform eq "FreeBSD") 154elsif ($platform eq "FreeBSD")
202 { 155 {
203 require 'unix.pl'; 156 require 'unix.pl';
@@ -220,6 +173,13 @@ elsif ($platform eq "OS2-EMX")
220 $wc=1; 173 $wc=1;
221 require 'OS2-EMX.pl'; 174 require 'OS2-EMX.pl';
222 } 175 }
176elsif (($platform eq "netware-clib") || ($platform eq "netware-libc") ||
177 ($platform eq "netware-clib-bsdsock") || ($platform eq "netware-libc-bsdsock"))
178 {
179 $LIBC=1 if $platform eq "netware-libc" || $platform eq "netware-libc-bsdsock";
180 $BSDSOCK=1 if ($platform eq "netware-libc-bsdsock") || ($platform eq "netware-clib-bsdsock");
181 require 'netware.pl';
182 }
223else 183else
224 { 184 {
225 require "unix.pl"; 185 require "unix.pl";
@@ -238,6 +198,8 @@ $cflags= "$xcflags$cflags" if $xcflags ne "";
238 198
239$cflags.=" -DOPENSSL_NO_IDEA" if $no_idea; 199$cflags.=" -DOPENSSL_NO_IDEA" if $no_idea;
240$cflags.=" -DOPENSSL_NO_AES" if $no_aes; 200$cflags.=" -DOPENSSL_NO_AES" if $no_aes;
201$cflags.=" -DOPENSSL_NO_CAMELLIA" if $no_camellia;
202$cflags.=" -DOPENSSL_NO_SEED" if $no_seed;
241$cflags.=" -DOPENSSL_NO_RC2" if $no_rc2; 203$cflags.=" -DOPENSSL_NO_RC2" if $no_rc2;
242$cflags.=" -DOPENSSL_NO_RC4" if $no_rc4; 204$cflags.=" -DOPENSSL_NO_RC4" if $no_rc4;
243$cflags.=" -DOPENSSL_NO_RC5" if $no_rc5; 205$cflags.=" -DOPENSSL_NO_RC5" if $no_rc5;
@@ -248,7 +210,7 @@ $cflags.=" -DOPENSSL_NO_SHA" if $no_sha;
248$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1; 210$cflags.=" -DOPENSSL_NO_SHA1" if $no_sha1;
249$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd; 211$cflags.=" -DOPENSSL_NO_RIPEMD" if $no_ripemd;
250$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2; 212$cflags.=" -DOPENSSL_NO_MDC2" if $no_mdc2;
251$cflags.=" -DOPENSSL_NO_BF" if $no_bf; 213$cflags.=" -DOPENSSL_NO_BF" if $no_bf;
252$cflags.=" -DOPENSSL_NO_CAST" if $no_cast; 214$cflags.=" -DOPENSSL_NO_CAST" if $no_cast;
253$cflags.=" -DOPENSSL_NO_DES" if $no_des; 215$cflags.=" -DOPENSSL_NO_DES" if $no_des;
254$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa; 216$cflags.=" -DOPENSSL_NO_RSA" if $no_rsa;
@@ -257,17 +219,30 @@ $cflags.=" -DOPENSSL_NO_DH" if $no_dh;
257$cflags.=" -DOPENSSL_NO_SOCK" if $no_sock; 219$cflags.=" -DOPENSSL_NO_SOCK" if $no_sock;
258$cflags.=" -DOPENSSL_NO_SSL2" if $no_ssl2; 220$cflags.=" -DOPENSSL_NO_SSL2" if $no_ssl2;
259$cflags.=" -DOPENSSL_NO_SSL3" if $no_ssl3; 221$cflags.=" -DOPENSSL_NO_SSL3" if $no_ssl3;
222$cflags.=" -DOPENSSL_NO_TLSEXT" if $no_tlsext;
223$cflags.=" -DOPENSSL_NO_CMS" if $no_cms;
260$cflags.=" -DOPENSSL_NO_ERR" if $no_err; 224$cflags.=" -DOPENSSL_NO_ERR" if $no_err;
261$cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5; 225$cflags.=" -DOPENSSL_NO_KRB5" if $no_krb5;
262$cflags.=" -DOPENSSL_NO_EC" if $no_ec; 226$cflags.=" -DOPENSSL_NO_EC" if $no_ec;
227$cflags.=" -DOPENSSL_NO_ECDSA" if $no_ecdsa;
228$cflags.=" -DOPENSSL_NO_ECDH" if $no_ecdh;
263$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine; 229$cflags.=" -DOPENSSL_NO_ENGINE" if $no_engine;
264$cflags.=" -DOPENSSL_NO_HW" if $no_hw; 230$cflags.=" -DOPENSSL_NO_HW" if $no_hw;
265$cflags.=" -DOPENSSL_FIPS" if $fips;
266#$cflags.=" -DRSAref" if $rsaref ne "";
267 231
268$cflags.= " -DZLIB" if $zlib_opt; 232$cflags.= " -DZLIB" if $zlib_opt;
269$cflags.= " -DZLIB_SHARED" if $zlib_opt == 2; 233$cflags.= " -DZLIB_SHARED" if $zlib_opt == 2;
270 234
235if ($no_static_engine)
236 {
237 $cflags .= " -DOPENSSL_NO_STATIC_ENGINE";
238 }
239else
240 {
241 $cflags .= " -DOPENSSL_NO_DYNAMIC_ENGINE";
242 }
243
244#$cflags.=" -DRSAref" if $rsaref ne "";
245
271## if ($unix) 246## if ($unix)
272## { $cflags="$c_flags" if ($c_flags ne ""); } 247## { $cflags="$c_flags" if ($c_flags ne ""); }
273##else 248##else
@@ -305,21 +280,11 @@ for (;;)
305 { 280 {
306 if ($lib ne "") 281 if ($lib ne "")
307 { 282 {
308 if ($fips && $dir =~ /^fips/) 283 $uc=$lib;
309 { 284 $uc =~ s/^lib(.*)\.a/$1/;
310 $uc = "FIPS"; 285 $uc =~ tr/a-z/A-Z/;
311 } 286 $lib_nam{$uc}=$uc;
312 else 287 $lib_obj{$uc}.=$libobj." ";
313 {
314 $uc=$lib;
315 $uc =~ s/^lib(.*)\.a/$1/;
316 $uc =~ tr/a-z/A-Z/;
317 }
318 if (($uc ne "FIPS") || $fips_canister_build)
319 {
320 $lib_nam{$uc}=$uc;
321 $lib_obj{$uc}.=$libobj." ";
322 }
323 } 288 }
324 last if ($val eq "FINISHED"); 289 last if ($val eq "FINISHED");
325 $lib=""; 290 $lib="";
@@ -340,10 +305,10 @@ for (;;)
340 { $ex_libs .= " $val" if $val ne "";} 305 { $ex_libs .= " $val" if $val ne "";}
341 306
342 if ($key eq "TEST") 307 if ($key eq "TEST")
343 { $test.=&var_add($dir,$val); } 308 { $test.=&var_add($dir,$val, 0); }
344 309
345 if (($key eq "PROGS") || ($key eq "E_OBJ")) 310 if (($key eq "PROGS") || ($key eq "E_OBJ"))
346 { $e_exe.=&var_add($dir,$val); } 311 { $e_exe.=&var_add($dir,$val, 0); }
347 312
348 if ($key eq "LIB") 313 if ($key eq "LIB")
349 { 314 {
@@ -352,74 +317,45 @@ for (;;)
352 } 317 }
353 318
354 if ($key eq "EXHEADER") 319 if ($key eq "EXHEADER")
355 { $exheader.=&var_add($dir,$val); } 320 { $exheader.=&var_add($dir,$val, 1); }
356 321
357 if ($key eq "HEADER") 322 if ($key eq "HEADER")
358 { $header.=&var_add($dir,$val); } 323 { $header.=&var_add($dir,$val, 1); }
359
360 if ($key eq "LIBOBJ")
361 { $libobj=&var_add($dir,$val); }
362 324
363 if ($key eq "FIPSLIBDIR") 325 if ($key eq "LIBOBJ" && ($dir ne "engines" || !$no_static_engine))
364 { $fipslibdir=$val;} 326 { $libobj=&var_add($dir,$val, 0); }
365 327 if ($key eq "LIBNAMES" && $dir eq "engines" && $no_static_engine)
366 if ($key eq "BASEADDR") 328 { $engines.=$val }
367 { $baseaddr=$val;}
368 329
369 if (!($_=<IN>)) 330 if (!($_=<IN>))
370 { $_="RELATIVE_DIRECTORY=FINISHED\n"; } 331 { $_="RELATIVE_DIRECTORY=FINISHED\n"; }
371 } 332 }
372close(IN); 333close(IN);
373 334
374if ($fips_canister_path eq "") 335if ($shlib)
375 {
376 $fips_canister_path = "\$(FIPSLIB_D)${o}fipscanister.o";
377 }
378
379if ($fips_premain_c_path eq "")
380 { 336 {
381 $fips_premain_c_path = "\$(FIPSLIB_D)${o}fips_premain.c"; 337 $extra_install= <<"EOF";
382 } 338 \$(CP) \"\$(O_SSL)\" \"\$(INSTALLTOP)${o}bin\"
383 339 \$(CP) \"\$(O_CRYPTO)\" \"\$(INSTALLTOP)${o}bin\"
384if ($fips) 340 \$(CP) \"\$(L_SSL)\" \"\$(INSTALLTOP)${o}lib\"
385 { 341 \$(CP) \"\$(L_CRYPTO)\" \"\$(INSTALLTOP)${o}lib\"
386 if ($fips_sha1_exe_path eq "") 342EOF
343 if ($no_static_engine)
387 { 344 {
388 $fips_sha1_exe_path = 345 $extra_install .= <<"EOF"
389 "\$(BIN_D)${o}fips_standalone_sha1$exep"; 346 \$(MKDIR) \"\$(INSTALLTOP)${o}lib${o}engines\"
347 \$(CP) \"\$(E_SHLIB)\" \"\$(INSTALLTOP)${o}lib${o}engines\"
348EOF
390 } 349 }
391 } 350 }
392 else 351else
393 {
394 $fips_sha1_exe_path = "";
395 }
396
397if ($fips_premain_dso_exe_path eq "")
398 {
399 $fips_premain_dso_exe_path = "\$(BIN_D)${o}fips_premain_dso$exep";
400 }
401
402# $ex_build_targets .= "\$(BIN_D)${o}\$(E_PREMAIN_DSO)$exep" if ($fips);
403
404if ($fips)
405 { 352 {
406 if (!$shlib) 353 $extra_install= <<"EOF";
407 { 354 \$(CP) \"\$(O_SSL)\" \"\$(INSTALLTOP)${o}lib\"
408 $ex_build_targets .= " \$(LIB_D)$o$crypto_compat \$(PREMAIN_DSO_EXE)"; 355 \$(CP) \"\$(O_CRYPTO)\" \"\$(INSTALLTOP)${o}lib\"
409 $ex_l_libs .= " \$(O_FIPSCANISTER)"; 356EOF
410 } 357 $ex_libs .= " $zlib_lib" if $zlib_opt == 1;
411 if ($fipslibdir eq "")
412 {
413 open (IN, "util/fipslib_path.txt") || fipslib_error();
414 $fipslibdir = <IN>;
415 chomp $fipslibdir;
416 close IN;
417 }
418 fips_check_files($fipslibdir,
419 "fipscanister.o", "fipscanister.o.sha1",
420 "fips_premain.c", "fips_premain.c.sha1");
421 } 358 }
422
423 359
424$defs= <<"EOF"; 360$defs= <<"EOF";
425# This makefile has been automatically generated from the OpenSSL distribution. 361# This makefile has been automatically generated from the OpenSSL distribution.
@@ -439,15 +375,6 @@ EOF
439 375
440$defs .= $preamble if defined $preamble; 376$defs .= $preamble if defined $preamble;
441 377
442if ($platform eq "VC-CE")
443 {
444 $defs.= <<"EOF";
445!INCLUDE <\$(WCECOMPAT)/wcedefs.mak>
446
447EOF
448 $ex_libs .= " $zlib_lib" if $zlib_opt == 1;
449 }
450
451$defs.= <<"EOF"; 378$defs.= <<"EOF";
452INSTALLTOP=$INSTALLTOP 379INSTALLTOP=$INSTALLTOP
453 380
@@ -468,10 +395,11 @@ EX_LIBS=$ex_libs
468SRC_D=$src_dir 395SRC_D=$src_dir
469 396
470LINK=$link 397LINK=$link
471PERL=perl
472FIPSLINK=\$(PERL) util${o}fipslink.pl
473LFLAGS=$lflags 398LFLAGS=$lflags
399RSC=$rsc
474 400
401AES_ASM_OBJ=$aes_asm_obj
402AES_ASM_SRC=$aes_asm_src
475BN_ASM_OBJ=$bn_asm_obj 403BN_ASM_OBJ=$bn_asm_obj
476BN_ASM_SRC=$bn_asm_src 404BN_ASM_SRC=$bn_asm_src
477BNCO_ASM_OBJ=$bnco_asm_obj 405BNCO_ASM_OBJ=$bnco_asm_obj
@@ -492,6 +420,8 @@ SHA1_ASM_OBJ=$sha1_asm_obj
492SHA1_ASM_SRC=$sha1_asm_src 420SHA1_ASM_SRC=$sha1_asm_src
493RMD160_ASM_OBJ=$rmd160_asm_obj 421RMD160_ASM_OBJ=$rmd160_asm_obj
494RMD160_ASM_SRC=$rmd160_asm_src 422RMD160_ASM_SRC=$rmd160_asm_src
423CPUID_ASM_OBJ=$cpuid_asm_obj
424CPUID_ASM_SRC=$cpuid_asm_src
495 425
496# The output directory for everything intersting 426# The output directory for everything intersting
497OUT_D=$out_dir 427OUT_D=$out_dir
@@ -501,9 +431,7 @@ TMP_D=$tmp_dir
501INC_D=$inc_dir 431INC_D=$inc_dir
502INCO_D=$inc_dir${o}openssl 432INCO_D=$inc_dir${o}openssl
503 433
504# Directory containing FIPS module 434PERL=$perl
505
506
507CP=$cp 435CP=$cp
508RM=$rm 436RM=$rm
509RANLIB=$ranlib 437RANLIB=$ranlib
@@ -511,18 +439,6 @@ MKDIR=$mkdir
511MKLIB=$bin_dir$mklib 439MKLIB=$bin_dir$mklib
512MLFLAGS=$mlflags 440MLFLAGS=$mlflags
513ASM=$bin_dir$asm 441ASM=$bin_dir$asm
514MKCANISTER=$mkcanister
515
516# FIPS validated module and support file locations
517
518E_PREMAIN_DSO=fips_premain_dso
519
520FIPSLIB_D=$fipslibdir
521BASEADDR=$baseaddr
522FIPS_PREMAIN_SRC=$fips_premain_c_path
523O_FIPSCANISTER=$fips_canister_path
524FIPS_SHA1_EXE=$fips_sha1_exe_path
525PREMAIN_DSO_EXE=$fips_premain_dso_exe_path
526 442
527###################################################### 443######################################################
528# You should not need to touch anything below this point 444# You should not need to touch anything below this point
@@ -535,12 +451,14 @@ CRYPTO=$crypto
535# BIN_D - Binary output directory 451# BIN_D - Binary output directory
536# TEST_D - Binary test file output directory 452# TEST_D - Binary test file output directory
537# LIB_D - library output directory 453# LIB_D - library output directory
454# ENG_D - dynamic engine output directory
538# Note: if you change these point to different directories then uncomment out 455# Note: if you change these point to different directories then uncomment out
539# the lines around the 'NB' comment below. 456# the lines around the 'NB' comment below.
540# 457#
541BIN_D=\$(OUT_D) 458BIN_D=\$(OUT_D)
542TEST_D=\$(OUT_D) 459TEST_D=\$(OUT_D)
543LIB_D=\$(OUT_D) 460LIB_D=\$(OUT_D)
461ENG_D=\$(OUT_D)
544 462
545# INCL_D - local library directory 463# INCL_D - local library directory
546# OBJ_D - temp object file directory 464# OBJ_D - temp object file directory
@@ -554,7 +472,7 @@ SO_CRYPTO= $plib\$(CRYPTO)$so_shlibp
554L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp 472L_SSL= \$(LIB_D)$o$plib\$(SSL)$libp
555L_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$libp 473L_CRYPTO= \$(LIB_D)$o$plib\$(CRYPTO)$libp
556 474
557L_LIBS= \$(L_SSL) \$(L_CRYPTO) $ex_l_libs 475L_LIBS= \$(L_SSL) \$(L_CRYPTO)
558 476
559###################################################### 477######################################################
560# Don't touch anything below this point 478# Don't touch anything below this point
@@ -564,19 +482,19 @@ INC=-I\$(INC_D) -I\$(INCL_D)
564APP_CFLAGS=\$(INC) \$(CFLAG) \$(APP_CFLAG) 482APP_CFLAGS=\$(INC) \$(CFLAG) \$(APP_CFLAG)
565LIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) 483LIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG)
566SHLIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) \$(SHLIB_CFLAG) 484SHLIB_CFLAGS=\$(INC) \$(CFLAG) \$(LIB_CFLAG) \$(SHLIB_CFLAG)
567LIBS_DEP=\$(O_CRYPTO) \$(O_SSL) $ex_libs_dep 485LIBS_DEP=\$(O_CRYPTO) \$(O_SSL)
568 486
569############################################# 487#############################################
570EOF 488EOF
571 489
572$rules=<<"EOF"; 490$rules=<<"EOF";
573all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers \$(FIPS_SHA1_EXE) lib exe $ex_build_targets 491all: banner \$(TMP_D) \$(BIN_D) \$(TEST_D) \$(LIB_D) \$(INCO_D) headers lib exe
574 492
575banner: 493banner:
576$banner 494$banner
577 495
578\$(TMP_D): 496\$(TMP_D):
579 \$(MKDIR) \$(TMP_D) 497 \$(MKDIR) \"\$(TMP_D)\"
580# NB: uncomment out these lines if BIN_D, TEST_D and LIB_D are different 498# NB: uncomment out these lines if BIN_D, TEST_D and LIB_D are different
581#\$(BIN_D): 499#\$(BIN_D):
582# \$(MKDIR) \$(BIN_D) 500# \$(MKDIR) \$(BIN_D)
@@ -585,31 +503,36 @@ $banner
585# \$(MKDIR) \$(TEST_D) 503# \$(MKDIR) \$(TEST_D)
586 504
587\$(LIB_D): 505\$(LIB_D):
588 \$(MKDIR) \$(LIB_D) 506 \$(MKDIR) \"\$(LIB_D)\"
589 507
590\$(INCO_D): \$(INC_D) 508\$(INCO_D): \$(INC_D)
591 \$(MKDIR) \$(INCO_D) 509 \$(MKDIR) \"\$(INCO_D)\"
592 510
593\$(INC_D): 511\$(INC_D):
594 \$(MKDIR) \$(INC_D) 512 \$(MKDIR) \"\$(INC_D)\"
595 513
596headers: \$(HEADER) \$(EXHEADER) 514headers: \$(HEADER) \$(EXHEADER)
597 @ 515 @
598 516
599lib: \$(LIBS_DEP) 517lib: \$(LIBS_DEP) \$(E_SHLIB)
600 518
601exe: \$(T_EXE) \$(BIN_D)$o\$(E_EXE)$exep 519exe: \$(T_EXE) \$(BIN_D)$o\$(E_EXE)$exep
602 520
603install: 521install: all
604 \$(MKDIR) \$(INSTALLTOP) 522 \$(MKDIR) \"\$(INSTALLTOP)\"
605 \$(MKDIR) \$(INSTALLTOP)${o}bin 523 \$(MKDIR) \"\$(INSTALLTOP)${o}bin\"
606 \$(MKDIR) \$(INSTALLTOP)${o}include 524 \$(MKDIR) \"\$(INSTALLTOP)${o}include\"
607 \$(MKDIR) \$(INSTALLTOP)${o}include${o}openssl 525 \$(MKDIR) \"\$(INSTALLTOP)${o}include${o}openssl\"
608 \$(MKDIR) \$(INSTALLTOP)${o}lib 526 \$(MKDIR) \"\$(INSTALLTOP)${o}lib\"
609 \$(CP) \$(INCO_D)${o}*.\[ch\] \$(INSTALLTOP)${o}include${o}openssl 527 \$(CP) \"\$(INCO_D)${o}*.\[ch\]\" \"\$(INSTALLTOP)${o}include${o}openssl\"
610 \$(CP) \$(BIN_D)$o\$(E_EXE)$exep \$(INSTALLTOP)${o}bin 528 \$(CP) \"\$(BIN_D)$o\$(E_EXE)$exep\" \"\$(INSTALLTOP)${o}bin\"
611 \$(CP) \$(O_SSL) \$(INSTALLTOP)${o}lib 529 \$(CP) \"apps${o}openssl.cnf\" \"\$(INSTALLTOP)\"
612 \$(CP) \$(O_CRYPTO) \$(INSTALLTOP)${o}lib 530$extra_install
531
532
533test: \$(T_EXE)
534 cd \$(BIN_D)
535 ..${o}ms${o}test
613 536
614clean: 537clean:
615 \$(RM) \$(TMP_D)$o*.* 538 \$(RM) \$(TMP_D)$o*.*
@@ -668,11 +591,11 @@ foreach (split(/\s+/,$exheader)){ $h{$_}=1; }
668foreach (split(/\s+/,$header)) { $h.=$_." " unless $h{$_}; } 591foreach (split(/\s+/,$header)) { $h.=$_." " unless $h{$_}; }
669chop($h); $header=$h; 592chop($h); $header=$h;
670 593
671$defs.=&do_defs("HEADER",$header,"\$(INCL_D)",".h"); 594$defs.=&do_defs("HEADER",$header,"\$(INCL_D)","");
672$rules.=&do_copy_rule("\$(INCL_D)",$header,".h"); 595$rules.=&do_copy_rule("\$(INCL_D)",$header,"");
673 596
674$defs.=&do_defs("EXHEADER",$exheader,"\$(INCO_D)",".h"); 597$defs.=&do_defs("EXHEADER",$exheader,"\$(INCO_D)","");
675$rules.=&do_copy_rule("\$(INCO_D)",$exheader,".h"); 598$rules.=&do_copy_rule("\$(INCO_D)",$exheader,"");
676 599
677$defs.=&do_defs("T_OBJ",$test,"\$(OBJ_D)",$obj); 600$defs.=&do_defs("T_OBJ",$test,"\$(OBJ_D)",$obj);
678$rules.=&do_compile_rule("\$(OBJ_D)",$test,"\$(APP_CFLAGS)"); 601$rules.=&do_compile_rule("\$(OBJ_D)",$test,"\$(APP_CFLAGS)");
@@ -680,29 +603,6 @@ $rules.=&do_compile_rule("\$(OBJ_D)",$test,"\$(APP_CFLAGS)");
680$defs.=&do_defs("E_OBJ",$e_exe,"\$(OBJ_D)",$obj); 603$defs.=&do_defs("E_OBJ",$e_exe,"\$(OBJ_D)",$obj);
681$rules.=&do_compile_rule("\$(OBJ_D)",$e_exe,'-DMONOLITH $(APP_CFLAGS)'); 604$rules.=&do_compile_rule("\$(OBJ_D)",$e_exe,'-DMONOLITH $(APP_CFLAGS)');
682 605
683# Special case rules for fips_start and fips_end fips_premain_dso
684
685if ($fips)
686 {
687 if ($fips_canister_build)
688 {
689 $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_start$obj",
690 "fips-1.0${o}fips_canister.c",
691 "-DFIPS_START \$(SHLIB_CFLAGS)");
692 $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_end$obj",
693 "fips-1.0${o}fips_canister.c", "\$(SHLIB_CFLAGS)");
694 }
695 $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_standalone_sha1$obj",
696 "fips-1.0${o}sha${o}fips_standalone_sha1.c",
697 "\$(SHLIB_CFLAGS)");
698 $rules.=&cc_compile_target("\$(OBJ_D)${o}fips_sha1dgst$obj",
699 "fips-1.0${o}sha${o}fips_sha1dgst.c",
700 "\$(SHLIB_CFLAGS)") unless $fips_canister_build;
701 $rules.=&cc_compile_target("\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj",
702 "fips-1.0${o}fips_premain.c",
703 "-DFINGERPRINT_PREMAIN_DSO_LOAD \$(SHLIB_CFLAGS)");
704 }
705
706foreach (values %lib_nam) 606foreach (values %lib_nam)
707 { 607 {
708 $lib_obj=$lib_obj{$_}; 608 $lib_obj=$lib_obj{$_};
@@ -713,7 +613,12 @@ foreach (values %lib_nam)
713 $rules.="\$(O_SSL):\n\n"; 613 $rules.="\$(O_SSL):\n\n";
714 next; 614 next;
715 } 615 }
716 616 if (($aes_asm_obj ne "") && ($_ eq "CRYPTO"))
617 {
618 $lib_obj =~ s/\s(\S*\/aes_core\S*)/ \$(AES_ASM_OBJ)/;
619 $lib_obj =~ s/\s\S*\/aes_cbc\S*//;
620 $rules.=&do_asm_rule($aes_asm_obj,$aes_asm_src);
621 }
717 if (($bn_asm_obj ne "") && ($_ eq "CRYPTO")) 622 if (($bn_asm_obj ne "") && ($_ eq "CRYPTO"))
718 { 623 {
719 $lib_obj =~ s/\s\S*\/bn_asm\S*/ \$(BN_ASM_OBJ)/; 624 $lib_obj =~ s/\s\S*\/bn_asm\S*/ \$(BN_ASM_OBJ)/;
@@ -765,11 +670,28 @@ foreach (values %lib_nam)
765 $lib_obj =~ s/\s(\S*\/rmd_dgst\S*)/ $1 \$(RMD160_ASM_OBJ)/; 670 $lib_obj =~ s/\s(\S*\/rmd_dgst\S*)/ $1 \$(RMD160_ASM_OBJ)/;
766 $rules.=&do_asm_rule($rmd160_asm_obj,$rmd160_asm_src); 671 $rules.=&do_asm_rule($rmd160_asm_obj,$rmd160_asm_src);
767 } 672 }
673 if (($cpuid_asm_obj ne "") && ($_ eq "CRYPTO"))
674 {
675 $lib_obj =~ s/\s(\S*\/cversion\S*)/ $1 \$(CPUID_ASM_OBJ)/;
676 $rules.=&do_asm_rule($cpuid_asm_obj,$cpuid_asm_src);
677 }
768 $defs.=&do_defs(${_}."OBJ",$lib_obj,"\$(OBJ_D)",$obj); 678 $defs.=&do_defs(${_}."OBJ",$lib_obj,"\$(OBJ_D)",$obj);
769 $lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)"; 679 $lib=($slib)?" \$(SHLIB_CFLAGS)".$shlib_ex_cflags{$_}:" \$(LIB_CFLAGS)";
770 $rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib); 680 $rules.=&do_compile_rule("\$(OBJ_D)",$lib_obj{$_},$lib);
771 } 681 }
772 682
683# hack to add version info on MSVC
684if (($platform eq "VC-WIN32") || ($platform eq "VC-NT")) {
685 $rules.= <<"EOF";
686\$(OBJ_D)\\\$(CRYPTO).res: ms\\version32.rc
687 \$(RSC) /fo"\$(OBJ_D)\\\$(CRYPTO).res" /d CRYPTO ms\\version32.rc
688
689\$(OBJ_D)\\\$(SSL).res: ms\\version32.rc
690 \$(RSC) /fo"\$(OBJ_D)\\\$(SSL).res" /d SSL ms\\version32.rc
691
692EOF
693}
694
773$defs.=&do_defs("T_EXE",$test,"\$(TEST_D)",$exep); 695$defs.=&do_defs("T_EXE",$test,"\$(TEST_D)",$exep);
774foreach (split(/\s+/,$test)) 696foreach (split(/\s+/,$test))
775 { 697 {
@@ -778,42 +700,20 @@ foreach (split(/\s+/,$test))
778 $rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)"); 700 $rules.=&do_link_rule("\$(TEST_D)$o$t$exep",$tt,"\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
779 } 701 }
780 702
781$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)"); 703$defs.=&do_defs("E_SHLIB",$engines,"\$(ENG_D)",$shlibp);
782
783 704
784if ($fips) 705foreach (split(/\s+/,$engines))
785 {
786 if ($shlib)
787 {
788 $rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
789 "\$(O_CRYPTO)",
790 "$crypto",
791 $shlib, "\$(SO_CRYPTO)", "\$(BASEADDR)");
792 }
793 else
794 {
795 $rules.= &do_lib_rule("\$(CRYPTOOBJ)",
796 "\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)", "");
797 $rules.= &do_lib_rule("\$(CRYPTOOBJ) \$(O_FIPSCANISTER)",
798 "\$(LIB_D)$o$crypto_compat",$crypto,$shlib,"\$(SO_CRYPTO)", "");
799 }
800 }
801 else
802 { 706 {
803 $rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib, 707 $rules.=&do_compile_rule("\$(OBJ_D)","engines${o}e_$_",$lib);
804 "\$(SO_CRYPTO)"); 708 $rules.= &do_lib_rule("\$(OBJ_D)${o}e_${_}.obj","\$(ENG_D)$o$_$shlibp","",$shlib,"");
805 } 709 }
806 710
807 711
808if ($fips)
809 {
810 $rules.= &do_rlink_rule("\$(O_FIPSCANISTER)", "\$(OBJ_D)${o}fips_start$obj \$(FIPSOBJ) \$(OBJ_D)${o}fips_end$obj", "\$(FIPSLIB_D)${o}fips_standalone_sha1$exep", "") if $fips_canister_build;
811 $rules.=&do_link_rule("\$(PREMAIN_DSO_EXE)","\$(OBJ_D)${o}\$(E_PREMAIN_DSO)$obj \$(CRYPTOOBJ) \$(O_FIPSCANISTER)","","\$(EX_LIBS)", 1);
812
813 $rules.=&do_link_rule("\$(FIPS_SHA1_EXE)","\$(OBJ_D)${o}fips_standalone_sha1$obj \$(OBJ_D)${o}fips_sha1dgst$obj","","", 1);
814 }
815 712
816 $rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)",0); 713$rules.= &do_lib_rule("\$(SSLOBJ)","\$(O_SSL)",$ssl,$shlib,"\$(SO_SSL)");
714$rules.= &do_lib_rule("\$(CRYPTOOBJ)","\$(O_CRYPTO)",$crypto,$shlib,"\$(SO_CRYPTO)");
715
716$rules.=&do_link_rule("\$(BIN_D)$o\$(E_EXE)$exep","\$(E_OBJ)","\$(LIBS_DEP)","\$(L_LIBS) \$(EX_LIBS)");
817 717
818print $defs; 718print $defs;
819 719
@@ -833,13 +733,15 @@ print $rules;
833# directories 733# directories
834sub var_add 734sub var_add
835 { 735 {
836 local($dir,$val)=@_; 736 local($dir,$val,$keepext)=@_;
837 local(@a,$_,$ret); 737 local(@a,$_,$ret);
838 738
839 return("") if $no_engine && $dir =~ /\/engine/; 739 return("") if $no_engine && $dir =~ /\/engine/;
840 return("") if $no_hw && $dir =~ /\/hw/; 740 return("") if $no_hw && $dir =~ /\/hw/;
841 return("") if $no_idea && $dir =~ /\/idea/; 741 return("") if $no_idea && $dir =~ /\/idea/;
842 return("") if $no_aes && $dir =~ /\/aes/; 742 return("") if $no_aes && $dir =~ /\/aes/;
743 return("") if $no_camellia && $dir =~ /\/camellia/;
744 return("") if $no_seed && $dir =~ /\/seed/;
843 return("") if $no_rc2 && $dir =~ /\/rc2/; 745 return("") if $no_rc2 && $dir =~ /\/rc2/;
844 return("") if $no_rc4 && $dir =~ /\/rc4/; 746 return("") if $no_rc4 && $dir =~ /\/rc4/;
845 return("") if $no_rc5 && $dir =~ /\/rc5/; 747 return("") if $no_rc5 && $dir =~ /\/rc5/;
@@ -848,6 +750,7 @@ sub var_add
848 return("") if $no_dsa && $dir =~ /\/dsa/; 750 return("") if $no_dsa && $dir =~ /\/dsa/;
849 return("") if $no_dh && $dir =~ /\/dh/; 751 return("") if $no_dh && $dir =~ /\/dh/;
850 return("") if $no_ec && $dir =~ /\/ec/; 752 return("") if $no_ec && $dir =~ /\/ec/;
753 return("") if $no_cms && $dir =~ /\/cms/;
851 if ($no_des && $dir =~ /\/des/) 754 if ($no_des && $dir =~ /\/des/)
852 { 755 {
853 if ($val =~ /read_pwd/) 756 if ($val =~ /read_pwd/)
@@ -862,7 +765,7 @@ sub var_add
862 765
863 $val =~ s/^\s*(.*)\s*$/$1/; 766 $val =~ s/^\s*(.*)\s*$/$1/;
864 @a=split(/\s+/,$val); 767 @a=split(/\s+/,$val);
865 grep(s/\.[och]$//,@a); 768 grep(s/\.[och]$//,@a) unless $keepext;
866 769
867 @a=grep(!/^e_.*_3d$/,@a) if $no_des; 770 @a=grep(!/^e_.*_3d$/,@a) if $no_des;
868 @a=grep(!/^e_.*_d$/,@a) if $no_des; 771 @a=grep(!/^e_.*_d$/,@a) if $no_des;
@@ -873,6 +776,8 @@ sub var_add
873 @a=grep(!/^e_.*_bf$/,@a) if $no_bf; 776 @a=grep(!/^e_.*_bf$/,@a) if $no_bf;
874 @a=grep(!/^e_.*_c$/,@a) if $no_cast; 777 @a=grep(!/^e_.*_c$/,@a) if $no_cast;
875 @a=grep(!/^e_rc4$/,@a) if $no_rc4; 778 @a=grep(!/^e_rc4$/,@a) if $no_rc4;
779 @a=grep(!/^e_camellia$/,@a) if $no_camellia;
780 @a=grep(!/^e_seed$/,@a) if $no_seed;
876 781
877 @a=grep(!/(^s2_)|(^s23_)/,@a) if $no_ssl2; 782 @a=grep(!/(^s2_)|(^s23_)/,@a) if $no_ssl2;
878 @a=grep(!/(^s3_)|(^s23_)/,@a) if $no_ssl3; 783 @a=grep(!/(^s3_)|(^s23_)/,@a) if $no_ssl3;
@@ -956,13 +861,23 @@ sub do_defs
956 elsif ($_ =~ /RC5_ENC/) { $t="$_ "; } 861 elsif ($_ =~ /RC5_ENC/) { $t="$_ "; }
957 elsif ($_ =~ /MD5_ASM/) { $t="$_ "; } 862 elsif ($_ =~ /MD5_ASM/) { $t="$_ "; }
958 elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; } 863 elsif ($_ =~ /SHA1_ASM/){ $t="$_ "; }
864 elsif ($_ =~ /AES_ASM/){ $t="$_ "; }
959 elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; } 865 elsif ($_ =~ /RMD160_ASM/){ $t="$_ "; }
866 elsif ($_ =~ /CPUID_ASM/){ $t="$_ "; }
960 else { $t="$location${o}$_$pf "; } 867 else { $t="$location${o}$_$pf "; }
961 868
962 $Vars{$var}.="$t "; 869 $Vars{$var}.="$t ";
963 $ret.=$t; 870 $ret.=$t;
964 } 871 }
965 chop($ret); 872 # hack to add version info on MSVC
873 if ($shlib && (($platform eq "VC-WIN32") || ($platform eq "VC-NT")))
874 {
875 if ($var eq "CRYPTOOBJ")
876 { $ret.="\$(OBJ_D)\\\$(CRYPTO).res "; }
877 elsif ($var eq "SSLOBJ")
878 { $ret.="\$(OBJ_D)\\\$(SSL).res "; }
879 }
880 chomp($ret);
966 $ret.="\n\n"; 881 $ret.="\n\n";
967 return($ret); 882 return($ret);
968 } 883 }
@@ -1057,61 +972,118 @@ sub do_copy_rule
1057 if ($n =~ /bss_file/) 972 if ($n =~ /bss_file/)
1058 { $pp=".c"; } 973 { $pp=".c"; }
1059 else { $pp=$p; } 974 else { $pp=$p; }
1060 $ret.="$to${o}$n$pp: \$(SRC_D)$o$_$pp\n\t\$(CP) \$(SRC_D)$o$_$pp $to${o}$n$pp\n\n"; 975 $ret.="$to${o}$n$pp: \$(SRC_D)$o$_$pp\n\t\$(CP) \"\$(SRC_D)$o$_$pp\" \"$to${o}$n$pp\"\n\n";
1061 } 976 }
1062 return($ret); 977 return($ret);
1063 } 978 }
1064 979
1065sub read_options 980sub read_options
1066 { 981 {
1067 if (/^no-rc2$/) { $no_rc2=1; } 982 # Many options are handled in a similar way. In particular
1068 elsif (/^no-rc4$/) { $no_rc4=1; } 983 # no-xxx sets zero or more scalars to 1.
1069 elsif (/^no-rc5$/) { $no_rc5=1; } 984 # Process these using a hash containing the option name and
1070 elsif (/^no-idea$/) { $no_idea=1; } 985 # reference to the scalars to set.
1071 elsif (/^no-aes$/) { $no_aes=1; } 986
1072 elsif (/^no-des$/) { $no_des=1; } 987 my %valid_options = (
1073 elsif (/^no-bf$/) { $no_bf=1; } 988 "no-rc2" => \$no_rc2,
1074 elsif (/^no-cast$/) { $no_cast=1; } 989 "no-rc4" => \$no_rc4,
1075 elsif (/^no-md2$/) { $no_md2=1; } 990 "no-rc5" => \$no_rc5,
1076 elsif (/^no-md4$/) { $no_md4=1; } 991 "no-idea" => \$no_idea,
1077 elsif (/^no-md5$/) { $no_md5=1; } 992 "no-aes" => \$no_aes,
1078 elsif (/^no-sha$/) { $no_sha=1; } 993 "no-camellia" => \$no_camellia,
1079 elsif (/^no-sha1$/) { $no_sha1=1; } 994 "no-seed" => \$no_seed,
1080 elsif (/^no-ripemd$/) { $no_ripemd=1; } 995 "no-des" => \$no_des,
1081 elsif (/^no-mdc2$/) { $no_mdc2=1; } 996 "no-bf" => \$no_bf,
1082 elsif (/^no-patents$/) { $no_rc2=$no_rc4=$no_rc5=$no_idea=$no_rsa=1; } 997 "no-cast" => \$no_cast,
1083 elsif (/^no-rsa$/) { $no_rsa=1; } 998 "no-md2" => \$no_md2,
1084 elsif (/^no-dsa$/) { $no_dsa=1; } 999 "no-md4" => \$no_md4,
1085 elsif (/^no-dh$/) { $no_dh=1; } 1000 "no-md5" => \$no_md5,
1086 elsif (/^no-hmac$/) { $no_hmac=1; } 1001 "no-sha" => \$no_sha,
1087 elsif (/^no-aes$/) { $no_aes=1; } 1002 "no-sha1" => \$no_sha1,
1088 elsif (/^no-asm$/) { $no_asm=1; } 1003 "no-ripemd" => \$no_ripemd,
1089 elsif (/^nasm$/) { $nasm=1; } 1004 "no-mdc2" => \$no_mdc2,
1090 elsif (/^gaswin$/) { $gaswin=1; } 1005 "no-patents" =>
1091 elsif (/^no-ssl2$/) { $no_ssl2=1; } 1006 [\$no_rc2, \$no_rc4, \$no_rc5, \$no_idea, \$no_rsa],
1092 elsif (/^no-ssl3$/) { $no_ssl3=1; } 1007 "no-rsa" => \$no_rsa,
1093 elsif (/^no-err$/) { $no_err=1; } 1008 "no-dsa" => \$no_dsa,
1094 elsif (/^no-sock$/) { $no_sock=1; } 1009 "no-dh" => \$no_dh,
1095 elsif (/^no-krb5$/) { $no_krb5=1; } 1010 "no-hmac" => \$no_hmac,
1096 elsif (/^no-ec$/) { $no_ec=1; } 1011 "no-asm" => \$no_asm,
1097 elsif (/^no-engine$/) { $no_engine=1; } 1012 "nasm" => \$nasm,
1098 elsif (/^no-hw$/) { $no_hw=1; } 1013 "nw-nasm" => \$nw_nasm,
1099 1014 "nw-mwasm" => \$nw_mwasm,
1100 elsif (/^just-ssl$/) { $no_rc2=$no_idea=$no_des=$no_bf=$no_cast=1; 1015 "gaswin" => \$gaswin,
1101 $no_md2=$no_sha=$no_mdc2=$no_dsa=$no_dh=1; 1016 "no-ssl2" => \$no_ssl2,
1102 $no_ssl2=$no_err=$no_ripemd=$no_rc5=1; 1017 "no-ssl3" => \$no_ssl3,
1103 $no_aes=1; } 1018 "no-tlsext" => \$no_tlsext,
1104 1019 "no-cms" => \$no_cms,
1105 elsif (/^rsaref$/) { } 1020 "no-err" => \$no_err,
1106 elsif (/^fips$/) { $fips=1; } 1021 "no-sock" => \$no_sock,
1107 elsif (/^gcc$/) { $gcc=1; } 1022 "no-krb5" => \$no_krb5,
1108 elsif (/^debug$/) { $debug=1; } 1023 "no-ec" => \$no_ec,
1109 elsif (/^profile$/) { $profile=1; } 1024 "no-ecdsa" => \$no_ecdsa,
1110 elsif (/^shlib$/) { $shlib=1; } 1025 "no-ecdh" => \$no_ecdh,
1111 elsif (/^dll$/) { $shlib=1; } 1026 "no-engine" => \$no_engine,
1112 elsif (/^shared$/) { } # We just need to ignore it for now... 1027 "no-hw" => \$no_hw,
1113 elsif (/^zlib$/) { $zlib_opt = 1 if $zlib_opt == 0 } 1028 "just-ssl" =>
1114 elsif (/^zlib-dynamic$/){ $zlib_opt = 2; } 1029 [\$no_rc2, \$no_idea, \$no_des, \$no_bf, \$no_cast,
1030 \$no_md2, \$no_sha, \$no_mdc2, \$no_dsa, \$no_dh,
1031 \$no_ssl2, \$no_err, \$no_ripemd, \$no_rc5,
1032 \$no_aes, \$no_camellia, \$no_seed],
1033 "rsaref" => 0,
1034 "gcc" => \$gcc,
1035 "debug" => \$debug,
1036 "profile" => \$profile,
1037 "shlib" => \$shlib,
1038 "dll" => \$shlib,
1039 "shared" => 0,
1040 "no-gmp" => 0,
1041 "no-rfc3779" => 0,
1042 "no-montasm" => 0,
1043 "no-shared" => 0,
1044 "no-zlib" => 0,
1045 "no-zlib-dynamic" => 0,
1046 );
1047
1048 if (exists $valid_options{$_})
1049 {
1050 my $r = $valid_options{$_};
1051 if ( ref $r eq "SCALAR")
1052 { $$r = 1;}
1053 elsif ( ref $r eq "ARRAY")
1054 {
1055 my $r2;
1056 foreach $r2 (@$r)
1057 {
1058 $$r2 = 1;
1059 }
1060 }
1061 }
1062 elsif (/^no-comp$/) { $xcflags = "-DOPENSSL_NO_COMP $xcflags"; }
1063 elsif (/^enable-zlib$/) { $zlib_opt = 1 if $zlib_opt == 0 }
1064 elsif (/^enable-zlib-dynamic$/)
1065 {
1066 $zlib_opt = 2;
1067 }
1068 elsif (/^no-static-engine/)
1069 {
1070 $no_static_engine = 1;
1071 }
1072 elsif (/^enable-static-engine/)
1073 {
1074 $no_static_engine = 0;
1075 }
1076 # There are also enable-xxx options which correspond to
1077 # the no-xxx. Since the scalars are enabled by default
1078 # these can be ignored.
1079 elsif (/^enable-/)
1080 {
1081 my $t = $_;
1082 $t =~ s/^enable/no/;
1083 if (exists $valid_options{$t})
1084 {return 1;}
1085 return 0;
1086 }
1115 elsif (/^--with-krb5-flavor=(.*)$/) 1087 elsif (/^--with-krb5-flavor=(.*)$/)
1116 { 1088 {
1117 my $krb5_flavor = $1; 1089 my $krb5_flavor = $1;
@@ -1135,31 +1107,3 @@ sub read_options
1135 else { return(0); } 1107 else { return(0); }
1136 return(1); 1108 return(1);
1137 } 1109 }
1138
1139sub fipslib_error
1140 {
1141 print STDERR "***FIPS module directory sanity check failed***\n";
1142 print STDERR "FIPS module build failed, or was deleted\n";
1143 print STDERR "Please rebuild FIPS module.\n";
1144 exit 1;
1145 }
1146
1147sub fips_check_files
1148 {
1149 my $dir = shift @_;
1150 my $ret = 1;
1151 if (!-d $dir)
1152 {
1153 print STDERR "FIPS module directory $dir does not exist\n";
1154 fipslib_error();
1155 }
1156 foreach (@_)
1157 {
1158 if (!-f "$dir${o}$_")
1159 {
1160 print STDERR "FIPS module file $_ does not exist!\n";
1161 $ret = 0;
1162 }
1163 }
1164 fipslib_error() if ($ret == 0);
1165 }
diff --git a/src/lib/libcrypto/util/mkdef.pl b/src/lib/libcrypto/util/mkdef.pl
index 6c1e53bb14..ef1cc6e513 100644
--- a/src/lib/libcrypto/util/mkdef.pl
+++ b/src/lib/libcrypto/util/mkdef.pl
@@ -79,19 +79,29 @@ my $OS2=0;
79my $safe_stack_def = 0; 79my $safe_stack_def = 0;
80 80
81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT", 81my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT",
82 "EXPORT_VAR_AS_FUNCTION", "OPENSSL_FIPS" ); 82 "EXPORT_VAR_AS_FUNCTION", "ZLIB" );
83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); 83my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" );
84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", 84my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1", 85 "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1",
86 "SHA256", "SHA512", "RIPEMD", 86 "SHA256", "SHA512", "RIPEMD",
87 "MDC2", "RSA", "DSA", "DH", "EC", "HMAC", "AES", 87 "MDC2", "RSA", "DSA", "DH", "EC", "ECDH", "ECDSA", "HMAC", "AES", "CAMELLIA", "SEED",
88 # Envelope "algorithms" 88 # Envelope "algorithms"
89 "EVP", "X509", "ASN1_TYPEDEFS", 89 "EVP", "X509", "ASN1_TYPEDEFS",
90 # Helper "algorithms" 90 # Helper "algorithms"
91 "BIO", "COMP", "BUFFER", "LHASH", "STACK", "ERR", 91 "BIO", "COMP", "BUFFER", "LHASH", "STACK", "ERR",
92 "LOCKING", 92 "LOCKING",
93 # External "algorithms" 93 # External "algorithms"
94 "FP_API", "STDIO", "SOCK", "KRB5", "ENGINE", "HW" ); 94 "FP_API", "STDIO", "SOCK", "KRB5", "DGRAM",
95 # Engines
96 "STATIC_ENGINE", "ENGINE", "HW", "GMP",
97 # RFC3779 support
98 "RFC3779",
99 # TLS extension support
100 "TLSEXT",
101 # CMS
102 "CMS",
103 # Deprecated functions
104 "DEPRECATED" );
95 105
96my $options=""; 106my $options="";
97open(IN,"<Makefile") || die "unable to open Makefile!\n"; 107open(IN,"<Makefile") || die "unable to open Makefile!\n";
@@ -107,9 +117,11 @@ my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf;
107my $no_cast; 117my $no_cast;
108my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2; 118my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2;
109my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5; 119my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5;
110my $no_ec; my $no_engine; my $no_hw; 120my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw; my $no_camellia;
111my $no_fp_api; 121my $no_seed;
112my $fips; 122my $no_fp_api; my $no_static_engine; my $no_gmp; my $no_deprecated;
123my $no_rfc3779; my $no_tlsext; my $no_cms;
124
113 125
114foreach (@ARGV, split(/ /, $options)) 126foreach (@ARGV, split(/ /, $options))
115 { 127 {
@@ -130,7 +142,11 @@ foreach (@ARGV, split(/ /, $options))
130 } 142 }
131 $VMS=1 if $_ eq "VMS"; 143 $VMS=1 if $_ eq "VMS";
132 $OS2=1 if $_ eq "OS2"; 144 $OS2=1 if $_ eq "OS2";
133 $fips=1 if $_ eq "fips"; 145 if ($_ eq "zlib" || $_ eq "zlib-dynamic"
146 || $_ eq "enable-zlib-dynamic") {
147 $zlib = 1;
148 }
149
134 150
135 $do_ssl=1 if $_ eq "ssleay"; 151 $do_ssl=1 if $_ eq "ssleay";
136 if ($_ eq "ssl") { 152 if ($_ eq "ssl") {
@@ -142,6 +158,8 @@ foreach (@ARGV, split(/ /, $options))
142 $do_crypto=1; 158 $do_crypto=1;
143 $libname=$_; 159 $libname=$_;
144 } 160 }
161 $no_static_engine=1 if $_ eq "no-static-engine";
162 $no_static_engine=0 if $_ eq "enable-static-engine";
145 $do_update=1 if $_ eq "update"; 163 $do_update=1 if $_ eq "update";
146 $do_rewrite=1 if $_ eq "rewrite"; 164 $do_rewrite=1 if $_ eq "rewrite";
147 $do_ctest=1 if $_ eq "ctest"; 165 $do_ctest=1 if $_ eq "ctest";
@@ -166,8 +184,12 @@ foreach (@ARGV, split(/ /, $options))
166 elsif (/^no-dsa$/) { $no_dsa=1; } 184 elsif (/^no-dsa$/) { $no_dsa=1; }
167 elsif (/^no-dh$/) { $no_dh=1; } 185 elsif (/^no-dh$/) { $no_dh=1; }
168 elsif (/^no-ec$/) { $no_ec=1; } 186 elsif (/^no-ec$/) { $no_ec=1; }
187 elsif (/^no-ecdsa$/) { $no_ecdsa=1; }
188 elsif (/^no-ecdh$/) { $no_ecdh=1; }
169 elsif (/^no-hmac$/) { $no_hmac=1; } 189 elsif (/^no-hmac$/) { $no_hmac=1; }
170 elsif (/^no-aes$/) { $no_aes=1; } 190 elsif (/^no-aes$/) { $no_aes=1; }
191 elsif (/^no-camellia$/) { $no_camellia=1; }
192 elsif (/^no-seed$/) { $no_seed=1; }
171 elsif (/^no-evp$/) { $no_evp=1; } 193 elsif (/^no-evp$/) { $no_evp=1; }
172 elsif (/^no-lhash$/) { $no_lhash=1; } 194 elsif (/^no-lhash$/) { $no_lhash=1; }
173 elsif (/^no-stack$/) { $no_stack=1; } 195 elsif (/^no-stack$/) { $no_stack=1; }
@@ -180,6 +202,10 @@ foreach (@ARGV, split(/ /, $options))
180 elsif (/^no-krb5$/) { $no_krb5=1; } 202 elsif (/^no-krb5$/) { $no_krb5=1; }
181 elsif (/^no-engine$/) { $no_engine=1; } 203 elsif (/^no-engine$/) { $no_engine=1; }
182 elsif (/^no-hw$/) { $no_hw=1; } 204 elsif (/^no-hw$/) { $no_hw=1; }
205 elsif (/^no-gmp$/) { $no_gmp=1; }
206 elsif (/^no-rfc3779$/) { $no_rfc3779=1; }
207 elsif (/^no-tlsext$/) { $no_tlsext=1; }
208 elsif (/^no-cms$/) { $no_cms=1; }
183 } 209 }
184 210
185 211
@@ -215,8 +241,10 @@ $max_crypto = $max_num;
215 241
216my $ssl="ssl/ssl.h"; 242my $ssl="ssl/ssl.h";
217$ssl.=" ssl/kssl.h"; 243$ssl.=" ssl/kssl.h";
244$ssl.=" ssl/tls1.h";
218 245
219my $crypto ="crypto/crypto.h"; 246my $crypto ="crypto/crypto.h";
247$crypto.=" crypto/o_dir.h";
220$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des; 248$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des;
221$crypto.=" crypto/idea/idea.h" ; # unless $no_idea; 249$crypto.=" crypto/idea/idea.h" ; # unless $no_idea;
222$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4; 250$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4;
@@ -231,12 +259,16 @@ $crypto.=" crypto/mdc2/mdc2.h" ; # unless $no_mdc2;
231$crypto.=" crypto/sha/sha.h" ; # unless $no_sha; 259$crypto.=" crypto/sha/sha.h" ; # unless $no_sha;
232$crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd; 260$crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd;
233$crypto.=" crypto/aes/aes.h" ; # unless $no_aes; 261$crypto.=" crypto/aes/aes.h" ; # unless $no_aes;
262$crypto.=" crypto/camellia/camellia.h" ; # unless $no_camellia;
263$crypto.=" crypto/seed/seed.h"; # unless $no_seed;
234 264
235$crypto.=" crypto/bn/bn.h"; 265$crypto.=" crypto/bn/bn.h";
236$crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa; 266$crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa;
237$crypto.=" crypto/dsa/dsa.h" ; # unless $no_dsa; 267$crypto.=" crypto/dsa/dsa.h" ; # unless $no_dsa;
238$crypto.=" crypto/dh/dh.h" ; # unless $no_dh; 268$crypto.=" crypto/dh/dh.h" ; # unless $no_dh;
239$crypto.=" crypto/ec/ec.h" ; # unless $no_ec; 269$crypto.=" crypto/ec/ec.h" ; # unless $no_ec;
270$crypto.=" crypto/ecdsa/ecdsa.h" ; # unless $no_ecdsa;
271$crypto.=" crypto/ecdh/ecdh.h" ; # unless $no_ecdh;
240$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac; 272$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac;
241 273
242$crypto.=" crypto/engine/engine.h"; # unless $no_engine; 274$crypto.=" crypto/engine/engine.h"; # unless $no_engine;
@@ -267,7 +299,9 @@ $crypto.=" crypto/ocsp/ocsp.h";
267$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; 299$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h";
268$crypto.=" crypto/krb5/krb5_asn.h"; 300$crypto.=" crypto/krb5/krb5_asn.h";
269$crypto.=" crypto/tmdiff.h"; 301$crypto.=" crypto/tmdiff.h";
270$crypto.=" fips-1.0/fips.h fips-1.0/rand/fips_rand.h fips-1.0/sha/fips_sha.h"; 302$crypto.=" crypto/store/store.h";
303$crypto.=" crypto/pqueue/pqueue.h";
304$crypto.=" crypto/cms/cms.h";
271 305
272my $symhacks="crypto/symhacks.h"; 306my $symhacks="crypto/symhacks.h";
273 307
@@ -423,7 +457,11 @@ sub do_defs
423 457
424 print STDERR "DEBUG: parsing ----------\n" if $debug; 458 print STDERR "DEBUG: parsing ----------\n" if $debug;
425 while(<IN>) { 459 while(<IN>) {
426 last if (/\/\* Error codes for the \w+ functions\. \*\//); 460 if (/\/\* Error codes for the \w+ functions\. \*\//)
461 {
462 undef @tag;
463 last;
464 }
427 if ($line ne '') { 465 if ($line ne '') {
428 $_ = $line . $_; 466 $_ = $line . $_;
429 $line = ''; 467 $line = '';
@@ -436,17 +474,22 @@ sub do_defs
436 next; 474 next;
437 } 475 }
438 476
439 $cpp = 1 if /^\#.*ifdef.*cplusplus/; 477 if(/\/\*/) {
478 if (not /\*\//) { # multiline comment...
479 $line = $_; # ... just accumulate
480 next;
481 } else {
482 s/\/\*.*?\*\///gs;# wipe it
483 }
484 }
485
440 if ($cpp) { 486 if ($cpp) {
441 $cpp = 0 if /^\#.*endif/; 487 $cpp++ if /^#\s*if/;
488 $cpp-- if /^#\s*endif/;
442 next; 489 next;
443 } 490 }
491 $cpp = 1 if /^#.*ifdef.*cplusplus/;
444 492
445 s/\/\*.*?\*\///gs; # ignore comments
446 if (/\/\*/) { # if we have part
447 $line = $_; # of a comment,
448 next; # continue reading
449 }
450 s/{[^{}]*}//gs; # ignore {} blocks 493 s/{[^{}]*}//gs; # ignore {} blocks
451 print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne ""; 494 print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
452 print STDERR "DEBUG: \$_=\"$_\"\n" if $debug; 495 print STDERR "DEBUG: \$_=\"$_\"\n" if $debug;
@@ -505,7 +548,7 @@ sub do_defs
505 } 548 }
506 } elsif (/^\#\s*endif/) { 549 } elsif (/^\#\s*endif/) {
507 my $tag_i = $#tag; 550 my $tag_i = $#tag;
508 while($tag[$tag_i] ne "-") { 551 while($tag_i > 0 && $tag[$tag_i] ne "-") {
509 my $t=$tag[$tag_i]; 552 my $t=$tag[$tag_i];
510 print STDERR "DEBUG: \$t=\"$t\"\n" if $debug; 553 print STDERR "DEBUG: \$t=\"$t\"\n" if $debug;
511 if ($tag{$t}==2) { 554 if ($tag{$t}==2) {
@@ -672,6 +715,10 @@ sub do_defs
672 "EXPORT_VAR_AS_FUNCTION", 715 "EXPORT_VAR_AS_FUNCTION",
673 "FUNCTION"); 716 "FUNCTION");
674 next; 717 next;
718 } elsif (/^\s*DECLARE_ASN1_ALLOC_FUNCTIONS\s*\(\s*(\w*)\s*\)/) {
719 $def .= "int $1_free(void);";
720 $def .= "int $1_new(void);";
721 next;
675 } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) { 722 } elsif (/^\s*DECLARE_ASN1_FUNCTIONS_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
676 $def .= "int d2i_$2(void);"; 723 $def .= "int d2i_$2(void);";
677 $def .= "int i2d_$2(void);"; 724 $def .= "int i2d_$2(void);";
@@ -716,12 +763,21 @@ sub do_defs
716 "EXPORT_VAR_AS_FUNCTION", 763 "EXPORT_VAR_AS_FUNCTION",
717 "FUNCTION"); 764 "FUNCTION");
718 next; 765 next;
766 } elsif (/^\s*DECLARE_ASN1_NDEF_FUNCTION\s*\(\s*(\w*)\s*\)/) {
767 $def .= "int i2d_$1_NDEF(void);";
719 } elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) { 768 } elsif (/^\s*DECLARE_ASN1_SET_OF\s*\(\s*(\w*)\s*\)/) {
720 next; 769 next;
770 } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION\s*\(\s*(\w*)\s*\)/) {
771 $def .= "int $1_print_ctx(void);";
772 next;
773 } elsif (/^\s*DECLARE_ASN1_PRINT_FUNCTION_name\s*\(\s*(\w*)\s*,\s*(\w*)\s*\)/) {
774 $def .= "int $2_print_ctx(void);";
775 next;
721 } elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) { 776 } elsif (/^\s*DECLARE_PKCS12_STACK_OF\s*\(\s*(\w*)\s*\)/) {
722 next; 777 next;
723 } elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ || 778 } elsif (/^DECLARE_PEM_rw\s*\(\s*(\w*)\s*,/ ||
724 /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ ) { 779 /^DECLARE_PEM_rw_cb\s*\(\s*(\w*)\s*,/ ||
780 /^DECLARE_PEM_rw_const\s*\(\s*(\w*)\s*,/ ) {
725 # Things not in Win16 781 # Things not in Win16
726 $def .= 782 $def .=
727 "#INFO:" 783 "#INFO:"
@@ -797,7 +853,7 @@ sub do_defs
797 } 853 }
798 close(IN); 854 close(IN);
799 855
800 my $algs = ''; 856 my $algs;
801 my $plays; 857 my $plays;
802 858
803 print STDERR "DEBUG: postprocessing ----------\n" if $debug; 859 print STDERR "DEBUG: postprocessing ----------\n" if $debug;
@@ -809,6 +865,17 @@ sub do_defs
809 next if(/typedef\W/); 865 next if(/typedef\W/);
810 next if(/\#define/); 866 next if(/\#define/);
811 867
868 # Reduce argument lists to empty ()
869 # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {}
870 while(/\(.*\)/s) {
871 s/\([^\(\)]+\)/\{\}/gs;
872 s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs; #(*f{}) -> f
873 }
874 # pretend as we didn't use curly braces: {} -> ()
875 s/\{\}/\(\)/gs;
876
877 s/STACK_OF\(\)/void/gs;
878
812 print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug; 879 print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug;
813 if (/^\#INFO:([^:]*):(.*)$/) { 880 if (/^\#INFO:([^:]*):(.*)$/) {
814 $plats = $1; 881 $plats = $1;
@@ -819,21 +886,10 @@ sub do_defs
819 $s = $1; 886 $s = $1;
820 $k = "VARIABLE"; 887 $k = "VARIABLE";
821 print STDERR "DEBUG: found external variable $s\n" if $debug; 888 print STDERR "DEBUG: found external variable $s\n" if $debug;
822 } elsif (/\(\*(\w*(\{[0-9]+\})?)\([^\)]+/) { 889 } elsif (/TYPEDEF_\w+_OF/s) {
823 $s = $1;
824 print STDERR "DEBUG: found ANSI C function $s\n" if $debug;
825 } elsif (/\w+\W+(\w+)\W*\(\s*\)(\s*__attribute__\(.*\)\s*)?$/s) {
826 # K&R C
827 print STDERR "DEBUG: found K&R C function $s\n" if $debug;
828 next; 890 next;
829 } elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)(\s*__attribute__\(.*\)\s*)?$/s) { 891 } elsif (/(\w+)\s*\(\).*/s) { # first token prior [first] () is
830 while (not /\(\)(\s*__attribute__\(.*\)\s*)?$/s) { 892 $s = $1; # a function name!
831 s/[^\(\)]*\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
832 s/\([^\(\)]*\)\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
833 }
834 s/\(void\)//;
835 /(\w+(\{[0-9]+\})?)\W*\(\)/s;
836 $s = $1;
837 print STDERR "DEBUG: found function $s\n" if $debug; 893 print STDERR "DEBUG: found function $s\n" if $debug;
838 } elsif (/\(/ and not (/=/)) { 894 } elsif (/\(/ and not (/=/)) {
839 print STDERR "File $file: cannot parse: $_;\n"; 895 print STDERR "File $file: cannot parse: $_;\n";
@@ -864,13 +920,9 @@ sub do_defs
864 $a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/); 920 $a .= ",RSA" if($s =~ /PEM_Seal(Final|Init|Update)/);
865 $a .= ",RSA" if($s =~ /RSAPrivateKey/); 921 $a .= ",RSA" if($s =~ /RSAPrivateKey/);
866 $a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/); 922 $a .= ",RSA" if($s =~ /SSLv23?_((client|server)_)?method/);
867 # SHA2 algorithms only defined in FIPS mode for
868 # OpenSSL 0.9.7
869 $p .= "OPENSSL_FIPS" if($s =~ /SHA[235]/);
870 923
871 $platform{$s} = 924 $platform{$s} =
872 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p); 925 &reduce_platforms((defined($platform{$s})?$platform{$s}.',':"").$p);
873 $algorithm{$s} = '' if !defined $algorithm{$s};
874 $algorithm{$s} .= ','.$a; 926 $algorithm{$s} .= ','.$a;
875 927
876 if (defined($variant{$s})) { 928 if (defined($variant{$s})) {
@@ -1035,9 +1087,7 @@ sub is_valid
1035 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) { 1087 if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) {
1036 return 1; 1088 return 1;
1037 } 1089 }
1038 if ($keyword eq "OPENSSL_FIPS" && $fips) { 1090 if ($keyword eq "ZLIB" && $zlib) { return 1; }
1039 return 1;
1040 }
1041 return 0; 1091 return 0;
1042 } else { 1092 } else {
1043 # algorithms 1093 # algorithms
@@ -1058,8 +1108,12 @@ sub is_valid
1058 if ($keyword eq "DSA" && $no_dsa) { return 0; } 1108 if ($keyword eq "DSA" && $no_dsa) { return 0; }
1059 if ($keyword eq "DH" && $no_dh) { return 0; } 1109 if ($keyword eq "DH" && $no_dh) { return 0; }
1060 if ($keyword eq "EC" && $no_ec) { return 0; } 1110 if ($keyword eq "EC" && $no_ec) { return 0; }
1111 if ($keyword eq "ECDSA" && $no_ecdsa) { return 0; }
1112 if ($keyword eq "ECDH" && $no_ecdh) { return 0; }
1061 if ($keyword eq "HMAC" && $no_hmac) { return 0; } 1113 if ($keyword eq "HMAC" && $no_hmac) { return 0; }
1062 if ($keyword eq "AES" && $no_aes) { return 0; } 1114 if ($keyword eq "AES" && $no_aes) { return 0; }
1115 if ($keyword eq "CAMELLIA" && $no_camellia) { return 0; }
1116 if ($keyword eq "SEED" && $no_seed) { return 0; }
1063 if ($keyword eq "EVP" && $no_evp) { return 0; } 1117 if ($keyword eq "EVP" && $no_evp) { return 0; }
1064 if ($keyword eq "LHASH" && $no_lhash) { return 0; } 1118 if ($keyword eq "LHASH" && $no_lhash) { return 0; }
1065 if ($keyword eq "STACK" && $no_stack) { return 0; } 1119 if ($keyword eq "STACK" && $no_stack) { return 0; }
@@ -1072,6 +1126,12 @@ sub is_valid
1072 if ($keyword eq "ENGINE" && $no_engine) { return 0; } 1126 if ($keyword eq "ENGINE" && $no_engine) { return 0; }
1073 if ($keyword eq "HW" && $no_hw) { return 0; } 1127 if ($keyword eq "HW" && $no_hw) { return 0; }
1074 if ($keyword eq "FP_API" && $no_fp_api) { return 0; } 1128 if ($keyword eq "FP_API" && $no_fp_api) { return 0; }
1129 if ($keyword eq "STATIC_ENGINE" && $no_static_engine) { return 0; }
1130 if ($keyword eq "GMP" && $no_gmp) { return 0; }
1131 if ($keyword eq "RFC3779" && $no_rfc3779) { return 0; }
1132 if ($keyword eq "TLSEXT" && $no_tlsext) { return 0; }
1133 if ($keyword eq "CMS" && $no_cms) { return 0; }
1134 if ($keyword eq "DEPRECATED" && $no_deprecated) { return 0; }
1075 1135
1076 # Nothing recognise as true 1136 # Nothing recognise as true
1077 return 1; 1137 return 1;
@@ -1174,8 +1234,6 @@ EOO
1174 1234
1175LIBRARY $libname $liboptions 1235LIBRARY $libname $liboptions
1176 1236
1177DESCRIPTION '$description'
1178
1179EOF 1237EOF
1180 1238
1181 if ($W16) { 1239 if ($W16) {
diff --git a/src/lib/libcrypto/util/mkdir-p.pl b/src/lib/libcrypto/util/mkdir-p.pl
index 6c69c2daa4..e73d02b073 100644
--- a/src/lib/libcrypto/util/mkdir-p.pl
+++ b/src/lib/libcrypto/util/mkdir-p.pl
@@ -8,6 +8,7 @@
8my $arg; 8my $arg;
9 9
10foreach $arg (@ARGV) { 10foreach $arg (@ARGV) {
11 $arg =~ tr|\\|/|;
11 &do_mkdir_p($arg); 12 &do_mkdir_p($arg);
12} 13}
13 14
diff --git a/src/lib/libcrypto/util/mkerr.pl b/src/lib/libcrypto/util/mkerr.pl
index 9678514604..53e14ab4df 100644
--- a/src/lib/libcrypto/util/mkerr.pl
+++ b/src/lib/libcrypto/util/mkerr.pl
@@ -44,8 +44,7 @@ while (@ARGV) {
44} 44}
45 45
46if($recurse) { 46if($recurse) {
47 @source = (<crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>, <fips-1.0/*.c>, 47 @source = (<crypto/*.c>, <crypto/*/*.c>, <ssl/*.c>);
48 <fips-1.0/*/*.c>);
49} else { 48} else {
50 @source = @ARGV; 49 @source = @ARGV;
51} 50}
@@ -66,6 +65,8 @@ while(<IN>)
66 $csrc{$1} = $3; 65 $csrc{$1} = $3;
67 $fmax{$1} = 99; 66 $fmax{$1} = 99;
68 $rmax{$1} = 99; 67 $rmax{$1} = 99;
68 $fassigned{$1} = ":";
69 $rassigned{$1} = ":";
69 $fnew{$1} = 0; 70 $fnew{$1} = 0;
70 $rnew{$1} = 0; 71 $rnew{$1} = 0;
71 } 72 }
@@ -104,15 +105,24 @@ while (($hdr, $lib) = each %libinc)
104 next; 105 next;
105 } 106 }
106 107
107 $cpp = 1 if /^#.*ifdef.*cplusplus/; # skip "C" declaration 108 if(/\/\*/) {
109 if (not /\*\//) { # multiline comment...
110 $line = $_; # ... just accumulate
111 next;
112 } else {
113 s/\/\*.*?\*\///gs; # wipe it
114 }
115 }
116
108 if ($cpp) { 117 if ($cpp) {
109 $cpp = 0 if /^#.*endif/; 118 $cpp++ if /^#\s*if/;
119 $cpp-- if /^#\s*endif/;
110 next; 120 next;
111 } 121 }
122 $cpp = 1 if /^#.*ifdef.*cplusplus/; # skip "C" declaration
112 123
113 next if (/^\#/); # skip preprocessor directives 124 next if (/^\#/); # skip preprocessor directives
114 125
115 s/\/\*.*?\*\///gs; # ignore comments
116 s/{[^{}]*}//gs; # ignore {} blocks 126 s/{[^{}]*}//gs; # ignore {} blocks
117 127
118 if (/\{|\/\*/) { # Add a } so editor works... 128 if (/\{|\/\*/) { # Add a } so editor works...
@@ -125,31 +135,37 @@ while (($hdr, $lib) = each %libinc)
125 135
126 print STDERR " \r" if $debug; 136 print STDERR " \r" if $debug;
127 $defnr = 0; 137 $defnr = 0;
138 # Delete any DECLARE_ macros
139 $def =~ s/DECLARE_\w+\([\w,\s]+\)//gs;
128 foreach (split /;/, $def) { 140 foreach (split /;/, $def) {
129 $defnr++; 141 $defnr++;
130 print STDERR "def: $defnr\r" if $debug; 142 print STDERR "def: $defnr\r" if $debug;
131 143
144 # The goal is to collect function names from function declarations.
145
132 s/^[\n\s]*//g; 146 s/^[\n\s]*//g;
133 s/[\n\s]*$//g; 147 s/[\n\s]*$//g;
134 next if(/typedef\W/); 148
135 if (/\(\*(\w*)\([^\)]+/) { 149 # Skip over recognized non-function declarations
136 my $name = $1; 150 next if(/typedef\W/ or /DECLARE_STACK_OF/ or /TYPEDEF_.*_OF/);
137 $name =~ tr/[a-z]/[A-Z]/; 151
138 $ftrans{$name} = $1; 152 # Remove STACK_OF(foo)
139 } elsif (/\w+\W+(\w+)\W*\(\s*\)(\s*__attribute__\(.*\)\s*)?$/s){ 153 s/STACK_OF\(\w+\)/void/;
140 # K&R C 154
141 next ; 155 # Reduce argument lists to empty ()
142 } elsif (/\w+\W+\w+\W*\(.*\)(\s*__attribute__\(.*\)\s*)?$/s) { 156 # fold round brackets recursively: (t(*v)(t),t) -> (t{}{},t) -> {}
143 while (not /\(\)(\s*__attribute__\(.*\)\s*)?$/s) { 157 while(/\(.*\)/s) {
144 s/[^\(\)]*\)(\s*__attribute__\(.*\)\s*)?$/\)/s; 158 s/\([^\(\)]+\)/\{\}/gs;
145 s/\([^\(\)]*\)\)(\s*__attribute__\(.*\)\s*)?$/\)/s; 159 s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs; #(*f{}) -> f
146 } 160 }
147 s/\(void\)//; 161 # pretend as we didn't use curly braces: {} -> ()
148 /(\w+(\{[0-9]+\})?)\W*\(\)/s; 162 s/\{\}/\(\)/gs;
149 my $name = $1; 163
164 if (/(\w+)\s*\(\).*/s) { # first token prior [first] () is
165 my $name = $1; # a function name!
150 $name =~ tr/[a-z]/[A-Z]/; 166 $name =~ tr/[a-z]/[A-Z]/;
151 $ftrans{$name} = $1; 167 $ftrans{$name} = $1;
152 } elsif (/\(/ and not (/=/ or /DECLARE_STACK/)) { 168 } elsif (/[\(\)]/ and not (/=/)) {
153 print STDERR "Header $hdr: cannot parse: $_;\n"; 169 print STDERR "Header $hdr: cannot parse: $_;\n";
154 } 170 }
155 } 171 }
@@ -162,7 +178,7 @@ while (($hdr, $lib) = each %libinc)
162 # maximum code used. 178 # maximum code used.
163 179
164 if ($gotfile) { 180 if ($gotfile) {
165 while(<IN>) { 181 while(<IN>) {
166 if(/^\#define\s+(\S+)\s+(\S+)/) { 182 if(/^\#define\s+(\S+)\s+(\S+)/) {
167 $name = $1; 183 $name = $1;
168 $code = $2; 184 $code = $2;
@@ -173,18 +189,49 @@ while (($hdr, $lib) = each %libinc)
173 } 189 }
174 if($1 eq "R") { 190 if($1 eq "R") {
175 $rcodes{$name} = $code; 191 $rcodes{$name} = $code;
192 if ($rassigned{$lib} =~ /:$code:/) {
193 print STDERR "!! ERROR: $lib reason code $code assigned twice\n";
194 }
195 $rassigned{$lib} .= "$code:";
176 if(!(exists $rextra{$name}) && 196 if(!(exists $rextra{$name}) &&
177 ($code > $rmax{$lib}) ) { 197 ($code > $rmax{$lib}) ) {
178 $rmax{$lib} = $code; 198 $rmax{$lib} = $code;
179 } 199 }
180 } else { 200 } else {
201 if ($fassigned{$lib} =~ /:$code:/) {
202 print STDERR "!! ERROR: $lib function code $code assigned twice\n";
203 }
204 $fassigned{$lib} .= "$code:";
181 if($code > $fmax{$lib}) { 205 if($code > $fmax{$lib}) {
182 $fmax{$lib} = $code; 206 $fmax{$lib} = $code;
183 } 207 }
184 $fcodes{$name} = $code; 208 $fcodes{$name} = $code;
185 } 209 }
186 } 210 }
187 } 211 }
212 }
213
214 if ($debug) {
215 if (defined($fmax{$lib})) {
216 print STDERR "Max function code fmax" . "{" . "$lib" . "} = $fmax{$lib}\n";
217 $fassigned{$lib} =~ m/^:(.*):$/;
218 @fassigned = sort {$a <=> $b} split(":", $1);
219 print STDERR " @fassigned\n";
220 }
221 if (defined($rmax{$lib})) {
222 print STDERR "Max reason code rmax" . "{" . "$lib" . "} = $rmax{$lib}\n";
223 $rassigned{$lib} =~ m/^:(.*):$/;
224 @rassigned = sort {$a <=> $b} split(":", $1);
225 print STDERR " @rassigned\n";
226 }
227 }
228
229 if ($lib eq "SSL") {
230 if ($rmax{$lib} >= 1000) {
231 print STDERR "!! ERROR: SSL error codes 1000+ are reserved for alerts.\n";
232 print STDERR "!! Any new alerts must be added to $config.\n";
233 print STDERR "\n";
234 }
188 } 235 }
189 close IN; 236 close IN;
190} 237}
@@ -201,11 +248,10 @@ while (($hdr, $lib) = each %libinc)
201# so all those unreferenced can be printed out. 248# so all those unreferenced can be printed out.
202 249
203 250
204print STDERR "Files loaded: " if $debug;
205foreach $file (@source) { 251foreach $file (@source) {
206 # Don't parse the error source file. 252 # Don't parse the error source file.
207 next if exists $cskip{$file}; 253 next if exists $cskip{$file};
208 print STDERR $file if $debug; 254 print STDERR "File loaded: ".$file."\r" if $debug;
209 open(IN, "<$file") || die "Can't open source file $file\n"; 255 open(IN, "<$file") || die "Can't open source file $file\n";
210 while(<IN>) { 256 while(<IN>) {
211 if(/(([A-Z0-9]+)_F_([A-Z0-9_]+))/) { 257 if(/(([A-Z0-9]+)_F_([A-Z0-9_]+))/) {
@@ -229,7 +275,7 @@ foreach $file (@source) {
229 } 275 }
230 close IN; 276 close IN;
231} 277}
232print STDERR "\n" if $debug; 278print STDERR " \n" if $debug;
233 279
234# Now process each library in turn. 280# Now process each library in turn.
235 281
@@ -266,7 +312,7 @@ foreach $lib (keys %csrc)
266 } else { 312 } else {
267 push @out, 313 push @out,
268"/* ====================================================================\n", 314"/* ====================================================================\n",
269" * Copyright (c) 2001-2005 The OpenSSL Project. All rights reserved.\n", 315" * Copyright (c) 2001-2008 The OpenSSL Project. All rights reserved.\n",
270" *\n", 316" *\n",
271" * Redistribution and use in source and binary forms, with or without\n", 317" * Redistribution and use in source and binary forms, with or without\n",
272" * modification, are permitted provided that the following conditions\n", 318" * modification, are permitted provided that the following conditions\n",
@@ -356,7 +402,16 @@ EOF
356 foreach $i (@function) { 402 foreach $i (@function) {
357 $z=6-int(length($i)/8); 403 $z=6-int(length($i)/8);
358 if($fcodes{$i} eq "X") { 404 if($fcodes{$i} eq "X") {
359 $fcodes{$i} = ++$fmax{$lib}; 405 $fassigned{$lib} =~ m/^:([^:]*):/;
406 $findcode = $1;
407 if (!defined($findcode)) {
408 $findcode = $fmax{$lib};
409 }
410 while ($fassigned{$lib} =~ m/:$findcode:/) {
411 $findcode++;
412 }
413 $fcodes{$i} = $findcode;
414 $fassigned{$lib} .= "$findcode:";
360 print STDERR "New Function code $i\n" if $debug; 415 print STDERR "New Function code $i\n" if $debug;
361 } 416 }
362 printf OUT "#define $i%s $fcodes{$i}\n","\t" x $z; 417 printf OUT "#define $i%s $fcodes{$i}\n","\t" x $z;
@@ -367,7 +422,16 @@ EOF
367 foreach $i (@reasons) { 422 foreach $i (@reasons) {
368 $z=6-int(length($i)/8); 423 $z=6-int(length($i)/8);
369 if($rcodes{$i} eq "X") { 424 if($rcodes{$i} eq "X") {
370 $rcodes{$i} = ++$rmax{$lib}; 425 $rassigned{$lib} =~ m/^:([^:]*):/;
426 $findcode = $1;
427 if (!defined($findcode)) {
428 $findcode = $rmax{$lib};
429 }
430 while ($rassigned{$lib} =~ m/:$findcode:/) {
431 $findcode++;
432 }
433 $rcodes{$i} = $findcode;
434 $rassigned{$lib} .= "$findcode:";
371 print STDERR "New Reason code $i\n" if $debug; 435 print STDERR "New Reason code $i\n" if $debug;
372 } 436 }
373 printf OUT "#define $i%s $rcodes{$i}\n","\t" x $z; 437 printf OUT "#define $i%s $rcodes{$i}\n","\t" x $z;
@@ -422,7 +486,7 @@ EOF
422 print OUT <<"EOF"; 486 print OUT <<"EOF";
423/* $cfile */ 487/* $cfile */
424/* ==================================================================== 488/* ====================================================================
425 * Copyright (c) 1999-2005 The OpenSSL Project. All rights reserved. 489 * Copyright (c) 1999-2008 The OpenSSL Project. All rights reserved.
426 * 490 *
427 * Redistribution and use in source and binary forms, with or without 491 * Redistribution and use in source and binary forms, with or without
428 * modification, are permitted provided that the following conditions 492 * modification, are permitted provided that the following conditions
@@ -536,17 +600,14 @@ if($static) {
536 600
537${staticloader}void ERR_load_${lib}_strings(void) 601${staticloader}void ERR_load_${lib}_strings(void)
538 { 602 {
539 static int init=1; 603#ifndef OPENSSL_NO_ERR
540 604
541 if (init) 605 if (ERR_func_error_string(${lib}_str_functs[0].error) == NULL)
542 { 606 {
543 init=0;
544#ifndef OPENSSL_NO_ERR
545 ERR_load_strings($load_errcode,${lib}_str_functs); 607 ERR_load_strings($load_errcode,${lib}_str_functs);
546 ERR_load_strings($load_errcode,${lib}_str_reasons); 608 ERR_load_strings($load_errcode,${lib}_str_reasons);
547#endif
548
549 } 609 }
610#endif
550 } 611 }
551EOF 612EOF
552} else { 613} else {
diff --git a/src/lib/libcrypto/util/mkfiles.pl b/src/lib/libcrypto/util/mkfiles.pl
index bc78510f56..1282392fea 100644
--- a/src/lib/libcrypto/util/mkfiles.pl
+++ b/src/lib/libcrypto/util/mkfiles.pl
@@ -24,12 +24,16 @@ my @dirs = (
24"crypto/bf", 24"crypto/bf",
25"crypto/cast", 25"crypto/cast",
26"crypto/aes", 26"crypto/aes",
27"crypto/camellia",
28"crypto/seed",
27"crypto/bn", 29"crypto/bn",
28"crypto/rsa", 30"crypto/rsa",
29"crypto/dsa", 31"crypto/dsa",
30"crypto/dso", 32"crypto/dso",
31"crypto/dh", 33"crypto/dh",
32"crypto/ec", 34"crypto/ec",
35"crypto/ecdh",
36"crypto/ecdsa",
33"crypto/buffer", 37"crypto/buffer",
34"crypto/bio", 38"crypto/bio",
35"crypto/stack", 39"crypto/stack",
@@ -51,17 +55,12 @@ my @dirs = (
51"crypto/ocsp", 55"crypto/ocsp",
52"crypto/ui", 56"crypto/ui",
53"crypto/krb5", 57"crypto/krb5",
54"fips-1.0", 58"crypto/store",
55"fips-1.0/aes", 59"crypto/pqueue",
56"fips-1.0/des", 60"crypto/cms",
57"fips-1.0/dsa",
58"fips-1.0/dh",
59"fips-1.0/hmac",
60"fips-1.0/rand",
61"fips-1.0/rsa",
62"fips-1.0/sha",
63"ssl", 61"ssl",
64"apps", 62"apps",
63"engines",
65"test", 64"test",
66"tools" 65"tools"
67); 66);
diff --git a/src/lib/libcrypto/util/mklink.pl b/src/lib/libcrypto/util/mklink.pl
index 182732d959..d9bc98aab8 100644
--- a/src/lib/libcrypto/util/mklink.pl
+++ b/src/lib/libcrypto/util/mklink.pl
@@ -14,7 +14,6 @@
14# not contain symbolic links and that the parent of / is never referenced. 14# not contain symbolic links and that the parent of / is never referenced.
15# Apart from this, this script should be able to handle even the most 15# Apart from this, this script should be able to handle even the most
16# pathological cases. 16# pathological cases.
17#
18 17
19use Cwd; 18use Cwd;
20 19
diff --git a/src/lib/libcrypto/util/mkstack.pl b/src/lib/libcrypto/util/mkstack.pl
index 0ca9eb6a76..2a968f395f 100644
--- a/src/lib/libcrypto/util/mkstack.pl
+++ b/src/lib/libcrypto/util/mkstack.pl
@@ -75,6 +75,7 @@ while(<IN>) {
75#define sk_${type_thing}_push(st, val) SKM_sk_push($type_thing, (st), (val)) 75#define sk_${type_thing}_push(st, val) SKM_sk_push($type_thing, (st), (val))
76#define sk_${type_thing}_unshift(st, val) SKM_sk_unshift($type_thing, (st), (val)) 76#define sk_${type_thing}_unshift(st, val) SKM_sk_unshift($type_thing, (st), (val))
77#define sk_${type_thing}_find(st, val) SKM_sk_find($type_thing, (st), (val)) 77#define sk_${type_thing}_find(st, val) SKM_sk_find($type_thing, (st), (val))
78#define sk_${type_thing}_find_ex(st, val) SKM_sk_find_ex($type_thing, (st), (val))
78#define sk_${type_thing}_delete(st, i) SKM_sk_delete($type_thing, (st), (i)) 79#define sk_${type_thing}_delete(st, i) SKM_sk_delete($type_thing, (st), (i))
79#define sk_${type_thing}_delete_ptr(st, ptr) SKM_sk_delete_ptr($type_thing, (st), (ptr)) 80#define sk_${type_thing}_delete_ptr(st, ptr) SKM_sk_delete_ptr($type_thing, (st), (ptr))
80#define sk_${type_thing}_insert(st, val, i) SKM_sk_insert($type_thing, (st), (val), (i)) 81#define sk_${type_thing}_insert(st, val, i) SKM_sk_insert($type_thing, (st), (val), (i))
diff --git a/src/lib/libcrypto/util/pl/BC-32.pl b/src/lib/libcrypto/util/pl/BC-32.pl
index 28869c868d..99b8c058d2 100644
--- a/src/lib/libcrypto/util/pl/BC-32.pl
+++ b/src/lib/libcrypto/util/pl/BC-32.pl
@@ -62,7 +62,7 @@ $des_enc_src='';
62$bf_enc_obj=''; 62$bf_enc_obj='';
63$bf_enc_src=''; 63$bf_enc_src='';
64 64
65if (!$no_asm && !$fips) 65if (!$no_asm)
66 { 66 {
67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj'; 67 $bn_mulw_obj='crypto\bn\asm\bn_win32.obj';
68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm'; 68 $bn_mulw_src='crypto\bn\asm\bn_win32.asm';
@@ -126,18 +126,13 @@ ___
126 126
127sub do_link_rule 127sub do_link_rule
128 { 128 {
129 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; 129 local($target,$files,$dep_libs,$libs)=@_;
130 local($ret,$_); 130 local($ret,$_);
131 131
132 $file =~ s/\//$o/g if $o ne '/'; 132 $file =~ s/\//$o/g if $o ne '/';
133 $n=&bname($targer); 133 $n=&bname($targer);
134 $ret.="$target: $files $dep_libs\n"; 134 $ret.="$target: $files $dep_libs\n";
135 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n"; 135 $ret.="\t\$(LINK) \$(LFLAGS) $files \$(APP_EX_OBJ), $target,, $libs\n\n";
136 if (defined $sha1file)
137 {
138 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
139 }
140 $ret.="\n";
141 return($ret); 136 return($ret);
142 } 137 }
143 138
diff --git a/src/lib/libcrypto/util/pl/Mingw32.pl b/src/lib/libcrypto/util/pl/Mingw32.pl
index b9bb24d21d..8f0483fb93 100644
--- a/src/lib/libcrypto/util/pl/Mingw32.pl
+++ b/src/lib/libcrypto/util/pl/Mingw32.pl
@@ -19,9 +19,9 @@ $cc='gcc';
19if ($debug) 19if ($debug)
20 { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; } 20 { $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; }
21else 21else
22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; } 22 { $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -march=i486 -Wall"; }
23 23
24if ($gaswin and !$no_asm and !$fips) 24if ($gaswin and !$no_asm)
25 { 25 {
26 $bn_asm_obj='$(OBJ_D)\bn-win32.o'; 26 $bn_asm_obj='$(OBJ_D)\bn-win32.o';
27 $bn_asm_src='crypto/bn/asm/bn-win32.s'; 27 $bn_asm_src='crypto/bn/asm/bn-win32.s';
@@ -43,7 +43,9 @@ if ($gaswin and !$no_asm and !$fips)
43 $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s'; 43 $rmd160_asm_src='crypto/ripemd/asm/rm-win32.s';
44 $sha1_asm_obj='$(OBJ_D)\s1-win32.o'; 44 $sha1_asm_obj='$(OBJ_D)\s1-win32.o';
45 $sha1_asm_src='crypto/sha/asm/s1-win32.s'; 45 $sha1_asm_src='crypto/sha/asm/s1-win32.s';
46 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM"; 46 $cpuid_asm_obj='$(OBJ_D)\cpu-win32.o';
47 $cpuid_asm_src='crypto/cpu-win32.s';
48 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
47 } 49 }
48 50
49 51
@@ -92,18 +94,13 @@ sub do_lib_rule
92 94
93sub do_link_rule 95sub do_link_rule
94 { 96 {
95 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; 97 local($target,$files,$dep_libs,$libs)=@_;
96 local($ret,$_); 98 local($ret,$_);
97 99
98 $file =~ s/\//$o/g if $o ne '/'; 100 $file =~ s/\//$o/g if $o ne '/';
99 $n=&bname($target); 101 $n=&bname($target);
100 $ret.="$target: $files $dep_libs\n"; 102 $ret.="$target: $files $dep_libs\n";
101 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n"; 103 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
102 if (defined $sha1file)
103 {
104 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
105 }
106 $ret.="\n";
107 return($ret); 104 return($ret);
108 } 105 }
1091; 1061;
diff --git a/src/lib/libcrypto/util/pl/OS2-EMX.pl b/src/lib/libcrypto/util/pl/OS2-EMX.pl
index 8dbeaa7a08..28cd116907 100644
--- a/src/lib/libcrypto/util/pl/OS2-EMX.pl
+++ b/src/lib/libcrypto/util/pl/OS2-EMX.pl
@@ -48,7 +48,7 @@ $des_enc_src="";
48$bf_enc_obj=""; 48$bf_enc_obj="";
49$bf_enc_src=""; 49$bf_enc_src="";
50 50
51if (!$no_asm && !$fips) 51if (!$no_asm)
52 { 52 {
53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj"; 53 $bn_asm_obj="crypto/bn/asm/bn-os2$obj crypto/bn/asm/co-os2$obj";
54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm"; 54 $bn_asm_src="crypto/bn/asm/bn-os2.asm crypto/bn/asm/co-os2.asm";
@@ -107,18 +107,13 @@ sub do_lib_rule
107 107
108sub do_link_rule 108sub do_link_rule
109 { 109 {
110 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; 110 local($target,$files,$dep_libs,$libs)=@_;
111 local($ret,$_); 111 local($ret,$_);
112 112
113 $file =~ s/\//$o/g if $o ne '/'; 113 $file =~ s/\//$o/g if $o ne '/';
114 $n=&bname($target); 114 $n=&bname($target);
115 $ret.="$target: $files $dep_libs\n"; 115 $ret.="$target: $files $dep_libs\n";
116 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n"; 116 $ret.="\t\$(LINK) ${efile}$target \$(CFLAG) \$(LFLAGS) $files $libs\n\n";
117 if (defined $sha1file)
118 {
119 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
120 }
121 $ret.="\n";
122 return($ret); 117 return($ret);
123 } 118 }
124 119
diff --git a/src/lib/libcrypto/util/pl/VC-32.pl b/src/lib/libcrypto/util/pl/VC-32.pl
index 4e97dfa9af..9cb2ab7e99 100644
--- a/src/lib/libcrypto/util/pl/VC-32.pl
+++ b/src/lib/libcrypto/util/pl/VC-32.pl
@@ -1,56 +1,154 @@
1#!/usr/local/bin/perl 1#!/usr/local/bin/perl
2# VCw32lib.pl - the file for Visual C++ 4.[01] for windows NT, static libraries 2# VC-32.pl - unified script for Microsoft Visual C++, covering Win32,
3# Win64 and WinCE [follow $FLAVOR variable to trace the differences].
3# 4#
4 5
5$ssl= "ssleay32"; 6$ssl= "ssleay32";
6 7$crypto="libeay32";
7if ($fips && !$shlib)
8 {
9 $crypto="libeayfips32";
10 $crypto_compat = "libeaycompat32.lib";
11 }
12else
13 {
14 $crypto="libeay32";
15 }
16 8
17$o='\\'; 9$o='\\';
18$cp='copy nul+'; # Timestamps get stuffed otherwise 10$cp='$(PERL) util/copy.pl';
11$mkdir='$(PERL) util/mkdir-p.pl';
19$rm='del'; 12$rm='del';
20 13
21$zlib_lib="zlib1.lib"; 14$zlib_lib="zlib1.lib";
22 15
23# C compiler stuff 16# C compiler stuff
24$cc='cl'; 17$cc='cl';
25$cflags=' /MD /W3 /WX /Ox /O2 /Ob2 /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32'; 18if ($FLAVOR =~ /WIN64/)
26$cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8 19 {
27$cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8 20 # Note that we currently don't have /WX on Win64! There is a lot of
28$lflags="/nologo /subsystem:console /machine:I386 /opt:ref"; 21 # warnings, but only of two types:
22 #
23 # C4344: conversion from '__int64' to 'int/long', possible loss of data
24 # C4267: conversion from 'size_t' to 'int/long', possible loss of data
25 #
26 # Amount of latter type is minimized by aliasing strlen to function of
27 # own desing and limiting its return value to 2GB-1 (see e_os.h). As
28 # per 0.9.8 release remaining warnings were explicitly examined and
29 # considered safe to ignore.
30 #
31 $base_cflags=' /W3 /Gs0 /GF /Gy /nologo -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DOPENSSL_SYSNAME_WIN32 -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE';
32 $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
33 $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8
34 my $f = $shlib?' /MD':' /MT';
35 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
36 $opt_cflags=$f.' /Ox';
37 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
38 $lflags="/nologo /subsystem:console /opt:ref";
39 }
40elsif ($FLAVOR =~ /CE/)
41 {
42 # sanity check
43 die '%OSVERSION% is not defined' if (!defined($ENV{'OSVERSION'}));
44 die '%PLATFORM% is not defined' if (!defined($ENV{'PLATFORM'}));
45 die '%TARGETCPU% is not defined' if (!defined($ENV{'TARGETCPU'}));
46
47 #
48 # Idea behind this is to mimic flags set by eVC++ IDE...
49 #
50 $wcevers = $ENV{'OSVERSION'}; # WCENNN
51 die '%OSVERSION% value is insane' if ($wcevers !~ /^WCE([1-9])([0-9]{2})$/);
52 $wcecdefs = "-D_WIN32_WCE=$1$2 -DUNDER_CE=$1$2"; # -D_WIN32_WCE=NNN
53 $wcelflag = "/subsystem:windowsce,$1.$2"; # ...,N.NN
54
55 $wceplatf = $ENV{'PLATFORM'};
56 $wceplatf =~ tr/a-z0-9 /A-Z0-9_/d;
57 $wcecdefs .= " -DWCE_PLATFORM_$wceplatf";
58
59 $wcetgt = $ENV{'TARGETCPU'}; # just shorter name...
60 SWITCH: for($wcetgt) {
61 /^X86/ && do { $wcecdefs.=" -Dx86 -D_X86_ -D_i386_ -Di_386_";
62 $wcelflag.=" /machine:IX86"; last; };
63 /^ARMV4[IT]/ && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
64 $wcecdefs.=" -DTHUMB -D_THUMB_" if($wcetgt=~/T$/);
65 $wcecdefs.=" -QRarch4T -QRinterwork-return";
66 $wcelflag.=" /machine:THUMB"; last; };
67 /^ARM/ && do { $wcecdefs.=" -DARM -D_ARM_ -D$wcetgt";
68 $wcelflag.=" /machine:ARM"; last; };
69 /^MIPSIV/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
70 $wcecdefs.=" -D_MIPS64 -QMmips4 -QMn32";
71 $wcelflag.=" /machine:MIPSFPU"; last; };
72 /^MIPS16/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
73 $wcecdefs.=" -DMIPSII -QMmips16";
74 $wcelflag.=" /machine:MIPS16"; last; };
75 /^MIPSII/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000 -D$wcetgt";
76 $wcecdefs.=" -QMmips2";
77 $wcelflag.=" /machine:MIPS"; last; };
78 /^R4[0-9]{3}/ && do { $wcecdefs.=" -DMIPS -D_MIPS_ -DR4000";
79 $wcelflag.=" /machine:MIPS"; last; };
80 /^SH[0-9]/ && do { $wcecdefs.=" -D$wcetgt -D_$wcetgt_ -DSHx";
81 $wcecdefs.=" -Qsh4" if ($wcetgt =~ /^SH4/);
82 $wcelflag.=" /machine:$wcetgt"; last; };
83 { $wcecdefs.=" -D$wcetgt -D_$wcetgt_";
84 $wcelflag.=" /machine:$wcetgt"; last; };
85 }
86
87 $cc='$(CC)';
88 $base_cflags=' /W3 /WX /GF /Gy /nologo -DUNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -I$(WCECOMPAT)/include -DOPENSSL_SMALL_FOOTPRINT';
89 $base_cflags.=" $wcecdefs";
90 $opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
91 $dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG';
92 $lflags="/nologo /opt:ref $wcelflag";
93 }
94else # Win32
95 {
96 $base_cflags=' /W3 /WX /Gs0 /GF /Gy /nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32';
97 $base_cflags.=' -D_CRT_SECURE_NO_DEPRECATE'; # shut up VC8
98 $base_cflags.=' -D_CRT_NONSTDC_NO_DEPRECATE'; # shut up VC8
99 my $f = $shlib?' /MD':' /MT';
100 $lib_cflag='/Zl' if (!$shlib); # remove /DEFAULTLIBs from static lib
101 $opt_cflags=$f.' /Ox /O2 /Ob2';
102 $dbg_cflags=$f.'d /Od -DDEBUG -D_DEBUG';
103 $lflags="/nologo /subsystem:console /opt:ref";
104 }
29$mlflags=''; 105$mlflags='';
30 106
31$out_def="out32"; 107$out_def="out32"; $out_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
32$tmp_def="tmp32"; 108$tmp_def="tmp32"; $tmp_def.='_$(TARGETCPU)' if ($FLAVOR =~ /CE/);
33$inc_def="inc32"; 109$inc_def="inc32";
34 110
35if ($debug) 111if ($debug)
36 { 112 {
37 $cflags=" /MDd /W3 /WX /Zi /Yd /Od /nologo -DOPENSSL_SYSNAME_WIN32 -D_DEBUG -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -DDEBUG -DDSO_WIN32"; 113 $cflags=$dbg_cflags.$base_cflags;
38 $lflags.=" /debug"; 114 $lflags.=" /debug";
39 $mlflags.=' /debug'; 115 $mlflags.=' /debug';
40 } 116 }
41$cflags .= " -DOPENSSL_SYSNAME_WINNT" if $NT == 1; 117else
118 {
119 $cflags=$opt_cflags.$base_cflags;
120 }
42 121
43$obj='.obj'; 122$obj='.obj';
44$ofile="/Fo"; 123$ofile="/Fo";
45 124
46# EXE linking stuff 125# EXE linking stuff
47$link="link"; 126$link="link";
127$rsc="rc";
48$efile="/out:"; 128$efile="/out:";
49$exep='.exe'; 129$exep='.exe';
50if ($no_sock) 130if ($no_sock) { $ex_libs=''; }
51 { $ex_libs=""; } 131elsif ($FLAVOR =~ /CE/) { $ex_libs='winsock.lib'; }
52else { $ex_libs="wsock32.lib user32.lib gdi32.lib"; } 132else { $ex_libs='wsock32.lib'; }
53 133
134if ($FLAVOR =~ /CE/)
135 {
136 $ex_libs.=' $(WCECOMPAT)/lib/wcecompatex.lib';
137 $ex_libs.=' /nodefaultlib:oldnames.lib coredll.lib corelibc.lib' if ($ENV{'TARGETCPU'} eq "X86");
138 }
139else
140 {
141 $ex_libs.=' gdi32.lib advapi32.lib user32.lib';
142 $ex_libs.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/);
143 }
144
145# As native NT API is pure UNICODE, our WIN-NT build defaults to UNICODE,
146# but gets linked with unicows.lib to ensure backward compatibility.
147if ($FLAVOR =~ /NT/)
148 {
149 $cflags.=" -DOPENSSL_SYSNAME_WINNT -DUNICODE -D_UNICODE";
150 $ex_libs="unicows.lib $ex_libs";
151 }
54# static library stuff 152# static library stuff
55$mklib='lib'; 153$mklib='lib';
56$ranlib=''; 154$ranlib='';
@@ -60,9 +158,12 @@ $shlibp=($shlib)?".dll":".lib";
60$lfile='/out:'; 158$lfile='/out:';
61 159
62$shlib_ex_obj=""; 160$shlib_ex_obj="";
63$app_ex_obj="setargv.obj"; 161$app_ex_obj="setargv.obj" if ($FLAVOR !~ /CE/);
64if ($nasm) { 162if ($nasm) {
65 $asm='nasmw -f win32'; 163 my $ver=`nasm -v 2>NUL`;
164 my $vew=`nasmw -v 2>NUL`;
165 # pick newest version
166 $asm=($ver gt $vew?"nasm":"nasmw")." -f win32";
66 $afile='-o '; 167 $afile='-o ';
67} else { 168} else {
68 $asm='ml /Cp /coff /c /Cx'; 169 $asm='ml /Cp /coff /c /Cx';
@@ -77,10 +178,14 @@ $des_enc_src='';
77$bf_enc_obj=''; 178$bf_enc_obj='';
78$bf_enc_src=''; 179$bf_enc_src='';
79 180
80if (!$no_asm && !$fips) 181if (!$no_asm)
81 { 182 {
183 $aes_asm_obj='crypto\aes\asm\a_win32.obj';
184 $aes_asm_src='crypto\aes\asm\a_win32.asm';
82 $bn_asm_obj='crypto\bn\asm\bn_win32.obj'; 185 $bn_asm_obj='crypto\bn\asm\bn_win32.obj';
83 $bn_asm_src='crypto\bn\asm\bn_win32.asm'; 186 $bn_asm_src='crypto\bn\asm\bn_win32.asm';
187 $bnco_asm_obj='crypto\bn\asm\co_win32.obj';
188 $bnco_asm_src='crypto\bn\asm\co_win32.asm';
84 $des_enc_obj='crypto\des\asm\d_win32.obj crypto\des\asm\y_win32.obj'; 189 $des_enc_obj='crypto\des\asm\d_win32.obj crypto\des\asm\y_win32.obj';
85 $des_enc_src='crypto\des\asm\d_win32.asm crypto\des\asm\y_win32.asm'; 190 $des_enc_src='crypto\des\asm\d_win32.asm crypto\des\asm\y_win32.asm';
86 $bf_enc_obj='crypto\bf\asm\b_win32.obj'; 191 $bf_enc_obj='crypto\bf\asm\b_win32.obj';
@@ -93,76 +198,96 @@ if (!$no_asm && !$fips)
93 $rc5_enc_src='crypto\rc5\asm\r5_win32.asm'; 198 $rc5_enc_src='crypto\rc5\asm\r5_win32.asm';
94 $md5_asm_obj='crypto\md5\asm\m5_win32.obj'; 199 $md5_asm_obj='crypto\md5\asm\m5_win32.obj';
95 $md5_asm_src='crypto\md5\asm\m5_win32.asm'; 200 $md5_asm_src='crypto\md5\asm\m5_win32.asm';
96 $sha1_asm_obj='crypto\sha\asm\s1_win32.obj'; 201 $sha1_asm_obj='crypto\sha\asm\s1_win32.obj crypto\sha\asm\sha512-sse2.obj';
97 $sha1_asm_src='crypto\sha\asm\s1_win32.asm'; 202 $sha1_asm_src='crypto\sha\asm\s1_win32.asm crypto\sha\asm\sha512-sse2.asm';
98 $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj'; 203 $rmd160_asm_obj='crypto\ripemd\asm\rm_win32.obj';
99 $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm'; 204 $rmd160_asm_src='crypto\ripemd\asm\rm_win32.asm';
100 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DRMD160_ASM"; 205 $cpuid_asm_obj='crypto\cpu_win32.obj';
206 $cpuid_asm_src='crypto\cpu_win32.asm';
207 $cflags.=" -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DAES_ASM -DBN_ASM -DOPENSSL_BN_ASM_PART_WORDS -DMD5_ASM -DSHA1_ASM -DRMD160_ASM";
101 } 208 }
102 209
103if ($shlib) 210if ($shlib && $FLAVOR !~ /CE/)
104 { 211 {
105 $mlflags.=" $lflags /dll"; 212 $mlflags.=" $lflags /dll";
106# $cflags =~ s| /MD| /MT|;
107 $lib_cflag=" -D_WINDLL"; 213 $lib_cflag=" -D_WINDLL";
108 $out_def="out32dll"; 214 $out_def="out32dll";
109 $tmp_def="tmp32dll"; 215 $tmp_def="tmp32dll";
216 #
217 # Engage Applink...
218 #
219 $app_ex_obj.=" \$(OBJ_D)\\applink.obj /implib:\$(TMP_D)\\junk.lib";
220 $cflags.=" -DOPENSSL_USE_APPLINK -I.";
221 # I'm open for better suggestions than overriding $banner...
222 $banner=<<'___';
223 @echo Building OpenSSL
224
225$(OBJ_D)\applink.obj: ms\applink.c
226 $(CC) /Fo$(OBJ_D)\applink.obj $(APP_CFLAGS) -c ms\applink.c
227$(OBJ_D)\uplink.obj: ms\uplink.c ms\applink.c
228 $(CC) /Fo$(OBJ_D)\uplink.obj $(SHLIB_CFLAGS) -c ms\uplink.c
229$(INCO_D)\applink.c: ms\applink.c
230 $(CP) ms\applink.c $(INCO_D)\applink.c
231
232EXHEADER= $(EXHEADER) $(INCO_D)\applink.c
233
234LIBS_DEP=$(LIBS_DEP) $(OBJ_D)\applink.obj
235CRYPTOOBJ=$(OBJ_D)\uplink.obj $(CRYPTOOBJ)
236___
237 $banner.=<<'___' if ($FLAVOR =~ /WIN64/);
238CRYPTOOBJ=ms\uptable.obj $(CRYPTOOBJ)
239___
240 }
241elsif ($shlib && $FLAVOR =~ /CE/)
242 {
243 $mlflags.=" $lflags /dll";
244 $lib_cflag=" -D_WINDLL -D_DLL";
245 $out_def='out32dll_$(TARGETCPU)';
246 $tmp_def='tmp32dll_$(TARGETCPU)';
110 } 247 }
111 248
112$cflags.=" /Fd$out_def"; 249$cflags.=" /Fd$out_def";
113 250
114sub do_lib_rule 251sub do_lib_rule
115 { 252 {
116 local($objs,$target,$name,$shlib,$ign,$base_addr) = @_; 253 local($objs,$target,$name,$shlib)=@_;
117 local($ret,$Name); 254 local($ret);
118 255
119 $taget =~ s/\//$o/g if $o ne '/'; 256 $taget =~ s/\//$o/g if $o ne '/';
120 ($Name=$name) =~ tr/a-z/A-Z/; 257 if ($name ne "")
121 my $base_arg;
122 if ($base_addr ne "")
123 {
124 $base_arg= " /base:$base_addr";
125 }
126 else
127 { 258 {
128 $base_arg = ""; 259 $name =~ tr/a-z/A-Z/;
260 $name = "/def:ms/${name}.def";
129 } 261 }
130 262
131
132# $target="\$(LIB_D)$o$target"; 263# $target="\$(LIB_D)$o$target";
264 $ret.="$target: $objs\n";
133 if (!$shlib) 265 if (!$shlib)
134 { 266 {
135# $ret.="\t\$(RM) \$(O_$Name)\n"; 267# $ret.="\t\$(RM) \$(O_$Name)\n";
136 $ret.="$target: $objs\n"; 268 $ex =' ';
137 $ex =' advapi32.lib';
138 $ex.=" \$(FIPSLIB_D)${o}_chkstk.o" if $fips && $target =~ /O_CRYPTO/;
139 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n"; 269 $ret.="\t\$(MKLIB) $lfile$target @<<\n $objs $ex\n<<\n";
140 } 270 }
141 else 271 else
142 { 272 {
143 local($ex)=($target =~ /O_SSL/)?' $(L_CRYPTO)':''; 273 local($ex)=($target =~ /O_CRYPTO/)?'':' $(L_CRYPTO)';
144 $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib'; 274 if ($name eq "")
145 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/; 275 {
146 if ($fips && $target =~ /O_CRYPTO/) 276 $ex.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/);
277 }
278 elsif ($FLAVOR =~ /CE/)
147 { 279 {
148 $ex.=" \$(FIPSLIB_D)${o}_chkstk.o"; 280 $ex.=' winsock.lib $(WCECOMPAT)/lib/wcecompatex.lib';
149 $ret.="$target: $objs \$(PREMAIN_DSO_EXE)\n";
150 $ret.="\tSET FIPS_LINK=\$(LINK)\n";
151 $ret.="\tSET FIPS_CC=\$(CC)\n";
152 $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
153 $ret.="\tSET PREMAIN_DSO_EXE=\$(PREMAIN_DSO_EXE)\n";
154 $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
155 $ret.="\tSET FIPS_TARGET=$target\n";
156 $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
157 $ret.="\t\$(FIPSLINK) \$(MLFLAGS) $base_arg $efile$target ";
158 $ret.="/def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs ";
159 $ret.="\$(OBJ_D)${o}fips_premain.obj $ex\n<<\n";
160 } 281 }
161 else 282 else
162 { 283 {
163 $ret.="$target: $objs\n"; 284 $ex.=' unicows.lib' if ($FLAVOR =~ /NT/);
164 $ret.="\t\$(LINK) \$(MLFLAGS) $base_arg $efile$target /def:ms/${Name}.def @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n"; 285 $ex.=' wsock32.lib gdi32.lib advapi32.lib user32.lib';
286 $ex.=' bufferoverflowu.lib' if ($FLAVOR =~ /WIN64/);
165 } 287 }
288 $ex.=" $zlib_lib" if $zlib_opt == 1 && $target =~ /O_CRYPTO/;
289 $ret.="\t\$(LINK) \$(MLFLAGS) $efile$target $name @<<\n \$(SHLIB_EX_OBJ) $objs $ex\n<<\n";
290 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;2\n\n";
166 } 291 }
167 $ret.="\n"; 292 $ret.="\n";
168 return($ret); 293 return($ret);
@@ -170,51 +295,16 @@ sub do_lib_rule
170 295
171sub do_link_rule 296sub do_link_rule
172 { 297 {
173 local($target,$files,$dep_libs,$libs,$standalone)=@_;
174 local($ret,$_);
175 $file =~ s/\//$o/g if $o ne '/';
176 $n=&bname($targer);
177 $ret.="$target: $files $dep_libs\n";
178 if ($standalone)
179 {
180 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n\t";
181 $ret.="\$(FIPSLIB_D)${o}_chkstk.o " if ($files =~ /O_FIPSCANISTER/);
182 $ret.="$files $libs\n<<\n";
183 }
184 elsif ($fips && !$shlib)
185 {
186 $ret.="\tSET FIPS_LINK=\$(LINK)\n";
187 $ret.="\tSET FIPS_CC=\$(CC)\n";
188 $ret.="\tSET FIPS_CC_ARGS=/Fo\$(OBJ_D)${o}fips_premain.obj \$(SHLIB_CFLAGS) -c\n";
189 $ret.="\tSET PREMAIN_DSO_EXE=\n";
190 $ret.="\tSET FIPS_TARGET=$target\n";
191 $ret.="\tSET FIPS_SHA1_EXE=\$(FIPS_SHA1_EXE)\n";
192 $ret.="\tSET FIPSLIB_D=\$(FIPSLIB_D)\n";
193 $ret.=" \$(FIPSLINK) \$(LFLAGS) $efile$target @<<\n";
194 $ret.=" \$(APP_EX_OBJ) $files \$(OBJ_D)${o}fips_premain.obj $libs\n<<\n";
195 }
196 else
197 {
198 $ret.=" \$(LINK) \$(LFLAGS) $efile$target @<<\n";
199 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
200 }
201 $ret.="\n";
202 return($ret);
203 }
204
205sub do_rlink_rule
206 {
207 local($target,$files,$dep_libs,$libs)=@_; 298 local($target,$files,$dep_libs,$libs)=@_;
208 local($ret,$_); 299 local($ret,$_);
209 300
210 $file =~ s/\//$o/g if $o ne '/'; 301 $file =~ s/\//$o/g if $o ne '/';
211 $n=&bname($targer); 302 $n=&bname($targer);
212 $ret.="$target: $files $dep_libs\n"; 303 $ret.="$target: $files $dep_libs\n";
213 $ret.=" \$(MKCANISTER) $target <<\n"; 304 $ret.="\t\$(LINK) \$(LFLAGS) $efile$target @<<\n";
214 $ret.="INPUT($files)\n<<\n"; 305 $ret.=" \$(APP_EX_OBJ) $files $libs\n<<\n";
215 $ret.="\n"; 306 $ret.="\tIF EXIST \$@.manifest mt -nologo -manifest \$@.manifest -outputresource:\$@;1\n\n";
216 return($ret); 307 return($ret);
217 } 308 }
218 309
219
2201; 3101;
diff --git a/src/lib/libcrypto/util/pl/linux.pl b/src/lib/libcrypto/util/pl/linux.pl
index df05c40526..d24f7b7291 100644
--- a/src/lib/libcrypto/util/pl/linux.pl
+++ b/src/lib/libcrypto/util/pl/linux.pl
@@ -39,7 +39,7 @@ if (!$no_asm)
39 $rmd160_asm_src='crypto/ripemd/asm/rm86unix.cpp'; 39 $rmd160_asm_src='crypto/ripemd/asm/rm86unix.cpp';
40 $sha1_asm_obj='$(OBJ_D)/sx86-elf.o'; 40 $sha1_asm_obj='$(OBJ_D)/sx86-elf.o';
41 $sha1_asm_src='crypto/sha/asm/sx86unix.cpp'; 41 $sha1_asm_src='crypto/sha/asm/sx86unix.cpp';
42 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM"; 42 $cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART_WORDS";
43 } 43 }
44 44
45$cflags.=" -DTERMIO -DL_ENDIAN -m486 -Wall"; 45$cflags.=" -DTERMIO -DL_ENDIAN -m486 -Wall";
@@ -72,18 +72,13 @@ sub do_shlib_rule
72 72
73sub do_link_rule 73sub do_link_rule
74 { 74 {
75 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; 75 local($target,$files,$dep_libs,$libs)=@_;
76 local($ret,$_); 76 local($ret,$_);
77 77
78 $file =~ s/\//$o/g if $o ne '/'; 78 $file =~ s/\//$o/g if $o ne '/';
79 $n=&bname($target); 79 $n=&bname($target);
80 $ret.="$target: $files $dep_libs\n"; 80 $ret.="$target: $files $dep_libs\n";
81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n"; 81 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
82 if (defined $sha1file)
83 {
84 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
85 }
86 $ret.="\n";
87 return($ret); 82 return($ret);
88 } 83 }
89 84
diff --git a/src/lib/libcrypto/util/pl/ultrix.pl b/src/lib/libcrypto/util/pl/ultrix.pl
index 447b854708..ea370c71f9 100644
--- a/src/lib/libcrypto/util/pl/ultrix.pl
+++ b/src/lib/libcrypto/util/pl/ultrix.pl
@@ -17,7 +17,7 @@ else
17 17
18$cflags.=" -std1 -DL_ENDIAN"; 18$cflags.=" -std1 -DL_ENDIAN";
19 19
20if (!$no_asm && !$fips) 20if (!$no_asm)
21 { 21 {
22 $bn_asm_obj='$(OBJ_D)/mips1.o'; 22 $bn_asm_obj='$(OBJ_D)/mips1.o';
23 $bn_asm_src='crypto/bn/asm/mips1.s'; 23 $bn_asm_src='crypto/bn/asm/mips1.s';
@@ -25,18 +25,13 @@ if (!$no_asm && !$fips)
25 25
26sub do_link_rule 26sub do_link_rule
27 { 27 {
28 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; 28 local($target,$files,$dep_libs,$libs)=@_;
29 local($ret,$_); 29 local($ret,$_);
30 30
31 $file =~ s/\//$o/g if $o ne '/'; 31 $file =~ s/\//$o/g if $o ne '/';
32 $n=&bname($target); 32 $n=&bname($target);
33 $ret.="$target: $files $dep_libs\n"; 33 $ret.="$target: $files $dep_libs\n";
34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n"; 34 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
35 if (defined $sha1file)
36 {
37 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
38 }
39 $ret.="\n";
40 return($ret); 35 return($ret);
41 } 36 }
42 37
diff --git a/src/lib/libcrypto/util/pl/unix.pl b/src/lib/libcrypto/util/pl/unix.pl
index bbd1798a2e..146611ad99 100644
--- a/src/lib/libcrypto/util/pl/unix.pl
+++ b/src/lib/libcrypto/util/pl/unix.pl
@@ -70,18 +70,13 @@ sub do_lib_rule
70 70
71sub do_link_rule 71sub do_link_rule
72 { 72 {
73 local($target,$files,$dep_libs,$libs,$sha1file,$openssl)=@_; 73 local($target,$files,$dep_libs,$libs)=@_;
74 local($ret,$_); 74 local($ret,$_);
75 75
76 $file =~ s/\//$o/g if $o ne '/'; 76 $file =~ s/\//$o/g if $o ne '/';
77 $n=&bname($target); 77 $n=&bname($target);
78 $ret.="$target: $files $dep_libs\n"; 78 $ret.="$target: $files $dep_libs\n";
79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n"; 79 $ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
80 if (defined $sha1file)
81 {
82 $ret.="\t$openssl sha1 -hmac etaonrishdlcupfm -binary $target > $sha1file";
83 }
84 $ret.="\n";
85 return($ret); 80 return($ret);
86 } 81 }
87 82
diff --git a/src/lib/libcrypto/util/ssleay.num b/src/lib/libcrypto/util/ssleay.num
index 46e38a131f..b3ac136a56 100644
--- a/src/lib/libcrypto/util/ssleay.num
+++ b/src/lib/libcrypto/util/ssleay.num
@@ -170,7 +170,7 @@ SSL_add_file_cert_subjs_to_stk 185 EXIST:VMS:FUNCTION:STDIO
170SSL_set_tmp_rsa_callback 186 EXIST::FUNCTION:RSA 170SSL_set_tmp_rsa_callback 186 EXIST::FUNCTION:RSA
171SSL_set_tmp_dh_callback 187 EXIST::FUNCTION:DH 171SSL_set_tmp_dh_callback 187 EXIST::FUNCTION:DH
172SSL_add_dir_cert_subjects_to_stack 188 EXIST:!VMS:FUNCTION:STDIO 172SSL_add_dir_cert_subjects_to_stack 188 EXIST:!VMS:FUNCTION:STDIO
173SSL_add_dir_cert_subjs_to_stk 188 NOEXIST::FUNCTION: 173SSL_add_dir_cert_subjs_to_stk 188 EXIST:VMS:FUNCTION:STDIO
174SSL_set_session_id_context 189 EXIST::FUNCTION: 174SSL_set_session_id_context 189 EXIST::FUNCTION:
175SSL_CTX_use_certificate_chain_file 222 EXIST:!VMS:FUNCTION:STDIO 175SSL_CTX_use_certificate_chain_file 222 EXIST:!VMS:FUNCTION:STDIO
176SSL_CTX_use_cert_chain_file 222 EXIST:VMS:FUNCTION:STDIO 176SSL_CTX_use_cert_chain_file 222 EXIST:VMS:FUNCTION:STDIO
@@ -215,3 +215,29 @@ SSL_CTX_set_generate_session_id 264 EXIST::FUNCTION:
215SSL_renegotiate_pending 265 EXIST::FUNCTION: 215SSL_renegotiate_pending 265 EXIST::FUNCTION:
216SSL_CTX_set_msg_callback 266 EXIST::FUNCTION: 216SSL_CTX_set_msg_callback 266 EXIST::FUNCTION:
217SSL_set_msg_callback 267 EXIST::FUNCTION: 217SSL_set_msg_callback 267 EXIST::FUNCTION:
218DTLSv1_client_method 268 EXIST::FUNCTION:
219SSL_CTX_set_tmp_ecdh_callback 269 EXIST::FUNCTION:ECDH
220SSL_set_tmp_ecdh_callback 270 EXIST::FUNCTION:ECDH
221SSL_COMP_get_name 271 EXIST::FUNCTION:COMP
222SSL_get_current_compression 272 EXIST::FUNCTION:COMP
223DTLSv1_method 273 EXIST::FUNCTION:
224SSL_get_current_expansion 274 EXIST::FUNCTION:COMP
225DTLSv1_server_method 275 EXIST::FUNCTION:
226SSL_COMP_get_compression_methods 276 EXIST:!VMS:FUNCTION:COMP
227SSL_COMP_get_compress_methods 276 EXIST:VMS:FUNCTION:COMP
228SSL_SESSION_get_id 277 EXIST::FUNCTION:
229SSL_CTX_sess_set_new_cb 278 EXIST::FUNCTION:
230SSL_CTX_sess_get_get_cb 279 EXIST::FUNCTION:
231SSL_CTX_sess_set_get_cb 280 EXIST::FUNCTION:
232SSL_CTX_set_cookie_verify_cb 281 EXIST::FUNCTION:
233SSL_CTX_get_info_callback 282 EXIST::FUNCTION:
234SSL_CTX_set_cookie_generate_cb 283 EXIST::FUNCTION:
235SSL_CTX_set_client_cert_cb 284 EXIST::FUNCTION:
236SSL_CTX_sess_set_remove_cb 285 EXIST::FUNCTION:
237SSL_CTX_set_info_callback 286 EXIST::FUNCTION:
238SSL_CTX_sess_get_new_cb 287 EXIST::FUNCTION:
239SSL_CTX_get_client_cert_cb 288 EXIST::FUNCTION:
240SSL_CTX_sess_get_remove_cb 289 EXIST::FUNCTION:
241SSL_set_SSL_CTX 290 EXIST::FUNCTION:
242SSL_get_servername 291 EXIST::FUNCTION:TLSEXT
243SSL_get_servername_type 292 EXIST::FUNCTION:TLSEXT