Some typical client operation and how to use the API to perform them.
- Check server for a existing private/public key (see Get private key and Get public keys)
- If the client could download the keys he ask the user for the password to decrypt the private key
- Get public system key from server to validate the signature of the users public key.
- Check server for a existing private/public key (see Get private key and Get public keys)
- no key was found
- Client generates a private key and a public key
- Client sends the public key to the server in order to sign it (see Sign public key). If signing was successful the signed key will be returned and the client stores it locally
- Client sends encrypted private key to the server, so that other clients can pick it up (see Store private key)
- Create a new empty folder
- mark folder as encrypted (see Set encryption flag for a folder). If a folder is marked as encrypted all content in the folder and sub-folder are considered to be encrypted, no need to mark sub-folders
- Encrypt all files in the folder and upload them together with the meta-data file
- unlock folder
- lock folder (only needed if the folder is not empty)
- upload all files unencrypted
- delete the meta-data file (see Delete meta-data file)
- unlock the folder
- lock the file you want to upload (see Lock file) you will get a e2e-token which can be used to restart the process, e.g. if the connection dropped
- Make sure that you have the latest version of the meta-data file (see Get meta-data file)
- Update the meta-data file and encrypt the file
- upload the meta-data file and the encrypted file (see store meta-data file) and update meta-data file)
- if everything was successful, unlock the file (see Unlock file)
- lock the file you want to update (see Lock file)
- Make sure that you have the latest version of the meta-data file (see get meta-data file)
- Update the meta-data file
- upload the meta-data file (see store meta-data file and update meta-data file)
- unlock the file (see Unlock file)
same as "Share a file", but in this case the file needs to re-encrypted with a new file key so the client also need to upload a new encrypted file