From bc97c69d76d93db3e6d811ff85c6dfde0c6430aa Mon Sep 17 00:00:00 2001 From: Matt Braithwaite Date: Wed, 22 Jul 2015 18:16:18 -0700 Subject: [PATCH] Make methods of |RAND_SSLEay| do reasonable things. This means e.g. that a caller can say: RAND_SSLEay()->bytes(...) and so on. But in exchange for this convenience, I've changed the signatures to be more BoringSSL-ish (|size_t| instead of |int|). That's fine; |RAND_set_rand_method(SSLEay())| still works. And by works I mean "does nothing". Change-Id: I35479b5efb759da910ce46e22298168b78c9edcf Reviewed-on: https://boringssl-review.googlesource.com/5472 Reviewed-by: Adam Langley --- crypto/rand/rand.c | 10 ++++++++-- include/openssl/rand.h | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/crypto/rand/rand.c b/crypto/rand/rand.c index 0d146a89..39695203 100644 --- a/crypto/rand/rand.c +++ b/crypto/rand/rand.c @@ -171,8 +171,14 @@ int RAND_status(void) { return 1; } -static const struct rand_meth_st kSSLeayMethod = {NULL, NULL, NULL, - NULL, NULL, NULL}; +static const struct rand_meth_st kSSLeayMethod = { + RAND_seed, + RAND_bytes, + RAND_cleanup, + RAND_add, + RAND_pseudo_bytes, + RAND_status, +}; RAND_METHOD *RAND_SSLeay(void) { return (RAND_METHOD*) &kSSLeayMethod; diff --git a/include/openssl/rand.h b/include/openssl/rand.h index 2918c7e8..335c76ed 100644 --- a/include/openssl/rand.h +++ b/include/openssl/rand.h @@ -76,10 +76,10 @@ OPENSSL_EXPORT int RAND_status(void); * external so that variables of this type can be initialized. */ struct rand_meth_st { void (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); + int (*bytes) (uint8_t *buf, size_t num); void (*cleanup) (void); void (*add) (const void *buf, int num, double entropy); - int (*pseudorand) (unsigned char *buf, int num); + int (*pseudorand) (uint8_t *buf, size_t num); int (*status) (void); };