Secure subprocess secret injection for AI agents
Project description
secretsh
Secure subprocess secret injection for AI agents.
secretsh keeps credentials out of LLM context, shell history, and command output. AI agents write commands with {{PLACEHOLDER}} tokens; secretsh resolves them against an encrypted vault and redacts any secrets that leak back through stdout/stderr.
Agent prompt: curl -u admin:{{API_PASS}} https://internal/api
Child argv: curl -u admin:hunter2 https://internal/api
Agent sees: curl -u admin:[REDACTED_API_PASS] https://internal/api
Why
When an AI agent runs curl -u admin:hunter2 ..., three things go wrong:
- The LLM knows the secret and can be tricked into leaking it.
- Shell history records it in
~/.bash_history. - Command output may echo it back (
curl -v, misconfigured services), and the LLM ingests it.
secretsh fixes all three: secrets live in an encrypted vault, enter the process only at exec time, and are scrubbed from output before anything reaches the caller.
Install
Homebrew (macOS / Linux)
brew tap lthoangg/tap
brew install secretsh
From source
cargo install secretsh
Pre-built binaries
Download from GitHub Releases for:
x86_64-apple-darwinaarch64-apple-darwinx86_64-unknown-linux-gnuaarch64-unknown-linux-gnu
Requirements
- macOS 10.15+ or Linux (glibc)
- Rust 1.75+ (build from source only)
Quick Start
1. Set your master passphrase
This prompt is silent -- type your passphrase and press Enter. Nothing is saved to shell history.
read -rs SECRETSH_KEY && export SECRETSH_KEY
All commands default to reading the passphrase from SECRETSH_KEY. Use --master-key-env OTHER_VAR to override.
2. Create a vault and add secrets
secretsh init
Easiest: import from an existing .env file:
secretsh import-env -f .env
Or add secrets one at a time (type the value, then press Ctrl+D on a new line to finish):
secretsh set API_PASS
secretsh set API_USER
3. Run commands with {{placeholders}}
secretsh run -- "curl -u {{API_USER}}:{{API_PASS}} https://httpbin.org/basic-auth/admin/hunter2"
The output is always scrubbed -- any vault secret (raw, base64, URL-encoded, or hex) is replaced with [REDACTED_<KEY>].
4. See what's stored
secretsh list
Values are never displayed.
Commands
| Command | Description |
|---|---|
secretsh init |
Create a new encrypted vault |
secretsh set <KEY> |
Store a secret (reads value from stdin) |
secretsh delete <KEY> |
Remove a secret |
secretsh list |
List key names (never values) |
secretsh run -- "cmd" |
Execute a command with secret injection + output redaction |
secretsh export --out <path> |
Export vault to an encrypted backup |
secretsh import --in <path> |
Import entries from a backup |
secretsh import-env -f <path> |
Import secrets from a .env file |
All commands read the passphrase from the SECRETSH_KEY environment variable by default. Use --master-key-env <ENV_VAR> to read from a different variable. The passphrase itself is never passed on the command line.
Security Model
What secretsh protects against
- Secret leakage into LLM prompt/context (placeholder model)
- Secret leakage via shell history
- Secret leakage via stdout/stderr (Aho-Corasick streaming redaction)
- Encoded secret leakage (base64, URL-encoding, hex)
- Vault tampering (HMAC-authenticated header + per-entry AES-256-GCM with positional AAD + full-file commit tag)
- Metadata leakage from vault file (key names are encrypted)
- Core dump inclusion (RLIMIT_CORE=0)
What is explicitly out of scope
/proc/<pid>/cmdlineinspection (secret is in child argv for its lifetime)- Physical memory attacks (cold boot, kernel exploits)
- Malicious commands that exfiltrate their own arguments
- Compromise of the master passphrase itself
See docs/threat-model.md for the full threat model and technical architecture.
Cryptographic Primitives
| Component | Algorithm | Library |
|---|---|---|
| Encryption | AES-256-GCM | ring |
| MAC | HMAC-SHA256 | ring |
| KDF | Argon2id (128 MiB, t=3, p=4) | argon2 |
| Key expansion | HKDF-SHA256 | ring |
| Random | OS CSPRNG | ring::rand::SystemRandom |
Key derivation uses HKDF domain separation: the Argon2id output is never used directly. Independent subkeys are derived for encryption (secretsh-enc-v1) and HMAC (secretsh-mac-v1).
Architecture
+------------------+
Agent writes: | curl {{API_KEY}} | (placeholder — LLM never sees the value)
+--------+---------+
|
+--------v---------+
| Tokenizer | Strict POSIX-subset parser
| (rejects pipes, | No shell intermediary
| globs, $(), ;) |
+--------+---------+
|
+--------v---------+
| Vault Decrypt | AES-256-GCM + Argon2id
| + Placeholder | Resolve {{KEY}} -> value
| Resolution |
+--------+---------+
|
+--------v---------+
| posix_spawnp() | Direct exec, no sh -c
| (macOS) | argv zeroized after spawn
+--------+---------+
|
+--------v---------+
| Aho-Corasick | O(n) streaming redaction
| Output Filter | Raw + base64 + URL + hex
+--------+---------+
|
+--------v---------+
Agent receives: | [REDACTED_KEY] | Scrubbed output
+------------------+
Configuration
Vault Location
| Platform | Default path |
|---|---|
| macOS | ~/Library/Application Support/secretsh/vault.bin |
| Linux | $XDG_DATA_HOME/secretsh/vault.bin |
Override with --vault <path> on any command.
Multiple Vaults
Every command accepts --vault, so you can maintain separate vaults for different contexts:
# Work vault
secretsh init --vault ~/.secretsh/work.vault --master-key-env WORK_KEY
secretsh import-env -f .env.work --vault ~/.secretsh/work.vault --master-key-env WORK_KEY
# Personal vault
secretsh init --vault ~/.secretsh/personal.vault --master-key-env PERSONAL_KEY
secretsh import-env -f .env.personal --vault ~/.secretsh/personal.vault --master-key-env PERSONAL_KEY
# Run from either
secretsh run --vault ~/.secretsh/work.vault --master-key-env WORK_KEY -- \
"curl -H 'Token: {{API_TOKEN}}' https://api.example.com"
Each vault is independent: different passphrase, different salt, different entries.
Resource Limits
| Limit | Default | Flag |
|---|---|---|
| Child timeout | 300s | --timeout |
| Max stdout | 50 MiB | --max-output |
| Max stderr | 1 MiB | --max-stderr |
Exceeding any limit triggers SIGTERM + SIGKILL escalation (exit code 124).
Exit Codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1-125 | Child process exit code (passthrough) |
| 124 | Timeout or output limit exceeded |
| 125 | secretsh internal error |
| 126 | Command not executable |
| 127 | Command not found |
| 128+N | Child killed by signal N |
Python API
secretsh provides native Python bindings via PyO3. Secrets stay on the Rust heap and never cross the FFI boundary as Python str.
import secretsh
with secretsh.Vault(master_key_env="SECRETSH_KEY") as vault:
vault.set("API_KEY", bytearray(b"sk-live-abc123")) # bytearray is zeroed after copy
result = vault.run("curl -H 'Authorization: Bearer {{API_KEY}}' https://api.example.com")
print(result.stdout) # -> "... Authorization: Bearer [REDACTED_API_KEY] ..."
print(result.exit_code) # -> 0
Install from source
uv venv .venv && source .venv/bin/activate
uv sync --group dev # install dev deps (pytest, pytest-cov)
maturin develop --features python # build + install into venv
python -m pytest tests/ -v # run tests
Requires Python 3.10+.
Development
# Build
cargo build
# Run Rust tests (188 unit tests)
cargo test
# Lint
cargo clippy -- -D warnings
# Format
cargo fmt
# Build release
cargo build --release
# Python bindings
maturin develop --features python
python -m pytest tests/ -v
Examples
See examples/ for runnable examples:
| File | What it demonstrates |
|---|---|
basic_cli.sh |
Full CLI walkthrough: init, set, list, run, export, import, delete, exit codes |
basic_python.py |
Python API: set, run, redaction, bytearray zeroing, timeout, error handling, export/import |
multi_vault.py |
Multiple vaults with different passphrases for staging vs production |
read -rs SECRETSH_KEY && export SECRETSH_KEY
bash examples/basic_cli.sh
python examples/basic_python.py
License
Contributing
See CONTRIBUTING.md for guidelines.
Security
To report a vulnerability, see SECURITY.md.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file secretsh-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 483.9 kB
- Tags: PyPy, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8acd016a13895936de25c7e66be09d9dbec61fdc2b5d44a8072be7b142649ebe
|
|
| MD5 |
6643928eb93a4f2569b4ed8ce63e2319
|
|
| BLAKE2b-256 |
fbb66313d1481872ee21e46d933060c1cf46569d1fc27c6bdaef028e5ad0bf79
|
File details
Details for the file secretsh-0.1.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: secretsh-0.1.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 422.7 kB
- Tags: PyPy, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ded1f090fe03d216a5809dd37a0d159aca0efd955c1cd248d4f48a39c47c593d
|
|
| MD5 |
40321c7e2e27a652ba9caeb7d7156ff6
|
|
| BLAKE2b-256 |
1b0714619f24434281efa6d9eecc435462a18433047cb7ab5fd6455bbd9be7fa
|
File details
Details for the file secretsh-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 483.9 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9d66d5f30543a28f22f5a74c703da4253a05ceec1c0f4162c5a05b1f42a09a52
|
|
| MD5 |
34727f250cf98d070429e88930f47467
|
|
| BLAKE2b-256 |
6e45dcc1a5913b0b9a24eb08e1625b91cf41bca8d85361dd062aeda4dfd8bd48
|
File details
Details for the file secretsh-0.1.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 421.7 kB
- Tags: CPython 3.14, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e6bd147d9b23b863c2577c348173ba4194e26b2115849e3789dd324f561836d
|
|
| MD5 |
3b7ab67097af410522a050cf31297173
|
|
| BLAKE2b-256 |
352a55054995b856bac516801572acd66249c34491dbd0bae820b71cfb80a219
|
File details
Details for the file secretsh-0.1.2-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 401.8 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b879f201d23fe72ec98d65b18555fc3928b680a86ae80b5be8dec2ea3f0f9a22
|
|
| MD5 |
718b4a5c2931aaf012ac6496578acb04
|
|
| BLAKE2b-256 |
fcf9bf18ba5004a2dd676c4724eb0169e55821b049162b912222fe42030a16ae
|
File details
Details for the file secretsh-0.1.2-cp314-cp314-macosx_10_12_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp314-cp314-macosx_10_12_x86_64.whl
- Upload date:
- Size: 462.2 kB
- Tags: CPython 3.14, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0e42850c35807dc7a73cbff094c51cdb5a04125fcd016e57a703dda0755f26c
|
|
| MD5 |
82fefd0aa4ca35fb4eac7a7ac1d57a29
|
|
| BLAKE2b-256 |
2326b67817bf1c4cb24324b0608c6cdd7322bfc4a10d96404c362c4a40e4425d
|
File details
Details for the file secretsh-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 483.7 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a312222ecdcba2b5197e0c1fa4cc67e391b7bc8257a8bcb99bb6e412476cd3b1
|
|
| MD5 |
79b431db1ba4cb853946ca2a6d38bbb0
|
|
| BLAKE2b-256 |
924786be775ff93e10bc812a91171d3bbb391c8b1b9a69e4aa2bb70b511b94b7
|
File details
Details for the file secretsh-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 421.7 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b27869a74e2944da5a10ed76c3634fb230f9fa49229f19b201827e311ed1c1e
|
|
| MD5 |
8997c9dff48a3520189bffc45fecd468
|
|
| BLAKE2b-256 |
56160d3c99ca2ce58eee110ee25e99103f07444ef91323b20d705c933575a72f
|
File details
Details for the file secretsh-0.1.2-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 401.8 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bd6a773713d1c2ac009aa2d5bedaf3a0135a7736b7d7bba68e1b421dba3405b
|
|
| MD5 |
1c49515dcfa22d448d35d89cc4030335
|
|
| BLAKE2b-256 |
0f5ec992a3b7b46d412e571f914d836d3347c1521b652f34f8b2683b11464819
|
File details
Details for the file secretsh-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp313-cp313-macosx_10_12_x86_64.whl
- Upload date:
- Size: 462.2 kB
- Tags: CPython 3.13, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bdad46a2e6ea35add0bbf9adb4175b8315d53a3671131ec4e40d4de2e17a3797
|
|
| MD5 |
8025130c7d4f2e8bbbc8faf277754020
|
|
| BLAKE2b-256 |
77eed420a80f024f4ee0482fb26f864f08513ccc1f86fcf6c23379be9570a9aa
|
File details
Details for the file secretsh-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 483.9 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f6a285a70b5325f63addf2c7099c35859ad27012b9dd9ba81e3c9fa3615a657
|
|
| MD5 |
01aafaacb5690606fcddd5d9001a43be
|
|
| BLAKE2b-256 |
c878daf93d3b8b07f53683c2a9a5ab1b8dc356242fb5edb3e9afe388d778bc4e
|
File details
Details for the file secretsh-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 422.3 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b2db7bf4a8751e60ae5610cbae0ff0db767488361bdfa69dd3205a3e59a3e23
|
|
| MD5 |
fd44fafe59df113859d6664e4ff5777a
|
|
| BLAKE2b-256 |
e86d2b57a00996d597f3fe2c04161c2a7e492dc27a452d2a5958aaa714394ea8
|
File details
Details for the file secretsh-0.1.2-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 402.1 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa74ca8692751f9fa78ad4c67ec42e3480c9894bebf57ef436b9b88ef9a7d1cc
|
|
| MD5 |
0a419d03d88aba7cb369be1603247850
|
|
| BLAKE2b-256 |
f23f89971c0a27db14df7f18fe69fa2112882ff5d4615d29207cc96dbb9ecbd5
|
File details
Details for the file secretsh-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp312-cp312-macosx_10_12_x86_64.whl
- Upload date:
- Size: 462.3 kB
- Tags: CPython 3.12, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a95353d1d4c6cd0478c0b23819d5b94293fb8be19db397d1a4441819cc60154
|
|
| MD5 |
46629f394f394c2178e8f88e143b485f
|
|
| BLAKE2b-256 |
1cd5d7c7624e35873989f018e865d342b3019660f3e5a733c56862b141c7a51f
|
File details
Details for the file secretsh-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 483.6 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
550cdbbf98dc1a1c4f3a2162499934a7db0f985099c8d15e543c7399e98f108d
|
|
| MD5 |
97fbce8ea13eaec0448faa3f17798061
|
|
| BLAKE2b-256 |
4fea3c4a35db34e12db8d352c6d7d2b008d1af6d91a2da70f32eba4848348252
|
File details
Details for the file secretsh-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 422.0 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78160981889d3e714e9db4525607f1cb4d8f116931136b05bd99d8577eafa73e
|
|
| MD5 |
199b568cc36fd2ee1b696ed9471722aa
|
|
| BLAKE2b-256 |
d835e80cffae76cf736069ff541b69025788c4191a12da35a3d4afaaa8ee7121
|
File details
Details for the file secretsh-0.1.2-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 403.3 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6e63d8f0339c9163e7f6ee304658fe58bff4a6866fc4997ba6432f716da0a102
|
|
| MD5 |
0a273a1f244885a0f8b4d0d6236a57a0
|
|
| BLAKE2b-256 |
e74b3fd54f14642c7c1a62d6361513e2ffdd24cf3c0310d3829a1a29e4c3514e
|
File details
Details for the file secretsh-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp311-cp311-macosx_10_12_x86_64.whl
- Upload date:
- Size: 463.9 kB
- Tags: CPython 3.11, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
afece235a2aff293ac1007cff694901a553431dcc20b7cb649c8492ceda01f4b
|
|
| MD5 |
43fe539ebbfaeeda6697ed2792646ee5
|
|
| BLAKE2b-256 |
43b45b5ff1953a7c7bc7204f43bfe77a2d3f651d882084ad66347958e0d84579
|
File details
Details for the file secretsh-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 483.5 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc755175e0d588bce1805e64757439951c594c9c9b452aff11d0a37c87c838f6
|
|
| MD5 |
d7c053b0f9c870256b642af43d4e3e06
|
|
| BLAKE2b-256 |
38c5fddbf9ec41e86bc05927a0a3a71c1f0819679cfe874902ef521fd30b7306
|
File details
Details for the file secretsh-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: secretsh-0.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 421.9 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: maturin/1.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffdcad9015ea5e10e26dbe2c99afe1ab7943109a43b6083505075abd990ffe79
|
|
| MD5 |
bf8307dcd8f1df33df22470980119f01
|
|
| BLAKE2b-256 |
c095757e1c251cf0b9ae0419fb8fe77d8f67786cd16b9b3d3cb060e4d0c4f386
|