Skip to main content

Run a local credential store.

Project description

yacs

Yet another credential store 🔐

yacsis a command-line tool that allows you to securely store, manage, and retrieve secrets locally in an encrypted JSON file. This tool uses AES encryption with a master password to ensure your secrets are kept safe.

Features

Initialization: Set up a new credential store with a master password and a hint. Adding Secrets: Add secrets with descriptions, supporting both string and binary types. Retrieving Secrets: Retrieve secrets by their key. Viewing Keys and Descriptions: List all keys and their descriptions. Resetting: Delete the credential store and start from scratch.

Encryption and Decryption

yacs securely encrypts and decrypts your secrets using AES encryption with a key derived from your master password. When you initialize the credential store, a strong encryption key is generated from your master password using PBKDF2 (Password-Based Key Derivation Function 2) with a unique salt. This key, combined with a randomly generated Initialization Vector (IV), encrypts your secrets, ensuring each encryption is unique and secure. The encrypted data is then encoded in base64 format for safe storage. For added security, the tool prompts you to re-enter your master password after initialization to verify that the data can be successfully decrypted, ensuring the integrity and accessibility of your secrets.

Security

The Local Secrets Manager uses AES encryption with a key derived from your master password using PBKDF2 (Password-Based Key Derivation Function 2) with a unique salt. This ensures that your secrets are securely encrypted and can only be decrypted with the correct master password.

Usage

Install the command line interface via the cli.

```
pip install yacs-cli
```

After installing you should be able to see the below when you run yacs. ``` @raiyanyahya ➜ /workspaces/yacs (master) $ yacs Usage: yacs [OPTIONS] COMMAND [ARGS]...

A cli to provision and manage local developer environments.

Options:
--version  Show the version and exit.
--help     Show this message and exit.

Commands:
get    Get a secret from the credential store.
init   Initialize an empty local credstore.
put    Add a secret to the credential store.
reset  Delete the credstore and start from scratch.
view   View all keys and their descriptions.
```

Initialize the store

```
yacs init
```

Add a secret

```
yacs put /mykey "description" mysecretstring
```

Get a secret

```
yacs get /mykey
```

View all keyand descriptions

```
yacs view
```

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yacs-cli-0.1.0.tar.gz (6.7 kB view details)

Uploaded Source

Built Distribution

yacs_cli-0.1.0-py2.py3-none-any.whl (9.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file yacs-cli-0.1.0.tar.gz.

File metadata

  • Download URL: yacs-cli-0.1.0.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for yacs-cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 63f6c57077a0505498f46f93f85e4b65cd3f3161f56ba8f842a83c2fd348749e
MD5 c95dc89b1c23b036055ff30838c7fc31
BLAKE2b-256 71eab10ea1ed8d9990ffe86b65abcdf685111499aeb0d39e524fd969dd7cb989

See more details on using hashes here.

File details

Details for the file yacs_cli-0.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: yacs_cli-0.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.13

File hashes

Hashes for yacs_cli-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 1cd38539a760120f3a8eac31e66cd3709326ea7938ae4cfdbd68adf5fb3a2522
MD5 08e19a1b8b24c683de81447df8b0239c
BLAKE2b-256 bc9933962fd41568c62ab54aefd839a42069c9ae7292f0714454ee03a667ef89

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page