[openssl] master update

Dr. Paul Dale pauli at openssl.org
Fri Jan 24 23:32:05 UTC 2020


The branch master has been updated
       via  c6fec81b88131d08c1022504ccf6effa95497afb (commit)
       via  f6edde4f06d2cadaf0949399e5df0b6f6a5b3598 (commit)
      from  8f21260b09eca6226255763e1856c12fbc71985c (commit)


- Log -----------------------------------------------------------------
commit c6fec81b88131d08c1022504ccf6effa95497afb
Author: Pauli <paul.dale at oracle.com>
Date:   Thu Jan 16 13:50:03 2020 +1000

    Deprecate the low level DES functions.
    
    Use of the low level DES functions has been informally discouraged for a
    long time. We now formally deprecate them.
    
    Applications should instead use the EVP APIs, e.g. EVP_EncryptInit_ex,
    EVP_EncryptUpdate, EVP_EncryptFinal_ex, and the equivalently named decrypt
    functions.
    
    Reviewed-by: Tomas Mraz <tmraz at fedoraproject.org>
    (Merged from https://github.com/openssl/openssl/pull/10858)

commit f6edde4f06d2cadaf0949399e5df0b6f6a5b3598
Author: Pauli <paul.dale at oracle.com>
Date:   Thu Jan 16 13:17:25 2020 +1000

    des: fix header file preprocessor indentation
    
    Reviewed-by: Tomas Mraz <tmraz at fedoraproject.org>
    (Merged from https://github.com/openssl/openssl/pull/10858)

-----------------------------------------------------------------------

Summary of changes:
 apps/passwd.c                                      |  15 +-
 apps/speed.c                                       |  14 +-
 apps/version.c                                     |   6 -
 crypto/des/build.info                              |   7 +
 crypto/des/cbc_cksm.c                              |   6 +
 crypto/des/cbc_enc.c                               |   6 +
 crypto/des/cfb64ede.c                              |   6 +
 crypto/des/cfb64enc.c                              |   6 +
 crypto/des/cfb_enc.c                               |   6 +
 crypto/des/des_enc.c                               |   6 +
 crypto/des/ecb3_enc.c                              |   6 +
 crypto/des/ecb_enc.c                               |   6 +
 crypto/des/fcrypt.c                                |   6 +
 crypto/des/fcrypt_b.c                              |   6 +
 crypto/des/ofb64ede.c                              |   6 +
 crypto/des/ofb64enc.c                              |   6 +
 crypto/des/ofb_enc.c                               |   6 +
 crypto/des/pcbc_enc.c                              |   6 +
 crypto/des/qud_cksm.c                              |   7 +
 crypto/des/rand_key.c                              |   6 +
 crypto/des/set_key.c                               |   7 +
 crypto/des/str2key.c                               |   6 +
 crypto/des/xcbc_enc.c                              |   6 +
 crypto/evp/e_des.c                                 |   6 +
 crypto/evp/e_des3.c                                |   6 +
 crypto/evp/e_xcbc_d.c                              |   6 +
 doc/man3/DES_random_key.pod                        |  12 +-
 include/openssl/des.h                              | 217 ++++++++++++---------
 providers/implementations/ciphers/cipher_des.c     |   6 +
 providers/implementations/ciphers/cipher_des_hw.c  |   6 +
 providers/implementations/ciphers/cipher_desx.c    |   6 +
 providers/implementations/ciphers/cipher_desx_hw.c |   6 +
 providers/implementations/ciphers/cipher_tdes.c    |   6 +
 .../implementations/ciphers/cipher_tdes_default.c  |   6 +
 .../ciphers/cipher_tdes_default_hw.c               |   6 +
 providers/implementations/ciphers/cipher_tdes_hw.c |   6 +
 .../implementations/ciphers/cipher_tdes_wrap.c     |   2 +-
 .../implementations/ciphers/cipher_tdes_wrap_hw.c  |   6 +
 providers/implementations/kdfs/krb5kdf.c           |   6 +
 test/build.info                                    |   8 +-
 test/destest.c                                     |   6 +
 test/recipes/20-test_passwd.t                      |   6 +-
 util/libcrypto.num                                 |  66 +++----
 43 files changed, 399 insertions(+), 154 deletions(-)

diff --git a/apps/passwd.c b/apps/passwd.c
index c17bfd839c..4626eeb249 100644
--- a/apps/passwd.c
+++ b/apps/passwd.c
@@ -7,6 +7,9 @@
  * https://www.openssl.org/source/license.html
  */
 
+/* We need to use some deprecated APIs */
+#define OPENSSL_SUPPRESS_DEPRECATED
+
 #include <string.h>
 
 #include "apps.h"
@@ -16,7 +19,7 @@
 #include <openssl/err.h>
 #include <openssl/evp.h>
 #include <openssl/rand.h>
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
 # include <openssl/des.h>
 #endif
 #include <openssl/md5.h>
@@ -82,7 +85,7 @@ const OPTIONS passwd_options[] = {
     {"apr1", OPT_APR1, '-', "MD5-based password algorithm, Apache variant"},
     {"1", OPT_1, '-', "MD5-based password algorithm"},
     {"aixmd5", OPT_AIXMD5, '-', "AIX MD5-based password algorithm"},
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     {"crypt", OPT_CRYPT, '-', "Standard Unix password algorithm (default)"},
 #endif
 
@@ -168,7 +171,7 @@ int passwd_main(int argc, char **argv)
             mode = passwd_aixmd5;
             break;
         case OPT_CRYPT:
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
             if (mode != passwd_unset)
                 goto opthelp;
             mode = passwd_crypt;
@@ -205,7 +208,7 @@ int passwd_main(int argc, char **argv)
         mode = passwd_crypt;
     }
 
-#ifdef OPENSSL_NO_DES
+#if defined(OPENSSL_NO_DES) || defined(OPENSSL_NO_DEPRECATED_3_0)
     if (mode == passwd_crypt)
         goto opthelp;
 #endif
@@ -798,7 +801,7 @@ static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,
         size_t saltlen = 0;
         size_t i;
 
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
         if (mode == passwd_crypt)
             saltlen = 2;
 #endif                         /* !OPENSSL_NO_DES */
@@ -841,7 +844,7 @@ static int do_passwd(int passed_salt, char **salt_p, char **salt_malloc_p,
     assert(strlen(passwd) <= pw_maxlen);
 
     /* now compute password hash */
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     if (mode == passwd_crypt)
         hash = DES_crypt(passwd, *salt_p);
 #endif
diff --git a/apps/speed.c b/apps/speed.c
index 9c896ec6f0..86cb9ff151 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -358,7 +358,7 @@ static const OPT_PAIR doit_choices[] = {
 #if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     {"rc4", D_RC4},
 #endif
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     {"des-cbc", D_CBC_DES},
     {"des-ede3", D_EDE3_DES},
 #endif
@@ -729,7 +729,7 @@ static int RC4_loop(void *args)
 }
 #endif
 
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
 static unsigned char DES_iv[8];
 static DES_key_schedule sch[3];
 static int DES_ncbc_encrypt_loop(void *args)
@@ -1722,7 +1722,7 @@ int speed_main(int argc, char **argv)
             doit[i] = 1;
             continue;
         }
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
         if (strcmp(algo, "des") == 0) {
             doit[D_CBC_DES] = doit[D_EDE3_DES] = 1;
             continue;
@@ -1945,7 +1945,7 @@ int speed_main(int argc, char **argv)
         loopargs[i].dsa_key[2] = get_dsa(2048);
     }
 #endif
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     if (doit[D_CBC_DES] || doit[D_EDE3_DES]) {
         static DES_cblock keys[] = {
             { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0 }, /* keys[0] */
@@ -2001,7 +2001,7 @@ int speed_main(int argc, char **argv)
         CAST_set_key(&cast_ks, 16, key16);
 #endif
 #ifndef SIGALRM
-# ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     BIO_printf(bio_err, "First we calculate the approximate speed ...\n");
     count = 10;
     do {
@@ -2397,7 +2397,7 @@ int speed_main(int argc, char **argv)
         }
     }
 #endif
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
     if (doit[D_CBC_DES]) {
         for (testnum = 0; testnum < size_num; testnum++) {
             print_message(names[D_CBC_DES], c[D_CBC_DES][testnum],
@@ -3501,7 +3501,7 @@ int speed_main(int argc, char **argv)
 #if !defined(OPENSSL_NO_RC4) && !defined(OPENSSL_NO_DEPRECATED_3_0)
         printf("%s ", RC4_options());
 #endif
-#ifndef OPENSSL_NO_DES
+#if !defined(OPENSSL_NO_DES) && !defined(OPENSSL_NO_DEPRECATED_3_0)
         printf("%s ", DES_options());
 #endif
 #ifndef OPENSSL_NO_DEPRECATED_3_0
diff --git a/apps/version.c b/apps/version.c
index 513bbc81af..83a726a814 100644
--- a/apps/version.c
+++ b/apps/version.c
@@ -15,9 +15,6 @@
 #include <openssl/evp.h>
 #include <openssl/crypto.h>
 #include <openssl/bn.h>
-#ifndef OPENSSL_NO_DES
-# include <openssl/des.h>
-#endif
 
 typedef enum OPTION_choice {
     OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
@@ -117,9 +114,6 @@ opthelp:
     if (options) {
         printf("options: ");
         printf(" %s", BN_options());
-#ifndef OPENSSL_NO_DES
-        printf(" %s", DES_options());
-#endif
         printf("\n");
     }
     if (cflags)
diff --git a/crypto/des/build.info b/crypto/des/build.info
index 40e874823c..8ce3daf37e 100644
--- a/crypto/des/build.info
+++ b/crypto/des/build.info
@@ -25,6 +25,13 @@ SOURCE[../../providers/libfips.a]=$COMMON
 DEFINE[../../libcrypto]=$DESDEF
 DEFINE[../../providers/libfips.a]=$DESDEF
 
+IF[{- $disabled{"deprecated"}
+      && !$disabled{"mdc2"}
+      && (defined $config{"api"} && $config{"api"} >= 30000) -}]
+  SOURCE[../../providers/liblegacy.a]=set_key.c $DESASM
+  DEFINE[../../providers/liblegacy.a]=$DESDEF
+ENDIF
+
 GENERATE[des_enc-sparc.S]=asm/des_enc.m4
 GENERATE[dest4-sparcv9.S]=asm/dest4-sparcv9.pl
 INCLUDE[dest4-sparcv9.o]=..
diff --git a/crypto/des/cbc_cksm.c b/crypto/des/cbc_cksm.c
index 1fb76b5562..aacbaa6512 100644
--- a/crypto/des/cbc_cksm.c
+++ b/crypto/des/cbc_cksm.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 DES_LONG DES_cbc_cksum(const unsigned char *in, DES_cblock *output,
diff --git a/crypto/des/cbc_enc.c b/crypto/des/cbc_enc.c
index ecb98f2e1f..ed68f37674 100644
--- a/crypto/des/cbc_enc.c
+++ b/crypto/des/cbc_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #define CBC_ENC_C__DONT_UPDATE_IV
 
 #include "ncbc_enc.c"           /* des_cbc_encrypt */
diff --git a/crypto/des/cfb64ede.c b/crypto/des/cfb64ede.c
index cb5dad2ca6..ad9469e713 100644
--- a/crypto/des/cfb64ede.c
+++ b/crypto/des/cfb64ede.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 /*
diff --git a/crypto/des/cfb64enc.c b/crypto/des/cfb64enc.c
index 7c44f2ac3f..21132e898a 100644
--- a/crypto/des/cfb64enc.c
+++ b/crypto/des/cfb64enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 /*
diff --git a/crypto/des/cfb_enc.c b/crypto/des/cfb_enc.c
index 8630cc4293..bfb5f5a186 100644
--- a/crypto/des/cfb_enc.c
+++ b/crypto/des/cfb_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "e_os.h"
 #include "des_local.h"
 #include <assert.h>
diff --git a/crypto/des/des_enc.c b/crypto/des/des_enc.c
index 5666c6e303..ed24595136 100644
--- a/crypto/des/des_enc.c
+++ b/crypto/des/des_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <openssl/crypto.h>
 #include "des_local.h"
 #include "spr.h"
diff --git a/crypto/des/ecb3_enc.c b/crypto/des/ecb3_enc.c
index 7244b7b588..02e6e9f73a 100644
--- a/crypto/des/ecb3_enc.c
+++ b/crypto/des/ecb3_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
diff --git a/crypto/des/ecb_enc.c b/crypto/des/ecb_enc.c
index 39b8237ce7..e161af68e4 100644
--- a/crypto/des/ecb_enc.c
+++ b/crypto/des/ecb_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 #include <openssl/opensslv.h>
 #include <openssl/bio.h>
diff --git a/crypto/des/fcrypt.c b/crypto/des/fcrypt.c
index 9aebf2847c..b38419617e 100644
--- a/crypto/des/fcrypt.c
+++ b/crypto/des/fcrypt.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 /* NOCW */
 #include <stdio.h>
 #ifdef _OSD_POSIX
diff --git a/crypto/des/fcrypt_b.c b/crypto/des/fcrypt_b.c
index 87ad1b3025..32b0fa6519 100644
--- a/crypto/des/fcrypt_b.c
+++ b/crypto/des/fcrypt_b.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <stdio.h>
 
 #define DES_FCRYPT
diff --git a/crypto/des/ofb64ede.c b/crypto/des/ofb64ede.c
index 284224df6c..80fb9d164a 100644
--- a/crypto/des/ofb64ede.c
+++ b/crypto/des/ofb64ede.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 /*
diff --git a/crypto/des/ofb64enc.c b/crypto/des/ofb64enc.c
index eec46ae7de..fc59c4e6c9 100644
--- a/crypto/des/ofb64enc.c
+++ b/crypto/des/ofb64enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 /*
diff --git a/crypto/des/ofb_enc.c b/crypto/des/ofb_enc.c
index 75100005ce..cd1fec83fe 100644
--- a/crypto/des/ofb_enc.c
+++ b/crypto/des/ofb_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 /*
diff --git a/crypto/des/pcbc_enc.c b/crypto/des/pcbc_enc.c
index 13df94218b..4e123535c0 100644
--- a/crypto/des/pcbc_enc.c
+++ b/crypto/des/pcbc_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,
diff --git a/crypto/des/qud_cksm.c b/crypto/des/qud_cksm.c
index 5123914852..c0e2fa39f8 100644
--- a/crypto/des/qud_cksm.c
+++ b/crypto/des/qud_cksm.c
@@ -13,6 +13,13 @@
  * only based on the code in this paper and is almost definitely not the same
  * as the MIT implementation.
  */
+
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 #define Q_B0(a) (((DES_LONG)(a)))
diff --git a/crypto/des/rand_key.c b/crypto/des/rand_key.c
index 7de9146fcc..38f04de166 100644
--- a/crypto/des/rand_key.c
+++ b/crypto/des/rand_key.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <openssl/des.h>
 #include <openssl/rand.h>
 
diff --git a/crypto/des/set_key.c b/crypto/des/set_key.c
index 7972d84ac2..dc9e8451f3 100644
--- a/crypto/des/set_key.c
+++ b/crypto/des/set_key.c
@@ -15,6 +15,13 @@
  * 1.1 added norm_expand_bits
  * 1.0 First working version
  */
+
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <openssl/crypto.h>
 #include "des_local.h"
 
diff --git a/crypto/des/str2key.c b/crypto/des/str2key.c
index d348c06d6b..2600c63d02 100644
--- a/crypto/des/str2key.c
+++ b/crypto/des/str2key.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <openssl/crypto.h>
 #include "des_local.h"
 
diff --git a/crypto/des/xcbc_enc.c b/crypto/des/xcbc_enc.c
index 8a952f63a6..861f71167d 100644
--- a/crypto/des/xcbc_enc.c
+++ b/crypto/des/xcbc_enc.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "des_local.h"
 
 /* RSA's DESX */
diff --git a/crypto/evp/e_des.c b/crypto/evp/e_des.c
index e5791f3447..a72ba85fce 100644
--- a/crypto/evp/e_des.c
+++ b/crypto/evp/e_des.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <stdio.h>
 #include "internal/cryptlib.h"
 #ifndef OPENSSL_NO_DES
diff --git a/crypto/evp/e_des3.c b/crypto/evp/e_des3.c
index 8f9eab427e..400366877b 100644
--- a/crypto/evp/e_des3.c
+++ b/crypto/evp/e_des3.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <stdio.h>
 #include "internal/cryptlib.h"
 #ifndef OPENSSL_NO_DES
diff --git a/crypto/evp/e_xcbc_d.c b/crypto/evp/e_xcbc_d.c
index d402606b6d..d7cd25c2e5 100644
--- a/crypto/evp/e_xcbc_d.c
+++ b/crypto/evp/e_xcbc_d.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <stdio.h>
 #include "internal/cryptlib.h"
 
diff --git a/doc/man3/DES_random_key.pod b/doc/man3/DES_random_key.pod
index ab9543ae4f..775611a8ed 100644
--- a/doc/man3/DES_random_key.pod
+++ b/doc/man3/DES_random_key.pod
@@ -16,6 +16,10 @@ DES_fcrypt, DES_crypt - DES encryption
 
  #include <openssl/des.h>
 
+Deprecated since OpenSSL 3.0, can be hidden entirely by defining
+B<OPENSSL_API_COMPAT> with a suitable version value, see
+L<openssl_user_macros(7)>:
+
  void DES_random_key(DES_cblock *ret);
 
  int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule);
@@ -94,6 +98,10 @@ DES_fcrypt, DES_crypt - DES encryption
 
 =head1 DESCRIPTION
 
+All of the functions described on this page are deprecated. Applications should
+instead use L<EVP_EncryptInit_ex(3)>, L<EVP_EncryptUpdate(3)> and
+L<EVP_EncryptFinal_ex(3)> or the equivalently named decrypt functions.
+
 This library contains a fast implementation of the DES encryption
 algorithm.
 
@@ -302,6 +310,8 @@ L<EVP_EncryptInit(3)>
 
 =head1 HISTORY
 
+All of these functions were deprecated in OpenSSL 3.0.
+
 The requirement that the B<salt> parameter to DES_crypt() and DES_fcrypt()
 be two ASCII characters was first enforced in
 OpenSSL 1.1.0.  Previous versions tried to use the letter uppercase B<A>
@@ -310,7 +320,7 @@ on some platforms.
 
 =head1 COPYRIGHT
 
-Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
+Copyright 2000-2020 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
diff --git a/include/openssl/des.h b/include/openssl/des.h
index 6bbf5828d0..bd5d5b4431 100644
--- a/include/openssl/des.h
+++ b/include/openssl/des.h
@@ -19,17 +19,18 @@
 # include <openssl/opensslconf.h>
 
 # ifndef OPENSSL_NO_DES
-# ifdef  __cplusplus
+#  ifdef  __cplusplus
 extern "C" {
-# endif
-# include <openssl/e_os2.h>
+#  endif
+#  include <openssl/e_os2.h>
 
+#  ifndef OPENSSL_NO_DEPRECATED_3_0
 typedef unsigned int DES_LONG;
 
-# ifdef OPENSSL_BUILD_SHLIBCRYPTO
-#  undef OPENSSL_EXTERN
-#  define OPENSSL_EXTERN OPENSSL_EXPORT
-# endif
+#   ifdef OPENSSL_BUILD_SHLIBCRYPTO
+#    undef OPENSSL_EXTERN
+#    define OPENSSL_EXTERN OPENSSL_EXPORT
+#   endif
 
 typedef unsigned char DES_cblock[8];
 typedef /* const */ unsigned char const_DES_cblock[8];
@@ -48,50 +49,61 @@ typedef struct DES_ks {
     } ks[16];
 } DES_key_schedule;
 
-# define DES_KEY_SZ      (sizeof(DES_cblock))
-# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule))
+#   define DES_KEY_SZ      (sizeof(DES_cblock))
+#   define DES_SCHEDULE_SZ (sizeof(DES_key_schedule))
 
-# define DES_ENCRYPT     1
-# define DES_DECRYPT     0
+#   define DES_ENCRYPT     1
+#   define DES_DECRYPT     0
 
-# define DES_CBC_MODE    0
-# define DES_PCBC_MODE   1
+#   define DES_CBC_MODE    0
+#   define DES_PCBC_MODE   1
 
-# define DES_ecb2_encrypt(i,o,k1,k2,e) \
+#   define DES_ecb2_encrypt(i,o,k1,k2,e) \
         DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e))
 
-# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \
+#   define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \
         DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e))
 
-# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \
+#   define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \
         DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e))
 
-# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
+#   define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \
         DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n))
 
