Skip to main content

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, or 256). 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:

  1. Clone the repository:
    git clone https://github.com/avra911/slip-plate.git
    cd slip-plate
    
  2. Install in editable mode:
    pip install -e .
    
  3. 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

slip_plate-0.1.3.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

slip_plate-0.1.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

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

Hashes for slip_plate-0.1.3.tar.gz
Algorithm Hash digest
SHA256 76dd66be9baf364395022e6c3a1bf159b8a92cf6b0ae14364acce25fba0fdabc
MD5 287402f33d7f8ed009b9dc0709c07b94
BLAKE2b-256 5cbdaed4f601af82d8a30dbba59ec67efdc73857f9affe28513fca8899fd2bf2

See more details on using hashes here.

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

Hashes for slip_plate-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7c6ebeb6e5bff5009ee3e5ba5a2edbd378565c45f8225d16729a2d72d21b77a5
MD5 fba5bd9da553e759fa36d0b8218c8ff0
BLAKE2b-256 88489b8b4dccba3e587df7d31dfa03ed48f98cecfba62b5a00f7f71020afd7af

See more details on using hashes here.

Supported by

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