Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rrivera/celo
Celo is a CLI tool to encrypt files from an user-defined Secret Phrase.
https://github.com/rrivera/celo
aes-encryption argon2 cli crypto cryptography go golang password
Last synced: 15 days ago
JSON representation
Celo is a CLI tool to encrypt files from an user-defined Secret Phrase.
- Host: GitHub
- URL: https://github.com/rrivera/celo
- Owner: rrivera
- License: mit
- Created: 2018-07-08T02:16:52.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-01-14T20:43:28.000Z (10 months ago)
- Last Synced: 2024-10-28T05:36:48.331Z (19 days ago)
- Topics: aes-encryption, argon2, cli, crypto, cryptography, go, golang, password
- Language: Go
- Homepage:
- Size: 33.2 KB
- Stars: 6
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Celo [![GitHub tag](https://img.shields.io/github/tag/rrivera/celo.svg)](https://github.com/rrivera/celo/tree/master)
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.---
## Key Generation
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.## Celo as library
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.## WARNING!
Celo is still in early development and it's not recommended to be used in production tasks **yet**.## CLI Usage
```bash
$ celo [COMMAND] [ARG...]
```You can get a detailed list o commands and arguments using the `--help` flag.
```bash
$ celo --help
$ celo encrypt --help # $ celo e --help
$ celo decrypt --help # $ celo d --help
```## Encrypting a single file
```bash
$ 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.## Decrypting a single file
```bash
$ celo d book_draft.md.celo> Enter Phrase:
> 1 file(s) decrypted. (0 failed)
> Decrypted Files:
> book_draft.md
```## Working with multiple files
Celo accepts a list of files as well as Glob patterns in both `encryption` and `decryption`.
```bash
# 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
# [...]
```## Road map
- [ ] Unit tests
- [ ] Enhance file handling with buffers
- [ ] Improve error messages
- [ ] Packaging---
MIT - © 2018