]> git.ipfire.org Git - thirdparty/openssl.git/blob - crypto/blake2/m_blake2b.c
Reorganize private crypto header files
[thirdparty/openssl.git] / crypto / blake2 / m_blake2b.c
1 /*
2 * Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License 2.0 (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
8 */
9
10 #ifndef OPENSSL_NO_BLAKE2
11
12 # include <stddef.h>
13 # include <openssl/obj_mac.h>
14 # include "crypto/evp.h"
15 # include "internal/blake2.h"
16
17 static int init(EVP_MD_CTX *ctx)
18 {
19 return blake2b512_init(EVP_MD_CTX_md_data(ctx));
20 }
21
22 static int update(EVP_MD_CTX *ctx, const void *data, size_t count)
23 {
24 return blake2b_update(EVP_MD_CTX_md_data(ctx), data, count);
25 }
26
27 static int final(EVP_MD_CTX *ctx, unsigned char *md)
28 {
29 return blake2b_final(md, EVP_MD_CTX_md_data(ctx));
30 }
31
32 static const EVP_MD blake2b_md = {
33 NID_blake2b512,
34 0,
35 BLAKE2B_DIGEST_LENGTH,
36 0,
37 init,
38 update,
39 final,
40 NULL,
41 NULL,
42 BLAKE2B_BLOCKBYTES,
43 sizeof(BLAKE2B_CTX),
44 };
45
46 const EVP_MD *EVP_blake2b512(void)
47 {
48 return &blake2b_md;
49 }
50 #endif /* OPENSSL_NO_BLAKE2 */