Celo is a CLI tool to encrypt files from an user-defined secret phrase.
Celo encrypts files using AES GCM block cipher that provides both privacy and integrity checks. The Nonce used by the cipher is re-generated for every encryption, meaning that no nonce is reused.
Celo uses argon2 for key generation from a phrase with a random salt on every encryption. Even when the same phrase is used twice or more, a different key is generated.
Even though Celo was originally designed to be a command line interface tool, it makes sense to distribute it as a library hoping it could help other projects with similar needs.
Celo is still in early development and it's not recommended to be used in production tasks yet.
$ celo [COMMAND] <FILE|PATTERN> [ARG...]
You can get a detailed list o commands and arguments using the --help
flag.
$ celo --help
$ celo encrypt --help # $ celo e --help
$ celo decrypt --help # $ celo d --help
$ celo book_draft.md
> Enter Phrase:
> Confirm Phrase:
> 1 file(s) encrypted. (0 failed)
> Encrypted Files:
> book_draft.md.celo
The book_draft.md file will be encrypted resulting in a new file with the a similar name, suffixed with the .celo extension.
$ celo d book_draft.md.celo
> Enter Phrase:
> 1 file(s) decrypted. (0 failed)
> Decrypted Files:
> book_draft.md
Celo accepts a list of files as well as Glob patterns in both encryption
and decryption
.
# Encrypt files with .txt extension.
$ celo *.txt -rm-source # -rm-source flag removes the original files after successful encryption.
# [...]
# Encrypt all files except files with .png extension.
$ celo ./* -exclude="*.png" # $ celo "./*" -exclude="*.png" works too.
# [...]
# Decrypting multiple files with the .celo extension.
$ celo d ./*.celo
# [...]
- Unit tests
- Enhance file handling with buffers
- Improve error messages
- Packaging
MIT - © 2018