);
my %cmd_deprecated = (
# The format of this table is:
-# [0] = alternative command to use instead
-# [1] = deprecented in this version
-# [2] = preprocessor conditional for exclusing irrespective of deprecation
-# rsa => [ "pkey", "3_0", "rsa" ],
-# genrsa => [ "genpkey", "3_0", "rsa" ],
- rsautl => [ "pkeyutl", "3_0", "rsa" ],
-# dhparam => [ "pkeyparam", "3_0", "dh" ],
-# dsaparam => [ "pkeyparam", "3_0", "dsa" ],
-# dsa => [ "pkey", "3_0", "dsa" ],
-# gendsa => [ "genpkey", "3_0", "dsa" ],
-# ec => [ "pkey", "3_0", "ec" ],
-# ecparam => [ "pkeyparam", "3_0", "ec" ],
+# [0] = 0/1, 1 means deprecated and gone, 0 is deprecated but still present
+# [1] = alternative command to use instead
+# [2] = deprecented in this version
+# [3] = preprocessor conditional for exclusing irrespective of deprecation
+ rsa => [ 0, "pkey", "3_0", "rsa" ],
+ genrsa => [ 1, "genpkey", "3_0", "rsa" ],
+ rsautl => [ 0, "pkeyutl", "3_0", "rsa" ],
+ dhparam => [ 1, "pkeyparam", "3_0", "dh" ],
+ dsaparam => [ 1, "pkeyparam", "3_0", "dsa" ],
+ dsa => [ 0, "pkey", "3_0", "dsa" ],
+ gendsa => [ 1, "genpkey", "3_0", "dsa" ],
+ ec => [ 0, "pkey", "3_0", "ec" ],
+ ecparam => [ 0, "pkeyparam", "3_0", "ec" ],
);
print "FUNCTION functions[] = {\n";
print "#ifndef OPENSSL_NO_SOCK\n${str}#endif\n";
} elsif (my $deprecated = $cmd_deprecated{$cmd}) {
my @dep = @{$deprecated};
- my $daltprg = $dep[0];
- my $dver = $dep[1];
- my $dsys = $dep[2];
- print "#if !defined(OPENSSL_NO_DEPRECATED_" . $dver . ")";
- if ($dsys) {
- print " && !defined(OPENSSL_NO_" . uc($dsys) . ")";
+ print "#if ";
+ if ($dep[0]) {
+ print "!defined(OPENSSL_NO_DEPRECATED_" . $dep[2] . ")";
}
- $dver =~ s/_/./g;
- my $dalt = "\"" . $daltprg . "\", \"" . $dver . "\"";
- $str =~ s/NULL, NULL/$dalt/;
+ if ($dep[3]) {
+ if ($dep[0]) {
+ print " && ";
+ }
+ print "!defined(OPENSSL_NO_" . uc($dep[3]) . ")";
+ }
+ my $dalt = "\"" . $dep[1] . "\"";
+ $str =~ s/NULL/$dalt/;
print "\n${str}#endif\n";
} elsif (grep { $cmd eq $_ } @disablables) {
print "#ifndef OPENSSL_NO_" . uc($cmd) . "\n${str}#endif\n";