arca version 2.08 - encryption engine supporting AES, Aria, Camellia, SM4, and
ChaCha20
10 February 2026
Files:
arca - Linux static binary
arca.exe - Windows static binary
readme.txt - this file
The binaries are written in Crystal
Arca is a basic encryption engine, it's meant to be wrapped, but it can also be
used as stand alone command line encryption.
There is no error checking during encrypting / decrypting, so it is up to the
user to make sure that the encryption cipher and mode are the same ones used in
decrypting.
Password will be hashed to the appropriate size keystream. (256 bit for AES,
Aria, Camellia, and ChaCha20, 128 bit for SM4) Arca performs not salting, so do
the salting before passing the password to Arca. The user can choose to hash
the keystream <iterations> number of times, if the "password" sent to Arca has
already been pre-hashed, just use "0" as the <iterations> number. The IV will
also be hashed (once) by Arca. Iterations is a convenience, as the engine is
very fast.
Command line:
usage: arca input_filename, output_filename, password, IV, method, cipher,
mode, iterations (without the commas)
1) input_filename: name of file to encrypt or decrypt
2) output filename: name of encrypted or decrypted file to create
3) password: any string of any length. Arca will hash the keystream primed from
this string
4) method: "e" encrypts, "d" decrypts (without the quotes)
5) cipher: aes, aria, camellia, sm4, or chacha20
6) mode: cbc, cfb, ctr, ofb
7) iterations: number of times to hash the password / keystream
*note* - the password is assumed to have already been salted, arca does not
salt.
*note* - "mode" is meaningless when using chacha20, (a stream cipher that does
not use modes) but must be there nevertheless, as Arca uses a fixed command
line format.
10 February 2026
Dana Booth <danabooth@mail.com>
CHANGELOG (releases only)
2.08
Files retain original time stamp. Not sure why this never occurred to me
before. This effects compatibility with earlier versions due to the encrypted
file now containing metadata.
2.07
Reduced slice size from 16384 to 4096, does not affect compatibility with
earlier versions.
2.04
No change in function, just cleaning up.
1.02
Just internals, condensing code.
1.01
No change in function, first release version.