From 16960a9b17ebc39498d113cd6dd1f83784f018a4 Mon Sep 17 00:00:00 2001 From: Benjamin Kaduk Date: Wed, 19 Jul 2017 17:32:08 -0500 Subject: [PATCH] typedef's for RAND_DRBG methods Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/3971) --- crypto/rand/rand_lcl.h | 11 ++++------- include/internal/rand.h | 22 +++++++++++++++------- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/crypto/rand/rand_lcl.h b/crypto/rand/rand_lcl.h index 0c1aa72779..de1f2cd4e6 100644 --- a/crypto/rand/rand_lcl.h +++ b/crypto/rand/rand_lcl.h @@ -71,16 +71,13 @@ struct drbg_ctx_st { DRBG_CTR_CTX ctr; /* entropy gathering function */ - size_t (*get_entropy)(DRBG_CTX *ctx, unsigned char **pout, - int entropy, size_t min_len, size_t max_len); + RAND_DRBG_get_entropy_fn get_entropy; /* Indicates we have finished with entropy buffer */ - void (*cleanup_entropy)(DRBG_CTX *ctx, unsigned char *out, size_t olen); - + RAND_DRBG_cleanup_entropy_fn cleanup_entropy; /* nonce gathering function */ - size_t (*get_nonce)(DRBG_CTX *ctx, unsigned char **pout, - int entropy, size_t min_len, size_t max_len); + RAND_DRBG_get_nonce_fn get_nonce; /* Indicates we have finished with nonce buffer */ - void (*cleanup_nonce)(DRBG_CTX *ctx, unsigned char *out, size_t olen); + RAND_DRBG_cleanup_nonce_fn cleanup_nonce; }; diff --git a/include/internal/rand.h b/include/internal/rand.h index 0d386f6ee8..07568ea8b8 100644 --- a/include/internal/rand.h +++ b/include/internal/rand.h @@ -26,14 +26,22 @@ int RAND_DRBG_generate(DRBG_CTX *dctx, unsigned char *out, size_t outlen, const unsigned char *adin, size_t adinlen); void RAND_DRBG_free(DRBG_CTX *dctx); +typedef size_t (*RAND_DRBG_get_entropy_fn)(DRBG_CTX *ctx, unsigned char **pout, + int entropy, size_t min_len, + size_t max_len); +typedef void (*RAND_DRBG_cleanup_entropy_fn)(DRBG_CTX *ctx, unsigned char *out, + size_t olen); +typedef size_t (*RAND_DRBG_get_nonce_fn)(DRBG_CTX *ctx, unsigned char **pout, + int entropy, size_t min_len, + size_t max_len); +typedef void (*RAND_DRBG_cleanup_nonce_fn)(DRBG_CTX *ctx, unsigned char *out, + size_t olen); + int RAND_DRBG_set_callbacks(DRBG_CTX *dctx, - size_t (*get_entropy)(DRBG_CTX *ctx, unsigned char **pout, - int entropy, size_t min_len, size_t max_len), - void (*cleanup_entropy)(DRBG_CTX *ctx, unsigned char *out, size_t olen), - size_t (*get_nonce)(DRBG_CTX *ctx, unsigned char **pout, - int entropy, size_t min_len, size_t max_len), - void (*cleanup_nonce)(DRBG_CTX *ctx, unsigned char *out, size_t olen) - ); + RAND_DRBG_get_entropy_fn get_entropy, + RAND_DRBG_cleanup_entropy_fn cleanup_entropy, + RAND_DRBG_get_nonce_fn get_nonce, + RAND_DRBG_cleanup_nonce_fn cleanup_nonce); int RAND_DRBG_set_reseed_interval(DRBG_CTX *dctx, int interval); -- 2.25.1