-const char *DES_options(void);
-void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output,
-                      DES_key_schedule *ks1, DES_key_schedule *ks2,
-                      DES_key_schedule *ks3, int enc);
-DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output,
-                       long length, DES_key_schedule *schedule,
-                       const_DES_cblock *ivec);
+#   define DES_fixup_key_parity DES_set_odd_parity
+#  endif
+
+DEPRECATEDIN_3_0(const char *DES_options(void))
+DEPRECATEDIN_3_0(void DES_ecb3_encrypt(const_DES_cblock *input,
+                                       DES_cblock *output,
+                                       DES_key_schedule *ks1,
+                                       DES_key_schedule *ks2,
+                                       DES_key_schedule *ks3, int enc))
+DEPRECATEDIN_3_0(DES_LONG DES_cbc_cksum(const unsigned char *input,
+                                        DES_cblock *output, long length,
+                                        DES_key_schedule *schedule,
+                                        const_DES_cblock *ivec))
 /* DES_cbc_encrypt does not update the IV!  Use DES_ncbc_encrypt instead. */
-void DES_cbc_encrypt(const unsigned char *input, unsigned char *output,
-                     long length, DES_key_schedule *schedule,
-                     DES_cblock *ivec, int enc);
-void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output,
-                      long length, DES_key_schedule *schedule,
-                      DES_cblock *ivec, int enc);
-void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output,
-                      long length, DES_key_schedule *schedule,
-                      DES_cblock *ivec, const_DES_cblock *inw,
-                      const_DES_cblock *outw, int enc);
-void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
-                     long length, DES_key_schedule *schedule,
-                     DES_cblock *ivec, int enc);
-void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,
-                     DES_key_schedule *ks, int enc);
+DEPRECATEDIN_3_0(void DES_cbc_encrypt(const unsigned char *input,
+                                      unsigned char *output, long length,
+                                      DES_key_schedule *schedule,
+                                      DES_cblock *ivec, int enc))
+DEPRECATEDIN_3_0(void DES_ncbc_encrypt(const unsigned char *input,
+                                       unsigned char *output, long length,
+                                       DES_key_schedule *schedule,
+                                       DES_cblock *ivec, int enc))
+DEPRECATEDIN_3_0(void DES_xcbc_encrypt(const unsigned char *input,
+                                       unsigned char *output, long length,
+                                       DES_key_schedule *schedule,
+                                       DES_cblock *ivec, const_DES_cblock *inw,
+                                       const_DES_cblock *outw, int enc))
+DEPRECATEDIN_3_0(void DES_cfb_encrypt(const unsigned char *in,
+                                      unsigned char *out, int numbits,
+                                      long length, DES_key_schedule *schedule,
+                                      DES_cblock *ivec, int enc))
+DEPRECATEDIN_3_0(void DES_ecb_encrypt(const_DES_cblock *input,
+                                      DES_cblock *output, DES_key_schedule *ks,
+                                      int enc))
 
 /*
  * This is the DES encryption function that gets called by just about every
@@ -103,7 +115,8 @@ void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output,
  * long's and ks is the DES_key_schedule to use.  enc, is non zero specifies
  * encryption, zero if decryption.
  */
