Updated: 240930

The chest program can be used to encrypt and decrypt files using a password
hash (SHA-512) hopping algorithm. Note that the encrypted output may be
vulnerable to hash database cracking due to its simplicity.

Just give a filename as argument and it should detect, according to the
presence of the .chest extension, whether to encrypt or decrypt.

Neither the password or the hash are stored in the output file, the hash is
generated at runtime after the user has been asked for a password.

It is now possible to use a file as password. The hash will be computed with  
the content all at once, so use a file that can be entirely loaded into  
memory.

DISCLAIMER
There is no warranty that the encrypted output file is not
crackable! Normally you shouldn't store critical data with this encryption.
See the LICENSE file for full disclosure.

BUGS
The C version and the Go versions should give the same results, but differ
from the encrypted output from the Python and Rust versions when used with
a password file ending with a newline character.

NOTES
As a strategy you can remove the .chest extension and reencrypt again
to reduce chances of bruteforce attacks, since there's not really a way to
tell if the first pass gives correct results.

Enjoy!

