Skip to main content

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.

Metadata

Release files for yacs-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yacs-cli 0.1.0
File Size Uploaded Provenance Actions
yacs-cli-0.1.0.tar.gz 6.7 kB Without provenance Details for yacs-cli-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for yacs-cli 0.1.0
File Interpreter ABI Platform Actions
yacs_cli-0.1.0-py2.py3-none-any.whl Python 2, Python 3 none any Details for yacs_cli-0.1.0-py2.py3-none-any.whl

Total release size: 15.7 kB

Release files / yacs-cli-0.1.0.tar.gz

Download URL yacs-cli-0.1.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
63f6c57077a0505498f46f93f85e4b65cd3f3161f56ba8f842a83c2fd348749e
BLAKE2b-256 checksum
How to use checksums
71eab10ea1ed8d9990ffe86b65abcdf685111499aeb0d39e524fd969dd7cb989
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.13

Release files / yacs_cli-0.1.0-py2.py3-none-any.whl

Download URL yacs_cli-0.1.0-py2.py3-none-any.whl
Size 9.0 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
1cd38539a760120f3a8eac31e66cd3709326ea7938ae4cfdbd68adf5fb3a2522
BLAKE2b-256 checksum
How to use checksums
bc9933962fd41568c62ab54aefd839a42069c9ae7292f0714454ee03a667ef89
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.13

Security for yacs-cli 0.1.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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page