• Milan Broz's avatar
    dm crypt: add loop aes iv generator · 34745785
    Milan Broz authored
    This patch adds a compatible implementation of the block
    chaining mode used by the Loop-AES block device encryption
    system (http://loop-aes.sourceforge.net/) designed
    by Jari Ruusu.
    
    It operates on full 512 byte sectors and uses CBC
    with an IV derived from the sector number, the data and
    optionally extra IV seed.
    
    This means that after CBC decryption the first block of sector
    must be tweaked according to decrypted data.
    
    Loop-AES can use three encryption schemes:
     version 1: is plain aes-cbc mode (already compatible)
     version 2: uses 64 multikey scheme with own IV generator
     version 3: the same as version 2 with additional IV seed
                (it uses 65 keys, last key is used as IV seed)
    
    The IV generator is here named lmk (Loop-AES multikey)
    and for the cipher specification looks like: aes:64-cbc-lmk
    
    Version 2 and 3 is recognised according to length
    of provided multi-key string (which is just hexa encoded
    "raw key" used in original Loop-AES ioctl).
    
    Configuration of the device and decoding key string will
    be done in userspace (cryptsetup).
    (Loop-AES stores keys in gpg encrypted file, raw keys are
    output of simple hashing of lines in this file).
    
    Based on an implementation by Max Vozeler:
      http://article.gmane.org/gmane.linux.kernel.cryptoapi/3752/Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
    Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
    CC: Max Vozeler <max@hinterhof.net>
    34745785
dm-crypt.c 43.1 KB