diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2007-11-15 09:36:07 -0500 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2008-01-10 16:16:15 -0500 |
commit | 332f8840f7095d294f9bb066b175a100bcde214c (patch) | |
tree | fa2e610da8e943765dfdb8f23817027424a1339d /crypto/cryptd.c | |
parent | 86f578de5ba6ea11ead9284d9f036fee01ba5893 (diff) |
[CRYPTO] ablkcipher: Add distinct ABLKCIPHER type
Up until now we have ablkcipher algorithms have been identified as
type BLKCIPHER with the ASYNC bit set. This is suboptimal because
ablkcipher refers to two things. On the one hand it refers to the
top-level ablkcipher interface with requests. On the other hand it
refers to and algorithm type underneath.
As it is you cannot request a synchronous block cipher algorithm
with the ablkcipher interface on top. This is a problem because
we want to be able to eventually phase out the blkcipher top-level
interface.
This patch fixes this by making ABLKCIPHER its own type, just as
we have distinct types for HASH and DIGEST. The type it associated
with the algorithm implementation only.
Which top-level interface is used for synchronous block ciphers is
then determined by the mask that's used. If it's a specific mask
then the old blkcipher interface is given, otherwise we go with the
new ablkcipher interface.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/cryptd.c')
-rw-r--r-- | crypto/cryptd.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/cryptd.c b/crypto/cryptd.c index 8bf2da835f7b..1a5c45b96852 100644 --- a/crypto/cryptd.c +++ b/crypto/cryptd.c | |||
@@ -228,7 +228,7 @@ static struct crypto_instance *cryptd_alloc_blkcipher( | |||
228 | struct crypto_alg *alg; | 228 | struct crypto_alg *alg; |
229 | 229 | ||
230 | alg = crypto_get_attr_alg(tb, CRYPTO_ALG_TYPE_BLKCIPHER, | 230 | alg = crypto_get_attr_alg(tb, CRYPTO_ALG_TYPE_BLKCIPHER, |
231 | CRYPTO_ALG_TYPE_MASK | CRYPTO_ALG_ASYNC); | 231 | CRYPTO_ALG_TYPE_MASK); |
232 | if (IS_ERR(alg)) | 232 | if (IS_ERR(alg)) |
233 | return ERR_PTR(PTR_ERR(alg)); | 233 | return ERR_PTR(PTR_ERR(alg)); |
234 | 234 | ||
@@ -236,7 +236,7 @@ static struct crypto_instance *cryptd_alloc_blkcipher( | |||
236 | if (IS_ERR(inst)) | 236 | if (IS_ERR(inst)) |
237 | goto out_put_alg; | 237 | goto out_put_alg; |
238 | 238 | ||
239 | inst->alg.cra_flags = CRYPTO_ALG_TYPE_BLKCIPHER | CRYPTO_ALG_ASYNC; | 239 | inst->alg.cra_flags = CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC; |
240 | inst->alg.cra_type = &crypto_ablkcipher_type; | 240 | inst->alg.cra_type = &crypto_ablkcipher_type; |
241 | 241 | ||
242 | inst->alg.cra_ablkcipher.ivsize = alg->cra_blkcipher.ivsize; | 242 | inst->alg.cra_ablkcipher.ivsize = alg->cra_blkcipher.ivsize; |