-void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc);
+DEPRECATEDIN_3_0(void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks,
+                                   int enc))
 
 /*
  * This functions is the same as DES_encrypt1() except that the DES initial
@@ -113,64 +126,82 @@ void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc);
  * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1()
  * DES_encrypt1() DES_encrypt1() except faster :-).
  */
-void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc);
-
-void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,
-                  DES_key_schedule *ks2, DES_key_schedule *ks3);
-void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
-                  DES_key_schedule *ks2, DES_key_schedule *ks3);
-void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output,
-                          long length,
-                          DES_key_schedule *ks1, DES_key_schedule *ks2,
-                          DES_key_schedule *ks3, DES_cblock *ivec, int enc);
-void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out,
-                            long length, DES_key_schedule *ks1,
-                            DES_key_schedule *ks2, DES_key_schedule *ks3,
-                            DES_cblock *ivec, int *num, int enc);
-void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out,
-                          int numbits, long length, DES_key_schedule *ks1,
-                          DES_key_schedule *ks2, DES_key_schedule *ks3,
-                          DES_cblock *ivec, int enc);
-void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out,
-                            long length, DES_key_schedule *ks1,
-                            DES_key_schedule *ks2, DES_key_schedule *ks3,
-                            DES_cblock *ivec, int *num);
-char *DES_fcrypt(const char *buf, const char *salt, char *ret);
-char *DES_crypt(const char *buf, const char *salt);
-void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits,
-                     long length, DES_key_schedule *schedule,
-                     DES_cblock *ivec);
-void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output,
-                      long length, DES_key_schedule *schedule,
-                      DES_cblock *ivec, int enc);
-DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[],
-                        long length, int out_count, DES_cblock *seed);
-int DES_random_key(DES_cblock *ret);
-void DES_set_odd_parity(DES_cblock *key);
-int DES_check_key_parity(const_DES_cblock *key);
-int DES_is_weak_key(const_DES_cblock *key);
+DEPRECATEDIN_3_0(void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks,
+                                   int enc))
+
+DEPRECATEDIN_3_0(void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1,
+                  DES_key_schedule *ks2, DES_key_schedule *ks3))
+DEPRECATEDIN_3_0(void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1,
+                  DES_key_schedule *ks2, DES_key_schedule *ks3))
+DEPRECATEDIN_3_0(void DES_ede3_cbc_encrypt(const unsigned char *input,
+                                           unsigned char *output, long length,
+                                           DES_key_schedule *ks1,
+                                           DES_key_schedule *ks2,
+                                           DES_key_schedule *ks3,
+                                           DES_cblock *ivec, int enc))
+DEPRECATEDIN_3_0(void DES_ede3_cfb64_encrypt(const unsigned char *in,
+                                             unsigned char *out, long length,
+                                             DES_key_schedule *ks1,
+                                             DES_key_schedule *ks2,
+                                             DES_key_schedule *ks3,
+                                             DES_cblock *ivec, int *num,
+                                             int enc))
+DEPRECATEDIN_3_0(void DES_ede3_cfb_encrypt(const unsigned char *in,
+                                           unsigned char *out, int numbits,
+                                           long length, DES_key_schedule *ks1,
+                                           DES_key_schedule *ks2,
+                                           DES_key_schedule *ks3,
+                                           DES_cblock *ivec, int enc))
+DEPRECATEDIN_3_0(void DES_ede3_ofb64_encrypt(const unsigned char *in,
+                                             unsigned char *out, long length,
+                                             DES_key_schedule *ks1,
+                                             DES_key_schedule *ks2,
+                                             DES_key_schedule *ks3,
+                                             DES_cblock *ivec, int *num))
+DEPRECATEDIN_3_0(char *DES_fcrypt(const char *buf, const char *salt, char *ret))
+DEPRECATEDIN_3_0(char *DES_crypt(const char *buf, const char *salt))
+DEPRECATEDIN_3_0(void DES_ofb_encrypt(const unsigned char *in,
+                                      unsigned char *out, int numbits,
+                                      long length, DES_key_schedule *schedule,
+                                      DES_cblock *ivec))
+DEPRECATEDIN_3_0(void DES_pcbc_encrypt(const unsigned char *input,
+                                       unsigned char *output, long length,
+                                       DES_key_schedule *schedule,
+                                       DES_cblock *ivec, int enc))
+DEPRECATEDIN_3_0(DES_LONG DES_quad_cksum(const unsigned char *input,
+                                         DES_cblock output[], long length,
+                                         int out_count, DES_cblock *seed))
+DEPRECATEDIN_3_0(int DES_random_key(DES_cblock *ret))
+DEPRECATEDIN_3_0(void DES_set_odd_parity(DES_cblock *key))
+DEPRECATEDIN_3_0(int DES_check_key_parity(const_DES_cblock *key))
+DEPRECATEDIN_3_0(int DES_is_weak_key(const_DES_cblock *key))
 /*
  * DES_set_key (= set_key = DES_key_sched = key_sched) calls
  * DES_set_key_checked
  */
