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.

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.

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.2.tar.gz (8.4 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.2-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file slip_plate-0.1.2.tar.gz.

File metadata

  • Download URL: slip_plate-0.1.2.tar.gz
  • Upload date:
  • Size: 8.4 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.2.tar.gz
Algorithm Hash digest
SHA256 cb0dbc641d3c8311f192311fd7bfd68f2ff33f140c0aa7235295fe9b5e6c664b
MD5 3cb90f127e7734965faf2fec79c7fd58
BLAKE2b-256 59fd02a751632ba0530af5325d6a4ff6bdc92a17f9f8811695b057687bacbc7c

See more details on using hashes here.

File details

Details for the file slip_plate-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: slip_plate-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.9 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 89a67d1573c42c96d1813c11a580012043e3c702adbfd7bc9226ec7f0e8e17a7
MD5 7091a1232f61b46a6216d49553371d82
BLAKE2b-256 06490366707599778cbf62e34995bfab732a0ce13d019fde9f13a8ca0db22a64

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