Metadata-Version: 2.4
Name: shep32
Version: 2.60.4
Summary: SHEP64 and SHEP72 key generation, encryption, signing, and CLI tooling
Author: Andrew Lehti
License-Expression: MIT
Project-URL: Homepage, https://pypi.org/project/shep32/
Keywords: shep32,shep64,shep72,crypto,cli,encryption,signing,hashing
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Developers
Classifier: Environment :: Console
Classifier: Topic :: Security :: Cryptography
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cryptography>=42.0.0
Dynamic: license-file

# shep32

`shep32` packages the SHEP64 and SHEP72 tooling into a PyPI-friendly layout with both a Python API and a console CLI.

## What it includes

- SHEP64 primary key generation
- SHEP72 extended key generation
- Text and file encryption/decryption to `.sh32`
- Detached body/meta encryption mode
- Ed25519 public key derivation, signing, and verification
- Range generation and benchmark commands
- Interactive CLI mode

## Install

```bash
pip install shep32
```

For local development:

```bash
pip install -e .
```

## CLI entry points

After installation, both of these commands work:

```bash
shep32 --help
shep --help
```

Open the interactive menu:

```bash
shep32 start
```

## Common commands

Generate a fresh random key:

```bash
shep32 key
```

Generate a deterministic key from text:

```bash
shep32 hash --text "hello"
```

Generate a deterministic key from an integer:

```bash
shep32 hash --value 12345
```

Generate an extended SHEP72 key:

```bash
shep32 hash --mode 1 --text "hello"
```

Generate a range:

```bash
shep32 range --start 0 --hashes 10
```

Encrypt text:

```bash
shep32 enc --text "secret" --out secret.sh32
```

Encrypt a file:

```bash
shep32 enc --file ./notes.txt
```

Decrypt a token file with a key file:

```bash
shep32 dec --file ./notes.sh32 --keyfile ./notes.pkey
```

Derive a public key:

```bash
shep32 pubkey --keyfile ./notes.pkey
```

Sign text:

```bash
shep32 sign --text "message" --keyfile ./notes.pkey
```

Verify a signature:

```bash
shep32 verify --text "message" --signature <signature> --public-key <publicKey>
```

Run a benchmark:

```bash
shep32 bench --hashes 1000 --compare
```

## Python API

```python
from shep32 import generateKey, encryptData, decryptData, signData, verifySignature

key = generateKey("hello", mode = 0)
cipher, usedKey = encryptData("secret", key)
plain = decryptData(cipher, usedKey)

sig = signData("message", usedKey)
ok = verifySignature("message", sig["signature"], sig["publicKey"])
```

## License

MIT License: https://github.com/andylehti/SHEP32/blob/main/LICENSE
