]> git.siccegge.de Git - software/DIPE.git/blob - tests/testPBC.cpp
Code drop
[software/DIPE.git] / tests / testPBC.cpp
1 #include <gtest/gtest.h>
2 #include <pbc/pbc.h>
3
4 #include "DIPE.h"
5
6 static pairing_t pairing;
7
8
9 /* PBC is using multiplicative notion and ONE is indeed the neutral
10 * element wrt multiplication.
11 */
12 TEST(PbcTest, PbcOneTest) {
13 element_t g1;
14 element_t z;
15 element_t g1z;
16
17 element_init_G1(g1, pairing);
18 element_init_Zr(z, pairing);
19 element_init_G1(g1z, pairing);
20
21 element_set1(g1);
22 element_random(z);
23 element_pow_zn(g1z, g1, z);
24
25 EXPECT_EQ(element_cmp(g1, g1z), 0);
26
27 element_clear(g1);
28 element_clear(z);
29 element_clear(g1z);
30 }
31
32 TEST(PbcTest, PbcFromHash) {
33 char test1[] = "pbctest1";
34 char test2[] = "pbctest2";
35 element_t a, b;
36
37 element_init_G2(a, pairing);
38 element_init_G2(b, pairing);
39
40 element_from_hash(a, test1, 8);
41 element_from_hash(b, test1, 8);
42 EXPECT_EQ(element_cmp(a, b), 0);
43
44 element_from_hash(a, test1, 8);
45 element_from_hash(b, test2, 8);
46 EXPECT_NE(element_cmp(a, b), 0);
47
48 element_clear(a);
49 element_clear(b);
50 }
51
52 int main(int argc, char **argv) {
53 char buffer[2<<16];
54 ::testing::InitGoogleTest(&argc, argv);
55
56 FILE *fp;
57 fp = fopen("../tests/a.param", "r");
58 if (fp == NULL) {
59 perror("Reading Pairing Parameters");
60 return 1;
61 }
62 size_t count = fread(buffer, 1, 2<<16, fp);
63
64 pairing_init_set_buf(pairing, buffer, 2<<16);
65
66
67 int result = RUN_ALL_TESTS();
68 pairing_clear(pairing);
69 return result;
70 }
71