Metadata-Version: 2.4
Name: eth-cryptography-specs
Version: 0.1.0
Summary: Cryptography specifications for Ethereum
Author: ethereum
License-Expression: CC0-1.0
Project-URL: homepage, https://github.com/ethereum/cryptography-specs
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: test
Requires-Dist: pytest==9.0.3; extra == "test"
Requires-Dist: ruamel.yaml==0.19.1; extra == "test"
Requires-Dist: py_ecc==8.0.0; extra == "test"
Dynamic: license-file

# cryptography-specs

Specifications for cryptography in Ethereum, written in Lean.

## Specs

- `EthCryptographySpecs/Bls/`, BLS12-381 curve arithmetic, hash-to-curve, and signatures.
- `EthCryptographySpecs/Kzg/`, KZG polynomial commitments.

## Prerequisites

- [`elan`](https://github.com/leanprover/elan), for `lean` and `lake`.

## Building

```bash
lake build
```

## Tests

```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[test]'
pytest
```

*Note*: Pre-generated reference tests are written to `tests/` at the project
root. These tests are intended for use across implementations and may be pinned
by downstream consumers.
