Remove 4844 version from src (use min-src)

This commit is contained in:
Ramana Kumar 2022-10-02 11:12:38 +01:00
parent fe4dfcc0eb
commit b284636afd
No known key found for this signature in database
GPG Key ID: ED471C788B900433
3 changed files with 2 additions and 183 deletions

View File

@ -1,26 +1,21 @@
TESTS = bls12_381_test das_extension_test c_kzg_alloc_test fft_common_test fft_fr_test fft_g1_test \
fk20_proofs_test kzg_proofs_test poly_test recover_test utility_test zero_poly_test c_kzg_4844_test
fk20_proofs_test kzg_proofs_test poly_test recover_test utility_test zero_poly_test
BENCH = fft_fr_bench fft_g1_bench recover_bench zero_poly_bench kzg_proofs_bench poly_bench poly_barycentric_bench compute_proof_lagrange_bench
TUNE = poly_mul_tune poly_div_tune
LIB_SRC = bls12_381.c c_kzg_alloc.c das_extension.c fft_common.c fft_fr.c fft_g1.c fk20_proofs.c kzg_proofs.c poly.c recover.c utility.c zero_poly.c
LIB_OBJ = $(LIB_SRC:.c=.o)
LIB_4844_SRC = c_kzg_4844.c kzg_proofs.c
LIB_4844_OBJ = $(LIB_4844_SRC:.c=.o)
KZG_CFLAGS =
INCLUDE_DIRS = ../inc
.PRECIOUS: %.o
%.o: %.c c_kzg_4844.h c_kzg.h bls12_381.h Makefile
%.o: %.c c_kzg.h bls12_381.h Makefile
clang -Wall -I$(INCLUDE_DIRS) $(CFLAGS) $(KZG_CFLAGS) -c $*.c
libckzg.a: $(LIB_OBJ) Makefile
ar rc libckzg.a $(LIB_OBJ)
libckzg4844.a: $(LIB_4844_OBJ) Makefile
ar rc libckzg4844.a $(LIB_4844_OBJ)
%_test: %.c debug_util.o test_util.o libckzg.a Makefile
clang -Wall -DKZGTEST -I$(INCLUDE_DIRS) $(CFLAGS) $(KZG_CFLAGS) -o $@ $*.c debug_util.o test_util.o libckzg.a -L../lib -lblst
./$@
@ -55,7 +50,6 @@ bench: $(BENCH)
clean:
rm -f *.o
rm -f libckzg.a
rm -f libckzg4844.a
rm -f $(TESTS)
rm -f $(BENCH)
rm -f $(TUNE)

View File

