[CRYPTO] skcipher: Added geniv field
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 27 Nov 2007 13:33:24 +0000 (21:33 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 10 Jan 2008 21:16:43 +0000 (08:16 +1100)
This patch introduces the geniv field which indicates the default IV
generator for each algorithm.  It should point to a string that is not
freed as long as the algorithm is registered.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/ablkcipher.c
crypto/blkcipher.c
include/linux/crypto.h

index e403d8137ecd01cdb81e05a62ab03547ee6dec0e..8f48b4d58fca76d45de7c42fe2c83949606c82cb 100644 (file)
@@ -96,6 +96,7 @@ static void crypto_ablkcipher_show(struct seq_file *m, struct crypto_alg *alg)
        seq_printf(m, "min keysize  : %u\n", ablkcipher->min_keysize);
        seq_printf(m, "max keysize  : %u\n", ablkcipher->max_keysize);
        seq_printf(m, "ivsize       : %u\n", ablkcipher->ivsize);
        seq_printf(m, "min keysize  : %u\n", ablkcipher->min_keysize);
        seq_printf(m, "max keysize  : %u\n", ablkcipher->max_keysize);
        seq_printf(m, "ivsize       : %u\n", ablkcipher->ivsize);
+       seq_printf(m, "geniv        : %s\n", ablkcipher->geniv ?: "<default>");
 }
 
 const struct crypto_type crypto_ablkcipher_type = {
 }
 
 const struct crypto_type crypto_ablkcipher_type = {
@@ -142,6 +143,7 @@ static void crypto_givcipher_show(struct seq_file *m, struct crypto_alg *alg)
        seq_printf(m, "min keysize  : %u\n", ablkcipher->min_keysize);
        seq_printf(m, "max keysize  : %u\n", ablkcipher->max_keysize);
        seq_printf(m, "ivsize       : %u\n", ablkcipher->ivsize);
        seq_printf(m, "min keysize  : %u\n", ablkcipher->min_keysize);
        seq_printf(m, "max keysize  : %u\n", ablkcipher->max_keysize);
        seq_printf(m, "ivsize       : %u\n", ablkcipher->ivsize);
+       seq_printf(m, "geniv        : %s\n", ablkcipher->geniv ?: "<built-in>");
 }
 
 const struct crypto_type crypto_givcipher_type = {
 }
 
 const struct crypto_type crypto_givcipher_type = {
index 7939504dfd8b1486039e490dcb7b76ede35b0983..7a3e1a3080744c784fa765517ec05d01fb5b882a 100644 (file)
@@ -496,6 +496,8 @@ static void crypto_blkcipher_show(struct seq_file *m, struct crypto_alg *alg)
        seq_printf(m, "min keysize  : %u\n", alg->cra_blkcipher.min_keysize);
        seq_printf(m, "max keysize  : %u\n", alg->cra_blkcipher.max_keysize);
        seq_printf(m, "ivsize       : %u\n", alg->cra_blkcipher.ivsize);
        seq_printf(m, "min keysize  : %u\n", alg->cra_blkcipher.min_keysize);
        seq_printf(m, "max keysize  : %u\n", alg->cra_blkcipher.max_keysize);
        seq_printf(m, "ivsize       : %u\n", alg->cra_blkcipher.ivsize);
+       seq_printf(m, "geniv        : %s\n", alg->cra_blkcipher.geniv ?:
+                                            "<default>");
 }
 
 const struct crypto_type crypto_blkcipher_type = {
 }
 
 const struct crypto_type crypto_blkcipher_type = {
index 3656a24ea7f00dff3473decfb8a33d363a3c4c2a..facafa1bd8ca58d8d6a2cec4cac3b7085a6d1ebb 100644 (file)
@@ -183,6 +183,8 @@ struct ablkcipher_alg {
        int (*givencrypt)(struct skcipher_givcrypt_request *req);
        int (*givdecrypt)(struct skcipher_givcrypt_request *req);
 
        int (*givencrypt)(struct skcipher_givcrypt_request *req);
        int (*givdecrypt)(struct skcipher_givcrypt_request *req);
 
+       const char *geniv;
+
        unsigned int min_keysize;
        unsigned int max_keysize;
        unsigned int ivsize;
        unsigned int min_keysize;
        unsigned int max_keysize;
        unsigned int ivsize;
@@ -209,6 +211,8 @@ struct blkcipher_alg {
                       struct scatterlist *dst, struct scatterlist *src,
                       unsigned int nbytes);
 
                       struct scatterlist *dst, struct scatterlist *src,
                       unsigned int nbytes);
 
+       const char *geniv;
+
        unsigned int min_keysize;
        unsigned int max_keysize;
        unsigned int ivsize;
        unsigned int min_keysize;
        unsigned int max_keysize;
        unsigned int ivsize;