Move BLAKE2 digests completely to the default provider

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)
This commit is contained in:
Richard Levitte 2019-06-04 13:43:31 +02:00
parent 651101e18d
commit 8c77d45ada
5 changed files with 27 additions and 75 deletions

View File

@ -1,2 +0,0 @@
LIBS=../../libcrypto
SOURCE[../../libcrypto]=m_blake2b.c m_blake2s.c

View File

@ -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 */

View 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

View 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

View File

@ -7,44 +7,48 @@
* https://www.openssl.org/source/license.html
*/
#include <openssl/opensslconf.h>
#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));
}
# include "prov/blake2.h" /* diverse BLAKE2 macros */
static const EVP_MD blake2b_md = {
NID_blake2b512,
0,
BLAKE2B_DIGEST_LENGTH,
0,
init,
update,
final,
NULL,
NULL,
NULL,
NULL,
NULL,
BLAKE2B_BLOCKBYTES,
sizeof(BLAKE2B_CTX),
};
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 */