Move MD5-SHA1 digest completely to the default provider
authorRichard Levitte <levitte@openssl.org>
Tue, 4 Jun 2019 11:58:43 +0000 (13:58 +0200)
committerRichard Levitte <levitte@openssl.org>
Fri, 4 Oct 2019 08:35:40 +0000 (10:35 +0200)
This leaves minimal implementations of EVP_md5_sha1, which is now only
there to provide a name for implicit fetches.

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

crypto/evp/build.info
crypto/evp/c_alld.c
crypto/evp/legacy_md5_sha1.c [moved from crypto/evp/m_md5_sha1.c with 50% similarity]
providers/default/include/internal/md5_sha1.h [moved from include/internal/md5_sha1.h with 100% similarity]

index 365fe9c..9c71930 100644 (file)
@@ -7,7 +7,7 @@ SOURCE[../../libcrypto]=$COMMON\
         e_rc4.c e_aes.c names.c e_seed.c e_aria.c e_sm4.c \
         e_xcbc_d.c e_rc2.c e_cast.c e_rc5.c \
         m_null.c m_md2.c m_md4.c m_md5.c m_wp.c \
-        m_md5_sha1.c m_mdc2.c m_ripemd.c \
+        m_mdc2.c m_ripemd.c \
         p_open.c p_seal.c p_sign.c p_verify.c p_lib.c p_enc.c p_dec.c \
         bio_md.c bio_b64.c bio_enc.c evp_err.c e_null.c \
         c_allc.c c_alld.c bio_ok.c \
@@ -17,7 +17,7 @@ SOURCE[../../libcrypto]=$COMMON\
         e_aes_cbc_hmac_sha1.c e_aes_cbc_hmac_sha256.c e_rc4_hmac_md5.c \
         e_chacha20_poly1305.c \
         pkey_mac.c exchange.c \
-        legacy_sha.c
+        legacy_sha.c legacy_md5_sha1.c
 SOURCE[../../providers/fips]=$COMMON
 
 INCLUDE[e_aes.o]=.. ../modes
index f7d62bd..2f68eeb 100644 (file)
@@ -22,7 +22,6 @@ void openssl_add_all_digests_int(void)
 #ifndef OPENSSL_NO_MD5
     EVP_add_digest(EVP_md5());
     EVP_add_digest_alias(SN_md5, "ssl3-md5");
-    EVP_add_digest(EVP_md5_sha1());
 #endif
     EVP_add_digest(EVP_sha1());
     EVP_add_digest_alias(SN_sha1, "ssl3-sha1");
similarity index 50%
rename from crypto/evp/m_md5_sha1.c
rename to crypto/evp/legacy_md5_sha1.c
index e9ed800..cba37ba 100644 (file)
@@ -7,47 +7,26 @@
  * https://www.openssl.org/source/license.html
  */
 
+#include <openssl/opensslconf.h>
+
+#include "internal/md5_sha1.h"   /* diverse MD5_SHA1 macros */
+
 #ifndef OPENSSL_NO_MD5
 
-# include <string.h>
-# include <openssl/evp.h>
 # include <openssl/obj_mac.h>
 # include "crypto/evp.h"
-# include "internal/md5_sha1.h"
-
-static int init(EVP_MD_CTX *ctx)
-{
-    return md5_sha1_init(EVP_MD_CTX_md_data(ctx));
-}
-
-static int update(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
-    return md5_sha1_update(EVP_MD_CTX_md_data(ctx), data, count);
-}
-
-static int final(EVP_MD_CTX *ctx, unsigned char *md)
-{
-    return md5_sha1_final(md, EVP_MD_CTX_md_data(ctx));
-}
-
-static int ctrl(EVP_MD_CTX *ctx, int cmd, int mslen, void *ms)
-{
-    return md5_sha1_ctrl(EVP_MD_CTX_md_data(ctx), cmd, mslen, ms);
-}
 
 static const EVP_MD md5_sha1_md = {
     NID_md5_sha1,
     NID_md5_sha1,
     MD5_SHA1_DIGEST_LENGTH,
     0,
-    init,
-    update,
-    final,
+    NULL,
+    NULL,
+    NULL,
     NULL,
     NULL,
     MD5_SHA1_CBLOCK,
-    sizeof(EVP_MD *) + sizeof(MD5_SHA1_CTX),
-    ctrl
 };
 
 const EVP_MD *EVP_md5_sha1(void)