forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
crypto: rng - Remove old low-level rng interface
Now that all rng implementations have switched over to the new interface, we can remove the old low-level interface. Signed-off-by: Herbert Xu <[email protected]>
- Loading branch information
Showing
4 changed files
with
8 additions
and
92 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,6 +4,7 @@ | |
* RNG operations. | ||
* | ||
* Copyright (c) 2008 Neil Horman <[email protected]> | ||
* Copyright (c) 2015 Herbert Xu <[email protected]> | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License as published by the Free | ||
|
@@ -36,39 +37,6 @@ static inline struct crypto_rng *__crypto_rng_cast(struct crypto_tfm *tfm) | |
return container_of(tfm, struct crypto_rng, base); | ||
} | ||
|
||
static inline struct old_rng_alg *crypto_old_rng_alg(struct crypto_rng *tfm) | ||
{ | ||
return &crypto_rng_tfm(tfm)->__crt_alg->cra_rng; | ||
} | ||
|
||
static int generate(struct crypto_rng *tfm, const u8 *src, unsigned int slen, | ||
u8 *dst, unsigned int dlen) | ||
{ | ||
return crypto_old_rng_alg(tfm)->rng_make_random(tfm, dst, dlen); | ||
} | ||
|
||
static int rngapi_reset(struct crypto_rng *tfm, const u8 *seed, | ||
unsigned int slen) | ||
{ | ||
u8 *buf = NULL; | ||
u8 *src = (u8 *)seed; | ||
int err; | ||
|
||
if (slen) { | ||
buf = kmalloc(slen, GFP_KERNEL); | ||
if (!buf) | ||
return -ENOMEM; | ||
|
||
memcpy(buf, seed, slen); | ||
src = buf; | ||
} | ||
|
||
err = crypto_old_rng_alg(tfm)->rng_reset(tfm, src, slen); | ||
|
||
kzfree(buf); | ||
return err; | ||
} | ||
|
||
int crypto_rng_reset(struct crypto_rng *tfm, const u8 *seed, unsigned int slen) | ||
{ | ||
u8 *buf = NULL; | ||
|
@@ -83,7 +51,7 @@ int crypto_rng_reset(struct crypto_rng *tfm, const u8 *seed, unsigned int slen) | |
seed = buf; | ||
} | ||
|
||
err = tfm->seed(tfm, seed, slen); | ||
err = crypto_rng_alg(tfm)->seed(tfm, seed, slen); | ||
|
||
kfree(buf); | ||
return err; | ||
|
@@ -92,30 +60,14 @@ EXPORT_SYMBOL_GPL(crypto_rng_reset); | |
|
||
static int crypto_rng_init_tfm(struct crypto_tfm *tfm) | ||
{ | ||
struct crypto_rng *rng = __crypto_rng_cast(tfm); | ||
struct rng_alg *alg = crypto_rng_alg(rng); | ||
struct old_rng_alg *oalg = crypto_old_rng_alg(rng); | ||
|
||
if (oalg->rng_make_random) { | ||
rng->generate = generate; | ||
rng->seed = rngapi_reset; | ||
rng->seedsize = oalg->seedsize; | ||
return 0; | ||
} | ||
|
||
rng->generate = alg->generate; | ||
rng->seed = alg->seed; | ||
rng->seedsize = alg->seedsize; | ||
|
||
return 0; | ||
} | ||
|
||
static unsigned int seedsize(struct crypto_alg *alg) | ||
{ | ||
struct rng_alg *ralg = container_of(alg, struct rng_alg, base); | ||
|
||
return alg->cra_rng.rng_make_random ? | ||
alg->cra_rng.seedsize : ralg->seedsize; | ||
return ralg->seedsize; | ||
} | ||
|
||
#ifdef CONFIG_NET | ||
|
@@ -150,7 +102,7 @@ static void crypto_rng_show(struct seq_file *m, struct crypto_alg *alg) | |
seq_printf(m, "seedsize : %u\n", seedsize(alg)); | ||
} | ||
|
||
const struct crypto_type crypto_rng_type = { | ||
static const struct crypto_type crypto_rng_type = { | ||
.extsize = crypto_alg_extsize, | ||
.init_tfm = crypto_rng_init_tfm, | ||
#ifdef CONFIG_PROC_FS | ||
|
@@ -162,7 +114,6 @@ const struct crypto_type crypto_rng_type = { | |
.type = CRYPTO_ALG_TYPE_RNG, | ||
.tfmsize = offsetof(struct crypto_rng, base), | ||
}; | ||
EXPORT_SYMBOL_GPL(crypto_rng_type); | ||
|
||
struct crypto_rng *crypto_alloc_rng(const char *alg_name, u32 type, u32 mask) | ||
{ | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
* RNG: Random Number Generator algorithms under the crypto API | ||
* | ||
* Copyright (c) 2008 Neil Horman <[email protected]> | ||
* Copyright (c) 2015 Herbert Xu <[email protected]> | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License as published by the Free | ||
|
@@ -16,8 +17,6 @@ | |
#include <crypto/algapi.h> | ||
#include <crypto/rng.h> | ||
|
||
extern const struct crypto_type crypto_rng_type; | ||
|
||
int crypto_register_rng(struct rng_alg *alg); | ||
void crypto_unregister_rng(struct rng_alg *alg); | ||
int crypto_register_rngs(struct rng_alg *algs, int count); | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,7 @@ | |
* RNG: Random Number Generator algorithms under the crypto API | ||
* | ||
* Copyright (c) 2008 Neil Horman <[email protected]> | ||
* Copyright (c) 2015 Herbert Xu <[email protected]> | ||
* | ||
* This program is free software; you can redistribute it and/or modify it | ||
* under the terms of the GNU General Public License as published by the Free | ||
|
@@ -56,11 +57,6 @@ struct rng_alg { | |
}; | ||
|
||
struct crypto_rng { | ||
int (*generate)(struct crypto_rng *tfm, | ||
const u8 *src, unsigned int slen, | ||
u8 *dst, unsigned int dlen); | ||
int (*seed)(struct crypto_rng *tfm, const u8 *seed, unsigned int slen); | ||
unsigned int seedsize; | ||
struct crypto_tfm base; | ||
}; | ||
|
||
|
@@ -144,7 +140,7 @@ static inline int crypto_rng_generate(struct crypto_rng *tfm, | |
const u8 *src, unsigned int slen, | ||
u8 *dst, unsigned int dlen) | ||
{ | ||
return tfm->generate(tfm, src, slen, dst, dlen); | ||
return crypto_rng_alg(tfm)->generate(tfm, src, slen, dst, dlen); | ||
} | ||
|
||
/** | ||
|
@@ -198,7 +194,7 @@ int crypto_rng_reset(struct crypto_rng *tfm, const u8 *seed, | |
*/ | ||
static inline int crypto_rng_seedsize(struct crypto_rng *tfm) | ||
{ | ||
return tfm->seedsize; | ||
return crypto_rng_alg(tfm)->seedsize; | ||
} | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters