• Christian Lamparter's avatar
    crypto: crypto4xx - use the correct LE32 format for IV and key defs · 4865b122
    Christian Lamparter authored
    The hardware expects that the keys, IVs (and inner/outer hashes)
    are in the le32 format.
    
    This patch changes all hardware interface declarations to use
    the correct LE32 data format for each field.
    
    In order to pass __CHECK_ENDIAN__ checks, crypto4xx_memcpy_le
    has to be honest about the endianness of its parameters.
    The function was split and moved to the common crypto4xx_core.h
    header. This allows the compiler to generate better code if the
    sizes/len is a constant (various *_IV_LEN).
    
    Please note that the hardware isn't consistent with the endiannes
    of the save_digest field in the state record struct though.
    The hashes produced by GHASH and CBC (for CCM) will be in LE32.
    Whereas md5 and sha{1/,256,...} do not need any conversion.
    Signed-off-by: default avatarChristian Lamparter <chunkeey@gmail.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    4865b122
crypto4xx_core.c 34.8 KB