lkml.org 
[lkml]   [2016]   [Feb]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.2 72/87] crypto: hash - Add crypto_ahash_has_setkey
    3.2.77-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Herbert Xu <herbert@gondor.apana.org.au>

    commit a5596d6332787fd383b3b5427b41f94254430827 upstream.

    This patch adds a way for ahash users to determine whether a key
    is required by a crypto_ahash transform.

    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    [bwh: Backported to 3.2: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    crypto/ahash.c | 5 ++++-
    crypto/shash.c | 4 +++-
    include/crypto/hash.h | 6 ++++++
    3 files changed, 13 insertions(+), 2 deletions(-)

    --- a/crypto/ahash.c
    +++ b/crypto/ahash.c
    @@ -369,6 +369,7 @@ static int crypto_ahash_init_tfm(struct
    struct ahash_alg *alg = crypto_ahash_alg(hash);

    hash->setkey = ahash_nosetkey;
    + hash->has_setkey = false;
    hash->export = ahash_no_export;
    hash->import = ahash_no_import;

    @@ -381,8 +382,10 @@ static int crypto_ahash_init_tfm(struct
    hash->finup = alg->finup ?: ahash_def_finup;
    hash->digest = alg->digest;

    - if (alg->setkey)
    + if (alg->setkey) {
    hash->setkey = alg->setkey;
    + hash->has_setkey = true;
    + }
    if (alg->export)
    hash->export = alg->export;
    if (alg->import)
    --- a/crypto/shash.c
    +++ b/crypto/shash.c
    @@ -354,8 +354,10 @@ int crypto_init_shash_ops_async(struct c
    crt->finup = shash_async_finup;
    crt->digest = shash_async_digest;

    - if (alg->setkey)
    + if (alg->setkey) {
    crt->setkey = shash_async_setkey;
    + crt->has_setkey = true;
    + }
    if (alg->export)
    crt->export = shash_async_export;
    if (alg->import)
    --- a/include/crypto/hash.h
    +++ b/include/crypto/hash.h
    @@ -94,6 +94,7 @@ struct crypto_ahash {
    unsigned int keylen);

    unsigned int reqsize;
    + bool has_setkey;
    struct crypto_tfm base;
    };

    @@ -181,6 +182,11 @@ static inline void *ahash_request_ctx(st

    int crypto_ahash_setkey(struct crypto_ahash *tfm, const u8 *key,
    unsigned int keylen);
    +static inline bool crypto_ahash_has_setkey(struct crypto_ahash *tfm)
    +{
    + return tfm->has_setkey;
    +}
    +
    int crypto_ahash_finup(struct ahash_request *req);
    int crypto_ahash_final(struct ahash_request *req);
    int crypto_ahash_digest(struct ahash_request *req);
    \
     
     \ /
      Last update: 2016-02-09 01:41    [W:2.358 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site