| OLD | NEW | 
|---|
| 1 #!/usr/local/bin/perl -w | 1 #!/usr/local/bin/perl -w | 
| 2 # | 2 # | 
| 3 # generate a .def file | 3 # generate a .def file | 
| 4 # | 4 # | 
| 5 # It does this by parsing the header files and looking for the | 5 # It does this by parsing the header files and looking for the | 
| 6 # prototyped functions: it then prunes the output. | 6 # prototyped functions: it then prunes the output. | 
| 7 # | 7 # | 
| 8 # Intermediary files are created, call libeay.num and ssleay.num,... | 8 # Intermediary files are created, call libeay.num and ssleay.num,... | 
| 9 # Previously, they had the following format: | 9 # Previously, they had the following format: | 
| 10 # | 10 # | 
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 71 my $VMSVAX=0; | 71 my $VMSVAX=0; | 
| 72 my $VMSNonVAX=0; | 72 my $VMSNonVAX=0; | 
| 73 my $VMS=0; | 73 my $VMS=0; | 
| 74 my $W32=0; | 74 my $W32=0; | 
| 75 my $W16=0; | 75 my $W16=0; | 
| 76 my $NT=0; | 76 my $NT=0; | 
| 77 my $OS2=0; | 77 my $OS2=0; | 
| 78 # Set this to make typesafe STACK definitions appear in DEF | 78 # Set this to make typesafe STACK definitions appear in DEF | 
| 79 my $safe_stack_def = 0; | 79 my $safe_stack_def = 0; | 
| 80 | 80 | 
| 81 my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT", "NETWARE", | 81 my @known_platforms = ( "__FreeBSD__", "PERL5", "NeXT", | 
| 82 »       »       »       "EXPORT_VAR_AS_FUNCTION", "ZLIB", "OPENSSL_FIPS"); | 82 »       »       »       "EXPORT_VAR_AS_FUNCTION", "ZLIB" ); | 
| 83 my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); | 83 my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT", "OS2" ); | 
| 84 my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", | 84 my @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", "ECDH", "ECDSA", "HMA
      C", "AES", "CAMELLIA", "SEED", | 87 »       »       »        "MDC2", "WHIRLPOOL", "RSA", "DSA", "DH", "EC", "ECDH", 
      "ECDSA", | 
