Metadata-Version: 2.5
Name: crypto-pq
Version: 0.0.1
Summary: Post-quantum cryptography with one contract across languages. Python binding in development; this release ships the shared contract constants.
Project-URL: Homepage, https://crypterial.com
Project-URL: Repository, https://github.com/crypterial/crypto-pq-py
Project-URL: Reference implementation, https://crates.io/crates/crypto-pq
Author: Wilson Tran
License-Expression: Apache-2.0 OR MIT
License-File: LICENSE-APACHE
License-File: LICENSE-MIT
Keywords: crypterial,cryptography,fips-203,kem,ml-kem,post-quantum,pqc
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security :: Cryptography
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# crypto-pq

Post-quantum cryptography with one contract across languages, by [Crypterial Labs](https://crypterial.com).

The Python binding is in development. This release ships the shared contract constants
(error codes, ML-KEM sizes) so that code depending on them can be written and tested today.
The reference implementation is the Rust crate
[`crypto-pq`](https://crates.io/crates/crypto-pq), which passes the NIST ACVP vectors for FIPS 203.

```python
from crypto_pq import ML_KEM, ERROR_CODES, CONTRACT_VERSION

ML_KEM["ml_kem_768"].encapsulation_key_len  # 1184
```

## Roadmap

The binding wraps the Rust core through PyO3 and ships as one wheel with no Python
dependencies. Same path and same behaviour in every language: `crypto_pq.kem.ml_kem_768`,
then `sig`, `sig_stateful`, `aead`, `hash`, `xof`, `mac`, `kdf`. Only algorithms with a
final NIST standard and official test vectors.

## License

Apache-2.0 OR MIT.
