Get py_ecc_tests to run again by skipping some

This commit is contained in:
Ramana Kumar 2022-10-20 08:52:49 +01:00
parent 8f23d9da44
commit 800f450e5b
No known key found for this signature in database
GPG Key ID: ED471C788B900433
2 changed files with 21 additions and 10 deletions

View File

@ -159,11 +159,26 @@ static PyObject* verify_aggregate_kzg_proof_wrap(PyObject *self, PyObject *args)
if (out) Py_RETURN_TRUE; else Py_RETURN_FALSE;
}
static PyObject* bytes_from_g1_wrap(PyObject *self, PyObject *args) {
PyObject *c;
if (!PyArg_UnpackTuple(args, "bytes_from_g1", 1, 1, &c) ||
!PyCapsule_IsValid(c, "G1"))
return PyErr_Format(PyExc_ValueError, "expected G1 capsule");
uint8_t bytes[48];
bytes_from_g1(bytes, PyCapsule_GetPointer(c, "G1"));
return PyBytes_FromStringAndSize((char*)bytes, 48);
}
static PyMethodDef ckzgmethods[] = {
{"load_trusted_setup", load_trusted_setup_wrap, METH_VARARGS, "Load trusted setup from file path"},
{"blob_to_kzg_commitment", blob_to_kzg_commitment_wrap, METH_VARARGS, "Create a commitment from a blob"},
{"compute_aggregate_kzg_proof", compute_aggregate_kzg_proof_wrap, METH_VARARGS, "Compute aggregate KZG proof"},
{"verify_aggregate_kzg_proof", verify_aggregate_kzg_proof_wrap, METH_VARARGS, "Verify aggregate KZG proof"},
// for tests/debugging
{"bytes_from_g1", bytes_from_g1_wrap, METH_VARARGS, "Convert a group element to 48 bytes"},
{NULL, NULL, 0, NULL}
};

View File

@ -42,11 +42,6 @@ y3 = evaluate_polynomial_in_evaluation_form(polynomial_l_rbo, x, roots_of_unity_
assert y == y3
ts = ckzg.load_trusted_setup("../../src/trusted_setup.txt")
ckzg_poly = ckzg.alloc_polynomial([ckzg.bytes_to_bls_field(r.to_bytes(32, "little")) for r in polynomial_l_rbo])
ckzg_y4 = ckzg.evaluate_polynomial_in_evaluation_form(ckzg_poly, ckzg.bytes_to_bls_field(x.to_bytes(32, "little")), ts)
y4 = ckzg.int_from_bls_field(ckzg_y4)
assert y == y4
def load_trusted_setup(filename):
with open(filename, "r") as f:
@ -64,13 +59,14 @@ def load_trusted_setup(filename):
ts_pyecc = load_trusted_setup("../../src/trusted_setup.txt")
commitment_pyecc = kzg_proofs.commit_to_poly(polynomial, ts_pyecc)
commitment_ckzg = ckzg.blob_to_kzg_commitment([ckzg.bytes_to_bls_field(r.to_bytes(32, "little")) for r in polynomial_l_rbo], ts)
commitment_ckzg = ckzg.blob_to_kzg_commitment(b''.join([r.to_bytes(32, "little") for r in polynomial_l_rbo]), ts)
assert compress_G1(commitment_pyecc).to_bytes(48, "big") == ckzg.bytes_from_g1(commitment_ckzg)
proof_pyecc = kzg_proofs.compute_proof_single(polynomial, x, ts_pyecc)
proof_ckzg = ckzg.compute_kzg_proof(ckzg_poly, ckzg.bytes_to_bls_field(x.to_bytes(32, "little")), ts)
assert compress_G1(proof_pyecc).to_bytes(48, "big") == ckzg.bytes_from_g1(proof_ckzg)
# TODO: update this test for the new ckzg interface
# proof_pyecc = kzg_proofs.compute_proof_single(polynomial, x, ts_pyecc)
# proof_ckzg = ckzg.compute_kzg_proof(ckzg_poly, ckzg.bytes_to_bls_field(x.to_bytes(32, "little")), ts)
#
# assert compress_G1(proof_pyecc).to_bytes(48, "big") == ckzg.bytes_from_g1(proof_ckzg)
print('comparison to py_ecc passed')