====== Tabulify - Vault (Encryption / Decryption) ======
===== Vault =====
''Tabulify'' includes natively a ''vault'' functionality that lets you encrypt or decrypt ''text'' configuration parameters (mostly [[docs:connection:attribute|connection attribute]]) in order to keep sensitive information secret.
The encryption is done with approved Encryption cipher of the ''NIST'' that takes as input a ''cryptographic key'' that is generated from a [[passphrase|passphrase]]. At every encryption, a ''random salt'' is used and therefore the encrypted output is never the same. On top of this process, we use a ''mac check'' to verify the integrity of the data.
According to the [[wp>Kerckhoffs%27_principle|Kerckhoffs' principle]] ''only secrecy of the key provides security'', you should take great care of your [[passphrase#security considerations|passphrase]] (See [[passphrase#security considerations|passphrase security considerations]]).
===== CipherText =====
A ''text'' that has been encrypted will start with the ''vault'' prefix.
Example:
vaultQVE9PT5kclVidjZCZnYyUUtKMFBvT200UGF3PT0+SmZRZFhXU2dHWEhCZmFpe
===== Encryption / Decrption =====
* [[docs:tabli:vault:encrypt|Encrypt]]
* [[docs:tabli:vault:decrypt|Decrypt]]
===== Mandatory =====
* The [[docs:connection:password|password]] is the only mandatory encrypted attribute. Ie you can't save a [[docs:connection:password|password]] without giving a [[passphrase|passphrase]].
With the [[docs:connection:attribute#automatic_encryption|automatic attribute encryption]], you can automatically encrypt other attributes.
===== Technically =====
* An approved Encryption cipher: All cipher used are approved by the Computer security division of the USA department of commerce via the National Institute of Standard and Technology) and follows the [[https://csrc.nist.gov/publications/detail/sp/800-38a/final|SP800-38A recommendations]].
* Raw keyed encryption: Salts and Initialization Vectors (IV) have been randomized and are generated for every encryption. The same password leads even with the same [[#passphrase]] to another ciphertext.