Fix cross reference table generator.
authorDr. Stephen Henson <steve@openssl.org>
Sat, 1 Nov 2014 00:10:56 +0000 (00:10 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Thu, 13 Nov 2014 13:34:42 +0000 (13:34 +0000)
If the hash or public key algorithm is "undef" the signature type
will receive special handling and shouldn't be included in the
cross reference table.
Reviewed-by: Tim Hudson <tjh@openssl.org>
crypto/objects/obj_xref.h
crypto/objects/objxref.pl

index cfd628a7882929d9d5939f9b10fc986ccdf2102a..433c96bb43b48b43f307d7f702418563cb048dc8 100644 (file)
@@ -53,9 +53,6 @@ static const nid_triple sigoid_srt[] =
 
 static const nid_triple * const sigoid_srt_xref[] =
        {
-       &sigoid_srt[29],
-       &sigoid_srt[17],
-       &sigoid_srt[18],
        &sigoid_srt[0],
        &sigoid_srt[1],
        &sigoid_srt[7],
index 94b9bc133f684dd90b246c6cff12eea5bf6e3f15..833f4ab8829037ab2305935a4f9bd00cffbcfea1 100644 (file)
@@ -91,7 +91,10 @@ EOF
 
 foreach (@srt2)
        {
-       my $x = $xref_tbl{$_}[2];
+       my ($p1, $p2, $x) = @{$xref_tbl{$_}};
+       # If digest or signature algorithm is "undef" then the algorithm
+       # needs special handling and is excluded from the cross reference table.
+       next if $p1 eq "undef" || $p2 eq "undef";
        print "\t\&sigoid_srt\[$x\],\n";
        }