Jax - File and Text Encryption, version 11.74
Written by Dana Booth, 05 September 2026

Jax is insanely secure at the cost of speed.

Usage is mostly self explanitory, but a couple of items:

1) Hash Offset input field
	When creating the keystream, Jax will mix the user provided password with a
	salt, and then hash the result between two hundred and three hundred
	thousand times, determined at runtime. The "offset" will add or subtract to
	that number for further user provided obfuscation. Enter negative numbers
	by preceeding with a minus "-" sign. The user _must_ use this number again
	for successful decryption; it is not stored in the metadata.

2) No L/F's In Output
	When encrypting text in the text box, this checkbox will appear. Jax, when
	encrypting text, will insert a line feed after every 74 characters. If this
	checkbox is checked, the output will be one long string, although it will be
	wrapped in the text box. This is desirable when copying and pasting to certain
	 websites or IRC channels.

3) Garble Filename
	When encrypting files, this checkbox will appear. If checked, Jax will
	create an output file with a filename consisting of fifteen random
	characters to hide the original filename. However, the original filename is
	preserved in the metadata, and the encrypted file will decrypt to the original
	filename.

4) Optional ASL
	When encrypting files, any string entered into this box will be hashed, and
	will add to the tests that decryption must pass to sucessfully decrypt the
	file. This is for further user provided obfuscation. This string will itself
	be encrypted and stored in the metadata, and does not need to be remembered.

5) Bcrypt cost
	Memory cost when Bcrypt assists in keystream generation. Multiples of 2
	starting at 4, e.g., 4 = 16, 5 = 32, 6 = 64, etc. The default is 11, 2048.


Files in this archive:

Windows /
	jax.exe - main interface
	ekit.exe - encryption engine*
	sdelete.exe - Windows users need this file for the "shred" fuction to work
	correctly. If sdelete.exe is not present, a normal delete is done instead.

	* ekit.exe and sdelete.exe _must_ be in your computers "path" for Jax to
	function correctly. If you don't know how to do that, I've added a util with
	the Windows files named "add_path" that'll fix you up.

Linux /
	jax - main user interface
	ekit - encryption engine*
	
	* ekit _must_ be in the users path for jax to function correctly.


jax / jax.exe are written in TCL using the TK graphic library
ekit / ekit.exe (cipher kit) are written in Crystal
sdelete.exe I did not write, it is part of sysinternals available from
Microsoft.

Hope someone finds this useful!

Dana Booth
danabooth@mail.com

CHANGELOG

11.74 - Added option to manually set Bcrypt memory cost when generating the
keystream.

11.73 - Another public release, not compatible with previous versions. Now uses
ekit(.exe) which is a re-write of alkit for encryption and keystream
generation. Additionally, bcrypt has been added to the keystream and salt
generation processes.

11.59 - Another public release, not compatible with previous versions. Changed
methed of keystream and IV generation, now uses alkit and xtrom as helper apps.

10.03 - Fixed little bug regarding deleting temp files.

10.02 - Don't remember.

10.01 - Revised text ecryption to mirror file encryption methods, added
function to clear CPU cache of residual bits.

9.25 - Checks to prevent bad file namels.

9.21 - Re-wrote the encryption engine to the extent that I just re-named it.
Additionally, added safeguards to how the command line is passed to the
encryption engine.

9.19.2 - Another change in how the temp directory is called.

9.19 - A change to how the temp directory is called.

9.17.2 - Fixed an issue where Jax would not prompt an overwrite confirmaion
when deciphering an encrypted file if the original un-encrypted file exists.

9.17.1 - Increased the default number of hashing iteration during keystream
production. This does not affect compatibility with previous versions.


9.17 - Changed text encryption output to ascii85 encoding, reduces size of output

9.01.2 - Better seeded the random number generator

9.01 - Old version didn't preserve file timestamps, that's fixed

8.01 - Didin't work out

7.01 - Cleaned up the way file encryption does its thing

6.xx - I never make version 6

5.01 - file obfuscation added

4.11 - file and keystream hashing now much faster

3.01 - and you thought v 2.01 text encryption was ridiculousy unbreakable

2.01 - made text encryption more ridiculously unbreakable than it already was

1.01 - fixe bug where DOS/Windows style CR/LF pair were being stripped and only
the LF remained