@ -1,120 +0,0 @@
/*
* Copyright 2021 Benjamin Edgington
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "c_kzg_4844.h"
#include "c_kzg_alloc.h"
#include <inttypes.h>
#include <stdio.h>
C_KZG_RET load_trusted_setup(KZGSettings *out, FILE *in) {
// custom version of new_kzg_settings to avoid unnecessary allocation
uint64_t n2, i;
int j; uint8_t c[96];
blst_p1_affine g1_affine;
blst_p2_affine g2_affine;
fscanf(in, "%" SCNu64, &out->length);
fscanf(in, "%" SCNu64, &n2);
TRY(new_g1_array(&out->secret_g1, out->length));
TRY(new_g1_array(&out->secret_g1_l, out->length));
TRY(new_g2_array(&out->secret_g2, n2));
for (i = 0; i < out->length; i++) {
for (j = 0; j < 48; j++) {
fscanf(in, "%2hhx", &c[j]);
}
blst_p1_uncompress(&g1_affine, c);
blst_p1_from_affine(&out->secret_g1[i], &g1_affine);
}
for (i = 0; i < n2; i++) {
for (j = 0; j < 96; j++) {
fscanf(in, "%2hhx", &c[j]);
}
blst_p2_uncompress(&g2_affine, c);
blst_p2_from_affine(&out->secret_g2[i], &g2_affine);
}
unsigned int max_scale = 0;
while (((uint64_t)1 << max_scale) < out->length) max_scale++;
out->fs = (FFTSettings*)malloc(sizeof(FFTSettings));
TRY(new_fft_settings((FFTSettings*)out->fs, max_scale));
return fft_g1(out->secret_g1_l, out->secret_g1, true, out->length, out->fs);
}
void free_trusted_setup(KZGSettings *s) {
free_fft_settings((FFTSettings*)s->fs);
free_kzg_settings(s);
}
void compute_powers(BLSFieldElement out[], const BLSFieldElement *x, uint64_t n) { fr_pow(out, x, n); }
void vector_lincomb(BLSFieldElement out[], const BLSFieldElement[] *vectors, const BLSFieldElement *scalars, uint64_t num_vectors, uint64_t vector_len) {
fr_vector_lincomb(out, vectors, scalars, num_vectors, vector_len);
}
void g1_lincomb(KZGCommitment *out, const KZGCommitment points[], const BLSFieldElement scalars[], uint64_t num_points) {
g1_linear_combination(out, points, scalars, num_points);
void blob_to_kzg_commitment(KZGCommitment *out, const BLSFieldElement blob[], const KZGSettings *s) {
g1_linear_combination(out, s->secret_g1_l, blob, s->length);
}
void bytes_to_bls_field(BLSFieldElement *out, const scalar_t *bytes) {
fr_from_scalar(out, bytes);
}
C_KZG_RET evaluate_polynomial_in_evaluation_form(BLSFieldElement *out, const PolynomialEvalForm *polynomial, const BLSFieldElement *z, const KZGSettings *s) {
return eval_poly_l(out, polynomial, z, s->fs);
}
C_KZG_RET verify_kzg_proof(bool *out, const KZGCommitment *polynomial_kzg, const BLSFieldElement *z, const BLSFieldElement *y, const KZGProof *kzg_proof, const KZGSettings *s) {
return check_proof_single(out, polynomial_kzg, kzg_proof, z, y, s);
}
C_KZG_RET compute_kzg_proof(KZGProof *out, const PolynomialEvalForm *polynomial, const BLSFieldElement *z, const KZGSettings *s) {
BLSFieldElement value;
TRY(evaluate_polynomial_in_evaluation_form(&value, polynomial, z, s));
return compute_proof_single_l(out, polynomial, z, &value, s);
}
#ifdef KZGTEST
#include "../inc/acutest.h"
#include "test_util.h"
void load_trusted_setup_test(void) {
FILE *in = fopen("trusted_setup.txt", "r");
KZGSettings ks;
TEST_CHECK(C_KZG_OK == load_trusted_setup(&ks, in));
fclose(in);
free_trusted_setup(&ks);
}
TEST_LIST = {
{"C_KZG_4844_TEST", title},
{"load_trusted_setup_test", load_trusted_setup_test},
{NULL, NULL} /* zero record marks the end of the list */
};
#endif // KZGTEST

View File

@ -1,55 +0,0 @@
/*
* Copyright 2021 Benjamin Edgington
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* @file c_kzg_4844.h
*
* Minimal interface required for EIP-4844.
*/
#ifndef C_KZG_4844_H
#define C_KZG_4844_H
#include "c_kzg.h"
#include "control.h"
#include <stdio.h>
typedef fr_t BLSFieldElement;
typedef g1_t KZGCommitment;
typedef g1_t KZGProof;
typedef poly_l PolynomialEvalForm;
C_KZG_RET load_trusted_setup(KZGSettings *out, FILE *in);
void free_trusted_setup(KZGSettings *s);
void compute_powers(BLSFieldElement out[], const BLSFieldElement *x, uint64_t n);
void vector_lincomb(BLSFieldElement out[], const BLSFieldElement *vectors[], const BLSFieldElement *scalars, uint64_t num_vectors, uint64_t vector_len);
void g1_lincomb(KZGCommitment *out, const KZGCommitment points[], const BLSFieldElement scalars[], uint64_t num_points);
void blob_to_kzg_commitment(KZGCommitment *out, const BLSFieldElement blob[], const KZGSettings *s);
void bytes_to_bls_field(BLSFieldElement *out, const scalar_t *bytes);
C_KZG_RET evaluate_polynomial_in_evaluation_form(BLSFieldElement *out, const PolynomialEvalForm *polynomial, const BLSFieldElement *z, const KZGSettings *s);
C_KZG_RET verify_kzg_proof(bool *out, const KZGCommitment *polynomial_kzg, const BLSFieldElement *z, const BLSFieldElement *y, const KZGProof *kzg_proof, const KZGSettings *s);
C_KZG_RET compute_kzg_proof(KZGProof *out, const PolynomialEvalForm *polynomial, const BLSFieldElement *z, const KZGSettings *s);
#endif // C_KZG_4844_H