typedef's for RAND_DRBG methods

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3971)
This commit is contained in:
Benjamin Kaduk 2017-07-19 17:32:08 -05:00 committed by Benjamin Kaduk
parent 4468b6ed59
commit 16960a9b17
2 changed files with 19 additions and 14 deletions

View File

@ -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;
};

View File

@ -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);