From f18273d8df31e62f25a9ec876ec857e0e2ec4d7e Mon Sep 17 00:00:00 2001 From: Sean Bowe Date: Tue, 2 Aug 2016 23:30:47 -0600 Subject: [PATCH] Add checks for sizes/alignment. --- snark/src/libsnarkwrap.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/snark/src/libsnarkwrap.cpp b/snark/src/libsnarkwrap.cpp index 6488ef0..df16305 100644 --- a/snark/src/libsnarkwrap.cpp +++ b/snark/src/libsnarkwrap.cpp @@ -21,6 +21,20 @@ extern "C" void libsnarkwrap_init() { libsnark::inhibit_profiling_counters = true; assert(sodium_init() != -1); curve_pp::init_public_params(); + + // Rust wrappers assume these sizes + assert(sizeof(curve_Fr) == 8 * (4)); + assert(sizeof(curve_G1) == 8 * (4 * 3)); + assert(sizeof(curve_G2) == 8 * (4 * 2 * 3)); + assert(sizeof(curve_GT) == 8 * (4 * 6 * 2)); + + // Rust wrappers assume alignment. + // This will trip up enabling ate-pairing until + // the wrappers are changed. + assert(alignof(curve_Fr) == alignof(uint64_t)); + assert(alignof(curve_G1) == alignof(uint64_t)); + assert(alignof(curve_G2) == alignof(uint64_t)); + assert(alignof(curve_GT) == alignof(uint64_t)); } // Fr