Fate - file and text encryption version 11.02.1
24 October 2023

fate.exe - Windows
fate - Linux

History:
Some encryption utilities offer more-than-is-necessary options, and Fate was
created to achieve very secure file and text encryption with no confusing
options to consider.

The ciphers used are ChaCha20, Aria(256), and Camellia(256) the modes used are
CBC, CFB, OFB, and CTR. (ChaCha20 is a stream cipher and does not use modes)
Fate sends your passwords through robust hashing and salting routines, and then
calls on OpenSSL to do the actual encryption. The ciphers and modes are randomly
chosen at runtime. These ciphers are all newer than the Rijndael cipher, aka
AES, and are held in high regard by the cybersecurity community.

Fate requires the use of OpenSSL and Cat, these two utilities are standard in
every Linux distribution, but not so much on Windows. A copy of Windows ports
of these two utils are in the zip file, you can place them in the working
directory, you can place them in your path for a more permanent solution. I've
included a small script in the archive named ossl_path.exe, and if run, this
script will place openssl.exe and cat.exe in the users' path, if you're unsure
of how to do that, see the seperate readme file for that script.

If you like to use these little scripts that I make, consider writing an email
and tell me where you're from. Have fun!

Dana Booth
dana@parksoft.ddns.net



Changelog:

11.02.1 - Fate was not properly closing the encrypted file upon an unsuccessful
decryption attempt, fixed.

11.02 - OpenSSL version 3.x came with major changes, and Fate v11.x addresses
this; this makes Fate v11.x incompatible with earlier versions. Additionally,
the method of text encryption has changed as well.

10.0 - Text encryption remains unchanged, file encryption is much faster. In
previous versions, the file would be compressed before being encrypted, and I
left that out in this version as, especially with large file, there was a big
speed hit for minimal benefit. Additionally, if you choose to "overwrite" a
file in either encrypt or decrypt mode, Fate will keep you original file safe
by copying it and renaming it before encryption / decryption until it knows
the operation was successful

9.0 - Text enctyption changed from TripleDES to AES-256(cbc)

8.0 - Not compatible with previous versions, Fate now chooses ciphers and modes
at runtime. The salt is now much longer.

5.0 - ** Both file and text output encryption methods have changed, if you have
files created from a previous version, be sure and keep them seperate, or re-
encrypt using this version.

File encryption method of passing the keystream and IV have changed,
additionally, the hash of the original file is stored in the encrypted file,
which the script will use to determine whether or not to overwrite an older
file. Another minor change is that the Linux version of Fate will store file
attributes on filesystems that support it, and write those attributes upon
de-ciphering. On Windows it's kind of a non-issue.

Changed the method of text encryption from TCL native AES-256 to using
OpenSSL Aria-256 just to be consistent. If you've saved text encrypted files
from an older version, keep that older version handy. Ciphertext output is back
to Base64 as it seems to be more universally used.

4.0 - strengthened the password routine, and changed the output from base64 to
ascii85, this will shorten the output ciphertext minimally. This makes this
version incompatible with previous versions

3.01, 07 Aug 2022, It was brought to my attention that encrypting / decrypting
files appeared as plural in the pull down, and I changed that. Also saw no sense
in spawning and deleting openssl.exe each time, so now it just checks to make
sure it's there, and will spawn it if it isn't

3.0, 05 Aug 2022, first public offering

Pre 3.0, was using Fate successfully, adding and subtracting things until I was
satisfied that other people wouldn't absolutely hate it.
