#! /usr/bin/env perl
-# Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
+# Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved.
#
-# Licensed under the OpenSSL license (the "License"). You may not use
+# Licensed under the Apache License 2.0 (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy
# in the file LICENSE in the source distribution or at
# https://www.openssl.org/source/license.html
return $ret;
}
+# Output year depends on the year of the script and the input file.
+my $YEAR = [localtime([stat($0)]->[9])]->[5] + 1900;
+my $iYEAR = [localtime([stat($ARGV[0])]->[9])]->[5] + 1900;
+$YEAR = $iYEAR if $iYEAR > $YEAR;
# Read input, parse all #define's into OID name and value.
# Populate %ln and %sn with long and short names (%dupln and %dupsn)
}
# Finally ready to generate the output.
-open(OUT, ">$ARGV[1]") || die "Can't open output file $ARGV[1], $!";
-print OUT <<'EOF';
+print <<"EOF";
/*
* WARNING: do not edit!
* Generated by crypto/objects/obj_dat.pl
*
- * Copyright 1995-2017 The OpenSSL Project Authors. All Rights Reserved.
- * Licensed under the OpenSSL license (the "License"). You may not use
+ * Copyright 1995-$YEAR The OpenSSL Project Authors. All Rights Reserved.
+ * Licensed under the Apache License 2.0 (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy
* in the file LICENSE in the source distribution or at
* https://www.openssl.org/source/license.html
EOF
-print OUT "/* Serialized OID's */\n";
-printf OUT "static const unsigned char so[%d] = {\n", $lvalues + 1;
-print OUT @lvalues;
-print OUT "};\n\n";
+print "/* Serialized OID's */\n";
+printf "static const unsigned char so[%d] = {\n", $lvalues + 1;
+print @lvalues;
+print "};\n\n";
-printf OUT "#define NUM_NID %d\n", $n;
-printf OUT "static const ASN1_OBJECT nid_objs[NUM_NID] = {\n";
-print OUT @out;
-print OUT "};\n\n";
+printf "#define NUM_NID %d\n", $n;
+printf "static const ASN1_OBJECT nid_objs[NUM_NID] = {\n";
+print @out;
+print "};\n\n";
{
no warnings "uninitialized";
@a = grep(defined $sn{$nid{$_}}, 0 .. $n);
}
-printf OUT "#define NUM_SN %d\n", $#a + 1;
-printf OUT "static const unsigned int sn_objs[NUM_SN] = {\n";
+printf "#define NUM_SN %d\n", $#a + 1;
+printf "static const unsigned int sn_objs[NUM_SN] = {\n";
foreach (sort { $sn{$nid{$a}} cmp $sn{$nid{$b}} } @a) {
- printf OUT " %4d, /* \"$sn{$nid{$_}}\" */\n", $_;
+ printf " %4d, /* \"$sn{$nid{$_}}\" */\n", $_;
}
-print OUT "};\n\n";
+print "};\n\n";
{
no warnings "uninitialized";
@a = grep(defined $ln{$nid{$_}}, 0 .. $n);
}
-printf OUT "#define NUM_LN %d\n", $#a + 1;
-printf OUT "static const unsigned int ln_objs[NUM_LN] = {\n";
+printf "#define NUM_LN %d\n", $#a + 1;
+printf "static const unsigned int ln_objs[NUM_LN] = {\n";
foreach (sort { $ln{$nid{$a}} cmp $ln{$nid{$b}} } @a) {
- printf OUT " %4d, /* \"$ln{$nid{$_}}\" */\n", $_;
+ printf " %4d, /* \"$ln{$nid{$_}}\" */\n", $_;
}
-print OUT "};\n\n";
+print "};\n\n";
{
no warnings "uninitialized";
@a = grep(defined $obj{$nid{$_}}, 0 .. $n);
}
-printf OUT "#define NUM_OBJ %d\n", $#a + 1;
-printf OUT "static const unsigned int obj_objs[NUM_OBJ] = {\n";
+printf "#define NUM_OBJ %d\n", $#a + 1;
+printf "static const unsigned int obj_objs[NUM_OBJ] = {\n";
# Compare DER; prefer shorter; if some length, use the "smaller" encoding.
sub obj_cmp
my $v = $objd{$m};
$v =~ s/L//g;
$v =~ s/,/ /g;
- printf OUT " %4d, /* %-32s %s */\n", $_, $m, $v;
+ printf " %4d, /* %-32s %s */\n", $_, $m, $v;
}
-print OUT "};\n";
-
-close OUT;
+print "};\n";