dsa: deprecate applications that depend on the low level DSA functions.
authorPauli <paul.dale@oracle.com>
Thu, 6 Feb 2020 22:09:53 +0000 (08:09 +1000)
committerPauli <paul.dale@oracle.com>
Tue, 11 Feb 2020 22:52:42 +0000 (08:52 +1000)
speed is updated to not support DSA instead of being removed.

The dhparam, dsaparam, dsa and gendsa commands are deprecated but still
exist without NO_DEPRECATED defined.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10977)

apps/build.info
apps/dhparam.c
apps/dsa.c
apps/dsaparam.c
apps/gendsa.c
apps/speed.c
doc/man1/openssl-dhparam.pod.in
doc/man1/openssl-dsa.pod.in
doc/man1/openssl-dsaparam.pod.in
doc/man1/openssl-gendsa.pod.in
util/libcrypto.num

index f49edb4..c8835d7 100644 (file)
@@ -31,6 +31,10 @@ IF[{- !$disabled{apps} -}]
     SOURCE[openssl]=openssl.rc
   ENDIF
 
+  IF[{- !$disabled{'deprecated-3.0'} -}]
+    SOURCE[openssl]=dhparam.c dsa.c dsaparam.c gendsa.c
+  ENDIF
+
   SCRIPTS{misc}=CA.pl
   SOURCE[CA.pl]=CA.pl.in
   # linkname tells build files that a symbolic link or copy of this script
index 7a61241..e2a5b79 100644 (file)
@@ -7,8 +7,11 @@
  * https://www.openssl.org/source/license.html
  */
 
+/* We need to use some deprecated APIs */
+#define OPENSSL_SUPPRESS_DEPRECATED
+
 #include <openssl/opensslconf.h>
-#ifdef OPENSSL_NO_DH
+#if defined(OPENSSL_NO_DH) || defined(OPENSSL_NO_DEPRECATED_3_0)
 NON_EMPTY_TRANSLATION_UNIT
 #else
 
index 8ba9305..0156ff8 100644 (file)
@@ -7,8 +7,11 @@
  * https://www.openssl.org/source/license.html
  */
 
+/* We need to use the deprecated DSA_print */
+#define OPENSSL_SUPPRESS_DEPRECATED
+
 #include <openssl/opensslconf.h>
-#ifdef OPENSSL_NO_DSA
+#if defined(OPENSSL_NO_DSA) || defined(OPENSSL_NO_DEPRECATED_3_0)
 NON_EMPTY_TRANSLATION_UNIT
 #else
 
@@ -81,7 +84,6 @@ int dsa_main(int argc, char **argv)
     int pvk_encr = 2;
 # endif
     int private = 0;
-    EVP_PKEY *pkey = NULL;
 
     prog = opt_init(argc, argv, dsa_options);
     while ((o = opt_next()) != OPT_EOF) {
@@ -161,13 +163,19 @@ int dsa_main(int argc, char **argv)
     }
 
     BIO_printf(bio_err, "read DSA key\n");