-int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule);
-int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule);
-int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule);
-void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule);
-void DES_string_to_key(const char *str, DES_cblock *key);
-void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2);
-void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out,
-                       long length, DES_key_schedule *schedule,
-                       DES_cblock *ivec, int *num, int enc);
-void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out,
-                       long length, DES_key_schedule *schedule,
-                       DES_cblock *ivec, int *num);
-
-# define DES_fixup_key_parity DES_set_odd_parity
-
-# ifdef  __cplusplus
+DEPRECATEDIN_3_0(int DES_set_key(const_DES_cblock *key,
+                                 DES_key_schedule *schedule))
+DEPRECATEDIN_3_0(int DES_key_sched(const_DES_cblock *key,
+                                   DES_key_schedule *schedule))
+DEPRECATEDIN_3_0(int DES_set_key_checked(const_DES_cblock *key,
+                                         DES_key_schedule *schedule))
+DEPRECATEDIN_3_0(void DES_set_key_unchecked(const_DES_cblock *key,
+                                            DES_key_schedule *schedule))
+DEPRECATEDIN_3_0(void DES_string_to_key(const char *str, DES_cblock *key))
+DEPRECATEDIN_3_0(void DES_string_to_2keys(const char *str, DES_cblock *key1,
+                                          DES_cblock *key2))
+DEPRECATEDIN_3_0(void DES_cfb64_encrypt(const unsigned char *in,
+                                        unsigned char *out, long length,
+                                        DES_key_schedule *schedule,
+                                        DES_cblock *ivec, int *num, int enc))
+DEPRECATEDIN_3_0(void DES_ofb64_encrypt(const unsigned char *in,
+                                        unsigned char *out, long length,
+                                        DES_key_schedule *schedule,
+                                        DES_cblock *ivec, int *num))
+
+#  ifdef  __cplusplus
 }
-# endif
+#  endif
 # endif
 
 #endif
diff --git a/providers/implementations/ciphers/cipher_des.c b/providers/implementations/ciphers/cipher_des.c
index 74539d3da4..d0547b7060 100644
--- a/providers/implementations/ciphers/cipher_des.c
+++ b/providers/implementations/ciphers/cipher_des.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "prov/ciphercommon.h"
 #include "cipher_des.h"
 #include <openssl/rand.h>
diff --git a/providers/implementations/ciphers/cipher_des_hw.c b/providers/implementations/ciphers/cipher_des_hw.c
index c3a67080fd..c465c42391 100644
--- a/providers/implementations/ciphers/cipher_des_hw.c
+++ b/providers/implementations/ciphers/cipher_des_hw.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "prov/ciphercommon.h"
 #include "cipher_des.h"
 
diff --git a/providers/implementations/ciphers/cipher_desx.c b/providers/implementations/ciphers/cipher_desx.c
index b8447d2c3f..2a67d77aec 100644
--- a/providers/implementations/ciphers/cipher_desx.c
+++ b/providers/implementations/ciphers/cipher_desx.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "cipher_tdes_default.h"
 #include "prov/implementations.h"
 
diff --git a/providers/implementations/ciphers/cipher_desx_hw.c b/providers/implementations/ciphers/cipher_desx_hw.c
index ef1b3b0694..afc01b8659 100644
--- a/providers/implementations/ciphers/cipher_desx_hw.c
+++ b/providers/implementations/ciphers/cipher_desx_hw.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <openssl/des.h>
 #include "cipher_tdes_default.h"
 
diff --git a/providers/implementations/ciphers/cipher_tdes.c b/providers/implementations/ciphers/cipher_tdes.c
index 80afcd5fd9..ea0c987a80 100644
--- a/providers/implementations/ciphers/cipher_tdes.c
+++ b/providers/implementations/ciphers/cipher_tdes.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "prov/ciphercommon.h"
 #include "cipher_tdes.h"
 #include <openssl/rand.h>
