jolokia 0.5.1

Strong encryption, made simple.
Documentation

jolokia

Crates.io License GitHub Tag tokei (loc) crates.io GitHub Actions Workflow Status

Strong encryption, made simple.

Examples

$ jolokia genkey
hNbaua5cGlUNsEp4HSUTSJG7gl5IURQiTvnABzhFW4w

$ jolokia encrypt "hello, world!" --key hNbaua5cGlUNsEp4HSUTSJG7gl5IURQiTvnABzhFW4w
Q0gyMAGnAk2xt/+cAAAAHYUv/WBO+VxMGHodIL0Qzjbtnv/LPpQd3CCcYW0kAAAAAA

# Same as passing `--key`.
$ export JOLOKIA_CIPHER_KEY=hNbaua5cGlUNsEp4HSUTSJG7gl5IURQiTvnABzhFW4w

$ jolokia decrypt Q0gyMAGnAk2xt/+cAAAAHYUv/WBO+VxMGHodIL0Qzjbtnv/LPpQd3CCcYW0kAAAAAA
hello, world!

# The key can be stored inside a file as well.
$ jolokia decrypt --key /secrets/jolokia.key Q0gyMAGnAk2xt/+cAAAAHYUv/WBO+VxMGHodIL0Qzjbtnv/LPpQd3CCcYW0kAAAAAA
hello, world!

Roadmap

  • genkey
  • encrypt/decrypt
    • From CLI argument.
    • From stdin.
    • From file (show example with tar).
    • From directory (-R, --recursive).
  • Complete --help.
  • -r/--raw (if you don't want base64 output/input).
  • Encrypt in-place
  • Streaming cipher (everything is ready for it, CLI and algos, the two are just not yet connected).
  • Choose --algorithm (JOLOKIA_ALGORITHM).
    • ChaCha20-Poly1305
    • ROT-n (useless, but forces generic design).
    • RSA
  • If multiple algorithms, should we keep JOLOKIA_CIPHER_KEY as default also support specialized: JOLOKIA_CIPHER_KEY_CHACHA20POLY1305?). If so, rename JOLOKIA_CIPHER_KEY to just JOLOKIA_KEY.
  • Zeroize secrets.
  • Support in-place ciphering (with a temporary intermediate file).

Installation

Directly

$ wget https://github.com/qrichert/jolokia/releases/download/X.X.X/jolokia-X.X.X-xxx
$ sudo install ./jolokia-* /usr/local/bin/jolokia

Manual Build

System-wide

$ git clone https://github.com/qrichert/jolokia.git
$ cd jolokia
$ make build
$ sudo make install

Through Cargo

cargo install jolokia
cargo install --git https://github.com/qrichert/jolokia.git