A seed plate scanner and parser tool
Project description
SLIP-PLATE - Shamir DEK Plates
SLIP-PLATE is a Python tool designed to split Data Encryption Keys (DEKs) (128/192/256-bit) using Shamir's Secret Sharing and render them as OneKey-style physical plates with built-in checksums.
This project does not implement a wallet and does not interact with blockchains directly.
Installation
You can now install SLIP-PLATE directly from PyPI:
pip install slip-plate
This will automatically install the necessary dependencies (cryptography and pyshamir) and register the slip-plate command in your terminal.
Usage
After installation, you can run the tool from anywhere using the slip-plate command:
slip-plate --dek-size 256 --parts 3 --threshold 2
Arguments
--dek-size: Size of the DEK in bits (128,192, or256). Default:256.--parts: Total number of Shamir shares to create. Default:3.--threshold: Minimum number of shares required to reconstruct the key. Default:2.
Example Output
The tool generates ANSI-rendered plates for your terminal:
=== KEK Share 1 ===
2 1 │ │
0 0 5 2 │ 1 │
4 2 1 5 │ 2 6 3 1 │
8 4 2 6 │ 8 4 2 6 │ 8 4 2 1
─────────────────────────────
1 | ○ ● ● ● │ ● ○ ○ ● │ ● ● ○ ○ │
2 | ○ ○ ● ○ │ ○ ○ ○ ○ │ ○ ○ ● ○ │
. | . . . . | . . . . | . . . . |
. | . . . . | . . . . | . . . . |
. | . . . . | . . . . | . . . . |
11 | ○ ○ ○ ● │ ● ● ● ○ │ ○ ○ ● ○ │
12 | ● ● ○ ○ │ ● ● ○ ● │ ● ○ ○ ○ │
─────────────────────────────
Dots (…) represent truncated rows for brevity.
Security Model
- Offline Storage: Plates are intended to be generated once and stored physically (e.g., punched into metal).
- Ephemeral Memory: DEKs are reconstructed from a quorum of shares only during active operations and are not persisted digitally.
- Unique Nonces: Encryption uses unique nonces per session, embedded in the ciphertext.
- Minimal Footprint: Designed to ensure no DEK is stored on disk in an unencrypted state.
Development & Testing
If you want to contribute or run tests from the source code:
- Clone the repository:
git clone https://github.com/avra911/slip-plate.git cd slip-plate
- Install in editable mode:
pip install -e .
- Run tests:
pip install pytest pytest -q
Notes and Caveats
- Research Tool: This is a demo/research tool. Review the code and cryptographic implementations before use in production environments.
- Physical Security: Treat printed/punched plates as high-security assets.
- Checksums: The built-in checksum helps detect transcription errors but does not replace proper key management procedures.
Disclaimer
This software is provided as-is, without warranty of any kind.
It is intended for educational and experimental purposes. No formal security audit has been performed.
Do not use this software to secure funds or data that you cannot afford to lose.
The authors take no responsibility for loss of funds, data corruption, or other damages resulting from the use or misuse of this software.
Contributions are welcome! Feel free to open a PR or an issue on GitHub.
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
Built Distribution
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 slip_plate-0.1.3.tar.gz.
File metadata
- Download URL: slip_plate-0.1.3.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76dd66be9baf364395022e6c3a1bf159b8a92cf6b0ae14364acce25fba0fdabc
|
|
| MD5 |
287402f33d7f8ed009b9dc0709c07b94
|
|
| BLAKE2b-256 |
5cbdaed4f601af82d8a30dbba59ec67efdc73857f9affe28513fca8899fd2bf2
|
File details
Details for the file slip_plate-0.1.3-py3-none-any.whl.
File metadata
- Download URL: slip_plate-0.1.3-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c6ebeb6e5bff5009ee3e5ba5a2edbd378565c45f8225d16729a2d72d21b77a5
|
|
| MD5 |
fba5bd9da553e759fa36d0b8218c8ff0
|
|
| BLAKE2b-256 |
88489b8b4dccba3e587df7d31dfa03ed48f98cecfba62b5a00f7f71020afd7af
|