diff --git a/providers/implementations/ciphers/cipher_tdes_default.c b/providers/implementations/ciphers/cipher_tdes_default.c
index 9aefef26b6..4d449804ca 100644
--- a/providers/implementations/ciphers/cipher_tdes_default.c
+++ b/providers/implementations/ciphers/cipher_tdes_default.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "cipher_tdes_default.h"
 #include "prov/implementations.h"
 
diff --git a/providers/implementations/ciphers/cipher_tdes_default_hw.c b/providers/implementations/ciphers/cipher_tdes_default_hw.c
index 73169a0e56..5b9e4997f6 100644
--- a/providers/implementations/ciphers/cipher_tdes_default_hw.c
+++ b/providers/implementations/ciphers/cipher_tdes_default_hw.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "cipher_tdes_default.h"
 
 #define ks1 tks.ks[0]
diff --git a/providers/implementations/ciphers/cipher_tdes_hw.c b/providers/implementations/ciphers/cipher_tdes_hw.c
index 208e83df0f..c7fe393653 100644
--- a/providers/implementations/ciphers/cipher_tdes_hw.c
+++ b/providers/implementations/ciphers/cipher_tdes_hw.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "prov/ciphercommon.h"
 #include "cipher_tdes.h"
 
diff --git a/providers/implementations/ciphers/cipher_tdes_wrap.c b/providers/implementations/ciphers/cipher_tdes_wrap.c
index 9db60ad2c7..e912b8766c 100644
--- a/providers/implementations/ciphers/cipher_tdes_wrap.c
+++ b/providers/implementations/ciphers/cipher_tdes_wrap.c
@@ -8,7 +8,7 @@
  */
 
 /*
- * SHA-1 low level APIs are deprecated for public use, but still ok for
+ * DES and SHA-1 low level APIs are deprecated for public use, but still ok for
  * internal use.
  */
 #include "internal/deprecated.h"
diff --git a/providers/implementations/ciphers/cipher_tdes_wrap_hw.c b/providers/implementations/ciphers/cipher_tdes_wrap_hw.c
index 09155b6f48..7790e1e03a 100644
--- a/providers/implementations/ciphers/cipher_tdes_wrap_hw.c
+++ b/providers/implementations/ciphers/cipher_tdes_wrap_hw.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include "cipher_tdes_default.h"
 
 #define cipher_hw_tdes_wrap_initkey cipher_hw_tdes_ede3_initkey
diff --git a/providers/implementations/kdfs/krb5kdf.c b/providers/implementations/kdfs/krb5kdf.c
index 08a9495929..ed111708f4 100644
--- a/providers/implementations/kdfs/krb5kdf.c
+++ b/providers/implementations/kdfs/krb5kdf.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.  We access the DES_set_odd_parity(3) function here.
+ */
+#include "internal/deprecated.h"
+
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
diff --git a/test/build.info b/test/build.info
index cf03ce4c1a..7803488d57 100644
--- a/test/build.info
+++ b/test/build.info
@@ -114,10 +114,6 @@ IF[{- !$disabled{tests} -}]
   INCLUDE[hmactest]=../include ../apps/include
   DEPEND[hmactest]=../libcrypto libtestutil.a
 
-  SOURCE[destest]=destest.c
-  INCLUDE[destest]=../include ../apps/include
-  DEPEND[destest]=../libcrypto libtestutil.a
-
   SOURCE[mdc2test]=mdc2test.c
   INCLUDE[mdc2test]=../include ../apps/include
   DEPEND[mdc2test]=../libcrypto libtestutil.a
@@ -581,6 +577,10 @@ IF[{- !$disabled{tests} -}]
     INCLUDE[sm4_internal_test]=.. ../include ../apps/include ../crypto/include
     DEPEND[sm4_internal_test]=../libcrypto.a libtestutil.a
 
+    SOURCE[destest]=destest.c
+    INCLUDE[destest]=../include ../apps/include
+    DEPEND[destest]=../libcrypto.a libtestutil.a
+
     SOURCE[rc2test]=rc2test.c
     INCLUDE[rc2test]=../include ../apps/include
     DEPEND[rc2test]=../libcrypto.a libtestutil.a
diff --git a/test/destest.c b/test/destest.c
index fe56d9a76b..648bd3521d 100644
--- a/test/destest.c
+++ b/test/destest.c
@@ -7,6 +7,12 @@
  * https://www.openssl.org/source/license.html
  */
 
+/*
+ * DES low level APIs are deprecated for public use, but still ok for internal
+ * use.
+ */
+#include "internal/deprecated.h"
+
 #include <openssl/e_os2.h>
 #include <string.h>
 
diff --git a/test/recipes/20-test_passwd.t b/test/recipes/20-test_passwd.t
index fb1035b918..efbb0e8b90 100644
--- a/test/recipes/20-test_passwd.t
+++ b/test/recipes/20-test_passwd.t
@@ -76,11 +76,11 @@ my @sha_tests =
        expected => '$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1xhLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX.' }
     );
 
