diff options
author | Markus Teich <markus.teich@stusta.mhn.de> | 2016-06-22 14:22:52 +0200 |
---|---|---|
committer | Markus Teich <markus.teich@stusta.mhn.de> | 2016-06-22 14:22:52 +0200 |
commit | a49b2facee0242ebbeebe30e4f479afbaa381893 (patch) | |
tree | fa79e0c55b2f201d1e936d7852f021a0e87495d0 /test_crypto.c | |
parent | 2c63da0ed17dd5403a81c9b8462bd8c1f66ca3d5 (diff) |
add prologue and round1 including tests
Diffstat (limited to 'test_crypto.c')
-rw-r--r-- | test_crypto.c | 113 |
1 files changed, 112 insertions, 1 deletions
diff --git a/test_crypto.c b/test_crypto.c index 7e8fe2b..33b9a9b 100644 --- a/test_crypto.c +++ b/test_crypto.c @@ -27,6 +27,10 @@ #include "test.h" +static uint16_t bidders; +static uint16_t prizes; +static struct AuctionData *ad; + int test_smc_2d_array () { @@ -43,6 +47,7 @@ test_smc_2d_array () check (array[i][j], "point has not been initialized"); smc_free2 (array, size1, size2); + return 1; } @@ -64,6 +69,7 @@ test_smc_3d_array () check (array[i][j][k], "point has not been initialized"); smc_free3 (array, size1, size2, size3); + return 1; } @@ -96,6 +102,7 @@ test_serialization () gcry_mpi_point_release (newp); gcry_mpi_release (oldi); gcry_mpi_release (newi); + return 1; } @@ -114,6 +121,7 @@ test_smc_zkp_dl () gcry_mpi_release (x); gcry_mpi_point_release (v); + return 1; } @@ -142,6 +150,7 @@ test_smc_zkp_2dle () gcry_mpi_point_release (g2); gcry_mpi_point_release (v); gcry_mpi_point_release (w); + return 1; } @@ -165,13 +174,110 @@ test_smc_zkp_0og () gcry_mpi_point_release (y); gcry_mpi_point_release (alpha); gcry_mpi_point_release (beta); + return 1; +} + + +int +test_setup_auction_data () +{ + uint16_t i; + + ad = calloc (bidders, sizeof (struct AuctionData)); + + for (i = 0; i < bidders; i++) + { + ad[i].n = bidders; + ad[i].i = i; + ad[i].k = prizes; + ad[i].b = 2 * i; + } + return 1; +} + + +int +test_prologue () +{ + uint16_t i, s; + unsigned char *bufs[bidders]; + size_t lens[bidders]; + + for (i = 0; i < bidders; i++) + { + bufs[i] = smc_gen_keyshare (&ad[i], &lens[i]); + check (bufs[i], "failed to gen keyshare"); + } + + for (i = 0; i < bidders; i++) + { + for (s = 0; s < bidders; s++) + { + if (s == i) + continue; + check (smc_recv_keyshare (&ad[i], bufs[s], lens[s], s), + "failed checking keyshare"); + } + } + + for (i = 0; i < bidders; i++) + free (bufs[i]); + return 1; +} + + +int +test_round1 () +{ + uint16_t i, s; + unsigned char *bufs[bidders]; + size_t lens[bidders]; + + for (i = 0; i < bidders; i++) + { + bufs[i] = smc_encrypt_bid (&ad[i], &lens[i]); + check (bufs[i], "failed to encrypt bid"); + } + + for (i = 0; i < bidders; i++) + { + for (s = 0; s < bidders; s++) + { + if (s == i) + continue; + check (smc_recv_encrypted_bid (&ad[i], bufs[s], lens[s], s), + "failed checking encrypted bid"); + } + } + + for (i = 0; i < bidders; i++) + free (bufs[i]); + return 1; +} + + +void +cleanup_auction_data () +{ + uint16_t i; + + for (i = 0; i < bidders; i++) + { + free (ad[i].y); + smc_free2 (ad[i].alpha, ad[i].n, ad[i].k); + smc_free2 (ad[i].beta, ad[i].n, ad[i].k); + } + free (ad); } int main (int argc, char *argv[]) { - int repeat = 16; + int repeat = 8; + + bidders = 2; + prizes = 2 * bidders; BRANDT_init (); @@ -185,6 +291,11 @@ main (int argc, char *argv[]) run (test_smc_zkp_dl); run (test_smc_zkp_2dle); run (test_smc_zkp_0og); + + run (test_setup_auction_data); + run (test_prologue); + run (test_round1); + cleanup_auction_data (); } return ret; |