Encrypted files
---------------

- Each encrypted file has at least two components: the encrypted data file
  ('catfile'), and it's corresponding key file ('keyfile'). Shared files have an
  additional key file ('share key'). The catfile contains the encrypted data
  concatenated with delimiter text, followed by the initialisation vector ('IV'),
  and padding. e.g.:

  [encrypted data string][delimiter][IV][padding]
  [anhAAjAmcGXqj1X9g==][00iv00][MSHU5N5gECP7aAg7][xx] (square braces added)

Notes
-----

- The user passphrase is required in order to set up or upgrade the app. New 
  keypair generation, and the re-encryption of legacy encrypted files requires
  it. Therefore an appinfo/update.php script cannot be used, and upgrade logic
  is handled in the login hook listener.