Add some of the bytes conversions back to the interface

These might still be needed for the G1 elements even though they're not
needed for blobs now.

Also make FIAT_SHAMIR_PROTOCOL_DOMAIN static to avoid redefinitions.
This commit is contained in:
Ramana Kumar 2022-11-04 09:05:39 +00:00
parent 2b0f6a5c09
commit 99a990ff32
No known key found for this signature in database
GPG Key ID: ED471C788B900433
3 changed files with 10 additions and 5 deletions

View File

@ -8,7 +8,7 @@ This is a copy of C-KZG stripped down to support the [Polynomial Commitments](ht
We also provide `load_trusted_setup` and `free_trusted_setup` to load the
trusted setup data from a file into an object that can be passed to the API
functions.
functions, and functions for converting commitments/proofs/points to/from bytes.
The only dependency is [blst](https://github.com/supranational/blst).
Ensure `blst.h` is provided in `inc` and `libblst.a` in `lib`.

View File

@ -752,11 +752,11 @@ static bool pairings_verify(const g1_t *a1, const g2_t *a2, const g1_t *b1, cons
}
static void bytes_from_g1(uint8_t out[48], const g1_t *in) {
void bytes_from_g1(uint8_t out[48], const g1_t *in) {
blst_p1_compress(out, in);
}
static C_KZG_RET bytes_to_g1(g1_t* out, const uint8_t bytes[48]) {
C_KZG_RET bytes_to_g1(g1_t* out, const uint8_t bytes[48]) {
blst_p1_affine tmp;
if (blst_p1_uncompress(&tmp, bytes) != BLST_SUCCESS)
return C_KZG_BADARGS;
@ -829,7 +829,7 @@ static void compute_powers(fr_t out[], uint64_t n) {
while (++i < n) fr_mul(&out[i], &out[i-1], &out[1]);
}
static void bytes_to_bls_field(BLSFieldElement *out, const uint8_t bytes[32]) {
void bytes_to_bls_field(BLSFieldElement *out, const uint8_t bytes[32]) {
blst_scalar tmp;
blst_scalar_from_lendian(&tmp, bytes);
blst_fr_from_scalar(out, &tmp);

View File

@ -31,7 +31,7 @@
#define FIELD_ELEMENTS_PER_BLOB 4096
#define BYTES_PER_FIELD_ELEMENT 32
const uint8_t FIAT_SHAMIR_PROTOCOL_DOMAIN[] = {70, 83, 66, 76, 79, 66, 86, 69, 82, 73, 70, 89, 95, 86, 49, 95}; // "FSBLOBVERIFY_V1_"
static const uint8_t FIAT_SHAMIR_PROTOCOL_DOMAIN[] = {70, 83, 66, 76, 79, 66, 86, 69, 82, 73, 70, 89, 95, 86, 49, 95}; // "FSBLOBVERIFY_V1_"
typedef blst_p1 g1_t; /**< Internal G1 group element type */
typedef blst_p2 g2_t; /**< Internal G2 group element type */
@ -80,6 +80,11 @@ typedef struct {
* Interface functions
*/
C_KZG_RET bytes_to_g1(g1_t* out, const uint8_t in[48]);
void bytes_from_g1(uint8_t out[48], const g1_t *in);
void bytes_to_bls_field(BLSFieldElement *out, const uint8_t in[BYTES_PER_FIELD_ELEMENT]);
C_KZG_RET load_trusted_setup(KZGSettings *out,
FILE *in);