Commit 71061191 authored by Herbert Xu's avatar Herbert Xu Committed by Kamal Mostafa

crypto: skcipher - Add crypto_skcipher_has_setkey

commit a1383cd8 upstream.

This patch adds a way for skcipher users to determine whether a key
is required by a transform.
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
[bwh: Backported to 3.2: add to ablkcipher API instead]
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
Signed-off-by: default avatarLuis Henriques <luis.henriques@canonical.com>
[kamal: plus bwh http://article.gmane.org/gmane.linux.kernel.stable/169083]
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
parent 563eaf39
......@@ -377,6 +377,7 @@ static int crypto_init_ablkcipher_ops(struct crypto_tfm *tfm, u32 type,
}
crt->base = __crypto_ablkcipher_cast(tfm);
crt->ivsize = alg->ivsize;
crt->has_setkey = alg->max_keysize;
return 0;
}
......@@ -458,6 +459,7 @@ static int crypto_init_givcipher_ops(struct crypto_tfm *tfm, u32 type,
crt->givdecrypt = alg->givdecrypt ?: no_givdecrypt;
crt->base = __crypto_ablkcipher_cast(tfm);
crt->ivsize = alg->ivsize;
crt->has_setkey = alg->max_keysize;
return 0;
}
......
......@@ -472,6 +472,7 @@ static int crypto_init_blkcipher_ops_async(struct crypto_tfm *tfm)
}
crt->base = __crypto_ablkcipher_cast(tfm);
crt->ivsize = alg->ivsize;
crt->has_setkey = alg->max_keysize;
return 0;
}
......
......@@ -552,6 +552,7 @@ struct ablkcipher_tfm {
unsigned int ivsize;
unsigned int reqsize;
bool has_setkey;
};
struct blkcipher_tfm {
......@@ -922,6 +923,13 @@ static inline int crypto_ablkcipher_setkey(struct crypto_ablkcipher *tfm,
return crt->setkey(crt->base, key, keylen);
}
static inline bool crypto_ablkcipher_has_setkey(struct crypto_ablkcipher *tfm)
{
struct ablkcipher_tfm *crt = crypto_ablkcipher_crt(tfm);
return crt->has_setkey;
}
/**
* crypto_ablkcipher_reqtfm() - obtain cipher handle from request
* @req: ablkcipher_request out of which the cipher handle is to be obtained
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment