arca version 1.02 - encryption engine supporting AES, Aria, Camellia, SM4, and
ChaCha20
22 November 2024
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) IV: any string of any length. Arca will hash a proper IV primed from this
string
5) method: "e" encrypts, "d" decrypts (without the quotes)
6) cipher: aes, aria, camellia, sm4, or chacha20
7) mode: cbc, cfb, ctr, ofb
8) 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.
22 November 2024
Dana Booth <danabooth@mail.com>
CHANGELOG
1.02
Just internals, condensing code
1.01
No change in function, first release version
1.0
No change in function, quick test run of release
0.12a
No change in function, added help text when run with wrong CL args
0.11a
Accepts normal passwords (and IV's) rather than pre-hashed keystreams
0.1a
Added cipher ChaCha20
0.09a
Added cipher SM4
0.08a
Added mode option