lkml.org 
[lkml]   [2013]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 11/62] crypto: authenc - Find proper IV address in ablkcipher callback
    Date
    3.12-stable review patch.  If anyone has any objections, please let me know.

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

    From: Tom Lendacky <thomas.lendacky@amd.com>

    commit fc019c7122dfcd69c50142b57a735539aec5da95 upstream.

    When performing an asynchronous ablkcipher operation the authenc
    completion callback routine is invoked, but it does not locate and use
    the proper IV.

    The callback routine, crypto_authenc_encrypt_done, is updated to use
    the same method of calculating the address of the IV as is done in
    crypto_authenc_encrypt function which sets up the callback.

    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    crypto/authenc.c | 7 ++++---
    1 file changed, 4 insertions(+), 3 deletions(-)

    --- a/crypto/authenc.c
    +++ b/crypto/authenc.c
    @@ -368,9 +368,10 @@ static void crypto_authenc_encrypt_done(
    if (!err) {
    struct crypto_aead *authenc = crypto_aead_reqtfm(areq);
    struct crypto_authenc_ctx *ctx = crypto_aead_ctx(authenc);
    - struct ablkcipher_request *abreq = aead_request_ctx(areq);
    - u8 *iv = (u8 *)(abreq + 1) +
    - crypto_ablkcipher_reqsize(ctx->enc);
    + struct authenc_request_ctx *areq_ctx = aead_request_ctx(areq);
    + struct ablkcipher_request *abreq = (void *)(areq_ctx->tail
    + + ctx->reqoff);
    + u8 *iv = (u8 *)abreq - crypto_ablkcipher_ivsize(ctx->enc);

    err = crypto_authenc_genicv(areq, iv, 0);
    }



    \
     
     \ /
      Last update: 2013-12-10 10:41    [W:4.335 / U:0.504 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site