Skip to main content

symmetric-secrete-share

Python CLI to share secret files via github with symmetric encryption ed25519.

  • IMPORTANT: The secret files should be git-ignored to avoid oblivious leakage.
  • Temporarily supports only text files (only tested with .env).
  • Best used to store/share secrets and configurations.
  • Key should be a 32-byte long string, meanly 32 ASCII or two-byte UTF-8 characters.
  • (FAQ) If you share with GitHub (like the example), please notice that there's a 5 minutes cool-down on refreshing. Detail

Use

  1. Install CLI: pip3 install symmetric-secrete-share.
  2. Check the Tutorial Chapter and sss --help.
  3. Recommended: set up a global key chain with sss key, or you would have to input a key every time.
  4. Get a config like $REPO_ROOT/tests/injection/sss.json. The JSON-schema in $schema of this file will help you write the config file.

inject

  1. Get a config file like $REPO_ROOT/tests/injection/sss.json.

  2. Run CLI

    sss inject [-k TEXT] CONFIG_PATH
    

share

  1. Run CLI

    sss share [-k TEXT] CONFIG_PATH
    

key

  1. Run CLI

    sss key [-c/f/g] # -g: generate one key, -c: clear key chain, -f: force
    
  2. Upload the generated file to GitHub (or other platforms).

  3. Update the config file if needed.

Security

  • There are 256**32==1,15e+77 keys of 32 of ASCII (one-byte utf-8 string).
  • To generate this kind of key, you can use sss key --generate.
  • There are 256**64==1.34e+154 keys of 64 of ASCII (two-byte utf-8 string).
  • To generate two-byte utf-8 string, a possibility is to use onlineutf8tools

Contribute

Tutorial

In this tutorial, all commands are assumed to be run under the $REPO_ROOT. We are going to use these concepts and variables:

  • key chain: A file to share key, initialized with sss key.
  • key: This key contains 32 characters..
  • URL: https://raw.githubusercontent.com/PabloLION/symmetric-secrete-share/main/tests/example.encrypted.

We are going to play with the folder test/injection, with the sss.json file inside it. To share your own file, a new config file should be created.

Setup a local key chain

sss key # create/edit
sss key -c # clear all keys

load files from URL

These code will generate a test/injection/target.env like test/example.env

sss inject ./tests/injection/sss.json # use key from initial key chain
sss inject -k "This key contains 32 characters." ./tests/injection/sss.json
sss inject ./tests/injection/sss.json -k "I'm a string with 32 characters." # fail

share files

Need to upload manually #TODO These code will generate a test/injection/target.encrypted

sss share ./tests/injection/sss.json # use key from initial key chain
sss share -k "This key contains 32 characters." ./tests/injection/sss.json

Metadata

Release files for symmetric-secrete-share 0.0.7

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

Source distribution (sdist)

Source distribution for symmetric-secrete-share 0.0.7
File Size Uploaded Provenance
symmetric-secrete-share-0.0.7.tar.gz 11.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for symmetric-secrete-share 0.0.7
File Interpreter ABI Platform
symmetric_secrete_share-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 23.7 kB

Release files / symmetric-secrete-share-0.0.7.tar.gz

Download URL symmetric-secrete-share-0.0.7.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1c051cbc3f38861e53258daef396ca5d70dbac7aa5e22746e95f3e7fc1709d73
BLAKE2b-256 checksum
How to use checksums
9cc9ff5de5e8c8af95d18a8ec162b546b9dc042a007ddc310aa33f8840870cea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.10.1 Darwin/21.2.0

Release files / symmetric_secrete_share-0.0.7-py3-none-any.whl

Download URL symmetric_secrete_share-0.0.7-py3-none-any.whl
Size 12.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
76bd6fb776f540c2eb892cdb3ba1153210c958cf39e35455e435f6a073810c2c
BLAKE2b-256 checksum
How to use checksums
1742e512e0809ae5e24782d18c99b722452073227564757f63798b2503f8ed66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.1.12 CPython/3.10.1 Darwin/21.2.0

Security for symmetric-secrete-share 0.0.7

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.

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