crypto: rng - Add crypto_rng_set_entropy
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 21 Apr 2015 02:46:39 +0000 (10:46 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 22 Apr 2015 01:30:15 +0000 (09:30 +0800)
This patch adds the function crypto_rng_set_entropy.  It is only
meant to be used by testmgr when testing RNG implementations by
providing fixed entropy data in order to verify test vectors.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/crypto/internal/rng.h
include/crypto/rng.h

index 76f3c9519ba5723034bb3a34ca18eb666130c8b3..93d41bcc444e3979ebc6d4494b29eb315beaa5fb 100644 (file)
@@ -26,4 +26,10 @@ static inline void *crypto_rng_ctx(struct crypto_rng *tfm)
        return crypto_tfm_ctx(&tfm->base);
 }
 
+static inline void crypto_rng_set_entropy(struct crypto_rng *tfm,
+                                         const u8 *data, unsigned int len)
+{
+       crypto_rng_alg(tfm)->set_ent(tfm, data, len);
+}
+
 #endif
index 133f0441ad3e0d8c5315061527992f29f4b4b9bb..cc22e52a129aaf2edc9ff9ce6ec79f9a0d6421c3 100644 (file)
@@ -32,6 +32,8 @@ struct crypto_rng;
  *             up a new state, the seed must be provided by the
  *             consumer while invoking this function. The required
  *             size of the seed is defined with @seedsize .
+ * @set_ent:   Set entropy that would otherwise be obtained from
+ *             entropy source.  Internal use only.
  * @seedsize:  The seed size required for a random number generator
  *             initialization defined with this variable. Some
  *             random number generators does not require a seed
@@ -45,6 +47,8 @@ struct rng_alg {
                        const u8 *src, unsigned int slen,
                        u8 *dst, unsigned int dlen);
        int (*seed)(struct crypto_rng *tfm, const u8 *seed, unsigned int slen);
+       void (*set_ent)(struct crypto_rng *tfm, const u8 *data,
+                       unsigned int len);
 
        unsigned int seedsize;