Spaces:
Running
Running
| # SPDX-License-Identifier: Apache-2.0 | |
| """Tests for a11oy.formulas.bls_aggregate (BLS12-381). thesis_v22.pdf §2. | |
| If py_ecc is present, exercise a real aggregate verify; otherwise assert the HONEST | |
| error path (no fabricated 'verified'). | |
| """ | |
| from a11oy.formulas import bls_aggregate | |
| def test_honest_or_real(): | |
| v = bls_aggregate.BLSAggregate() | |
| if not v.available: | |
| out = v.verify_same_message([b"pk"], b"msg", b"sig") | |
| assert out["ok"] is False | |
| assert "honest_error" in out | |
| return | |
| # real path | |
| sk1 = v.keygen(b"\x01" * 32); sk2 = v.keygen(b"\x02" * 32) | |
| msg = b"khipu-root" | |
| s1 = v.sign(sk1["sk"], msg)["signature"] | |
| s2 = v.sign(sk2["sk"], msg)["signature"] | |
| agg = v.aggregate([s1, s2])["aggregate_signature"] | |
| out = v.verify_same_message([sk1["pk"], sk2["pk"]], msg, agg) | |
| assert out["verified"] is True | |
| assert out["pairings_used"] == 2 | |
| assert out["pairings_naive"] == 4 | |
| assert out["citation"] == "thesis_v22.pdf §2" | |