Realm
Cryptography infrastructure represented by a suspended craft

A deliberate security boundary.
Acceleration where it belongs.

Secrets stay private. Public workloads go wide.

The backend is selected by data sensitivity and operation shape—not by a blanket promise that every cryptographic primitive belongs on GPU.

Typed secret operations
SECRET

Typed secret operations

ML-DSA-65 key generation and signing use liboqs. Secret keys are move-only and zeroized on destruction.

Deferred Vulkan hashing
PUBLIC BATCH

Deferred Vulkan hashing

SHAKE-128, SHAKE-256, Keccak-f[1600], and power-of-two Merkle roots have Vulkan routes with exact CPU parity tests.

Fail-closed inputs
PARSING

Fail-closed inputs

Hashes, public keys, signatures, and Merkle proofs reject malformed lengths and encodings at the boundary.

Claims stay bounded
EVIDENCE

Claims stay bounded

Implementation tests prove the stated contracts. They are not FIPS 140 validation or independent security certification.

One API. Explicit backends.

CPU routes protect secret-bearing work. Vulkan routes are deferred, event-driven operations for public batch data with a CPU oracle beside them.

01

SHAKE-128 / SHAKE-256

CPU reference operations with official known-answer vectors and strict output contracts.
02

KMAC-256

Keyed hashing stays on the CPU boundary and is checked against official known-answer vectors.
03

Hash and Merkle proofs

CPU verification rejects malformed lengths, invalid encodings, and broken proof paths before use.
04

Batch SHAKE and Keccak-f[1600]

Deferred Vulkan work over public batches, verified against the CPU reference and direct KAT tests.
05

Power-of-two Merkle root

A deferred Vulkan route for public data with exact CPU parity across the supported tree contract.
06

ML-DSA-65

Typed CPU key generation, signing, and verification through liboqs with negative-path coverage.

Exact sizes. Negative paths. Testable parity.

The qualified donor surface passed 48 of 48 C++ tests and 5 of 5 Python tests. Rust tests now own the ported contract; GPU ML-DSA research remains private and is not part of the public production contract.

01

Hash · 32 bytes

A fixed-size SHAKE-256 output with exact serialization and parsing.
02

PublicKey · 1,952 bytes

Public ML-DSA-65 material accepts only its exact serialized length.
03

SecretKey · 4,032 bytes

Move-only secret material is zeroized on destruction and rejects malformed input.
04

Signature · 3,309 bytes

Exact-length ML-DSA-65 signature serialization with typed verification failures.