c-kzg-4844/bindings/csharp/ckzg.c

42 lines
1.0 KiB
C
Raw Normal View History

2022-10-04 18:45:12 +00:00
#include <inttypes.h>
#include <stdio.h>
2022-10-04 21:40:18 +00:00
#include <stdlib.h>
2022-10-04 18:45:12 +00:00
#include "c_kzg_4844.h"
#include "ckzg.h"
2022-10-04 18:45:12 +00:00
2022-10-20 18:29:36 +00:00
KZGSettings* load_trusted_setup_wrap(const char* file) {
KZGSettings* out = malloc(sizeof(KZGSettings));
2022-10-20 18:29:36 +00:00
if (out == NULL) return NULL;
2022-10-20 18:29:36 +00:00
FILE* f = fopen(file, "r");
2022-10-20 18:29:36 +00:00
if (f == NULL) { free(out); return NULL; }
if (load_trusted_setup_file(out, f) != C_KZG_OK) { free(out); fclose(f); return NULL; }
2022-11-10 16:23:40 +00:00
fclose(f);
return out;
}
2022-10-20 18:29:36 +00:00
void free_trusted_setup_wrap(KZGSettings *s) {
free_trusted_setup(s);
free(s);
}
int verify_aggregate_kzg_proof_wrap(const Blob *blobs, const KZGCommitment *commitments, size_t n, const KZGProof *proof, const KZGSettings *s) {
2022-10-20 18:29:36 +00:00
bool b;
C_KZG_RET ret = verify_aggregate_kzg_proof(&b, blobs, commitments, n, proof, s);
2022-11-04 09:07:05 +00:00
if (ret != C_KZG_OK) return -1;
2022-10-04 21:40:18 +00:00
2022-10-20 18:29:36 +00:00
return b ? 0 : 1;
}
int verify_kzg_proof_wrap(const KZGCommitment *c, const Bytes32 *z, const Bytes32 *y, const KZGProof *p, KZGSettings *s) {
bool out;
if (verify_kzg_proof(&out, c, z, y, p, s) != C_KZG_OK)
return -2;
return out ? 0 : 1;
}