Move dso.h to internal
[openssl.git] / util / mkdef.pl
index a7abfd2d5cd40c4f1ca34d80959d83986e0973fd..80bc61ae82a707978b0299f9ac705fab30ed873a 100755 (executable)
@@ -5,7 +5,7 @@
 # It does this by parsing the header files and looking for the
 # prototyped functions: it then prunes the output.
 #
-# Intermediary files are created, call libeay.num and ssleay.num,
+# Intermediary files are created, call libcrypto.num and libssl.num,
 # The format of these files is:
 #
 #      routine-name    nnnn    vers    info
@@ -44,8 +44,8 @@ use File::Spec::Functions;
 
 my $debug=0;
 
-my $crypto_num= catfile($config{sourcedir},"util","libeay.num");
-my $ssl_num=    catfile($config{sourcedir},"util","ssleay.num");
+my $crypto_num= catfile($config{sourcedir},"util","libcrypto.num");
+my $ssl_num=    catfile($config{sourcedir},"util","libssl.num");
 my $libname;
 
 my $do_update = 0;
@@ -61,7 +61,6 @@ my $VMSNonVAX=0;
 my $VMS=0;
 my $W32=0;
 my $NT=0;
-my $OS2=0;
 my $linux=0;
 # Set this to make typesafe STACK definitions appear in DEF
 my $safe_stack_def = 0;
@@ -75,7 +74,7 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
                         "SHA256", "SHA512", "RMD160",
                         "MDC2", "WHIRLPOOL", "RSA", "DSA", "DH", "EC", "EC2M",
                         "HMAC", "AES", "CAMELLIA", "SEED", "GOST",
-                         "SCRYPT", "CHACHA", "POLY1305",
+                         "SCRYPT", "CHACHA", "POLY1305", "BLAKE2",
                         # EC_NISTP_64_GCC_128
                         "EC_NISTP_64_GCC_128",
                         # Envelope "algorithms"
@@ -90,8 +89,8 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
                          "STATIC_ENGINE", "ENGINE", "HW", "GMP",
                         # Entropy Gathering
                         "EGD",
-                         # X.509v3 Signed Certificate Timestamps
-                         "SCT",
+                        # Certificate Transparency
+                        "CT",
                         # RFC3779
                         "RFC3779",
                         # TLS
@@ -100,8 +99,8 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
                         "CMS",
                         # CryptoAPI Engine
                         "CAPIENG",
-                        # SSL v3 method
-                        "SSL3_METHOD",
+                        # SSL methods
+                        "SSL3_METHOD", "TLS1_METHOD", "TLS1_1_METHOD", "TLS1_2_METHOD", "DTLS1_METHOD", "DTLS1_2_METHOD",
                         # NEXTPROTONEG
                         "NEXTPROTONEG",
                         # Deprecated functions
@@ -116,6 +115,10 @@ my @known_algorithms = ( "RC2", "RC4", "RC5", "IDEA", "DES", "BF",
                         "SSL_TRACE",
                         # Unit testing
                         "UNIT_TEST",
+                        # User Interface
+                        "UI",
+                        #
+                        "TS",
                         # OCB mode
                         "OCB",
                          # APPLINK (win build feature?)
@@ -153,18 +156,17 @@ foreach (@ARGV, split(/ /, $config{options}))
                $linux=1;
        }
        $VMS=$VMSNonVAX=1 if $_ eq "VMS";
-       $OS2=1 if $_ eq "OS2";
        if ($_ eq "zlib" || $_ eq "enable-zlib" || $_ eq "zlib-dynamic"
                         || $_ eq "enable-zlib-dynamic") {
                $zlib = 1;
        }
 
-       $do_ssl=1 if $_ eq "ssleay";
+       $do_ssl=1 if $_ eq "libssl";
        if ($_ eq "ssl") {
                $do_ssl=1; 
                $libname=$_
        }
