X-Git-Url: https://git.openssl.org/gitweb/?a=blobdiff_plain;f=util%2Fmkdef.pl;h=9243c0bb6151b2e02be7927d641f05edffe3c6df;hb=1d46b6b3b9d2375111bca66be482067d70ae16f6;hp=a4f573c9752f1b1c0c3913d95ff47eb7d9d68f50;hpb=c454dbcd326d7483291a81bb352e15bdcfc28c19;p=openssl.git diff --git a/util/mkdef.pl b/util/mkdef.pl index a4f573c975..9243c0bb61 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -60,7 +60,7 @@ my $crypto_num= "util/libeay.num"; my $ssl_num= "util/ssleay.num"; my $do_update = 0; -my $do_rewrite = 0; +my $do_rewrite = 1; my $do_crypto = 0; my $do_ssl = 0; my $do_ctest = 0; @@ -82,7 +82,7 @@ my @known_ossl_platforms = ( "VMS", "WIN16", "WIN32", "WINNT" ); my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", "CAST", "MD2", "MD4", "MD5", "SHA", "SHA0", "SHA1", "RIPEMD", - "MDC2", "RSA", "DSA", "DH", "HMAC", "AES", + "MDC2", "RSA", "DSA", "DH", "EC", "HMAC", "AES", # Envelope "algorithms" "EVP", "X509", "ASN1_TYPEDEFS", # Helper "algorithms" @@ -105,6 +105,7 @@ my $no_rc2; my $no_rc4; my $no_rc5; my $no_idea; my $no_des; my $no_bf; my $no_cast; my $no_md2; my $no_md4; my $no_md5; my $no_sha; my $no_ripemd; my $no_mdc2; my $no_rsa; my $no_dsa; my $no_dh; my $no_hmac=0; my $no_aes; my $no_krb5; +my $no_ec; my $no_fp_api; foreach (@ARGV, split(/ /, $options)) @@ -153,6 +154,7 @@ foreach (@ARGV, split(/ /, $options)) elsif (/^no-rsa$/) { $no_rsa=1; } elsif (/^no-dsa$/) { $no_dsa=1; } elsif (/^no-dh$/) { $no_dh=1; } + elsif (/^no-ec$/) { $no_ec=1; } elsif (/^no-hmac$/) { $no_hmac=1; } elsif (/^no-aes$/) { $no_aes=1; } elsif (/^no-evp$/) { $no_evp=1; } @@ -193,53 +195,56 @@ my $ssl="ssl/ssl.h"; $ssl.=" ssl/kssl.h"; my $crypto ="crypto/crypto.h"; -$crypto.=" crypto/des/des.h" unless $no_des; -$crypto.=" crypto/idea/idea.h" unless $no_idea; -$crypto.=" crypto/rc4/rc4.h" unless $no_rc4; -$crypto.=" crypto/rc5/rc5.h" unless $no_rc5; -$crypto.=" crypto/rc2/rc2.h" unless $no_rc2; -$crypto.=" crypto/bf/blowfish.h" unless $no_bf; -$crypto.=" crypto/cast/cast.h" unless $no_cast; -$crypto.=" crypto/md2/md2.h" unless $no_md2; -$crypto.=" crypto/md4/md4.h" unless $no_md4; -$crypto.=" crypto/md5/md5.h" unless $no_md5; -$crypto.=" crypto/mdc2/mdc2.h" unless $no_mdc2; -$crypto.=" crypto/sha/sha.h" unless $no_sha; -$crypto.=" crypto/ripemd/ripemd.h" unless $no_ripemd; -$crypto.=" crypto/rijndael/rijndael.h" unless $no_aes; -$crypto.=" crypto/rijndael/rd_fst.h" unless $no_aes; +$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des; +$crypto.=" crypto/idea/idea.h" ; # unless $no_idea; +$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4; +$crypto.=" crypto/rc5/rc5.h" ; # unless $no_rc5; +$crypto.=" crypto/rc2/rc2.h" ; # unless $no_rc2; +$crypto.=" crypto/bf/blowfish.h" ; # unless $no_bf; +$crypto.=" crypto/cast/cast.h" ; # unless $no_cast; +$crypto.=" crypto/md2/md2.h" ; # unless $no_md2; +$crypto.=" crypto/md4/md4.h" ; # unless $no_md4; +$crypto.=" crypto/md5/md5.h" ; # unless $no_md5; +$crypto.=" crypto/mdc2/mdc2.h" ; # unless $no_mdc2; +$crypto.=" crypto/sha/sha.h" ; # unless $no_sha; +$crypto.=" crypto/ripemd/ripemd.h" ; # unless $no_ripemd; +$crypto.=" crypto/rijndael/rijndael.h" ; # unless $no_aes; +$crypto.=" crypto/rijndael/rd_fst.h" ; # unless $no_aes; $crypto.=" crypto/bn/bn.h"; -$crypto.=" crypto/rsa/rsa.h" unless $no_rsa; -$crypto.=" crypto/dsa/dsa.h" unless $no_dsa; -$crypto.=" crypto/dh/dh.h" unless $no_dh; -$crypto.=" crypto/hmac/hmac.h" unless $no_hmac; +$crypto.=" crypto/rsa/rsa.h" ; # unless $no_rsa; +$crypto.=" crypto/dsa/dsa.h" ; # unless $no_dsa; +$crypto.=" crypto/dh/dh.h" ; # unless $no_dh; +$crypto.=" crypto/ec/ec.h" ; # unless $no_ec; +$crypto.=" crypto/hmac/hmac.h" ; # unless $no_hmac; $crypto.=" crypto/engine/engine.h"; -$crypto.=" crypto/stack/stack.h" unless $no_stack; -$crypto.=" crypto/buffer/buffer.h" unless $no_buffer; -$crypto.=" crypto/bio/bio.h" unless $no_bio; -$crypto.=" crypto/dso/dso.h" unless $no_dso; -$crypto.=" crypto/lhash/lhash.h" unless $no_lhash; +$crypto.=" crypto/stack/stack.h" ; # unless $no_stack; +$crypto.=" crypto/buffer/buffer.h" ; # unless $no_buffer; +$crypto.=" crypto/bio/bio.h" ; # unless $no_bio; +$crypto.=" crypto/dso/dso.h" ; # unless $no_dso; +$crypto.=" crypto/lhash/lhash.h" ; # unless $no_lhash; $crypto.=" crypto/conf/conf.h"; $crypto.=" crypto/txt_db/txt_db.h"; -$crypto.=" crypto/evp/evp.h" unless $no_evp; +$crypto.=" crypto/evp/evp.h" ; # unless $no_evp; $crypto.=" crypto/objects/objects.h"; $crypto.=" crypto/pem/pem.h"; #$crypto.=" crypto/meth/meth.h"; $crypto.=" crypto/asn1/asn1.h"; $crypto.=" crypto/asn1/asn1t.h"; $crypto.=" crypto/asn1/asn1_mac.h"; -$crypto.=" crypto/err/err.h" unless $no_err; +$crypto.=" crypto/err/err.h" ; # unless $no_err; $crypto.=" crypto/pkcs7/pkcs7.h"; $crypto.=" crypto/pkcs12/pkcs12.h"; $crypto.=" crypto/x509/x509.h"; $crypto.=" crypto/x509/x509_vfy.h"; $crypto.=" crypto/x509v3/x509v3.h"; $crypto.=" crypto/rand/rand.h"; -$crypto.=" crypto/comp/comp.h" unless $no_comp; +$crypto.=" crypto/comp/comp.h" ; # unless $no_comp; $crypto.=" crypto/ocsp/ocsp.h"; +$crypto.=" crypto/ui/ui.h crypto/ui/ui_compat.h"; +$crypto.=" crypto/krb5/krb5_asn.h"; $crypto.=" crypto/tmdiff.h"; my $symhacks="crypto/symhacks.h"; @@ -255,7 +260,6 @@ if ($do_ssl == 1) { if ($do_rewrite == 1) { open(OUT, ">$ssl_num"); &rewrite_numbers(*OUT,"SSLEAY",*ssl_list,@ssl_symbols); - close OUT; } else { open(OUT, ">>$ssl_num"); } @@ -328,6 +332,7 @@ sub do_defs foreach $file (split(/\s+/,$symhacksfile." ".$files)) { + print STDERR "DEBUG: starting on $file:\n" if $debug; open(IN,"<$file") || die "unable to open $file:$!\n"; my $line = "", my $def= ""; my %tag = ( @@ -396,7 +401,7 @@ sub do_defs print STDERR "DEBUG: parsing ----------\n" if $debug; while() { - last if (/BEGIN ERROR CODES/); + last if (/\/\* Error codes for the \w+ functions\. \*\//); if ($line ne '') { $_ = $line . $_; $line = ''; @@ -781,14 +786,18 @@ sub do_defs if (/^\#INFO:([^:]*):(.*)$/) { $plats = $1; $algs = $2; + print STDERR "DEBUG: found info on platforms ($plats) and algorithms ($algs)\n" if $debug; next; } elsif (/^\s*OPENSSL_EXTERN\s.*?(\w+(\{[0-9]+\})?)(\[[0-9]*\])*\s*$/) { $s = $1; $k = "VARIABLE"; + print STDERR "DEBUG: found external variable $s\n" if $debug; } elsif (/\(\*(\w*(\{[0-9]+\})?)\([^\)]+/) { $s = $1; + print STDERR "DEBUG: found ANSI C function $s\n" if $debug; } elsif (/\w+\W+(\w+)\W*\(\s*\)$/s) { # K&R C + print STDERR "DEBUG: found K&R C function $s\n" if $debug; next; } elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)$/s) { while (not /\(\)$/s) { @@ -798,6 +807,7 @@ sub do_defs s/\(void\)//; /(\w+(\{[0-9]+\})?)\W*\(\)/s; $s = $1; + print STDERR "DEBUG: found function $s\n" if $debug; } elsif (/\(/ and not (/=/)) { print STDERR "File $file: cannot parse: $_;\n"; next; @@ -990,7 +1000,7 @@ sub is_valid # EXPORT_VAR_AS_FUNCTION means that global variables # will be represented as functions. This currently # only happens on VMS-VAX. - if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && $VMSVAX) { + if ($keyword eq "EXPORT_VAR_AS_FUNCTION" && ($VMSVAX || $W32 || $W16)) { return 1; } return 0; @@ -1012,8 +1022,17 @@ sub is_valid if ($keyword eq "RSA" && $no_rsa) { return 0; } if ($keyword eq "DSA" && $no_dsa) { return 0; } if ($keyword eq "DH" && $no_dh) { return 0; } + if ($keyword eq "EC" && $no_ec) { return 0; } if ($keyword eq "HMAC" && $no_hmac) { return 0; } if ($keyword eq "AES" && $no_aes) { return 0; } + if ($keyword eq "EVP" && $no_evp) { return 0; } + if ($keyword eq "LHASH" && $no_lhash) { return 0; } + if ($keyword eq "STACK" && $no_stack) { return 0; } + if ($keyword eq "ERR" && $no_err) { return 0; } + if ($keyword eq "BUFFER" && $no_buffer) { return 0; } + if ($keyword eq "BIO" && $no_bio) { return 0; } + if ($keyword eq "COMP" && $no_comp) { return 0; } + if ($keyword eq "DSO" && $no_dso) { return 0; } if ($keyword eq "KRB5" && $no_krb5) { return 0; } if ($keyword eq "FP_API" && $no_fp_api) { return 0; } @@ -1131,9 +1150,9 @@ EOF } $prev = $s2; # To warn about duplicates... if($v) { - printf OUT " %s%-40s@%-8d DATA\n",($W32)?"":"_",$s2,$n; + printf OUT " %s%-39s @%-8d DATA\n",($W32)?"":"_",$s2,$n; } else { - printf OUT " %s%-40s@%d\n",($W32)?"":"_",$s2,$n; + printf OUT " %s%-39s @%d\n",($W32)?"":"_",$s2,$n; } } } @@ -1231,7 +1250,10 @@ sub rewrite_numbers $syms{$n} = 1; } - my @s=sort { &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") } keys %nums; + my @s=sort { + &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") + || $a cmp $b + } keys %nums; foreach $sym (@s) { (my $n, my $i) = split /\\/, $nums{$sym}; next if defined($i) && $i =~ /^.*?:.*?:\w+\(\w+\)/; @@ -1241,12 +1263,12 @@ sub rewrite_numbers if !defined($i) || $i eq "" || !defined($syms{$sym}); my $s2 = $sym; $s2 =~ s/\{[0-9]+\}$//; - printf OUT "%s%-40s%d\t%s\n","",$s2,$n,$i; + printf OUT "%s%-39s %d\t%s\n","",$s2,$n,$i; if (exists $r{$sym}) { (my $s, $i) = split /\\/,$r{$sym}; my $s2 = $s; $s2 =~ s/\{[0-9]+\}$//; - printf OUT "%s%-40s%d\t%s\n","",$s2,$n,$i; + printf OUT "%s%-39s %d\t%s\n","",$s2,$n,$i; } } } @@ -1278,11 +1300,11 @@ sub update_numbers $new_syms++; my $s2 = $s; $s2 =~ s/\{[0-9]+\}$//; - printf OUT "%s%-40s%d\t%s\n","",$s2, ++$start_num,$i; + printf OUT "%s%-39s %d\t%s\n","",$s2, ++$start_num,$i; if (exists $r{$s}) { ($s, $i) = split /\\/,$r{$s}; $s =~ s/\{[0-9]+\}$//; - printf OUT "%s%-40s%d\t%s\n","",$s, $start_num,$i; + printf OUT "%s%-39s %d\t%s\n","",$s, $start_num,$i; } } }