1 /* SPDX-License-Identifier: GPL-2.0-or-later * << 2 /* 1 /* 3 * RNG: Random Number Generator algorithms un 2 * RNG: Random Number Generator algorithms under the crypto API 4 * 3 * 5 * Copyright (c) 2008 Neil Horman <nhorman@tux 4 * Copyright (c) 2008 Neil Horman <nhorman@tuxdriver.com> 6 * Copyright (c) 2015 Herbert Xu <herbert@gond 5 * Copyright (c) 2015 Herbert Xu <herbert@gondor.apana.org.au> >> 6 * >> 7 * This program is free software; you can redistribute it and/or modify it >> 8 * under the terms of the GNU General Public License as published by the Free >> 9 * Software Foundation; either version 2 of the License, or (at your option) >> 10 * any later version. >> 11 * 7 */ 12 */ 8 13 9 #ifndef _CRYPTO_INTERNAL_RNG_H 14 #ifndef _CRYPTO_INTERNAL_RNG_H 10 #define _CRYPTO_INTERNAL_RNG_H 15 #define _CRYPTO_INTERNAL_RNG_H 11 16 12 #include <crypto/algapi.h> 17 #include <crypto/algapi.h> 13 #include <crypto/rng.h> 18 #include <crypto/rng.h> 14 19 15 int crypto_register_rng(struct rng_alg *alg); 20 int crypto_register_rng(struct rng_alg *alg); 16 void crypto_unregister_rng(struct rng_alg *alg 21 void crypto_unregister_rng(struct rng_alg *alg); 17 int crypto_register_rngs(struct rng_alg *algs, 22 int crypto_register_rngs(struct rng_alg *algs, int count); 18 void crypto_unregister_rngs(struct rng_alg *al 23 void crypto_unregister_rngs(struct rng_alg *algs, int count); 19 24 20 #if defined(CONFIG_CRYPTO_RNG) || defined(CONF 25 #if defined(CONFIG_CRYPTO_RNG) || defined(CONFIG_CRYPTO_RNG_MODULE) 21 int crypto_del_default_rng(void); 26 int crypto_del_default_rng(void); 22 #else 27 #else 23 static inline int crypto_del_default_rng(void) 28 static inline int crypto_del_default_rng(void) 24 { 29 { 25 return 0; 30 return 0; 26 } 31 } 27 #endif 32 #endif 28 33 29 static inline void *crypto_rng_ctx(struct cryp 34 static inline void *crypto_rng_ctx(struct crypto_rng *tfm) 30 { 35 { 31 return crypto_tfm_ctx(&tfm->base); 36 return crypto_tfm_ctx(&tfm->base); 32 } 37 } 33 38 34 static inline void crypto_rng_set_entropy(stru 39 static inline void crypto_rng_set_entropy(struct crypto_rng *tfm, 35 cons 40 const u8 *data, unsigned int len) 36 { 41 { 37 crypto_rng_alg(tfm)->set_ent(tfm, data 42 crypto_rng_alg(tfm)->set_ent(tfm, data, len); 38 } 43 } 39 44 40 #endif 45 #endif 41 46
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.