• Stephan Mueller's avatar
    crypto: algif - add AEAD support · 400c40cf
    Stephan Mueller authored
    This patch adds the AEAD support for AF_ALG.
    
    The implementation is based on algif_skcipher, but contains heavy
    modifications to streamline the interface for AEAD uses.
    
    To use AEAD, the user space consumer has to use the salg_type named
    "aead".
    
    The AEAD implementation includes some overhead to calculate the size of
    the ciphertext, because the AEAD implementation of the kernel crypto API
    makes implied assumption on the location of the authentication tag. When
    performing an encryption, the tag will be added to the created
    ciphertext (note, the tag is placed adjacent to the ciphertext). For
    decryption, the caller must hand in the ciphertext with the tag appended
    to the ciphertext. Therefore, the selection of the used memory
    needs to add/subtract the tag size from the source/destination buffers
    depending on the encryption type. The code is provided with comments
    explaining when and how that operation is performed.
    
    A fully working example using all aspects of AEAD is provided at
    http://www.chronox.de/libkcapi.htmlSigned-off-by: default avatarStephan Mueller <smueller@chronox.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    400c40cf
algif_aead.c 15.3 KB