Metadata-Version: 2.4
Name: hndl-score
Version: 0.2.0
Summary: HNDL Risk Score — Harvest Now Decrypt Later temporal exposure engine for post-quantum migration
Author-email: QreativeLab / OMEGA <dominik@qreativelab.io>
License: MIT
Project-URL: Homepage, https://github.com/dom-omg/hndl-score
Project-URL: Repository, https://github.com/dom-omg/hndl-score
Keywords: hndl,pqc,quantum,cryptography,risk,cbom,cyclonedx
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: Topic :: Security :: Cryptography
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Requires-Dist: rich>=13.0
Requires-Dist: click>=8.1

# HNDL Score

**Harvest Now, Decrypt Later — temporal quantum risk engine.**

State actors are collecting your encrypted traffic today. They'll decrypt it when quantum computers break your algorithms. If that happens before your data expires, you're already exposed — starting now.

## Install

```bash
pip install hndl-score
```

## Usage

```bash
# Score from a COBALT SBOM (CycloneDX CBOM)
hndl-score scan cbom.cdx.json --horizon 15 --scenario pessimistic

# Quick check on specific algorithms
hndl-score check RSA-2048 Ed25519 AES-256-GCM ECDSA-P-256 --horizon 10

# CI mode — fail if CRITICAL or HIGH findings
hndl-score scan cbom.cdx.json --horizon 10 --ci
```

## Pipeline with COBALT SBOM

```bash
pip install cobalt-sbom hndl-score

cobalt-sbom scan ./myrepo --output cbom.cdx.json
hndl-score scan cbom.cdx.json --horizon 15 --scenario pessimistic
```

## How it works

For each algorithm in your codebase:

1. Maps it to a quantum break-year (Shor's algorithm for asymmetric, Grover's for symmetric)
2. Compares to your data sensitivity horizon (how long must this data stay confidential?)
3. If break-year < data-expiry-year → **your already-collected traffic will be decryptable**

**Example:** RSA-2048 breaks ~2033. If your data must stay confidential until 2040, you have a 7-year exposure window — starting today, not in 2033.

## Scenarios

| Scenario | Description |
|---|---|
| `pessimistic` | Earliest plausible break dates (use for security pitches, board reports) |
| `expected` | Most likely timeline per NIST IR 8547 + IBM/Google roadmaps |
| `optimistic` | Conservative estimate (use for budget planning) |

## Risk levels

| Score | Level | Meaning |
|---|---|---|
| 80-100 | CRITICAL | Algorithm already broken or break imminent |
| 60-79 | HIGH | Break before data expiry — migrate now |
| 30-59 | MEDIUM | Break near data expiry — plan migration |
| 1-29 | LOW | Minimal exposure |
| 0 | SAFE | Quantum-safe algorithm |

---

Pairs with [COBALT SBOM](https://github.com/dom-omg/cobalt-sbom) for full cryptographic inventory + risk pipeline.

Built on [OMEGA](https://github.com/dom-omg) — sovereign intelligence stack.
