fernet-encrypt

A Fernet encryption CLI tool with a free, open source, remote API
Install
Use pipx to install globally in an isolated python environment.
pipx install fernet-encrypt
Usage
Usage: fernet-encrypt [OPTIONS] COMMAND [ARGS]...
╭─ Options ───────────────────────────────────────────────────────────────────────────────────╮
│ --install-completion Install completion for the current shell. │
│ --show-completion Show completion for the current shell, to copy it or │
│ customize the installation. │
│ --help Show this message and exit. │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ──────────────────────────────────────────────────────────────────────────────────╮
│ login Sign up or Login to https://fernet-encrypt.tysonholub.com │
│ get-keys Sync remote keys to fernet-encrypt local key storage │
│ create-local-key Create a new local storage Fernet key │
│ encrypt Encrypt stdin using local key storage or remote API keys │
│ decrypt Decrypt stdin using local key storage or remote API keys │
╰─────────────────────────────────────────────────────────────────────────────────────────────╯
login
Interactively login or create a new account
$ fernet-encrypt login
Or, pass a --refresh-token to generate a new access_token without logging in (useful for automation). A refresh_token can be pulled from the .fernet-encrypt file generated by logging in (in package install location)
$ fernet-encrypt login --refresh-token=your-token
get-keys
Sync remote encryption keys to your local package
$ fernet-encrypt get-keys
Or, use --stdout to print the JSON response without syncing to your local package
$ fernet-encrypt get-keys --stdout
create-fernet-key
Create a new local key for encryption
$ fernet-encrypt create-local-key
encrypt
Encrypt stdin data using local key storage.
$ echo "some-data" | fernet-encrypt encrypt
Or, use --remote to use remote API keys to encrypt. You should pass a --name to more easily identify your keys in the web portal
$ echo "some-data" | fernet-encrypt encrypt --name "some-name" --remote
decrypt
Decrypt stdin data using local key storage.
$ cat encrypted.out | fernet-encrypt decrypt
Or, use --remote to use remote API keys to decrypt.
$ cat encrypted.out | fernet-encrypt decrypt --remote
full circle
You can redirect the output to a file or pipe it into another command
$ echo "some-data" | fernet-encrypt encrypt --name "some-name" --remote | base64 -w0 > b64.out
$ base64 -d b64.out | fernet-encrypt decrypt --remote
some-data
In the web portal you should see a filename some-name. If you upload the encryption data, you will download a file named some-name containing some-data
$ base64 -d b64.out > encrypted.out
Dev Prerequisites
- python 3.12
- pipx, an optional tool for prerequisite installs
- poetry (install globally with
pipx install poetry) - flake8 (install globally with
pipx install flake8)- flake8-bugbear extension (install with
pipx inject flake8 flake8-bugbear) - flake8-naming extension (install with
pipx inject flake8 pep8-naming)
- flake8-bugbear extension (install with
- black (install globally with
pipx install black) - pre-commit (install globally with
pipx install pre-commit) - just, a Justfile command runner
Windows
Justfile support for Windows requires cygwin. Once installed your PATH will need to be updated to resolve cygpath.exe (probably C:\cygwin64\bin). Justfile will forward any targets with shebangs starting with / to cygwin for execution.
Consider using a bash terminal through WSL instead.
Updating python version:
- Update python version in
Dev Prerequisitesabove - Update [tool.poetry.dependencies] section of
pyproject.toml - Update pyupgrade hook in
.pre-commit-config.yaml - Update python version in
.gitlab-ci.yml
Justfile Targets
install: installs poetry dependencies and pre-commit git hooksupdate_boilerplate: fetches and applies updates from the boilerplate remotetest: runs pytest with test coverage report
Boilerplate
To support pulling updates from the pyplate python boilerplate, add the boilerplate git remote:
git remote add boilerplate git@gitlab.com:tysonholub/pyplate.git
Then moving forward, run just update_boilerplate to pull latest changes from the boilerplate remote. NOTE: you must keep the boilerplate remote history intact to successfully merge updates from the boilerplate remote.
Metadata
Release files for fernet-encrypt 2.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| fernet_encrypt-2.0.0.tar.gz | 7.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fernet_encrypt-2.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.6 kB
Release files / fernet_encrypt-2.0.0.tar.gz
| Download URL | fernet_encrypt-2.0.0.tar.gz |
|---|---|
| Size | 7.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
735811f86e95ce096085e3065cfef5230241486164a917efd9e6269865cbe7b7
|
|
BLAKE2b-256 checksum How to use checksums |
452fe2ec3f41ea522a3d1c9a97907717d3c47d0e8eb9eaa56cd3a3e8783a0004
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.13.2 Linux/5.15.154+
|
Release files / fernet_encrypt-2.0.0-py3-none-any.whl
| Download URL | fernet_encrypt-2.0.0-py3-none-any.whl |
|---|---|
| Size | 8.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5170734120dee0361aa72d942f203e3fedda55f734e6832c63cc6ebb0655151c
|
|
BLAKE2b-256 checksum How to use checksums |
d50e968e0b743308c0f7efe470d13317ca6c402a77e756eb0cd4a301241c948d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.13.2 Linux/5.15.154+
|
Security for fernet-encrypt 2.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.