AES is a symmetric block cipher. It is symmetric because it uses the same key to encrypt and decrypt, and is a block cipher because it operates on individual, independent blocks of data. It is typically used for encryption and decryption.
Full, end-to-end encryption of plaintext to ciphertext.
$ cat aes.key
-my-16-byte-key-
$ echo 'Hello, world!' | tiber --output-hex encrypt --key aes.key
b1a4cd8fc4d3544b5c51623be45f1fc9Full, end-to-end decryption of ciphertext to plaintext.
$ echo 'b1a4cd8fc4d3544b5c51623be45f1fc9' | tiber --input-hex decrypt --key aes.key
Hello, world!Apply a particular step of the AES algorithm: one of sub-bytes, shift-rows, mix-columns, or add-round-key.
$ echo 'Hello, world!' | tiber shift-rows
H,l or lo lw!e dThe cipher can be interacted with through a web interface, by running the following command and opening localhost:8080.
$ docker run -p 8080:80 benmandrew/tiber$ makeCode docs are located online at benmandrew.com/docs/tiber/tiber/, or can be generated locally with
$ cargo doc --no-deps --openFuzz test inputs to the cipher with
$ docker run benmandrew/tiber:fuzzEach input is encrypted and decrypted to check idempotence, and the binary is built with ASan to detect memory errors.
