crypto: skcipher - Add crypto_skcipher_has_setkey
commit a1383cd86a062fc798899ab20f0ec2116cce39cb upstream. This patch adds a way for skcipher users to determine whether a key is required by a transform. Cc: stable@vger.kernel.org Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Signed-off-by: Willy Tarreau <w@1wt.eu>
This commit is contained in:
parent
a3846b418e
commit
42f85fcf27
|
@ -379,6 +379,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;
|
||||
}
|
||||
|
@ -460,6 +461,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;
|
||||
}
|
||||
|
|
|
@ -471,6 +471,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;
|
||||
}
|
||||
|
|
|
@ -354,6 +354,7 @@ struct ablkcipher_tfm {
|
|||
|
||||
unsigned int ivsize;
|
||||
unsigned int reqsize;
|
||||
bool has_setkey;
|
||||
};
|
||||
|
||||
struct aead_tfm {
|
||||
|
@ -664,6 +665,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;
|
||||
}
|
||||
|
||||
static inline struct crypto_ablkcipher *crypto_ablkcipher_reqtfm(
|
||||
struct ablkcipher_request *req)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue