summaryrefslogtreecommitdiffstats
path: root/crypto/objects
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2014-11-01 00:10:56 +0000
committerDr. Stephen Henson <steve@openssl.org>2014-11-13 13:35:58 +0000
commitb1edca2a4c11da51de0840233fa16a420177e4fc (patch)
treee591341ea935ed3286a8aea7c88fd76a09fe323a /crypto/objects
parente7768ebbd2b4a472d6c0d6aa699263689102ef38 (diff)
Fix cross reference table generator.
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> (cherry picked from commit 55f7fb8848b6e4bec291724a479e1580d6f407d6)
Diffstat (limited to 'crypto/objects')
-rw-r--r--crypto/objects/obj_xref.h3
-rw-r--r--crypto/objects/objxref.pl5
2 files changed, 4 insertions, 4 deletions
diff --git a/crypto/objects/obj_xref.h b/crypto/objects/obj_xref.h
index e23938c296..33cb24b070 100644
--- a/crypto/objects/obj_xref.h
+++ b/crypto/objects/obj_xref.h
@@ -43,9 +43,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],
diff --git a/crypto/objects/objxref.pl b/crypto/objects/objxref.pl
index 731d3ae22c..6c4c832ab2 100644
--- a/crypto/objects/objxref.pl
+++ b/crypto/objects/objxref.pl
@@ -90,7 +90,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";
}