|  | 88 »       »       »        "HMAC", "AES", "CAMELLIA", "SEED", "GOST", | 
| 88                          # Envelope "algorithms" | 89                          # Envelope "algorithms" | 
| 89                          "EVP", "X509", "ASN1_TYPEDEFS", | 90                          "EVP", "X509", "ASN1_TYPEDEFS", | 
| 90                          # Helper "algorithms" | 91                          # Helper "algorithms" | 
| 91                          "BIO", "COMP", "BUFFER", "LHASH", "STACK", "ERR", | 92                          "BIO", "COMP", "BUFFER", "LHASH", "STACK", "ERR", | 
| 92                          "LOCKING", | 93                          "LOCKING", | 
| 93                          # External "algorithms" | 94                          # External "algorithms" | 
| 94                          "FP_API", "STDIO", "SOCK", "KRB5", "DGRAM", | 95                          "FP_API", "STDIO", "SOCK", "KRB5", "DGRAM", | 
| 95                          # Engines | 96                          # Engines | 
| 96                          "STATIC_ENGINE", "ENGINE", "HW", "GMP", | 97                          "STATIC_ENGINE", "ENGINE", "HW", "GMP", | 
| 97 »       »       »        # RFC3779 support | 98 »       »       »        # RFC3779 | 
| 98                          "RFC3779", | 99                          "RFC3779", | 
| 99 »       »       »        # TLS extension support | 100 »       »       »        # TLS | 
| 100 »       »       »        "TLSEXT", | 101 »       »       »        "TLSEXT", "PSK", | 
| 101                          # CMS | 102                          # CMS | 
| 102                          "CMS", | 103                          "CMS", | 
| 103                          # CryptoAPI Engine | 104                          # CryptoAPI Engine | 
| 104                          "CAPIENG", | 105                          "CAPIENG", | 
|  | 106                          # SSL v2 | 
|  | 107                          "SSL2", | 
| 105                          # JPAKE | 108                          # JPAKE | 
| 106                          "JPAKE", | 109                          "JPAKE", | 
| 107                          # Deprecated functions | 110                          # Deprecated functions | 
| 108                          "DEPRECATED" ); | 111                          "DEPRECATED" ); | 
| 109 | 112 | 
| 110 my $options=""; | 113 my $options=""; | 
| 111 open(IN,"<Makefile") || die "unable to open Makefile!\n"; | 114 open(IN,"<Makefile") || die "unable to open Makefile!\n"; | 
| 112 while(<IN>) { | 115 while(<IN>) { | 
| 113     $options=$1 if (/^OPTIONS=(.*)$/); | 116     $options=$1 if (/^OPTIONS=(.*)$/); | 
| 114 } | 117 } | 
| 115 close(IN); | 118 close(IN); | 
| 116 | 119 | 
| 117 # The following ciphers may be excluded (by Configure). This means functions | 120 # The following ciphers may be excluded (by Configure). This means functions | 
| 118 # defined with ifndef(NO_XXX) are not included in the .def file, and everything | 121 # defined with ifndef(NO_XXX) are not included in the .def file, and everything | 
| 119 # in directory xxx is ignored. | 122 # in directory xxx is ignored. | 
| 120 my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf; | 123 my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf; | 
| 121 my $no_cast; | 124 my $no_cast; my $no_whirlpool; my $no_camellia; my $no_seed; | 
| 122 my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2; | 125 my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2; | 
| 123 my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5; | 126 my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5; | 
| 124 my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw; my $no_camellia; | 127 my $no_ec; my $no_ecdsa; my $no_ecdh; my $no_engine; my $no_hw; | 
| 125 my $no_seed; | 128 my $no_fp_api; my $no_static_engine=1; my $no_gmp; my $no_deprecated; | 
| 126 my $no_fp_api; my $no_static_engine; my $no_gmp; my $no_deprecated; | 129 my $no_rfc3779; my $no_psk; my $no_tlsext; my $no_cms; my $no_capieng; | 
| 127 my $no_rfc3779; my $no_tlsext; my $no_cms; my $no_capieng; my $no_jpake; | 130 my $no_jpake; my $no_ssl2; | 
| 128 my $fips; | 131 | 
|  | 132 my $zlib; | 
| 129 | 133 | 
| 130 | 134 | 
| 131 foreach (@ARGV, split(/ /, $options)) | 135 foreach (@ARGV, split(/ /, $options)) | 
| 132         { | 136         { | 
| 133         $debug=1 if $_ eq "debug"; | 137         $debug=1 if $_ eq "debug"; | 
| 134         $W32=1 if $_ eq "32"; | 138         $W32=1 if $_ eq "32"; | 
| 135         $W16=1 if $_ eq "16"; | 139         $W16=1 if $_ eq "16"; | 
| 136         if($_ eq "NT") { | 140         if($_ eq "NT") { | 
| 137                 $W32 = 1; | 141                 $W32 = 1; | 
| 138                 $NT = 1; | 142                 $NT = 1; | 
| 139         } | 143         } | 
| 140         if ($_ eq "VMS-VAX") { | 144         if ($_ eq "VMS-VAX") { | 
| 141                 $VMS=1; | 145                 $VMS=1; | 
| 142                 $VMSVAX=1; | 146                 $VMSVAX=1; | 
| 143         } | 147         } | 
| 144         if ($_ eq "VMS-NonVAX") { | 148         if ($_ eq "VMS-NonVAX") { | 
| 145                 $VMS=1; | 149                 $VMS=1; | 
| 146                 $VMSNonVAX=1; | 150                 $VMSNonVAX=1; | 
| 147         } | 151         } | 
| 148         $VMS=1 if $_ eq "VMS"; | 152         $VMS=1 if $_ eq "VMS"; | 
| 149         $OS2=1 if $_ eq "OS2"; | 153         $OS2=1 if $_ eq "OS2"; | 
| 150 »       $fips=1 if /^fips/; | 154 »       if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic" | 
| 151 | 155 »       »       »        || $_ eq "enable-zlib-dynamic") { | 
| 152 »       if ($_ eq "zlib" || $_ eq "zlib-dynamic" | 156 »       »       $zlib = 1; | 
| 153  »      »       »        || $_ eq "enable-zlib-dynamic") { |  | 
| 154  »      »       $zlib = 1; |  | 
| 155         } | 157         } | 
| 156 | 158 | 
| 157         $do_ssl=1 if $_ eq "ssleay"; | 159         $do_ssl=1 if $_ eq "ssleay"; | 
| 158         if ($_ eq "ssl") { | 160         if ($_ eq "ssl") { | 
| 159                 $do_ssl=1; | 161                 $do_ssl=1; | 
| 160                 $libname=$_ | 162                 $libname=$_ | 
| 161         } | 163         } | 
| 162         $do_crypto=1 if $_ eq "libeay"; | 164         $do_crypto=1 if $_ eq "libeay"; | 
| 163         if ($_ eq "crypto") { | 165         if ($_ eq "crypto") { | 
| 164                 $do_crypto=1; | 166                 $do_crypto=1; | 
| 165                 $libname=$_; | 167                 $libname=$_; | 
| 166         } | 168         } | 
| 167         $no_static_engine=1 if $_ eq "no-static-engine"; | 169         $no_static_engine=1 if $_ eq "no-static-engine"; | 
| 168         $no_static_engine=0 if $_ eq "enable-static-engine"; | 170         $no_static_engine=0 if $_ eq "enable-static-engine"; | 
| 169         $do_update=1 if $_ eq "update"; | 171         $do_update=1 if $_ eq "update"; | 
| 170         $do_rewrite=1 if $_ eq "rewrite"; | 172         $do_rewrite=1 if $_ eq "rewrite"; | 
| 171         $do_ctest=1 if $_ eq "ctest"; | 173         $do_ctest=1 if $_ eq "ctest"; | 
| 172         $do_ctestall=1 if $_ eq "ctestall"; | 174         $do_ctestall=1 if $_ eq "ctestall"; | 
| 173         $do_checkexist=1 if $_ eq "exist"; | 175         $do_checkexist=1 if $_ eq "exist"; | 
| 174         #$safe_stack_def=1 if $_ eq "-DDEBUG_SAFESTACK"; | 176         #$safe_stack_def=1 if $_ eq "-DDEBUG_SAFESTACK"; | 
| 175 | 177 | 
| 176         if    (/^no-rc2$/)      { $no_rc2=1; } | 178         if    (/^no-rc2$/)      { $no_rc2=1; } | 
| 177         elsif (/^no-rc4$/)      { $no_rc4=1; } | 179         elsif (/^no-rc4$/)      { $no_rc4=1; } | 
| 178         elsif (/^no-rc5$/)      { $no_rc5=1; } | 180         elsif (/^no-rc5$/)      { $no_rc5=1; } | 
| 179         elsif (/^no-idea$/)     { $no_idea=1; } | 181         elsif (/^no-idea$/)     { $no_idea=1; } | 
| 180         elsif (/^no-des$/)      { $no_des=1; $no_mdc2=1; } | 182         elsif (/^no-des$/)      { $no_des=1; $no_mdc2=1; } | 
| 181         elsif (/^no-bf$/)       { $no_bf=1; } | 183         elsif (/^no-bf$/)       { $no_bf=1; } | 
| 182         elsif (/^no-cast$/)     { $no_cast=1; } | 184         elsif (/^no-cast$/)     { $no_cast=1; } | 
|  | 185         elsif (/^no-whirlpool$/)     { $no_whirlpool=1; } | 
| 183         elsif (/^no-md2$/)      { $no_md2=1; } | 186         elsif (/^no-md2$/)      { $no_md2=1; } | 
| 184         elsif (/^no-md4$/)      { $no_md4=1; } | 187         elsif (/^no-md4$/)      { $no_md4=1; } | 
| 185         elsif (/^no-md5$/)      { $no_md5=1; } | 188         elsif (/^no-md5$/)      { $no_md5=1; } | 
| 186         elsif (/^no-sha$/)      { $no_sha=1; } | 189         elsif (/^no-sha$/)      { $no_sha=1; } | 
| 187         elsif (/^no-ripemd$/)   { $no_ripemd=1; } | 190         elsif (/^no-ripemd$/)   { $no_ripemd=1; } | 
| 188         elsif (/^no-mdc2$/)     { $no_mdc2=1; } | 191         elsif (/^no-mdc2$/)     { $no_mdc2=1; } | 
| 189         elsif (/^no-rsa$/)      { $no_rsa=1; } | 192         elsif (/^no-rsa$/)      { $no_rsa=1; } | 
| 190         elsif (/^no-dsa$/)      { $no_dsa=1; } | 193         elsif (/^no-dsa$/)      { $no_dsa=1; } | 
| 191         elsif (/^no-dh$/)       { $no_dh=1; } | 194         elsif (/^no-dh$/)       { $no_dh=1; } | 
| 192         elsif (/^no-ec$/)       { $no_ec=1; } | 195         elsif (/^no-ec$/)       { $no_ec=1; } | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 205         #elsif (/^no-locking$/) { $no_locking=1; } | 208         #elsif (/^no-locking$/) { $no_locking=1; } | 
| 206         elsif (/^no-comp$/)     { $no_comp=1; } | 209         elsif (/^no-comp$/)     { $no_comp=1; } | 
| 207         elsif (/^no-dso$/)      { $no_dso=1; } | 210         elsif (/^no-dso$/)      { $no_dso=1; } | 
| 208         elsif (/^no-krb5$/)     { $no_krb5=1; } | 211         elsif (/^no-krb5$/)     { $no_krb5=1; } | 
| 209         elsif (/^no-engine$/)   { $no_engine=1; } | 212         elsif (/^no-engine$/)   { $no_engine=1; } | 
| 210         elsif (/^no-hw$/)       { $no_hw=1; } | 213         elsif (/^no-hw$/)       { $no_hw=1; } | 
| 211         elsif (/^no-gmp$/)      { $no_gmp=1; } | 214         elsif (/^no-gmp$/)      { $no_gmp=1; } | 
| 212         elsif (/^no-rfc3779$/)  { $no_rfc3779=1; } | 215         elsif (/^no-rfc3779$/)  { $no_rfc3779=1; } | 
| 213         elsif (/^no-tlsext$/)   { $no_tlsext=1; } | 216         elsif (/^no-tlsext$/)   { $no_tlsext=1; } | 
| 214         elsif (/^no-cms$/)      { $no_cms=1; } | 217         elsif (/^no-cms$/)      { $no_cms=1; } | 
|  | 218         elsif (/^no-ssl2$/)     { $no_ssl2=1; } | 
| 215         elsif (/^no-capieng$/)  { $no_capieng=1; } | 219         elsif (/^no-capieng$/)  { $no_capieng=1; } | 
| 216         elsif (/^no-jpake$/)    { $no_jpake=1; } | 220         elsif (/^no-jpake$/)    { $no_jpake=1; } | 
| 217         } | 221         } | 
| 218 | 222 | 
| 219 | 223 | 
| 220 if (!$libname) { | 224 if (!$libname) { | 
| 221         if ($do_ssl) { | 225         if ($do_ssl) { | 
| 222                 $libname="SSLEAY"; | 226                 $libname="SSLEAY"; | 
| 223         } | 227         } | 
| 224         if ($do_crypto) { | 228         if ($do_crypto) { | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 246 $max_ssl = $max_num; | 250 $max_ssl = $max_num; | 
| 247 %crypto_list=&load_numbers($crypto_num); | 251 %crypto_list=&load_numbers($crypto_num); | 
| 248 $max_crypto = $max_num; | 252 $max_crypto = $max_num; | 
| 249 | 253 | 
| 250 my $ssl="ssl/ssl.h"; | 254 my $ssl="ssl/ssl.h"; | 
| 251 $ssl.=" ssl/kssl.h"; | 255 $ssl.=" ssl/kssl.h"; | 
| 252 $ssl.=" ssl/tls1.h"; | 256 $ssl.=" ssl/tls1.h"; | 
| 253 | 257 | 
| 254 my $crypto ="crypto/crypto.h"; | 258 my $crypto ="crypto/crypto.h"; | 
| 255 $crypto.=" crypto/o_dir.h"; | 259 $crypto.=" crypto/o_dir.h"; | 
|  | 260 $crypto.=" crypto/o_str.h"; | 
|  | 261 $crypto.=" crypto/o_time.h"; | 
| 256 $crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des; | 262 $crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des; | 
| 257 $crypto.=" crypto/idea/idea.h" ; # unless $no_idea; | 263 $crypto.=" crypto/idea/idea.h" ; # unless $no_idea; | 
| 258 $crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4; | 264 $crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4; | 
| 259 $crypto.=" crypto/rc5/rc5.h" ; # unless $no_rc5; | 265 $crypto.=" crypto/rc5/rc5.h" ; # unless $no_rc5; | 
| 260 $crypto.=" crypto/rc2/rc2.h" ; # unless $no_rc2; | 266 $crypto.=" crypto/rc2/rc2.h" ; # unless $no_rc2; | 
| 261 $crypto.=" crypto/bf/blowfish.h" ; # unless $no_bf; | 267 $crypto.=" crypto/bf/blowfish.h" ; # unless $no_bf; | 
| 262 $crypto.=" crypto/cast/cast.h" ; # unless $no_cast; | 268 $crypto.=" crypto/cast/cast.h" ; # unless $no_cast; | 
|  | 269 $crypto.=" crypto/whrlpool/whrlpool.h" ; | 
| 263 $crypto.=" crypto/md2/md2.h" ; # unless $no_md2; | 270 $crypto.=" crypto/md2/md2.h" ; # unless $no_md2; | 
| 264 $crypto.=" crypto/md4/md4.h" ; # unless $no_md4; | 271 $crypto.=" crypto/md4/md4.h" ; # unless $no_md4; | 
| 265 $crypto.=" crypto/md5/md5.h" ; # unless $no_md5; | 272 $crypto.=" crypto/md5/md5.h" ; # unless $no_md5; | 
| 266 $crypto.=" crypto/mdc2/mdc2.h" ; # unless $no_mdc2; | 273 $crypto.=" crypto/mdc2/mdc2.h" ; # unless $no_mdc2; | 
| 267 $crypto.=" crypto/sha/sha.h" ; # unless $no_sha; | 274 $crypto.=" crypto/sha/sha.h" ; # unless $no_sha; | 
| 268 $crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd; | 275 $crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd; | 
| 269 $crypto.=" crypto/aes/aes.h" ; # unless $no_aes; | 276 $crypto.=" crypto/aes/aes.h" ; # unless $no_aes; | 
| 270 $crypto.=" crypto/camellia/camellia.h" ; # unless $no_camellia; | 277 $crypto.=" crypto/camellia/camellia.h" ; # unless $no_camellia; | 
| 271 $crypto.=" crypto/seed/seed.h"; # unless $no_seed; | 278 $crypto.=" crypto/seed/seed.h"; # unless $no_seed; | 
| 272 | 279 | 
| (...skipping 21 matching lines...) Expand all  Loading... | 
| 294 #$crypto.=" crypto/meth/meth.h"; | 301 #$crypto.=" crypto/meth/meth.h"; | 
| 295 $crypto.=" crypto/asn1/asn1.h"; | 302 $crypto.=" crypto/asn1/asn1.h"; | 
| 296 $crypto.=" crypto/asn1/asn1t.h"; | 303 $crypto.=" crypto/asn1/asn1t.h"; | 
| 297 $crypto.=" crypto/asn1/asn1_mac.h"; | 304 $crypto.=" crypto/asn1/asn1_mac.h"; | 
| 298 $crypto.=" crypto/err/err.h" ; # unless $no_err; | 305 $crypto.=" crypto/err/err.h" ; # unless $no_err; | 
| 299 $crypto.=" crypto/pkcs7/pkcs7.h"; | 306 $crypto.=" crypto/pkcs7/pkcs7.h"; | 
| 300 $crypto.=" crypto/pkcs12/pkcs12.h"; | 307 $crypto.=" crypto/pkcs12/pkcs12.h"; | 
| 301 $crypto.=" crypto/x509/x509.h"; | 308 $crypto.=" crypto/x509/x509.h"; | 
| 302 $crypto.=" crypto/x509/x509_vfy.h"; | 309 $crypto.=" crypto/x509/x509_vfy.h"; | 
| 303 $crypto.=" crypto/x509v3/x509v3.h"; | 310 $crypto.=" crypto/x509v3/x509v3.h"; | 
|  | 311 $crypto.=" crypto/ts/ts.h"; | 
| 304 $crypto.=" crypto/rand/rand.h"; | 312 $crypto.=" crypto/rand/rand.h"; | 
| 305 $crypto.=" crypto/comp/comp.h" ; # unless $no_comp; | 313 $crypto.=" crypto/comp/comp.h" ; # unless $no_comp; | 
| 306 $crypto.=" crypto/ocsp/ocsp.h"; | 314 $crypto.=" crypto/ocsp/ocsp.h"; | 
| 307 $crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; | 315 $crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; | 
| 308 $crypto.=" crypto/krb5/krb5_asn.h"; | 316 $crypto.=" crypto/krb5/krb5_asn.h"; | 
| 309 $crypto.=" crypto/tmdiff.h"; | 317 #$crypto.=" crypto/store/store.h"; | 
| 310 $crypto.=" crypto/store/store.h"; |  | 
| 311 $crypto.=" crypto/pqueue/pqueue.h"; | 318 $crypto.=" crypto/pqueue/pqueue.h"; | 
| 312 $crypto.=" crypto/cms/cms.h"; | 319 $crypto.=" crypto/cms/cms.h"; | 
| 313 $crypto.=" crypto/jpake/jpake.h"; | 320 $crypto.=" crypto/jpake/jpake.h"; | 
| 314 $crypto.=" fips/fips.h fips/rand/fips_rand.h"; | 321 $crypto.=" crypto/modes/modes.h"; | 
| 315 | 322 | 
| 316 my $symhacks="crypto/symhacks.h"; | 323 my $symhacks="crypto/symhacks.h"; | 
| 317 | 324 | 
| 318 my @ssl_symbols = &do_defs("SSLEAY", $ssl, $symhacks); | 325 my @ssl_symbols = &do_defs("SSLEAY", $ssl, $symhacks); | 
| 319 my @crypto_symbols = &do_defs("LIBEAY", $crypto, $symhacks); | 326 my @crypto_symbols = &do_defs("LIBEAY", $crypto, $symhacks); | 
| 320 | 327 | 
| 321 if ($do_update) { | 328 if ($do_update) { | 
| 322 | 329 | 
| 323 if ($do_ssl == 1) { | 330 if ($do_ssl == 1) { | 
| 324 | 331 | 
| (...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 878                         # Reduce argument lists to empty () | 885                         # Reduce argument lists to empty () | 
| 879                         # fold round brackets recursively: (t(*v)(t),t) -> (t{}{
      },t) -> {} | 886                         # fold round brackets recursively: (t(*v)(t),t) -> (t{}{
      },t) -> {} | 
| 880                         while(/\(.*\)/s) { | 887                         while(/\(.*\)/s) { | 
| 881                                 s/\([^\(\)]+\)/\{\}/gs; | 888                                 s/\([^\(\)]+\)/\{\}/gs; | 
| 882                                 s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs;    #(*f{}) 
      -> f | 889                                 s/\(\s*\*\s*(\w+)\s*\{\}\s*\)/$1/gs;    #(*f{}) 
      -> f | 
| 883                         } | 890                         } | 
| 884                         # pretend as we didn't use curly braces: {} -> () | 891                         # pretend as we didn't use curly braces: {} -> () | 
| 885                         s/\{\}/\(\)/gs; | 892                         s/\{\}/\(\)/gs; | 
| 886 | 893 | 
| 887                         s/STACK_OF\(\)/void/gs; | 894                         s/STACK_OF\(\)/void/gs; | 
|  | 895                         s/LHASH_OF\(\)/void/gs; | 
| 888 | 896 | 
| 889                         print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug; | 897                         print STDERR "DEBUG: \$_ = \"$_\"\n" if $debug; | 
| 890                         if (/^\#INFO:([^:]*):(.*)$/) { | 898                         if (/^\#INFO:([^:]*):(.*)$/) { | 
| 891                                 $plats = $1; | 899                                 $plats = $1; | 
| 892                                 $algs = $2; | 900                                 $algs = $2; | 
| 893                                 print STDERR "DEBUG: found info on platforms ($p
      lats) and algorithms ($algs)\n" if $debug; | 901                                 print STDERR "DEBUG: found info on platforms ($p
      lats) and algorithms ($algs)\n" if $debug; | 
| 894                                 next; | 902                                 next; | 
| 895                         } elsif (/^\s*OPENSSL_EXTERN\s.*?(\w+(\{[0-9]+\})?)(\[[0
      -9]*\])*\s*$/) { | 903                         } elsif (/^\s*OPENSSL_EXTERN\s.*?(\w+(\{[0-9]+\})?)(\[[0
      -9]*\])*\s*$/) { | 
| 896                                 $s = $1; | 904                                 $s = $1; | 
| 897                                 $k = "VARIABLE"; | 905                                 $k = "VARIABLE"; | 
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 954 | 962 | 
| 955         # Prune the returned symbols | 963         # Prune the returned symbols | 
| 956 | 964 | 
| 957         delete $syms{"bn_dump1"}; | 965         delete $syms{"bn_dump1"}; | 
| 958         $platform{"BIO_s_log"} .= ",!WIN32,!WIN16,!macintosh"; | 966         $platform{"BIO_s_log"} .= ",!WIN32,!WIN16,!macintosh"; | 
| 959 | 967 | 
| 960         $platform{"PEM_read_NS_CERT_SEQ"} = "VMS"; | 968         $platform{"PEM_read_NS_CERT_SEQ"} = "VMS"; | 
| 961         $platform{"PEM_write_NS_CERT_SEQ"} = "VMS"; | 969         $platform{"PEM_write_NS_CERT_SEQ"} = "VMS"; | 
| 962         $platform{"PEM_read_P8_PRIV_KEY_INFO"} = "VMS"; | 970         $platform{"PEM_read_P8_PRIV_KEY_INFO"} = "VMS"; | 
| 963         $platform{"PEM_write_P8_PRIV_KEY_INFO"} = "VMS"; | 971         $platform{"PEM_write_P8_PRIV_KEY_INFO"} = "VMS"; | 
| 964 |  | 
| 965         $platform{"EVP_sha384"} = "!VMSVAX"; | 972         $platform{"EVP_sha384"} = "!VMSVAX"; | 
| 966         $platform{"EVP_sha512"} = "!VMSVAX"; | 973         $platform{"EVP_sha512"} = "!VMSVAX"; | 
| 967         $platform{"SHA384_Init"} = "!VMSVAX"; | 974         $platform{"SHA384_Init"} = "!VMSVAX"; | 
| 968         $platform{"SHA384_Transform"} = "!VMSVAX"; | 975         $platform{"SHA384_Transform"} = "!VMSVAX"; | 
| 969         $platform{"SHA384_Update"} = "!VMSVAX"; | 976         $platform{"SHA384_Update"} = "!VMSVAX"; | 
| 970         $platform{"SHA384_Final"} = "!VMSVAX"; | 977         $platform{"SHA384_Final"} = "!VMSVAX"; | 
| 971         $platform{"SHA384"} = "!VMSVAX"; | 978         $platform{"SHA384"} = "!VMSVAX"; | 
| 972         $platform{"SHA512_Init"} = "!VMSVAX"; | 979         $platform{"SHA512_Init"} = "!VMSVAX"; | 
| 973         $platform{"SHA512_Transform"} = "!VMSVAX"; | 980         $platform{"SHA512_Transform"} = "!VMSVAX"; | 
| 974         $platform{"SHA512_Update"} = "!VMSVAX"; | 981         $platform{"SHA512_Update"} = "!VMSVAX"; | 
| 975         $platform{"SHA512_Final"} = "!VMSVAX"; | 982         $platform{"SHA512_Final"} = "!VMSVAX"; | 
| 976         $platform{"SHA512"} = "!VMSVAX"; | 983         $platform{"SHA512"} = "!VMSVAX"; | 
|  | 984         $platform{"WHIRLPOOL_Init"} = "!VMSVAX"; | 
|  | 985         $platform{"WHIRLPOOL"} = "!VMSVAX"; | 
|  | 986         $platform{"WHIRLPOOL_BitUpdate"} = "!VMSVAX"; | 
|  | 987         $platform{"EVP_whirlpool"} = "!VMSVAX"; | 
|  | 988         $platform{"WHIRLPOOL_Final"} = "!VMSVAX"; | 
|  | 989         $platform{"WHIRLPOOL_Update"} = "!VMSVAX"; | 
| 977 | 990 | 
| 978         $platform{"pqueue_print"} = "!VMSVAX"; |  | 
| 979 | 991 | 
| 980         # Info we know about | 992         # Info we know about | 
| 981 | 993 | 
| 982         push @ret, map { $_."\\".&info_string($_,"EXIST", | 994         push @ret, map { $_."\\".&info_string($_,"EXIST", | 
| 983                                               $platform{$_}, | 995                                               $platform{$_}, | 
| 984                                               $kind{$_}, | 996                                               $kind{$_}, | 
| 985                                               $algorithm{$_}) } keys %syms; | 997                                               $algorithm{$_}) } keys %syms; | 
| 986 | 998 | 
| 987         if (keys %unknown_algorithms) { | 999         if (keys %unknown_algorithms) { | 
| 988                 print STDERR "WARNING: mkdef.pl doesn't know the following algor
      ithms:\n"; | 1000                 print STDERR "WARNING: mkdef.pl doesn't know the following algor
      ithms:\n"; | 
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1093         my (@keywords) = split /,/,$keywords_txt; | 1105         my (@keywords) = split /,/,$keywords_txt; | 
| 1094         my ($falsesum, $truesum) = (0, 1); | 1106         my ($falsesum, $truesum) = (0, 1); | 
| 1095 | 1107 | 
| 1096         # Param: one keyword | 1108         # Param: one keyword | 
| 1097         sub recognise | 1109         sub recognise | 
| 1098         { | 1110         { | 
| 1099                 my ($keyword,$platforms) = @_; | 1111                 my ($keyword,$platforms) = @_; | 
| 1100 | 1112 | 
| 1101                 if ($platforms) { | 1113                 if ($platforms) { | 
| 1102                         # platforms | 1114                         # platforms | 
| 1103                         if ($keyword eq "VMS" && $VMS) { return 1; } |  | 
| 1104                         if ($keyword eq "VMSVAX" && $VMSVAX) { return 1; } | 1115                         if ($keyword eq "VMSVAX" && $VMSVAX) { return 1; } | 
| 1105                         if ($keyword eq "VMSNonVAX" && $VMSNonVAX) { return 1; } | 1116                         if ($keyword eq "VMSNonVAX" && $VMSNonVAX) { return 1; } | 
|  | 1117                         if ($keyword eq "VMS" && $VMS) { return 1; } | 
| 1106                         if ($keyword eq "WIN32" && $W32) { return 1; } | 1118                         if ($keyword eq "WIN32" && $W32) { return 1; } | 
| 1107                         if ($keyword eq "WIN16" && $W16) { return 1; } | 1119                         if ($keyword eq "WIN16" && $W16) { return 1; } | 
| 1108                         if ($keyword eq "WINNT" && $NT) { return 1; } | 1120                         if ($keyword eq "WINNT" && $NT) { return 1; } | 
| 1109                         if ($keyword eq "OS2" && $OS2) { return 1; } | 1121                         if ($keyword eq "OS2" && $OS2) { return 1; } | 
| 1110                         # Special platforms: | 1122                         # Special platforms: | 
| 1111                         # EXPORT_VAR_AS_FUNCTION means that global variables | 1123                         # EXPORT_VAR_AS_FUNCTION means that global variables | 
| 1112                         # will be represented as functions.  This currently | 1124                         # will be represented as functions.  This currently | 
| 1113                         # only happens on VMS-VAX. | 1125                         # only happens on VMS-VAX. | 
| 1114                         if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || 
      $W32 || $W16)) { | 1126                         if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || 
      $W32 || $W16)) { | 
| 1115                                 return 1; | 1127                                 return 1; | 
| 1116                         } | 1128                         } | 
| 1117                         if ($keyword eq "OPENSSL_FIPS" && $fips) { |  | 
| 1118                                 return 1; |  | 
| 1119                         } |  | 
| 1120                         if ($keyword eq "ZLIB" && $zlib) { return 1; } | 1129                         if ($keyword eq "ZLIB" && $zlib) { return 1; } | 
| 1121                         return 0; | 1130                         return 0; | 
| 1122                 } else { | 1131                 } else { | 
| 1123                         # algorithms | 1132                         # algorithms | 
| 1124                         if ($keyword eq "RC2" && $no_rc2) { return 0; } | 1133                         if ($keyword eq "RC2" && $no_rc2) { return 0; } | 
| 1125                         if ($keyword eq "RC4" && $no_rc4) { return 0; } | 1134                         if ($keyword eq "RC4" && $no_rc4) { return 0; } | 
| 1126                         if ($keyword eq "RC5" && $no_rc5) { return 0; } | 1135                         if ($keyword eq "RC5" && $no_rc5) { return 0; } | 
| 1127                         if ($keyword eq "IDEA" && $no_idea) { return 0; } | 1136                         if ($keyword eq "IDEA" && $no_idea) { return 0; } | 
| 1128                         if ($keyword eq "DES" && $no_des) { return 0; } | 1137                         if ($keyword eq "DES" && $no_des) { return 0; } | 
| 1129                         if ($keyword eq "BF" && $no_bf) { return 0; } | 1138                         if ($keyword eq "BF" && $no_bf) { return 0; } | 
| 1130                         if ($keyword eq "CAST" && $no_cast) { return 0; } | 1139                         if ($keyword eq "CAST" && $no_cast) { return 0; } | 
| 1131                         if ($keyword eq "MD2" && $no_md2) { return 0; } | 1140                         if ($keyword eq "MD2" && $no_md2) { return 0; } | 
| 1132                         if ($keyword eq "MD4" && $no_md4) { return 0; } | 1141                         if ($keyword eq "MD4" && $no_md4) { return 0; } | 
| 1133                         if ($keyword eq "MD5" && $no_md5) { return 0; } | 1142                         if ($keyword eq "MD5" && $no_md5) { return 0; } | 
| 1134                         if ($keyword eq "SHA" && $no_sha) { return 0; } | 1143                         if ($keyword eq "SHA" && $no_sha) { return 0; } | 
| 1135                         if ($keyword eq "RIPEMD" && $no_ripemd) { return 0; } | 1144                         if ($keyword eq "RIPEMD" && $no_ripemd) { return 0; } | 
| 1136                         if ($keyword eq "MDC2" && $no_mdc2) { return 0; } | 1145                         if ($keyword eq "MDC2" && $no_mdc2) { return 0; } | 
|  | 1146                         if ($keyword eq "WHIRLPOOL" && $no_whirlpool) { return 0
      ; } | 
| 1137                         if ($keyword eq "RSA" && $no_rsa) { return 0; } | 1147                         if ($keyword eq "RSA" && $no_rsa) { return 0; } | 
| 1138                         if ($keyword eq "DSA" && $no_dsa) { return 0; } | 1148                         if ($keyword eq "DSA" && $no_dsa) { return 0; } | 
| 1139                         if ($keyword eq "DH" && $no_dh) { return 0; } | 1149                         if ($keyword eq "DH" && $no_dh) { return 0; } | 
| 1140                         if ($keyword eq "EC" && $no_ec) { return 0; } | 1150                         if ($keyword eq "EC" && $no_ec) { return 0; } | 
| 1141                         if ($keyword eq "ECDSA" && $no_ecdsa) { return 0; } | 1151                         if ($keyword eq "ECDSA" && $no_ecdsa) { return 0; } | 
| 1142                         if ($keyword eq "ECDH" && $no_ecdh) { return 0; } | 1152                         if ($keyword eq "ECDH" && $no_ecdh) { return 0; } | 
| 1143                         if ($keyword eq "HMAC" && $no_hmac) { return 0; } | 1153                         if ($keyword eq "HMAC" && $no_hmac) { return 0; } | 
| 1144                         if ($keyword eq "AES" && $no_aes) { return 0; } | 1154                         if ($keyword eq "AES" && $no_aes) { return 0; } | 
| 1145                         if ($keyword eq "CAMELLIA" && $no_camellia) { return 0; 
      } | 1155                         if ($keyword eq "CAMELLIA" && $no_camellia) { return 0; 
      } | 
| 1146                         if ($keyword eq "SEED" && $no_seed) { return 0; } | 1156                         if ($keyword eq "SEED" && $no_seed) { return 0; } | 
| 1147                         if ($keyword eq "EVP" && $no_evp) { return 0; } | 1157                         if ($keyword eq "EVP" && $no_evp) { return 0; } | 
| 1148                         if ($keyword eq "LHASH" && $no_lhash) { return 0; } | 1158                         if ($keyword eq "LHASH" && $no_lhash) { return 0; } | 
| 1149                         if ($keyword eq "STACK" && $no_stack) { return 0; } | 1159                         if ($keyword eq "STACK" && $no_stack) { return 0; } | 
| 1150                         if ($keyword eq "ERR" && $no_err) { return 0; } | 1160                         if ($keyword eq "ERR" && $no_err) { return 0; } | 
| 1151                         if ($keyword eq "BUFFER" && $no_buffer) { return 0; } | 1161                         if ($keyword eq "BUFFER" && $no_buffer) { return 0; } | 
| 1152                         if ($keyword eq "BIO" && $no_bio) { return 0; } | 1162                         if ($keyword eq "BIO" && $no_bio) { return 0; } | 
| 1153                         if ($keyword eq "COMP" && $no_comp) { return 0; } | 1163                         if ($keyword eq "COMP" && $no_comp) { return 0; } | 
| 1154                         if ($keyword eq "DSO" && $no_dso) { return 0; } | 1164                         if ($keyword eq "DSO" && $no_dso) { return 0; } | 
| 1155                         if ($keyword eq "KRB5" && $no_krb5) { return 0; } | 1165                         if ($keyword eq "KRB5" && $no_krb5) { return 0; } | 
| 1156                         if ($keyword eq "ENGINE" && $no_engine) { return 0; } | 1166                         if ($keyword eq "ENGINE" && $no_engine) { return 0; } | 
| 1157                         if ($keyword eq "HW" && $no_hw) { return 0; } | 1167                         if ($keyword eq "HW" && $no_hw) { return 0; } | 
| 1158                         if ($keyword eq "FP_API" && $no_fp_api) { return 0; } | 1168                         if ($keyword eq "FP_API" && $no_fp_api) { return 0; } | 
| 1159                         if ($keyword eq "STATIC_ENGINE" && $no_static_engine) { 
      return 0; } | 1169                         if ($keyword eq "STATIC_ENGINE" && $no_static_engine) { 
      return 0; } | 
| 1160                         if ($keyword eq "GMP" && $no_gmp) { return 0; } | 1170                         if ($keyword eq "GMP" && $no_gmp) { return 0; } | 
| 1161                         if ($keyword eq "RFC3779" && $no_rfc3779) { return 0; } | 1171                         if ($keyword eq "RFC3779" && $no_rfc3779) { return 0; } | 
| 1162                         if ($keyword eq "TLSEXT" && $no_tlsext) { return 0; } | 1172                         if ($keyword eq "TLSEXT" && $no_tlsext) { return 0; } | 
|  | 1173                         if ($keyword eq "PSK" && $no_psk) { return 0; } | 
| 1163                         if ($keyword eq "CMS" && $no_cms) { return 0; } | 1174                         if ($keyword eq "CMS" && $no_cms) { return 0; } | 
|  | 1175                         if ($keyword eq "SSL2" && $no_ssl2) { return 0; } | 
| 1164                         if ($keyword eq "CAPIENG" && $no_capieng) { return 0; } | 1176                         if ($keyword eq "CAPIENG" && $no_capieng) { return 0; } | 
| 1165                         if ($keyword eq "JPAKE" && $no_jpake) { return 0; } | 1177                         if ($keyword eq "JPAKE" && $no_jpake) { return 0; } | 
| 1166                         if ($keyword eq "DEPRECATED" && $no_deprecated) { return
       0; } | 1178                         if ($keyword eq "DEPRECATED" && $no_deprecated) { return
       0; } | 
| 1167 | 1179 | 
| 1168                         # Nothing recognise as true | 1180                         # Nothing recognise as true | 
| 1169                         return 1; | 1181                         return 1; | 
| 1170                 } | 1182                 } | 
| 1171         } | 1183         } | 
| 1172 | 1184 | 
| 1173         foreach $k (@keywords) { | 1185         foreach $k (@keywords) { | 
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1488                 } | 1500                 } | 
| 1489         } | 1501         } | 
| 1490         if(@remaining) { | 1502         if(@remaining) { | 
| 1491                 print STDERR "The following symbols do not seem to exist:\n"; | 1503                 print STDERR "The following symbols do not seem to exist:\n"; | 
| 1492                 foreach $sym (@remaining) { | 1504                 foreach $sym (@remaining) { | 
| 1493                         print STDERR "\t",$sym,"\n"; | 1505                         print STDERR "\t",$sym,"\n"; | 
| 1494                 } | 1506                 } | 
| 1495         } | 1507         } | 
| 1496 } | 1508 } | 
| 1497 | 1509 | 
| OLD | NEW | 
|---|