diff options
author | Stephan Mueller <smueller@chronox.de> | 2015-06-09 21:55:38 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2015-06-10 19:14:01 +0800 |
commit | 57225e6797885e31302e76fc5926c0bedd7e5ad4 (patch) | |
tree | 8cdb966886dcc891cb8c5dd8fd0a90a6f4437983 /include/crypto | |
parent | 205a525c334295e3cd4cc7755fd2c0398e3a787f (diff) | |
download | op-kernel-dev-57225e6797885e31302e76fc5926c0bedd7e5ad4.zip op-kernel-dev-57225e6797885e31302e76fc5926c0bedd7e5ad4.tar.gz |
crypto: drbg - Use callback API for random readiness
The get_blocking_random_bytes API is broken because the wait can
be arbitrarily long (potentially forever) so there is no safe way
of calling it from within the kernel.
This patch replaces it with the new callback API which does not
have this problem.
The patch also removes the entropy buffer registered with the DRBG
handle in favor of stack variables to hold the seed data.
Signed-off-by: Stephan Mueller <smueller@chronox.de>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include/crypto')
-rw-r--r-- | include/crypto/drbg.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/include/crypto/drbg.h b/include/crypto/drbg.h index c3f208d..fad6450 100644 --- a/include/crypto/drbg.h +++ b/include/crypto/drbg.h @@ -121,12 +121,11 @@ struct drbg_state { unsigned char *prev; /* FIPS 140-2 continuous test value */ #endif struct work_struct seed_work; /* asynchronous seeding support */ - u8 *seed_buf; /* buffer holding the seed */ - size_t seed_buf_len; struct crypto_rng *jent; const struct drbg_state_ops *d_ops; const struct drbg_core *core; struct drbg_string test_data; + struct random_ready_callback random_ready; }; static inline __u8 drbg_statelen(struct drbg_state *drbg) |