Latest update
This commit is contained in:
@@ -10,11 +10,30 @@
|
||||
#include <openssl/sha.h>
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/core_numbers.h>
|
||||
#include "internal/provider_algs.h"
|
||||
|
||||
static int sha256_final(void *ctx, unsigned char *md, size_t *size)
|
||||
/*
|
||||
* Forward declaration of everything implemented here. This is not strictly
|
||||
* necessary for the compiler, but provides an assurance that the signatures
|
||||
* of the functions in the dispatch table are correct.
|
||||
*/
|
||||
static OSSL_OP_digest_newctx_fn sha256_newctx;
|
||||
#if 0 /* Not defined here */
|
||||
static OSSL_OP_digest_init_fn sha256_init;
|
||||
static OSSL_OP_digest_update_fn sha256_update;
|
||||
#endif
|
||||
static OSSL_OP_digest_final_fn sha256_final;
|
||||
static OSSL_OP_digest_freectx_fn sha256_freectx;
|
||||
static OSSL_OP_digest_dupctx_fn sha256_dupctx;
|
||||
static OSSL_OP_digest_size_fn sha256_size;
|
||||
static OSSL_OP_digest_block_size_fn sha256_size;
|
||||
|
||||
static int sha256_final(void *ctx,
|
||||
unsigned char *md, size_t *mdl, size_t mdsz)
|
||||
{
|
||||
if (SHA256_Final(md, ctx)) {
|
||||
*size = SHA256_DIGEST_LENGTH;
|
||||
if (mdsz >= SHA256_DIGEST_LENGTH
|
||||
&& SHA256_Final(md, ctx)) {
|
||||
*mdl = SHA256_DIGEST_LENGTH;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -55,11 +74,10 @@ static size_t sha256_block_size(void)
|
||||
return SHA256_CBLOCK;
|
||||
}
|
||||
|
||||
extern const OSSL_DISPATCH sha256_functions[];
|
||||
const OSSL_DISPATCH sha256_functions[] = {
|
||||
{ OSSL_FUNC_DIGEST_NEWCTX, (void (*)(void))sha256_newctx },
|
||||
{ OSSL_FUNC_DIGEST_INIT, (void (*)(void))SHA256_Init },
|
||||
{ OSSL_FUNC_DIGEST_UPDDATE, (void (*)(void))SHA256_Update },
|
||||
{ OSSL_FUNC_DIGEST_UPDATE, (void (*)(void))SHA256_Update },
|
||||
{ OSSL_FUNC_DIGEST_FINAL, (void (*)(void))sha256_final },
|
||||
{ OSSL_FUNC_DIGEST_FREECTX, (void (*)(void))sha256_freectx },
|
||||
{ OSSL_FUNC_DIGEST_DUPCTX, (void (*)(void))sha256_dupctx },
|
||||
|
||||
Reference in New Issue
Block a user