-plan tests => (disabled("des") ? 9 : 11) + scalar @sha_tests;
+plan tests => (disabled("des") || disabled("deprecated") ? 9 : 11) + scalar @sha_tests;
 
 
 ok(compare1stline_re([qw{openssl passwd password}], '^.{13}\R$'),
-   'crypt password with random salt') if !disabled("des");
+   'crypt password with random salt') if !disabled("des") && !disabled("deprecated");
 ok(compare1stline_re([qw{openssl passwd -1 password}], '^\$1\$.{8}\$.{22}\R$'),
    'BSD style MD5 password with random salt');
 ok(compare1stline_re([qw{openssl passwd -apr1 password}], '^\$apr1\$.{8}\$.{22}\R$'),
@@ -91,7 +91,7 @@ ok(compare1stline_re([qw{openssl passwd -6 password}], '^\$6\$.{16}\$.{86}\R$'),
    'Apache SHA512 password with random salt');
 
 ok(compare1stline([qw{openssl passwd -salt xx password}], 'xxj31ZMTZzkVA'),
-   'crypt password with salt xx') if !disabled("des");
+   'crypt password with salt xx') if !disabled("des") && !disabled("deprecated");
 ok(compare1stline([qw{openssl passwd -salt xxxxxxxx -1 password}], '$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.'),
    'BSD style MD5 password with salt xxxxxxxx');
 ok(compare1stline([qw{openssl passwd -salt xxxxxxxx -apr1 password}], '$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0'),
diff --git a/util/libcrypto.num b/util/libcrypto.num
index 439a7a11c7..8c3fdc0e7f 100644
--- a/util/libcrypto.num
+++ b/util/libcrypto.num
@@ -5,7 +5,7 @@ X509_STORE_CTX_get0_chain               4	3_0_0	EXIST::FUNCTION:
 COMP_expand_block                       5	3_0_0	EXIST::FUNCTION:COMP
 X509V3_get_string                       6	3_0_0	EXIST::FUNCTION:
 TS_MSG_IMPRINT_free                     7	3_0_0	EXIST::FUNCTION:TS
-DES_xcbc_encrypt                        8	3_0_0	EXIST::FUNCTION:DES
+DES_xcbc_encrypt                        8	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 TS_RESP_CTX_new                         9	3_0_0	EXIST::FUNCTION:TS
 PKCS5_PBE_add                           10	3_0_0	EXIST::FUNCTION:
 i2d_DSAparams                           11	3_0_0	EXIST::FUNCTION:DSA
@@ -18,7 +18,7 @@ i2d_ASN1_OCTET_STRING                   17	3_0_0	EXIST::FUNCTION:
 EC_KEY_set_private_key                  18	3_0_0	EXIST::FUNCTION:EC
 SRP_VBASE_get_by_user                   19	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0,SRP
 Camellia_cfb128_encrypt                 21	3_0_0	EXIST::FUNCTION:CAMELLIA,DEPRECATEDIN_3_0
-DES_ncbc_encrypt                        22	3_0_0	EXIST::FUNCTION:DES
+DES_ncbc_encrypt                        22	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 TS_REQ_get_ext_count                    23	3_0_0	EXIST::FUNCTION:TS
 EVP_aes_128_ocb                         24	3_0_0	EXIST::FUNCTION:OCB
 ASN1_item_d2i_fp                        25	3_0_0	EXIST::FUNCTION:STDIO
@@ -243,7 +243,7 @@ ENGINE_get_pkey_asn1_meths              247	3_0_0	EXIST::FUNCTION:ENGINE
 DSO_merge                               248	3_0_0	EXIST::FUNCTION:
 RSA_get_ex_data                         249	3_0_0	EXIST::FUNCTION:RSA
 EVP_PKEY_meth_get_decrypt               250	3_0_0	EXIST::FUNCTION:
-DES_cfb_encrypt                         251	3_0_0	EXIST::FUNCTION:DES
+DES_cfb_encrypt                         251	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 CMS_SignerInfo_set1_signer_cert         252	3_0_0	EXIST::FUNCTION:CMS
 X509_CRL_http_nbio                      253	3_0_0	EXIST::FUNCTION:OCSP
 ENGINE_register_all_ciphers             254	3_0_0	EXIST::FUNCTION:ENGINE
@@ -478,7 +478,7 @@ EVP_PKEY_set1_RSA                       487	3_0_0	EXIST::FUNCTION:RSA
 CMS_SignerInfo_get0_md_ctx              488	3_0_0	EXIST::FUNCTION:CMS
 X509_STORE_set_trust                    489	3_0_0	EXIST::FUNCTION:
 d2i_POLICYINFO                          490	3_0_0	EXIST::FUNCTION:
-DES_cbc_encrypt                         491	3_0_0	EXIST::FUNCTION:DES
+DES_cbc_encrypt                         491	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 BN_GF2m_mod_sqr_arr                     492	3_0_0	EXIST::FUNCTION:EC2M
 ASN1_PRINTABLESTRING_it                 493	3_0_0	EXIST::FUNCTION:
 BIO_f_cipher                            494	3_0_0	EXIST::FUNCTION:
@@ -494,7 +494,7 @@ FIPS_mode_set                           503	3_0_0	EXIST::FUNCTION:
 X509_VERIFY_PARAM_add0_policy           504	3_0_0	EXIST::FUNCTION:
 PKCS7_cert_from_signer_info             505	3_0_0	EXIST::FUNCTION:
 X509_TRUST_get_trust                    506	3_0_0	EXIST::FUNCTION:
-DES_string_to_key                       507	3_0_0	EXIST::FUNCTION:DES
+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
@@ -602,7 +602,7 @@ EVP_PKEY_get_attr_count                 616	3_0_0	EXIST::FUNCTION:
 X509_REVOKED_get_ext_by_critical        617	3_0_0	EXIST::FUNCTION:
 X509at_get_attr                         618	3_0_0	EXIST::FUNCTION:
 X509_PUBKEY_it                          619	3_0_0	EXIST::FUNCTION:
-DES_ede3_ofb64_encrypt                  620	3_0_0	EXIST::FUNCTION:DES
+DES_ede3_ofb64_encrypt                  620	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EC_KEY_METHOD_get_compute_key           621	3_0_0	EXIST::FUNCTION:EC
 RC2_cfb64_encrypt                       622	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RC2
 EVP_EncryptFinal_ex                     623	3_0_0	EXIST::FUNCTION:
@@ -823,7 +823,7 @@ OPENSSL_LH_doall_arg                    842	3_0_0	EXIST::FUNCTION:
 OCSP_REQUEST_get_ext_by_NID             843	3_0_0	EXIST::FUNCTION:OCSP
 X509_REQ_get_attr_by_NID                844	3_0_0	EXIST::FUNCTION:
 PBE2PARAM_new                           845	3_0_0	EXIST::FUNCTION:
-DES_ecb_encrypt                         846	3_0_0	EXIST::FUNCTION:DES
+DES_ecb_encrypt                         846	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_camellia_256_ecb                    847	3_0_0	EXIST::FUNCTION:CAMELLIA
 PEM_read_RSA_PUBKEY                     848	3_0_0	EXIST::FUNCTION:RSA,STDIO
 d2i_NETSCAPE_SPKAC                      849	3_0_0	EXIST::FUNCTION:
@@ -886,7 +886,7 @@ EVP_camellia_128_cbc                    907	3_0_0	EXIST::FUNCTION:CAMELLIA
 COMP_zlib                               908	3_0_0	EXIST::FUNCTION:COMP
 EVP_read_pw_string                      909	3_0_0	EXIST::FUNCTION:
 i2d_ASN1_NULL                           910	3_0_0	EXIST::FUNCTION:
-DES_encrypt1                            911	3_0_0	EXIST::FUNCTION:DES
+DES_encrypt1                            911	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 BN_mod_lshift1_quick                    912	3_0_0	EXIST::FUNCTION:
 BN_get_rfc3526_prime_6144               913	3_0_0	EXIST::FUNCTION:
 OBJ_obj2txt                             914	3_0_0	EXIST::FUNCTION:
@@ -942,7 +942,7 @@ d2i_RSA_PUBKEY_bio                      965	3_0_0	EXIST::FUNCTION:RSA
 TS_RESP_dup                             966	3_0_0	EXIST::FUNCTION:TS
 ERR_set_error_data                      967	3_0_0	EXIST::FUNCTION:
 BN_RECP_CTX_new                         968	3_0_0	EXIST::FUNCTION:
-DES_options                             969	3_0_0	EXIST::FUNCTION:DES
+DES_options                             969	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 IPAddressChoice_it                      970	3_0_0	EXIST::FUNCTION:RFC3779
 ASN1_UNIVERSALSTRING_it                 971	3_0_0	EXIST::FUNCTION:
 d2i_DSAPublicKey                        972	3_0_0	EXIST::FUNCTION:DSA
@@ -1027,7 +1027,7 @@ EC_KEY_METHOD_set_keygen                1053	3_0_0	EXIST::FUNCTION:EC
 CRYPTO_free                             1054	3_0_0	EXIST::FUNCTION:
 BN_GF2m_mod_exp                         1055	3_0_0	EXIST::FUNCTION:EC2M
 OPENSSL_buf2hexstr                      1056	3_0_0	EXIST::FUNCTION:
-DES_encrypt2                            1057	3_0_0	EXIST::FUNCTION:DES
+DES_encrypt2                            1057	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 DH_up_ref                               1058	3_0_0	EXIST::FUNCTION:DH
 RC2_ofb64_encrypt                       1059	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RC2
 PKCS12_pbe_crypt                        1060	3_0_0	EXIST::FUNCTION:
@@ -1046,7 +1046,7 @@ ENGINE_get_EC                           1072	3_0_0	EXIST::FUNCTION:ENGINE
 ASN1_STRING_copy                        1073	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_encrypt_old                    1074	3_0_0	EXIST::FUNCTION:
 OPENSSL_LH_free                         1075	3_0_0	EXIST::FUNCTION:
-DES_is_weak_key                         1076	3_0_0	EXIST::FUNCTION:DES
+DES_is_weak_key                         1076	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_PKEY_verify                         1077	3_0_0	EXIST::FUNCTION:
 ERR_load_BIO_strings                    1078	3_0_0	EXIST::FUNCTION:
 BIO_nread                               1079	3_0_0	EXIST::FUNCTION:
@@ -1123,7 +1123,7 @@ BN_is_prime_fasttest                    1149	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_
 EC_POINT_dup                            1150	3_0_0	EXIST::FUNCTION:EC
 PKCS5_v2_scrypt_keyivgen                1151	3_0_0	EXIST::FUNCTION:SCRYPT
 X509_STORE_CTX_set0_param               1152	3_0_0	EXIST::FUNCTION:
-DES_check_key_parity                    1153	3_0_0	EXIST::FUNCTION:DES
+DES_check_key_parity                    1153	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_aes_256_ocb                         1154	3_0_0	EXIST::FUNCTION:OCB
 X509_VAL_free                           1155	3_0_0	EXIST::FUNCTION:
 X509_STORE_CTX_get1_certs               1156	3_0_0	EXIST::FUNCTION:
@@ -1166,12 +1166,12 @@ PEM_bytes_read_bio                      1192	3_0_0	EXIST::FUNCTION:
 X509_signature_dump                     1193	3_0_0	EXIST::FUNCTION:
 TS_RESP_CTX_set_def_policy              1194	3_0_0	EXIST::FUNCTION:TS
 RAND_pseudo_bytes                       1195	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_1_1_0
-DES_ofb_encrypt                         1196	3_0_0	EXIST::FUNCTION:DES
+DES_ofb_encrypt                         1196	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_add_digest                          1197	3_0_0	EXIST::FUNCTION:
 ASN1_item_sign_ctx                      1198	3_0_0	EXIST::FUNCTION:
 BIO_dump_indent_cb                      1199	3_0_0	EXIST::FUNCTION:
 X509_VERIFY_PARAM_set_depth             1200	3_0_0	EXIST::FUNCTION:
-DES_ecb3_encrypt                        1201	3_0_0	EXIST::FUNCTION:DES
+DES_ecb3_encrypt                        1201	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 OBJ_obj2nid                             1202	3_0_0	EXIST::FUNCTION:
 PKCS12_SAFEBAG_free                     1203	3_0_0	EXIST::FUNCTION:
 EVP_cast5_cfb64                         1204	3_0_0	EXIST::FUNCTION:CAST
@@ -1309,7 +1309,7 @@ Camellia_ctr128_encrypt                 1337	3_0_0	EXIST::FUNCTION:CAMELLIA,DEPR
 X509_LOOKUP_new                         1338	3_0_0	EXIST::FUNCTION:
 AUTHORITY_INFO_ACCESS_new               1339	3_0_0	EXIST::FUNCTION:
 CRYPTO_mem_leaks_fp                     1340	3_0_0	EXIST::FUNCTION:CRYPTO_MDEBUG,DEPRECATEDIN_3_0,STDIO
-DES_set_key_unchecked                   1341	3_0_0	EXIST::FUNCTION:DES
+DES_set_key_unchecked                   1341	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 BN_free                                 1342	3_0_0	EXIST::FUNCTION:
 EVP_aes_128_cfb1                        1343	3_0_0	EXIST::FUNCTION:
 EC_KEY_get0_group                       1344	3_0_0	EXIST::FUNCTION:EC
@@ -1531,7 +1531,7 @@ OPENSSL_sk_delete                       1564	3_0_0	EXIST::FUNCTION:
 TS_RESP_CTX_set_extension_cb            1565	3_0_0	EXIST::FUNCTION:TS
 EVP_CIPHER_CTX_nid                      1566	3_0_0	EXIST::FUNCTION:
 TS_RESP_CTX_add_md                      1567	3_0_0	EXIST::FUNCTION:TS
-DES_set_key                             1568	3_0_0	EXIST::FUNCTION:DES
+DES_set_key                             1568	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 X509V3_extensions_print                 1569	3_0_0	EXIST::FUNCTION:
 PEM_do_header                           1570	3_0_0	EXIST::FUNCTION:
 i2d_re_X509_CRL_tbs                     1571	3_0_0	EXIST::FUNCTION:
@@ -1624,9 +1624,9 @@ X509V3_add_value_uchar                  1661	3_0_0	EXIST::FUNCTION:
 BIO_asn1_get_suffix                     1662	3_0_0	EXIST::FUNCTION:
 X509_VERIFY_PARAM_clear_flags           1663	3_0_0	EXIST::FUNCTION:
 X509_NAME_add_entry_by_txt              1664	3_0_0	EXIST::FUNCTION:
-DES_ede3_cfb_encrypt                    1665	3_0_0	EXIST::FUNCTION:DES
+DES_ede3_cfb_encrypt                    1665	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 i2d_CMS_bio_stream                      1667	3_0_0	EXIST::FUNCTION:CMS
-DES_quad_cksum                          1668	3_0_0	EXIST::FUNCTION:DES
+DES_quad_cksum                          1668	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 X509_ATTRIBUTE_create_by_NID            1669	3_0_0	EXIST::FUNCTION:
 TS_VERIFY_CTX_free                      1670	3_0_0	EXIST::FUNCTION:TS
 EC_KEY_up_ref                           1671	3_0_0	EXIST::FUNCTION:EC
@@ -2310,7 +2310,7 @@ BN_bn2lebinpad                          2358	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_up_ref                         2359	3_0_0	EXIST::FUNCTION:
 X509_getm_notBefore                     2360	3_0_0	EXIST::FUNCTION:
 BN_nist_mod_224                         2361	3_0_0	EXIST::FUNCTION:
-DES_decrypt3                            2362	3_0_0	EXIST::FUNCTION:DES
+DES_decrypt3                            2362	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 OTHERNAME_it                            2363	3_0_0	EXIST::FUNCTION:
 X509at_add1_attr_by_txt                 2364	3_0_0	EXIST::FUNCTION:
 PKCS7_SIGN_ENVELOPE_free                2365	3_0_0	EXIST::FUNCTION:
@@ -2321,7 +2321,7 @@ X509_LOOKUP_by_issuer_serial            2369	3_0_0	EXIST::FUNCTION:
 ASN1_BMPSTRING_free                     2370	3_0_0	EXIST::FUNCTION:
 BIO_new_accept                          2371	3_0_0	EXIST::FUNCTION:SOCK
 GENERAL_NAME_new                        2372	3_0_0	EXIST::FUNCTION:
-DES_encrypt3                            2373	3_0_0	EXIST::FUNCTION:DES
+DES_encrypt3                            2373	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 PKCS7_get_signer_info                   2374	3_0_0	EXIST::FUNCTION:
 ASN1_OCTET_STRING_set                   2375	3_0_0	EXIST::FUNCTION:
 BN_mask_bits                            2376	3_0_0	EXIST::FUNCTION:
@@ -2508,7 +2508,7 @@ d2i_EC_PUBKEY_fp                        2561	3_0_0	EXIST::FUNCTION:EC,STDIO
 i2d_OCSP_SIGNATURE                      2562	3_0_0	EXIST::FUNCTION:OCSP
 i2d_X509_EXTENSION                      2563	3_0_0	EXIST::FUNCTION:
 PEM_read_bio_X509                       2564	3_0_0	EXIST::FUNCTION:
-DES_key_sched                           2565	3_0_0	EXIST::FUNCTION:DES
+DES_key_sched                           2565	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 GENERAL_NAME_dup                        2566	3_0_0	EXIST::FUNCTION:
 X509_STORE_CTX_get1_crls                2567	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_meth_set_verify                2568	3_0_0	EXIST::FUNCTION:
@@ -2668,7 +2668,7 @@ PEM_write_PKCS8PrivateKey               2724	3_0_0	EXIST::FUNCTION:STDIO
 ENGINE_new                              2725	3_0_0	EXIST::FUNCTION:ENGINE
 X509_check_issued                       2726	3_0_0	EXIST::FUNCTION:
 EVP_CIPHER_CTX_iv_length                2727	3_0_0	EXIST::FUNCTION:
-DES_string_to_2keys                     2728	3_0_0	EXIST::FUNCTION:DES
+DES_string_to_2keys                     2728	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_PKEY_copy_parameters                2729	3_0_0	EXIST::FUNCTION:
 CMS_ContentInfo_print_ctx               2730	3_0_0	EXIST::FUNCTION:CMS
 d2i_PKCS7_SIGNED                        2731	3_0_0	EXIST::FUNCTION:
@@ -2732,7 +2732,7 @@ SHA512_Final                            2790	3_0_0	EXIST::FUNCTION:
 X509_VERIFY_PARAM_set1_host             2791	3_0_0	EXIST::FUNCTION:
 OCSP_resp_find_status                   2792	3_0_0	EXIST::FUNCTION:OCSP
 d2i_ASN1_T61STRING                      2793	3_0_0	EXIST::FUNCTION:
-DES_pcbc_encrypt                        2794	3_0_0	EXIST::FUNCTION:DES
+DES_pcbc_encrypt                        2794	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_PKEY_print_params                   2795	3_0_0	EXIST::FUNCTION:
 BN_get0_nist_prime_192                  2796	3_0_0	EXIST::FUNCTION:
 EVP_SealInit                            2798	3_0_0	EXIST::FUNCTION:RSA
@@ -2754,7 +2754,7 @@ i2b_PVK_bio                             2813	3_0_0	EXIST::FUNCTION:DSA,RC4
 OCSP_ONEREQ_free                        2814	3_0_0	EXIST::FUNCTION:OCSP
 X509V3_EXT_print_fp                     2815	3_0_0	EXIST::FUNCTION:STDIO
 OBJ_bsearch_ex_                         2816	3_0_0	EXIST::FUNCTION:
-DES_ofb64_encrypt                       2817	3_0_0	EXIST::FUNCTION:DES
+DES_ofb64_encrypt                       2817	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 i2d_IPAddressOrRange                    2818	3_0_0	EXIST::FUNCTION:RFC3779
 CRYPTO_secure_used                      2819	3_0_0	EXIST::FUNCTION:
 d2i_X509_CRL_INFO                       2820	3_0_0	EXIST::FUNCTION:
@@ -2817,7 +2817,7 @@ SCT_set0_signature                      2878	3_0_0	EXIST::FUNCTION:CT
 X509_CRL_sign                           2879	3_0_0	EXIST::FUNCTION:
 X509_CINF_it                            2880	3_0_0	EXIST::FUNCTION:
 TS_CONF_set_accuracy                    2881	3_0_0	EXIST::FUNCTION:TS
-DES_crypt                               2882	3_0_0	EXIST::FUNCTION:DES
+DES_crypt                               2882	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 BN_BLINDING_create_param                2883	3_0_0	EXIST::FUNCTION:
 OCSP_SERVICELOC_free                    2884	3_0_0	EXIST::FUNCTION:OCSP
 DIST_POINT_NAME_free                    2885	3_0_0	EXIST::FUNCTION:
@@ -2861,7 +2861,7 @@ i2d_X509_REQ_INFO                       2922	3_0_0	EXIST::FUNCTION:
 EVP_des_cfb1                            2923	3_0_0	EXIST::FUNCTION:DES
 OBJ_NAME_cleanup                        2924	3_0_0	EXIST::FUNCTION:
 OCSP_BASICRESP_get1_ext_d2i             2925	3_0_0	EXIST::FUNCTION:OCSP
-DES_cfb64_encrypt                       2926	3_0_0	EXIST::FUNCTION:DES
+DES_cfb64_encrypt                       2926	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 CAST_cfb64_encrypt                      2927	3_0_0	EXIST::FUNCTION:CAST,DEPRECATEDIN_3_0
 EVP_PKEY_asn1_set_param                 2928	3_0_0	EXIST::FUNCTION:
 BN_RECP_CTX_free                        2929	3_0_0	EXIST::FUNCTION:
@@ -2946,7 +2946,7 @@ EVP_PKEY_meth_get0_info                 3008	3_0_0	EXIST::FUNCTION:
 PEM_read_bio_RSAPublicKey               3009	3_0_0	EXIST::FUNCTION:RSA
 EVP_PKEY_asn1_set_private               3010	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_get0_RSA                       3011	3_0_0	EXIST::FUNCTION:RSA
-DES_ede3_cfb64_encrypt                  3012	3_0_0	EXIST::FUNCTION:DES
+DES_ede3_cfb64_encrypt                  3012	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 POLICY_MAPPING_free                     3014	3_0_0	EXIST::FUNCTION:
 EVP_aes_128_gcm                         3015	3_0_0	EXIST::FUNCTION:
 BIO_dgram_non_fatal_error               3016	3_0_0	EXIST::FUNCTION:DGRAM
@@ -3403,7 +3403,7 @@ RIPEMD160_Init                          3473	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_
 ASYNC_WAIT_CTX_get_changed_fds          3474	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_save_parameters                3475	3_0_0	EXIST::FUNCTION:
 SCT_set_source                          3476	3_0_0	EXIST::FUNCTION:CT
-DES_set_odd_parity                      3477	3_0_0	EXIST::FUNCTION:DES
+DES_set_odd_parity                      3477	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 CMAC_CTX_free                           3478	3_0_0	EXIST::FUNCTION:CMAC
 d2i_ESS_ISSUER_SERIAL                   3479	3_0_0	EXIST::FUNCTION:
 HMAC_CTX_set_flags                      3480	3_0_0	EXIST::FUNCTION:
@@ -3519,7 +3519,7 @@ X509_REQ_it                             3595	3_0_0	EXIST::FUNCTION:
 RAND_bytes                              3596	3_0_0	EXIST::FUNCTION:
 PKCS7_free                              3597	3_0_0	EXIST::FUNCTION:
 X509_NAME_ENTRY_create_by_txt           3598	3_0_0	EXIST::FUNCTION:
-DES_cbc_cksum                           3599	3_0_0	EXIST::FUNCTION:DES
+DES_cbc_cksum                           3599	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 UI_free                                 3600	3_0_0	EXIST::FUNCTION:
 BN_is_prime                             3601	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_0_9_8
 CMS_get0_signers                        3602	3_0_0	EXIST::FUNCTION:CMS
@@ -3591,7 +3591,7 @@ EC_POINT_invert                         3670	3_0_0	EXIST::FUNCTION:EC
 CAST_set_key                            3671	3_0_0	EXIST::FUNCTION:CAST,DEPRECATEDIN_3_0
 ENGINE_get_pkey_meth                    3672	3_0_0	EXIST::FUNCTION:ENGINE
 BIO_ADDRINFO_free                       3673	3_0_0	EXIST::FUNCTION:SOCK
-DES_ede3_cbc_encrypt                    3674	3_0_0	EXIST::FUNCTION:DES
+DES_ede3_cbc_encrypt                    3674	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 X509v3_asid_canonize                    3675	3_0_0	EXIST::FUNCTION:RFC3779
 i2d_ASIdOrRange                         3676	3_0_0	EXIST::FUNCTION:RFC3779
 OCSP_url_svcloc_new                     3677	3_0_0	EXIST::FUNCTION:OCSP
@@ -3644,7 +3644,7 @@ CMAC_CTX_cleanup                        3723	3_0_0	EXIST::FUNCTION:CMAC
 i2d_PKCS7_NDEF                          3724	3_0_0	EXIST::FUNCTION:
 OPENSSL_sk_pop_free                     3725	3_0_0	EXIST::FUNCTION:
 X509_STORE_CTX_get0_policy_tree         3726	3_0_0	EXIST::FUNCTION:
-DES_set_key_checked                     3727	3_0_0	EXIST::FUNCTION:DES
+DES_set_key_checked                     3727	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 EVP_PKEY_meth_free                      3728	3_0_0	EXIST::FUNCTION:
 EVP_sha224                              3729	3_0_0	EXIST::FUNCTION:
 ENGINE_set_id                           3730	3_0_0	EXIST::FUNCTION:ENGINE
@@ -3665,7 +3665,7 @@ EVP_PBE_scrypt                          3744	3_0_0	EXIST::FUNCTION:SCRYPT
 d2i_TS_REQ_bio                          3745	3_0_0	EXIST::FUNCTION:TS
 ENGINE_set_default_ciphers              3746	3_0_0	EXIST::FUNCTION:ENGINE
 X509_get_signature_nid                  3747	3_0_0	EXIST::FUNCTION:
-DES_fcrypt                              3748	3_0_0	EXIST::FUNCTION:DES
+DES_fcrypt                              3748	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 PEM_write_bio_X509_REQ                  3749	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_meth_get_sign                  3750	3_0_0	EXIST::FUNCTION:
 TS_REQ_get_nonce                        3751	3_0_0	EXIST::FUNCTION:TS
@@ -3745,7 +3745,7 @@ ECDSA_sign_setup                        3826	3_0_0	EXIST::FUNCTION:EC
 EVP_camellia_192_cfb128                 3827	3_0_0	EXIST::FUNCTION:CAMELLIA
 d2i_AUTHORITY_KEYID                     3828	3_0_0	EXIST::FUNCTION:
 RIPEMD160_Transform                     3829	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,RMD160
-DES_random_key                          3830	3_0_0	EXIST::FUNCTION:DES
+DES_random_key                          3830	3_0_0	EXIST::FUNCTION:DEPRECATEDIN_3_0,DES
 i2d_PKCS12_MAC_DATA                     3831	3_0_0	EXIST::FUNCTION:
 EVP_PKEY_get0_EC_KEY                    3832	3_0_0	EXIST::FUNCTION:EC
 ASN1_SCTX_get_item                      3833	3_0_0	EXIST::FUNCTION:


More information about the openssl-commits mailing list