Skip to content
  • Stephan Mueller's avatar
    crypto: algif_skcipher - initialize upon init request · f26b7b80
    Stephan Mueller authored
    
    
    When using the algif_skcipher, the following call sequence causess a
    re-initialization:
    
    1. sendmsg with ALG_SET_OP and iov == NULL, iovlen == 0 (i.e
    initializing the cipher, but not sending data)
    
    2. sendmsg with msg->msg-controllen == 0 and iov != NULL (using the initalized
    cipher handle by sending data)
    
    In step 2, the cipher operation type (encryption or decryption) is reset
    to always decryption, because the local variable of enc is put into
    ctx->enc as ctx->user is still zero.
    
    The same applies when all send data is processed and ctx->used falls to
    zero followed by user space to send new data.
    
    This patch changes the behavior to only reset the cipher operation type
    (and the IV) if such configuration request is received.
    
    Signed-off-by: default avatarStephan Mueller <smueller@chronox.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    f26b7b80