e0a651945c
Add copyright to most .pl files This does NOT cover any .pl file that has other copyright in it. Most of those are Andy's but some are public domain. Fix typo's in some existing files. Reviewed-by: Richard Levitte <levitte@openssl.org>
60 lines
1.4 KiB
C
60 lines
1.4 KiB
C
/*
|
|
* Copyright 2012, Samuel Neves <sneves@dei.uc.pt>.
|
|
* Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
|
*
|
|
* Licensed under the OpenSSL licenses (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
* https://www.openssl.org/source/license.html
|
|
* or in the file LICENSE in the source distribution.
|
|
*/
|
|
|
|
/*
|
|
* Derived from the BLAKE2 reference implementation written by Samuel Neves.
|
|
* More information about the BLAKE2 hash function and its implementations
|
|
* can be found at https://blake2.net.
|
|
*/
|
|
|
|
#include "internal/cryptlib.h"
|
|
|
|
#ifndef OPENSSL_NO_BLAKE2
|
|
|
|
# include <openssl/evp.h>
|
|
# include <openssl/objects.h>
|
|
# include "blake2_locl.h"
|
|
# include "internal/evp_int.h"
|
|
|
|
static int init(EVP_MD_CTX *ctx)
|
|
{
|
|
return BLAKE2b_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,
|
|
0,
|
|
sizeof(EVP_MD *) + sizeof(BLAKE2B_CTX),
|
|
};
|
|
|
|
const EVP_MD *EVP_blake2b512(void)
|
|
{
|
|
return (&blake2b_md);
|
|
}
|
|
#endif
|