• Daniel Rosenberg's avatar
    fscrypt: improve format of no-key names · edc440e3
    Daniel Rosenberg authored
    When an encrypted directory is listed without the key, the filesystem
    must show "no-key names" that uniquely identify directory entries, are
    at most 255 (NAME_MAX) bytes long, and don't contain '/' or '\0'.
    Currently, for short names the no-key name is the base64 encoding of the
    ciphertext filename, while for long names it's the base64 encoding of
    the ciphertext filename's dirhash and second-to-last 16-byte block.
    
    This format has the following problems:
    
    - Since it doesn't always include the dirhash, it's incompatible with
      directories that will use a secret-keyed dirhash over the plaintext
      filenames.  In this case, the dirhash won't be computable from the
      ciphertext name without the key, so it instead must be retrieved from
      the directory entry and always included in the no-key name.
      Casefolded encrypted directories will use this type of dirhash.
    
    - It's ambiguous: it's possible to craft two filenames that map to the
      same no-key name, since the method us...
    edc440e3
Kconfig 797 Bytes