-    if (pubin)
-        pkey = load_pubkey(infile, informat, 1, passin, e, "Public Key");
-    else
-        pkey = load_key(infile, informat, 1, passin, e, "Private Key");
+    {
+        EVP_PKEY *pkey;
+
+        if (pubin)
+            pkey = load_pubkey(infile, informat, 1, passin, e, "Public Key");
+        else
+            pkey = load_key(infile, informat, 1, passin, e, "Private Key");
 
-    if (pkey != NULL)
-        dsa = EVP_PKEY_get1_DSA(pkey);
+        if (pkey != NULL) {
+            dsa = EVP_PKEY_get1_DSA(pkey);
+            EVP_PKEY_free(pkey);
+        }
+    }
 
     if (dsa == NULL) {
         BIO_printf(bio_err, "unable to load Key\n");
@@ -181,7 +189,7 @@ int dsa_main(int argc, char **argv)
 
     if (text) {
         assert(pubin || private);
-        if (!EVP_PKEY_print_private(out, pkey, 0, NULL)) {
+        if (!DSA_print(out, dsa, 0)) {
             perror(outfile);
             ERR_print_errors(bio_err);
             goto end;
@@ -257,7 +265,6 @@ int dsa_main(int argc, char **argv)
     }
     ret = 0;
  end:
-    EVP_PKEY_free(pkey);
     BIO_free_all(out);
     DSA_free(dsa);
     release_engine(e);
index 17068fb..25b86d5 100644 (file)
@@ -7,8 +7,11 @@
  * https://www.openssl.org/source/license.html
  */
 
+/* We need to use some deprecated APIs */
+#define OPENSSL_SUPPRESS_DEPRECATED
+
 #include <openssl/opensslconf.h>
-#ifdef OPENSSL_NO_DSA
+#if defined(OPENSSL_NO_DSA) || defined(OPENSSL_NO_DEPRECATED_3_0)
 NON_EMPTY_TRANSLATION_UNIT
 #else
 
index 12806ef..686168c 100644 (file)
@@ -7,8 +7,11 @@
  * https://www.openssl.org/source/license.html
  */
 
+/* We need to use some deprecated APIs */
+#define OPENSSL_SUPPRESS_DEPRECATED
+
 #include <openssl/opensslconf.h>
-#ifdef OPENSSL_NO_DSA
+#if defined(OPENSSL_NO_DSA) || defined(OPENSSL_NO_DEPRECATED_3_0)
 NON_EMPTY_TRANSLATION_UNIT
 #else
 
index 17f2cf3..0e94e7c 100644 (file)
@@ -99,7 +99,7 @@
 # include "./testrsa.h"
 #endif
 #include <openssl/x509.h>
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
 # include <openssl/dsa.h>
 # include "./testdsa.h"
 #endif
@@ -406,7 +406,7 @@ static const OPT_PAIR doit_choices[] = {
 
 static double results[ALGOR_NUM][SIZE_NUM];
 
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
 enum { R_DSA_512, R_DSA_1024, R_DSA_2048, DSA_NUM };
 static const OPT_PAIR dsa_choices[DSA_NUM] = {
     {"dsa512", R_DSA_512},
@@ -545,7 +545,7 @@ typedef struct loopargs_st {
 #ifndef OPENSSL_NO_RSA
     RSA *rsa_key[RSA_NUM];
 #endif
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     DSA *dsa_key[DSA_NUM];
 #endif
 #ifndef OPENSSL_NO_EC
@@ -1066,7 +1066,7 @@ static int RSA_verify_loop(void *args)
 }
 #endif
 
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
 static long dsa_c[DSA_NUM][2];
 static int DSA_sign_loop(void *args)
 {
@@ -1520,7 +1520,7 @@ int speed_main(int argc, char **argv)
     uint8_t rsa_doit[RSA_NUM] = { 0 };
     int primes = RSA_DEFAULT_PRIME_NUM;
 #endif
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     static const unsigned int dsa_bits[DSA_NUM] = { 512, 1024, 2048 };
     uint8_t dsa_doit[DSA_NUM] = { 0 };
 #endif
@@ -1760,7 +1760,7 @@ int speed_main(int argc, char **argv)
             }
         }
 #endif
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
         if (strncmp(algo, "dsa", 3) == 0) {
             if (algo[3] == '\0') {
                 memset(dsa_doit, 1, sizeof(dsa_doit));
@@ -1912,7 +1912,7 @@ int speed_main(int argc, char **argv)
 #ifndef OPENSSL_NO_RSA
         memset(rsa_doit, 1, sizeof(rsa_doit));
 #endif
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
         memset(dsa_doit, 1, sizeof(dsa_doit));
 #endif
 #ifndef OPENSSL_NO_EC
@@ -1952,7 +1952,7 @@ int speed_main(int argc, char **argv)
         }
     }
 #endif
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     for (i = 0; i < loopargs_len; i++) {
         loopargs[i].dsa_key[0] = get_dsa(512);
         loopargs[i].dsa_key[1] = get_dsa(1024);
@@ -2120,7 +2120,7 @@ int speed_main(int argc, char **argv)
     }
 #  endif
 
-#  ifndef OPENSSL_NO_DSA
+#  if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     dsa_c[R_DSA_512][0] = count / 1000;
     dsa_c[R_DSA_512][1] = count / 1000 / 2;
     for (i = 1; i < DSA_NUM; i++) {
@@ -2955,7 +2955,7 @@ int speed_main(int argc, char **argv)
         if (RAND_bytes(loopargs[i].buf, 36) <= 0)
             goto end;
 
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     for (testnum = 0; testnum < DSA_NUM; testnum++) {
         int st = 0;
         if (!dsa_doit[testnum])
@@ -3582,7 +3582,7 @@ int speed_main(int argc, char **argv)
                    rsa_results[k][0], rsa_results[k][1]);
     }
 #endif
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     testnum = 1;
     for (k = 0; k < DSA_NUM; k++) {
         if (!dsa_doit[k])
@@ -3695,7 +3695,7 @@ int speed_main(int argc, char **argv)
         for (k = 0; k < RSA_NUM; k++)
             RSA_free(loopargs[i].rsa_key[k]);
 #endif
-#ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
         for (k = 0; k < DSA_NUM; k++)
             DSA_free(loopargs[i].dsa_key[k]);
 #endif
@@ -3901,7 +3901,7 @@ static int do_multi(int multi, int size_num)
                 d = atof(sstrsep(&p, sep));
                 rsa_results[k][1] += d;
             }
-# ifndef OPENSSL_NO_DSA
+#if !defined(OPENSSL_NO_DSA) && !defined(OPENSSL_NO_DEPRECATED_3_0)
             else if (strncmp(buf, "+F3:", 4) == 0) {
                 int k;
                 double d;
index 9da15f7..906af1c 100644 (file)
@@ -29,6 +29,9 @@ B<openssl dhparam>
 
 =head1 DESCRIPTION
 
+This command has been deprecated.
+The L<openssl-pkeyparam(1)> command should be used instead.
+
 This command is used to manipulate DH parameter files.
 
 =head1 OPTIONS
@@ -125,8 +128,13 @@ There should be a way to generate and manipulate DH keys.
 =head1 SEE ALSO
 
 L<openssl(1)>,
+L<openssl-pkeyparam(1)>,
 L<openssl-dsaparam(1)>
 
+=head1 HISTORY
+
+This command was deprecated in OpenSSL 3.0.
+
 =head1 COPYRIGHT
 
 Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
index 548d368..4ba948a 100644 (file)
@@ -42,6 +42,9 @@ B<openssl> B<dsa>
 
 =head1 DESCRIPTION
 
+This command has been deprecated.
+The L<openssl-pkey(1)> command should be used instead.
+
 This command processes DSA keys. They can be converted between various
 forms and their components printed out. B<Note> This command uses the
 traditional SSLeay compatible format for private key encryption: newer
@@ -147,11 +150,16 @@ To just output the public part of a private key:
 =head1 SEE ALSO
 
 L<openssl(1)>,
+L<openssl-pkey(1)>,
 L<openssl-dsaparam(1)>,
 L<openssl-gendsa(1)>,
 L<openssl-rsa(1)>,
 L<openssl-genrsa(1)>
 
+=head1 HISTORY
+
+This command was deprecated in OpenSSL 3.0.
+
 =head1 COPYRIGHT
 
 Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
index bab7436..51d44bd 100644 (file)
@@ -24,6 +24,9 @@ B<openssl dsaparam>
 
 =head1 DESCRIPTION
 
+This command has been deprecated.
+The L<openssl-pkeyparam(1)> command should be used instead.
+
 This command is used to manipulate or generate DSA parameter files.
 
 DSA parameter generation can be a slow process and as a result the same set of
@@ -95,11 +98,16 @@ the input file (if any) is ignored.
 =head1 SEE ALSO
 
 L<openssl(1)>,
+L<openssl-pkeyparam(1)>,
 L<openssl-gendsa(1)>,
 L<openssl-dsa(1)>,
 L<openssl-genrsa(1)>,
 L<openssl-rsa(1)>
 
+=head1 HISTORY
+
+This command was deprecated in OpenSSL 3.0.
+
 =head1 COPYRIGHT
 
 Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
index e98d662..f1f8fe5 100644 (file)
@@ -32,6 +32,9 @@ B<openssl> B<gendsa>
 
 =head1 DESCRIPTION
 
+This command has been deprecated.
+The L<openssl-genpkey(1)> command should be used instead.
+
 This command generates a DSA private key from a DSA parameter file
 (which will be typically generated by the L<openssl-dsaparam(1)> command).
 
@@ -83,11 +86,16 @@ much quicker that RSA key generation for example.
 =head1 SEE ALSO
 
 L<openssl(1)>,
+L<openssl-genpkey(1)>,
 L<openssl-dsaparam(1)>,
 L<openssl-dsa(1)>,
 L<openssl-genrsa(1)>,
 L<openssl-rsa(1)>
 
+=head1 HISTORY
+
+This command was deprecated in OpenSSL 3.0.
+
 =head1 COPYRIGHT
 
 Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
index d3a6fab..29e37b4 100644 (file)
@@ -488,7 +488,7 @@ X509_INFO_new                           497 3_0_0   EXIST::FUNCTION:
 OCSP_RESPDATA_it                        498    3_0_0   EXIST::FUNCTION:OCSP
 X509_CRL_print                          499    3_0_0   EXIST::FUNCTION:
 WHIRLPOOL_Update                        500    3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,WHIRLPOOL
-DSA_get_ex_data                         501    3_0_0   EXIST::FUNCTION:DSA
+DSA_get_ex_data                         501    3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 BN_copy                                 502    3_0_0   EXIST::FUNCTION:
 FIPS_mode_set                           503    3_0_0   EXIST::FUNCTION:
 X509_VERIFY_PARAM_add0_policy           504    3_0_0   EXIST::FUNCTION:
@@ -497,7 +497,7 @@ X509_TRUST_get_trust                    506 3_0_0   EXIST::FUNCTION:
 DES_string_to_key                       507    3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 ERR_error_string                        508    3_0_0   EXIST::FUNCTION:
 BIO_new_connect                         509    3_0_0   EXIST::FUNCTION:SOCK
-DSA_new_method                          511    3_0_0   EXIST::FUNCTION:DSA
+DSA_new_method                          511    3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 OCSP_CERTID_new                         512    3_0_0   EXIST::FUNCTION:OCSP
 X509_CRL_get_signature_nid              513    3_0_0   EXIST::FUNCTION:
 X509_policy_level_node_count            514    3_0_0   EXIST::FUNCTION:
@@ -760,7 +760,7 @@ PKCS7_add_attrib_smimecap               778 3_0_0   EXIST::FUNCTION:
 ERR_peek_last_error_line_data           779    3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0
 EVP_PKEY_meth_set_sign                  780    3_0_0   EXIST::FUNCTION:
 ASN1_i2d_bio                            781    3_0_0   EXIST::FUNCTION:
-DSA_verify                              782    3_0_0   EXIST::FUNCTION:DSA
+DSA_verify                              782    3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 i2a_ASN1_OBJECT                         783    3_0_0   EXIST::FUNCTION:
 i2d_PKEY_USAGE_PERIOD                   784    3_0_0   EXIST::FUNCTION:
 DSA_new                                 785    3_0_0   EXIST::FUNCTION:DSA
@@ -1546,7 +1546,7 @@ PEM_write_X509_REQ_NEW                  1579      3_0_0   EXIST::FUNCTION:STDIO
 CONF_imodule_set_usr_data               1580   3_0_0   EXIST::FUNCTION:
 d2i_TS_RESP_fp                          1581   3_0_0   EXIST::FUNCTION:STDIO,TS
 X509_policy_tree_get0_user_policies     1582   3_0_0   EXIST::FUNCTION:
-DSA_do_sign                             1584   3_0_0   EXIST::FUNCTION:DSA
+DSA_do_sign                             1584   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 EVP_CIPHER_CTX_reset                    1585   3_0_0   EXIST::FUNCTION:
 OCSP_REVOKEDINFO_new                    1586   3_0_0   EXIST::FUNCTION:OCSP
 SRP_Verify_A_mod_N                      1587   3_0_0   EXIST::FUNCTION:SRP
@@ -1821,7 +1821,7 @@ X509_PURPOSE_get0                       1863      3_0_0   EXIST::FUNCTION:
 EVP_PKEY_set1_DSA                       1864   3_0_0   EXIST::FUNCTION:DSA
 X509_NAME_it                            1865   3_0_0   EXIST::FUNCTION:
 OBJ_add_object                          1866   3_0_0   EXIST::FUNCTION:
-DSA_generate_key                        1867   3_0_0   EXIST::FUNCTION:DSA
+DSA_generate_key                        1867   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 EVP_DigestUpdate                        1868   3_0_0   EXIST::FUNCTION:
 X509_get_ext_by_OBJ                     1869   3_0_0   EXIST::FUNCTION:
 PBEPARAM_new                            1870   3_0_0   EXIST::FUNCTION:
@@ -2162,7 +2162,7 @@ EVP_idea_ecb                            2209      3_0_0   EXIST::FUNCTION:IDEA
 i2d_TS_ACCURACY                         2210   3_0_0   EXIST::FUNCTION:TS
 ASN1_VISIBLESTRING_free                 2211   3_0_0   EXIST::FUNCTION:
 NCONF_load_bio                          2212   3_0_0   EXIST::FUNCTION:
-DSA_get_default_method                  2213   3_0_0   EXIST::FUNCTION:DSA
+DSA_get_default_method                  2213   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 OPENSSL_LH_retrieve                     2214   3_0_0   EXIST::FUNCTION:
 CRYPTO_ccm128_decrypt_ccm64             2215   3_0_0   EXIST::FUNCTION:
 TS_RESP_CTX_set_clock_precision_digits  2216   3_0_0   EXIST::FUNCTION:TS
@@ -2266,7 +2266,7 @@ HMAC_CTX_free                           2313      3_0_0   EXIST::FUNCTION:DEPRECATEDIN_
 EC_POINT_new                            2314   3_0_0   EXIST::FUNCTION:EC
 PKCS7_ISSUER_AND_SERIAL_digest          2315   3_0_0   EXIST::FUNCTION:
 EVP_des_ofb                             2316   3_0_0   EXIST::FUNCTION:DES
-DSA_set_method                          2317   3_0_0   EXIST::FUNCTION:DSA
+DSA_set_method                          2317   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 EVP_PKEY_get1_RSA                       2318   3_0_0   EXIST::FUNCTION:RSA
 EC_KEY_OpenSSL                          2319   3_0_0   EXIST::FUNCTION:EC
 EVP_camellia_192_ofb                    2320   3_0_0   EXIST::FUNCTION:CAMELLIA
@@ -2404,9 +2404,9 @@ d2i_TS_TST_INFO_bio                     2454      3_0_0   EXIST::FUNCTION:TS
 BIGNUM_it                               2455   3_0_0   EXIST::FUNCTION:
 BN_BLINDING_get_flags                   2456   3_0_0   EXIST::FUNCTION:
 X509_EXTENSION_get_critical             2457   3_0_0   EXIST::FUNCTION:
-DSA_set_default_method                  2458   3_0_0   EXIST::FUNCTION:DSA
+DSA_set_default_method                  2458   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 PEM_write_bio_DHxparams                 2459   3_0_0   EXIST::FUNCTION:DH
-DSA_set_ex_data                         2460   3_0_0   EXIST::FUNCTION:DSA
+DSA_set_ex_data                         2460   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 BIO_s_datagram_sctp                     2461   3_0_0   EXIST::FUNCTION:DGRAM,SCTP
 SXNET_add_id_asc                        2462   3_0_0   EXIST::FUNCTION:
 X509_print_fp                           2463   3_0_0   EXIST::FUNCTION:STDIO
@@ -2472,7 +2472,7 @@ i2d_USERNOTICE                          2523      3_0_0   EXIST::FUNCTION:
 d2i_NETSCAPE_SPKI                       2524   3_0_0   EXIST::FUNCTION:
 CRYPTO_mem_leaks                        2525   3_0_0   EXIST::FUNCTION:CRYPTO_MDEBUG,DEPRECATEDIN_3_0
 BN_get_rfc3526_prime_1536               2526   3_0_0   EXIST::FUNCTION:DH
-DSA_sign                                2527   3_0_0   EXIST::FUNCTION:DSA
+DSA_sign                                2527   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 RAND_egd                                2528   3_0_0   EXIST::FUNCTION:EGD
 ASN1_d2i_bio                            2529   3_0_0   EXIST::FUNCTION:
 X509_REQ_digest                         2531   3_0_0   EXIST::FUNCTION:
@@ -3296,7 +3296,7 @@ OCSP_SINGLERESP_get_ext_by_OBJ          3363      3_0_0   EXIST::FUNCTION:OCSP
 ECDSA_SIG_get0                          3364   3_0_0   EXIST::FUNCTION:EC
 BN_set_word                             3365   3_0_0   EXIST::FUNCTION:
 ENGINE_set_flags                        3366   3_0_0   EXIST::FUNCTION:ENGINE
-DSA_OpenSSL                             3367   3_0_0   EXIST::FUNCTION:DSA
+DSA_OpenSSL                             3367   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 CMS_RecipientInfo_kari_get0_alg         3368   3_0_0   EXIST::FUNCTION:CMS
 PKCS7_ENVELOPE_new                      3369   3_0_0   EXIST::FUNCTION:
 EDIPARTYNAME_new                        3370   3_0_0   EXIST::FUNCTION:
@@ -3451,7 +3451,7 @@ EVP_DecryptFinal_ex                     3521      3_0_0   EXIST::FUNCTION:
 SCT_get_signature_nid                   3522   3_0_0   EXIST::FUNCTION:CT
 PROXY_CERT_INFO_EXTENSION_new           3523   3_0_0   EXIST::FUNCTION:
 EVP_bf_cbc                              3524   3_0_0   EXIST::FUNCTION:BF
-DSA_do_verify                           3525   3_0_0   EXIST::FUNCTION:DSA
+DSA_do_verify                           3525   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 EC_GROUP_get_seed_len                   3526   3_0_0   EXIST::FUNCTION:EC
 EC_POINT_set_affine_coordinates_GF2m    3527   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,EC,EC2M
 TS_REQ_set_policy_id                    3528   3_0_0   EXIST::FUNCTION:TS
@@ -3597,7 +3597,7 @@ i2d_ASIdOrRange                         3676      3_0_0   EXIST::FUNCTION:RFC3779
 OCSP_url_svcloc_new                     3677   3_0_0   EXIST::FUNCTION:OCSP
 CRYPTO_mem_ctrl                         3678   3_0_0   EXIST::FUNCTION:CRYPTO_MDEBUG,DEPRECATEDIN_3_0
 ASN1_verify                             3679   3_0_0   EXIST::FUNCTION:
-DSA_generate_parameters_ex              3680   3_0_0   EXIST::FUNCTION:DSA
+DSA_generate_parameters_ex              3680   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 X509_sign                               3681   3_0_0   EXIST::FUNCTION:
 SHA256_Transform                        3682   3_0_0   EXIST::FUNCTION:
 BIO_ADDR_free                           3683   3_0_0   EXIST::FUNCTION:SOCK
@@ -3868,42 +3868,42 @@ BIO_meth_get_destroy                    3951    3_0_0   EXIST::FUNCTION:
 BIO_meth_get_read                       3952   3_0_0   EXIST::FUNCTION:
 BIO_set_retry_reason                    3953   3_0_0   EXIST::FUNCTION:
 BIO_meth_free                           3954   3_0_0   EXIST::FUNCTION:
-DSA_meth_set_bn_mod_exp                 3955   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_init                       3956   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_free                           3957   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_mod_exp                    3958   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_sign                       3959   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_finish                     3960   3_0_0   EXIST::FUNCTION:DSA
+DSA_meth_set_bn_mod_exp                 3955   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_init                       3956   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_free                           3957   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_mod_exp                    3958   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_sign                       3959   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_get_finish                     3960   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 DSA_set_flags                           3961   3_0_0   EXIST::FUNCTION:DSA
 DSA_get0_pqg                            3962   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get0_app_data                  3963   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_keygen                     3964   3_0_0   EXIST::FUNCTION:DSA
+DSA_meth_get0_app_data                  3963   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_get_keygen                     3964   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 DSA_clear_flags                         3965   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get0_name                      3966   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_paramgen                   3967   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_sign                       3968   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_paramgen                   3969   3_0_0   EXIST::FUNCTION:DSA
+DSA_meth_get0_name                      3966   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_get_paramgen                   3967   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_get_sign                       3968   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_paramgen                   3969   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 DSA_test_flags                          3970   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set0_app_data                  3971   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set1_name                      3972   3_0_0   EXIST::FUNCTION:DSA
+DSA_meth_set0_app_data                  3971   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set1_name                      3972   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 DSA_get0_key                            3973   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_mod_exp                    3974   3_0_0   EXIST::FUNCTION:DSA
+DSA_meth_get_mod_exp                    3974   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 DSA_set0_pqg                            3975   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_flags                      3976   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_verify                     3977   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_verify                     3978   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_finish                     3979   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_keygen                     3980   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_dup                            3981   3_0_0   EXIST::FUNCTION:DSA
+DSA_meth_get_flags                      3976   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_get_verify                     3977   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_verify                     3978   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_finish                     3979   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_keygen                     3980   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_dup                            3981   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 DSA_set0_key                            3982   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_init                       3983   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_sign_setup                 3984   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_bn_mod_exp                 3985   3_0_0   EXIST::FUNCTION:DSA
-DSA_get_method                          3986   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_new                            3987   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_set_flags                      3988   3_0_0   EXIST::FUNCTION:DSA
-DSA_meth_get_sign_setup                 3989   3_0_0   EXIST::FUNCTION:DSA
-DSA_get0_engine                         3990   3_0_0   EXIST::FUNCTION:DSA
+DSA_meth_get_init                       3983   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_sign_setup                 3984   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_get_bn_mod_exp                 3985   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_get_method                          3986   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_new                            3987   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_set_flags                      3988   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_meth_get_sign_setup                 3989   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
+DSA_get0_engine                         3990   3_0_0   EXIST::FUNCTION:DEPRECATEDIN_3_0,DSA
 X509_VERIFY_PARAM_set_auth_level        3991   3_0_0   EXIST::FUNCTION:
 X509_VERIFY_PARAM_get_auth_level        3992   3_0_0   EXIST::FUNCTION:
 X509_REQ_get0_pubkey                    3993   3_0_0   EXIST::FUNCTION: