diff options
Diffstat (limited to 'src/lib/libcrypto/objects/obj_dat.pl')
| -rw-r--r-- | src/lib/libcrypto/objects/obj_dat.pl | 112 |
1 files changed, 73 insertions, 39 deletions
diff --git a/src/lib/libcrypto/objects/obj_dat.pl b/src/lib/libcrypto/objects/obj_dat.pl index 4e7879d3f3..5dfb84ea00 100644 --- a/src/lib/libcrypto/objects/obj_dat.pl +++ b/src/lib/libcrypto/objects/obj_dat.pl | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | #!/usr/bin/perl | 1 | #!/usr/local/bin/perl |
| 2 | 2 | ||
| 3 | sub obj_cmp | 3 | sub obj_cmp |
| 4 | { | 4 | { |
| @@ -38,15 +38,36 @@ sub expand_obj | |||
| 38 | return(%objn); | 38 | return(%objn); |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | while (<>) | 41 | open (IN,"$ARGV[0]") || die "Can't open input file $ARGV[0]"; |
| 42 | open (OUT,">$ARGV[1]") || die "Can't open output file $ARGV[1]"; | ||
| 43 | |||
| 44 | while (<IN>) | ||
| 42 | { | 45 | { |
| 43 | next unless /^\#define\s+(\S+)\s+(.*)$/; | 46 | next unless /^\#define\s+(\S+)\s+(.*)$/; |
| 44 | $v=$1; | 47 | $v=$1; |
| 45 | $d=$2; | 48 | $d=$2; |
| 49 | $d =~ s/^\"//; | ||
| 50 | $d =~ s/\"$//; | ||
| 46 | if ($v =~ /^SN_(.*)$/) | 51 | if ($v =~ /^SN_(.*)$/) |
| 47 | { $sn{$1}=$d; } | 52 | { |
| 53 | if(defined $snames{$d}) | ||
| 54 | { | ||
| 55 | print "WARNING: Duplicate short name \"$d\"\n"; | ||
| 56 | } | ||
| 57 | else | ||
| 58 | { $snames{$d} = "X"; } | ||
| 59 | $sn{$1}=$d; | ||
| 60 | } | ||
| 48 | elsif ($v =~ /^LN_(.*)$/) | 61 | elsif ($v =~ /^LN_(.*)$/) |
| 49 | { $ln{$1}=$d; } | 62 | { |
| 63 | if(defined $lnames{$d}) | ||
| 64 | { | ||
| 65 | print "WARNING: Duplicate long name \"$d\"\n"; | ||
| 66 | } | ||
| 67 | else | ||
| 68 | { $lnames{$d} = "X"; } | ||
| 69 | $ln{$1}=$d; | ||
| 70 | } | ||
| 50 | elsif ($v =~ /^NID_(.*)$/) | 71 | elsif ($v =~ /^NID_(.*)$/) |
| 51 | { $nid{$d}=$1; } | 72 | { $nid{$d}=$1; } |
| 52 | elsif ($v =~ /^OBJ_(.*)$/) | 73 | elsif ($v =~ /^OBJ_(.*)$/) |
| @@ -55,6 +76,7 @@ while (<>) | |||
| 55 | $objd{$v}=$d; | 76 | $objd{$v}=$d; |
| 56 | } | 77 | } |
| 57 | } | 78 | } |
| 79 | close IN; | ||
| 58 | 80 | ||
| 59 | %ob=&expand_obj(*objd); | 81 | %ob=&expand_obj(*objd); |
| 60 | 82 | ||
| @@ -74,11 +96,20 @@ for ($i=0; $i<$n; $i++) | |||
| 74 | { | 96 | { |
| 75 | $sn=defined($sn{$nid{$i}})?"$sn{$nid{$i}}":"NULL"; | 97 | $sn=defined($sn{$nid{$i}})?"$sn{$nid{$i}}":"NULL"; |
| 76 | $ln=defined($ln{$nid{$i}})?"$ln{$nid{$i}}":"NULL"; | 98 | $ln=defined($ln{$nid{$i}})?"$ln{$nid{$i}}":"NULL"; |
| 77 | $sn=$ln if ($sn eq "NULL"); | 99 | |
| 78 | $ln=$sn if ($ln eq "NULL"); | 100 | if ($sn eq "NULL") { |
| 101 | $sn=$ln; | ||
| 102 | $sn{$nid{$i}} = $ln; | ||
| 103 | } | ||
| 104 | |||
| 105 | if ($ln eq "NULL") { | ||
| 106 | $ln=$sn; | ||
| 107 | $ln{$nid{$i}} = $sn; | ||
| 108 | } | ||
| 109 | |||
| 79 | $out ="{"; | 110 | $out ="{"; |
| 80 | $out.=$sn; | 111 | $out.="\"$sn\""; |
| 81 | $out.=",".$ln; | 112 | $out.=","."\"$ln\""; |
| 82 | $out.=",NID_$nid{$i},"; | 113 | $out.=",NID_$nid{$i},"; |
| 83 | if (defined($obj{$nid{$i}})) | 114 | if (defined($obj{$nid{$i}})) |
| 84 | { | 115 | { |
| @@ -113,13 +144,13 @@ for ($i=0; $i<$n; $i++) | |||
| 113 | @a=grep(defined($sn{$nid{$_}}),0 .. $n); | 144 | @a=grep(defined($sn{$nid{$_}}),0 .. $n); |
| 114 | foreach (sort { $sn{$nid{$a}} cmp $sn{$nid{$b}} } @a) | 145 | foreach (sort { $sn{$nid{$a}} cmp $sn{$nid{$b}} } @a) |
| 115 | { | 146 | { |
| 116 | push(@sn,sprintf("&(nid_objs[%2d]),/* $sn{$nid{$_}} */\n",$_)); | 147 | push(@sn,sprintf("&(nid_objs[%2d]),/* \"$sn{$nid{$_}}\" */\n",$_)); |
| 117 | } | 148 | } |
| 118 | 149 | ||
| 119 | @a=grep(defined($ln{$nid{$_}}),0 .. $n); | 150 | @a=grep(defined($ln{$nid{$_}}),0 .. $n); |
| 120 | foreach (sort { $ln{$nid{$a}} cmp $ln{$nid{$b}} } @a) | 151 | foreach (sort { $ln{$nid{$a}} cmp $ln{$nid{$b}} } @a) |
| 121 | { | 152 | { |
| 122 | push(@ln,sprintf("&(nid_objs[%2d]),/* $ln{$nid{$_}} */\n",$_)); | 153 | push(@ln,sprintf("&(nid_objs[%2d]),/* \"$ln{$nid{$_}}\" */\n",$_)); |
| 123 | } | 154 | } |
| 124 | 155 | ||
| 125 | @a=grep(defined($obj{$nid{$_}}),0 .. $n); | 156 | @a=grep(defined($obj{$nid{$_}}),0 .. $n); |
| @@ -132,8 +163,14 @@ foreach (sort obj_cmp @a) | |||
| 132 | push(@ob,sprintf("&(nid_objs[%2d]),/* %-32s %s */\n",$_,$m,$v)); | 163 | push(@ob,sprintf("&(nid_objs[%2d]),/* %-32s %s */\n",$_,$m,$v)); |
| 133 | } | 164 | } |
| 134 | 165 | ||
| 135 | print <<'EOF'; | 166 | print OUT <<'EOF'; |
| 136 | /* lib/obj/obj_dat.h */ | 167 | /* crypto/objects/obj_dat.h */ |
| 168 | |||
| 169 | /* THIS FILE IS GENERATED FROM objects.h by obj_dat.pl via the | ||
| 170 | * following command: | ||
| 171 | * perl obj_dat.pl obj_mac.h obj_dat.h | ||
| 172 | */ | ||
| 173 | |||
| 137 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) | 174 | /* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) |
| 138 | * All rights reserved. | 175 | * All rights reserved. |
| 139 | * | 176 | * |
| @@ -191,23 +228,18 @@ print <<'EOF'; | |||
| 191 | * [including the GNU Public Licence.] | 228 | * [including the GNU Public Licence.] |
| 192 | */ | 229 | */ |
| 193 | 230 | ||
| 194 | /* THIS FILE IS GENERATED FROM Objects.h by obj_dat.pl via the | ||
| 195 | * following command: | ||
| 196 | * perl obj_dat.pl < objects.h > obj_dat.h | ||
| 197 | */ | ||
| 198 | |||
| 199 | EOF | 231 | EOF |
| 200 | 232 | ||
| 201 | printf "#define NUM_NID %d\n",$n; | 233 | printf OUT "#define NUM_NID %d\n",$n; |
| 202 | printf "#define NUM_SN %d\n",$#sn+1; | 234 | printf OUT "#define NUM_SN %d\n",$#sn+1; |
| 203 | printf "#define NUM_LN %d\n",$#ln+1; | 235 | printf OUT "#define NUM_LN %d\n",$#ln+1; |
| 204 | printf "#define NUM_OBJ %d\n\n",$#ob+1; | 236 | printf OUT "#define NUM_OBJ %d\n\n",$#ob+1; |
| 205 | 237 | ||
| 206 | printf "static unsigned char lvalues[%d]={\n",$lvalues+1; | 238 | printf OUT "static unsigned char lvalues[%d]={\n",$lvalues+1; |
| 207 | print @lvalues; | 239 | print OUT @lvalues; |
| 208 | print "};\n\n"; | 240 | print OUT "};\n\n"; |
| 209 | 241 | ||
| 210 | printf "static ASN1_OBJECT nid_objs[NUM_NID]={\n"; | 242 | printf OUT "static ASN1_OBJECT nid_objs[NUM_NID]={\n"; |
| 211 | foreach (@out) | 243 | foreach (@out) |
| 212 | { | 244 | { |
| 213 | if (length($_) > 75) | 245 | if (length($_) > 75) |
| @@ -218,30 +250,32 @@ foreach (@out) | |||
| 218 | $t=$out.$_.","; | 250 | $t=$out.$_.","; |
| 219 | if (length($t) > 70) | 251 | if (length($t) > 70) |
| 220 | { | 252 | { |
| 221 | print "$out\n"; | 253 | print OUT "$out\n"; |
| 222 | $t="\t$_,"; | 254 | $t="\t$_,"; |
| 223 | } | 255 | } |
| 224 | $out=$t; | 256 | $out=$t; |
| 225 | } | 257 | } |
| 226 | chop $out; | 258 | chop $out; |
| 227 | print "$out"; | 259 | print OUT "$out"; |
| 228 | } | 260 | } |
| 229 | else | 261 | else |
| 230 | { print $_; } | 262 | { print OUT $_; } |
| 231 | } | 263 | } |
| 232 | print "};\n\n"; | 264 | print OUT "};\n\n"; |
| 265 | |||
| 266 | printf OUT "static ASN1_OBJECT *sn_objs[NUM_SN]={\n"; | ||
| 267 | print OUT @sn; | ||
| 268 | print OUT "};\n\n"; | ||
| 233 | 269 | ||
| 234 | printf "static ASN1_OBJECT *sn_objs[NUM_SN]={\n"; | 270 | printf OUT "static ASN1_OBJECT *ln_objs[NUM_LN]={\n"; |
| 235 | print @sn; | 271 | print OUT @ln; |
| 236 | print "};\n\n"; | 272 | print OUT "};\n\n"; |
| 237 | 273 | ||
| 238 | printf "static ASN1_OBJECT *ln_objs[NUM_LN]={\n"; | 274 | printf OUT "static ASN1_OBJECT *obj_objs[NUM_OBJ]={\n"; |
| 239 | print @ln; | 275 | print OUT @ob; |
| 240 | print "};\n\n"; | 276 | print OUT "};\n\n"; |
| 241 | 277 | ||
| 242 | printf "static ASN1_OBJECT *obj_objs[NUM_OBJ]={\n"; | 278 | close OUT; |
| 243 | print @ob; | ||
| 244 | print "};\n\n"; | ||
| 245 | 279 | ||
| 246 | sub der_it | 280 | sub der_it |
| 247 | { | 281 | { |
| @@ -252,7 +286,7 @@ sub der_it | |||
| 252 | $ret.=pack("C*",$a[0]*40+$a[1]); | 286 | $ret.=pack("C*",$a[0]*40+$a[1]); |
| 253 | shift @a; | 287 | shift @a; |
| 254 | shift @a; | 288 | shift @a; |
| 255 | while ($_=shift(@a)) | 289 | foreach (@a) |
| 256 | { | 290 | { |
| 257 | @r=(); | 291 | @r=(); |
| 258 | $t=0; | 292 | $t=0; |
