X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=util%2Fmkdef.pl;h=dc21310e47b00ab75089442cfc07f98813e96582;hp=0ac793555c123f98cec12c72d4b63ad674a166a8;hb=3c07b4c2ee35181d8a02c56183b177f1c0010e2f;hpb=33b1a4c218c5f8bd27c3fbce8012b4b9fb591b65 diff --git a/util/mkdef.pl b/util/mkdef.pl index 0ac793555c..dc21310e47 100755 --- a/util/mkdef.pl +++ b/util/mkdef.pl @@ -76,7 +76,8 @@ my @known_platforms = ( "__FreeBSD__", "VMS", "WIN16", "WIN32", "WINNT", "PERL5", "NeXT" ); my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF", "CAST", "MD2", "MD4", "MD5", "SHA", "RIPEMD", - "MDC2", "RSA", "DSA", "DH", "HMAC", "FP_API" ); + "MDC2", "RSA", "DSA", "DH", "HMAC", "FP_API", + "RIJNDAEL" ); my $options=""; open(IN," \"$i\"\n"; } } + $syms{sym} = 1; + } + + my @s=sort { &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") } keys %nums; + foreach $sym (@s) { + (my $n, my $i) = split /\\/, $nums{$sym}; + if (!defined($syms{sym})) { + $new_info++; + #print STDERR "DEBUG: maybe_add_info for $sym: -> undefined\n"; + } } if ($new_info) { print STDERR "$new_info old symbols got an info update\n"; @@ -658,7 +691,7 @@ sub print_test_file sub print_def_file { (*OUT,my $name,*nums,my @symbols)=@_; - my $n = 1; my @e; my @r; + my $n = 1; my @e; my @r; my @v; if ($W32) { $name.="32"; } @@ -693,18 +726,22 @@ EOF (@e)=grep(/^SSLeay\\.*?:.*?:FUNCTION/,@symbols); (@r)=grep(/^\w+\\.*?:.*?:FUNCTION/ && !/^SSLeay\\.*?:.*?:FUNCTION/,@symbols); - @symbols=((sort @e),(sort @r)); + (@v)=grep(/^\w+\\.*?:.*?:VARIABLE/,@symbols); + @symbols=((sort @e),(sort @r), (sort @v)); foreach $sym (@symbols) { (my $s, my $i) = $sym =~ /^(.*?)\\(.*)$/; + my $v = 0; + $v = 1 if $sym=~ /^\w+\\.*?:.*?:VARIABLE/; if (!defined($nums{$s})) { printf STDERR "Warning: $s does not have a number assigned\n" if(!$do_update); } else { (my $n, my $i) = split /\\/, $nums{$s}; my %pf = (); - my @p = split(/,/, ($i =~ /^.*?:(.*?):/,$1)); + my @p = split(/,/, ($i =~ /^[^:]*:([^:]*):/,$1)); + my @a = split(/,/, ($i =~ /^[^:]*:[^:]*:[^:]*:([^:]*)/,$1)); # @p_purged must contain hardware platforms only my @p_purged = (); foreach $ptmp (@p) { @@ -726,8 +763,32 @@ EOF || (!$negatives && ($rsaref || !grep(/^RSAREF$/,@p))) || ($negatives - && (!$rsaref || !grep(/^!RSAREF$/,@p))))) { - printf OUT " %s%-40s@%d\n",($W32)?"":"_",$s,$n; + && (!$rsaref || !grep(/^!RSAREF$/,@p)))) + && (!@a || (!$no_rc2 || !grep(/^RC2$/,@a))) + && (!@a || (!$no_rc4 || !grep(/^RC4$/,@a))) + && (!@a || (!$no_rc5 || !grep(/^RC5$/,@a))) + && (!@a || (!$no_idea || !grep(/^IDEA$/,@a))) + && (!@a || (!$no_des || !grep(/^DES$/,@a))) + && (!@a || (!$no_bf || !grep(/^BF$/,@a))) + && (!@a || (!$no_cast || !grep(/^CAST$/,@a))) + && (!@a || (!$no_md2 || !grep(/^MD2$/,@a))) + && (!@a || (!$no_md4 || !grep(/^MD4$/,@a))) + && (!@a || (!$no_md5 || !grep(/^MD5$/,@a))) + && (!@a || (!$no_sha || !grep(/^SHA$/,@a))) + && (!@a || (!$no_ripemd || !grep(/^RIPEMD$/,@a))) + && (!@a || (!$no_mdc2 || !grep(/^MDC2$/,@a))) + && (!@a || (!$no_rsa || !grep(/^RSA$/,@a))) + && (!@a || (!$no_dsa || !grep(/^DSA$/,@a))) + && (!@a || (!$no_dh || !grep(/^DH$/,@a))) + && (!@a || (!$no_hmac || !grep(/^HMAC$/,@a))) + && (!@a || (!$no_rijndael || !grep(/^RIJNDAEL$/,@a))) + && (!@a || (!$no_fp_api || !grep(/^FP_API$/,@a))) + ) { + if($v) { + printf OUT " %s%-40s@%-8d DATA\n",($W32)?"":"_",$s,$n; + } else { + printf OUT " %s%-40s@%d\n",($W32)?"":"_",$s,$n; + } # } else { # print STDERR "DEBUG: \"$sym\" (@p):", # " rsaref:", !!(!@p @@ -826,12 +887,19 @@ sub rewrite_numbers $rsyms{$s} = 1; } + my %syms = (); + foreach $_ (@symbols) { + (my $n, my $i) = split /\\/; + $syms{$n} = 1; + } + my @s=sort { &parse_number($nums{$a},"n") <=> &parse_number($nums{$b},"n") } keys %nums; foreach $sym (@s) { (my $n, my $i) = split /\\/, $nums{$sym}; next if defined($i) && $i =~ /^.*?:.*?:\w+\(\w+\)/; next if defined($rsyms{$sym}); - $i="NOEXIST::FUNCTION:" if !defined($i) || $i eq ""; + $i="NOEXIST::FUNCTION:" + if !defined($i) || $i eq "" || !defined($syms{$sym}); printf OUT "%s%-40s%d\t%s\n","",$sym,$n,$i; if (exists $r{$sym}) { (my $s, $i) = split /\\/,$r{$sym};