• Christian Lamparter's avatar
    crypto: crypto4xx - fix ctr-aes missing output IV · 0b2f2b9c
    Christian Lamparter authored
    commit 25baaf8e upstream.
    
    Commit 8efd972e ("crypto: testmgr - support checking skcipher output IV")
    caused the crypto4xx driver to produce the following error:
    
    | ctr-aes-ppc4xx encryption test failed (wrong output IV)
    | on test vector 0, cfg="in-place"
    
    This patch fixes this by reworking the crypto4xx_setkey_aes()
    function to:
    
     - not save the iv for ECB (as per 18.2.38 CRYP0_SA_CMD_0:
       "This bit mut be cleared for DES ECB mode or AES ECB mode,
       when no IV is used.")
    
     - instruct the hardware to save the generated IV for all
       other modes of operations that have IV and then supply
       it back to the callee in pretty much the same way as we
       do it for cbc-aes already.
    
     - make it clear that the DIR_(IN|OUT)BOUND is the important
       bit that tells the hardware to encrypt or decrypt the data.
       (this is cosmetic - but it hopefully prevents me from
        getting confused again).
    
     - don't load any bogus hash when we don't use any hash
       operation to begin with.
    
    Cc: stable@vger.kernel.org
    Fixes: f2a13e7c ("crypto: crypto4xx - enable AES RFC3686, ECB, CFB and OFB offloads")
    Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    0b2f2b9c
crypto4xx_alg.c 20.7 KB