-       $do_crypto=1 if $_ eq "libeay";
+       $do_crypto=1 if $_ eq "libcrypto";
        if ($_ eq "crypto") {
                $do_crypto=1;
                $libname=$_;
@@ -202,19 +204,19 @@ foreach (@ARGV, split(/ /, $config{options}))
 
 if (!$libname) { 
        if ($do_ssl) {
-               $libname="SSLEAY";
+               $libname="LIBSSL";
        }
        if ($do_crypto) {
-               $libname="LIBEAY";
+               $libname="LIBCRYPTO";
        }
 }
 
 # If no platform is given, assume WIN32
-if ($W32 + $VMS + $OS2 + $linux == 0) {
+if ($W32 + $VMS + $linux == 0) {
        $W32 = 1;
 }
 die "Please, only one platform at a time"
-    if ($W32 + $VMS + $OS2 + $linux > 1);
+    if ($W32 + $VMS + $linux > 1);
 
 if (!$do_ssl && !$do_crypto)
        {
@@ -267,7 +269,7 @@ $crypto.=" include/openssl/engine.h"; # unless $no_engine;
 $crypto.=" include/openssl/stack.h" ; # unless $no_stack;
 $crypto.=" include/openssl/buffer.h" ; # unless $no_buffer;
 $crypto.=" include/openssl/bio.h" ; # unless $no_bio;
-$crypto.=" include/openssl/dso.h" ; # unless $no_dso;
+$crypto.=" include/internal/dso.h" ; # unless $no_dso;
 $crypto.=" include/openssl/lhash.h" ; # unless $no_lhash;
 $crypto.=" include/openssl/conf.h";
 $crypto.=" include/openssl/txt_db.h";
@@ -294,37 +296,39 @@ $crypto.=" include/openssl/cms.h";
 $crypto.=" include/openssl/srp.h";
 $crypto.=" include/openssl/modes.h";
 $crypto.=" include/openssl/async.h";
+$crypto.=" include/openssl/ct.h";
+$crypto.=" include/openssl/kdf.h";
 
 my $symhacks="include/openssl/symhacks.h";
 
-my @ssl_symbols = &do_defs("SSLEAY", $ssl, $symhacks);
-my @crypto_symbols = &do_defs("LIBEAY", $crypto, $symhacks);
+my @ssl_symbols = &do_defs("LIBSSL", $ssl, $symhacks);
+my @crypto_symbols = &do_defs("LIBCRYPTO", $crypto, $symhacks);
 
 if ($do_update) {
 
 if ($do_ssl == 1) {
 
-       &maybe_add_info("SSLEAY",*ssl_list,@ssl_symbols);
+       &maybe_add_info("LIBSSL",*ssl_list,@ssl_symbols);
        if ($do_rewrite == 1) {
                open(OUT, ">$ssl_num");
-               &rewrite_numbers(*OUT,"SSLEAY",*ssl_list,@ssl_symbols);
+               &rewrite_numbers(*OUT,"LIBSSL",*ssl_list,@ssl_symbols);
        } else {
                open(OUT, ">>$ssl_num");
        }
-       &update_numbers(*OUT,"SSLEAY",*ssl_list,$max_ssl,@ssl_symbols);
+       &update_numbers(*OUT,"LIBSSL",*ssl_list,$max_ssl,@ssl_symbols);
        close OUT;
 }
 
 if($do_crypto == 1) {
 
-       &maybe_add_info("LIBEAY",*crypto_list,@crypto_symbols);
+       &maybe_add_info("LIBCRYPTO",*crypto_list,@crypto_symbols);
        if ($do_rewrite == 1) {
                open(OUT, ">$crypto_num");
-               &rewrite_numbers(*OUT,"LIBEAY",*crypto_list,@crypto_symbols);
+               &rewrite_numbers(*OUT,"LIBCRYPTO",*crypto_list,@crypto_symbols);
        } else {
                open(OUT, ">>$crypto_num");
        }
-       &update_numbers(*OUT,"LIBEAY",*crypto_list,$max_crypto,@crypto_symbols);
+       &update_numbers(*OUT,"LIBCRYPTO",*crypto_list,$max_crypto,@crypto_symbols);
        close OUT;
 } 
 
@@ -344,10 +348,10 @@ if($do_crypto == 1) {
 int main()
 {
 EOF
-       &print_test_file(*STDOUT,"SSLEAY",*ssl_list,$do_ctestall,@ssl_symbols)
+       &print_test_file(*STDOUT,"LIBSSL",*ssl_list,$do_ctestall,@ssl_symbols)
                if $do_ssl == 1;
 
-       &print_test_file(*STDOUT,"LIBEAY",*crypto_list,$do_ctestall,@crypto_symbols)
+       &print_test_file(*STDOUT,"LIBCRYPTO",*crypto_list,$do_ctestall,@crypto_symbols)
                if $do_crypto == 1;
 
        print "}\n";
@@ -640,7 +644,8 @@ sub do_defs
                                next;
                        }
                        if ($tag{'TRUE'} != -1) {
-                               if (/^\s*DECLARE_STACK_OF\s*\(\s*(\w*)\s*\)/) {
+                               if (/^\s*DEFINE_STACK_OF\s*\(\s*(\w*)\s*\)/
+                                               || /^\s*DEFINE_STACK_OF_CONST\s*\(\s*(\w*)\s*\)/) {
                                        next;
                                } elsif (/^\s*DECLARE_ASN1_ENCODE_FUNCTIONS\s*\(\s*(\w*)\s*,\s*(\w*)\s*,\s*(\w*)\s*\)/) {
                                        $def .= "int d2i_$3(void);";
@@ -1108,7 +1113,6 @@ sub is_valid
                        if ($keyword eq "VMS" && $VMS) { return 1; }
                        if ($keyword eq "WIN32" && $W32) { return 1; }
                        if ($keyword eq "WINNT" && $NT) { return 1; }
-                       if ($keyword eq "OS2" && $OS2) { return 1; }
                        # Special platforms:
                        # EXPORT_VAR_AS_FUNCTION means that global variables
                        # will be represented as functions.  This currently
@@ -1197,22 +1201,8 @@ sub print_def_file
 
        if ($W32)
                { $libname.="32"; }
-       elsif ($OS2)
-               { # DLL names should not clash on the whole system.
-                 # However, they should not have any particular relationship
-                 # to the name of the static library.  Chose descriptive names
-                 # (must be at most 8 chars).
-                 my %translate = (ssl => 'open_ssl', crypto => 'cryptssl');
-                 $libname = $translate{$name} || $name;
-                 $liboptions = <<EOO;
-INITINSTANCE
-DATA MULTIPLE NONSHARED
-EOO
-                 # Vendor field can't contain colon, drat; so we omit http://
-                 $description = "\@#$http_vendor:$version#\@$what; DLL for library $name.  Build for EMX -Zmtd";
-               }
 
-        if ($W32 || $OS2)
+        if ($W32)
                 {
                 print OUT <<"EOF";
 ;
@@ -1324,12 +1314,12 @@ EOF
                                             }
                                             print OUT $symline;
                                             $symvtextcount += length($symline) - 2;
-                                       } elsif($v && !$OS2) {
+                                       } elsif($v) {
                                                printf OUT "    %s%-39s @%-8d DATA\n",
                                                                ($W32)?"":"_",$s2,$n;
                                        } else {
                                                printf OUT "    %s%-39s @%d\n",
-                                                               ($W32||$OS2)?"":"_",$s2,$n;
+                                                               ($W32)?"":"_",$s2,$n;
                                        }
                                }
                        }