Move BLAKE2 digests completely to the default provider
authorRichard Levitte <levitte@openssl.org>
Tue, 4 Jun 2019 11:43:31 +0000 (13:43 +0200)
committerRichard Levitte <levitte@openssl.org>
Thu, 17 Oct 2019 16:49:38 +0000 (18:49 +0200)
This leaves minimal implementations of EVP_blake2b512 and EVP_blake2s256,
that are 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/9075)

crypto/blake2/build.info [deleted file]
crypto/blake2/m_blake2b.c [deleted file]
crypto/blake2/m_blake2s.c [deleted file]
crypto/build.info
crypto/evp/build.info
crypto/evp/legacy_blake2.c [new file with mode: 0644]

diff --git a/crypto/blake2/build.info b/crypto/blake2/build.info
deleted file mode 100644 (file)
index 8b5ebce..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-LIBS=../../libcrypto
-SOURCE[../../libcrypto]=m_blake2b.c m_blake2s.c
diff --git a/crypto/blake2/m_blake2b.c b/crypto/blake2/m_blake2b.c
deleted file mode 100644 (file)
index bb3f145..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2019 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
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-#ifndef OPENSSL_NO_BLAKE2
-
-# include <stddef.h>
-# include <openssl/obj_mac.h>
-# include "crypto/evp.h"
-# include "prov/blake2.h"
-
-static int init(EVP_MD_CTX *ctx)
-{
-    return blake2b512_init(EVP_MD_CTX_md_data(ctx));
-}
-
-static int update(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
-    return blake2b_update(EVP_MD_CTX_md_data(ctx), data, count);
-}
-
-static int final(EVP_MD_CTX *ctx, unsigned char *md)
-{
-    return blake2b_final(md, EVP_MD_CTX_md_data(ctx));
-}
-
-static const EVP_MD blake2b_md = {
-    NID_blake2b512,
-    0,
-    BLAKE2B_DIGEST_LENGTH,
-    0,
-    init,
-    update,
-    final,
-    NULL,
-    NULL,
-    BLAKE2B_BLOCKBYTES,
-    sizeof(BLAKE2B_CTX),
-};
-
-const EVP_MD *EVP_blake2b512(void)
-{
-    return &blake2b_md;
-}
-#endif /* OPENSSL_NO_BLAKE2 */
diff --git a/crypto/blake2/m_blake2s.c b/crypto/blake2/m_blake2s.c
deleted file mode 100644 (file)
index b04d63e..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2019 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
- * in the file LICENSE in the source distribution or at
- * https://www.openssl.org/source/license.html
- */
-
-#ifndef OPENSSL_NO_BLAKE2
-
-# include <stddef.h>
-# include <openssl/obj_mac.h>
-# include "crypto/evp.h"
-# include "prov/blake2.h"
-
-static int init(EVP_MD_CTX *ctx)
-{
-    return blake2s256_init(EVP_MD_CTX_md_data(ctx));
-}
-
-static int update(EVP_MD_CTX *ctx, const void *data, size_t count)
-{
-    return blake2s_update(EVP_MD_CTX_md_data(ctx), data, count);
-}
-
-static int final(EVP_MD_CTX *ctx, unsigned char *md)
-{
-    return blake2s_final(md, EVP_MD_CTX_md_data(ctx));
-}
-
-static const EVP_MD blake2s_md = {
-    NID_blake2s256,
-    0,
-    BLAKE2S_DIGEST_LENGTH,
-    0,
-    init,
-    update,
-    final,
-    NULL,
-    NULL,
-    BLAKE2S_BLOCKBYTES,
-    sizeof(BLAKE2S_CTX),
-};
-
-const EVP_MD *EVP_blake2s256(void)
-{
-    return &blake2s_md;
-}
-#endif /* OPENSSL_NO_BLAKE2 */
index 7d3eb29570998bf4e3baaf0e7f636464dd24ccda..733aba866215ba50f614702d3e527ff6d94c562d 100644 (file)
@@ -2,7 +2,7 @@
 # there for further explanations.
 SUBDIRS=objects buffer bio stack lhash rand evp asn1 pem x509 conf \
         txt_db pkcs7 pkcs12 ui store property \
-        md2 md4 md5 sha mdc2 hmac ripemd whrlpool poly1305 blake2 \
+        md2 md4 md5 sha mdc2 hmac ripemd whrlpool poly1305 \
         siphash sm3 des aes rc2 rc4 rc5 idea aria bf cast camellia \
         seed sm4 chacha modes bn ec rsa dsa dh sm2 dso engine \
         err comp ocsp cms ts srp cmac ct async ess crmf cmp
index f2c798b7032aec56e0ab6768cfe4c4f092fae3e9..f16d08e0cb2bd70122a455c0a4607be662b14cdd 100644 (file)
@@ -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_md5_sha1.c
+        legacy_sha.c legacy_md5_sha1.c legacy_blake2.c
 
 IF[{- !$disabled{md2} -}]
   SOURCE[../../libcrypto]=legacy_md2.c
diff --git a/crypto/evp/legacy_blake2.c b/crypto/evp/legacy_blake2.c
new file mode 100644 (file)
index 0000000..04b1e84
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2019 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
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <openssl/opensslconf.h>
+
+#ifndef OPENSSL_NO_BLAKE2
+
+# include <openssl/obj_mac.h>
+# include "crypto/evp.h"
+# include "prov/blake2.h"        /* diverse BLAKE2 macros */
+
+static const EVP_MD blake2b_md = {
+    NID_blake2b512,
+    0,
+    BLAKE2B_DIGEST_LENGTH,
+    0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    BLAKE2B_BLOCKBYTES,
+};
+
+const EVP_MD *EVP_blake2b512(void)
+{
+    return &blake2b_md;
+}
+
+static const EVP_MD blake2s_md = {
+    NID_blake2s256,
+    0,
+    BLAKE2S_DIGEST_LENGTH,
+    0,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    NULL,
+    BLAKE2S_BLOCKBYTES,
+};
+
+const EVP_MD *EVP_blake2s256(void)
+{
+    return &blake2s_md;
+}
+
+#endif /* OPENSSL_NO_BLAKE2 */