X-Git-Url: https://git.siccegge.de//index.cgi?p=software%2FDIPE.git;a=blobdiff_plain;f=tests%2FtestPBC.cpp;fp=tests%2FtestPBC.cpp;h=826ec1b16ce3d13c0d469c0bf4aa65e4d281737c;hp=0000000000000000000000000000000000000000;hb=006e87bc592a4e6eabea4f7f9caab8e218ebfd85;hpb=5cb1a82c4ddb3fd578e6b99cce46406e1a6b357f diff --git a/tests/testPBC.cpp b/tests/testPBC.cpp new file mode 100644 index 0000000..826ec1b --- /dev/null +++ b/tests/testPBC.cpp @@ -0,0 +1,71 @@ +#include +#include + +#include "DIPE.h" + +static pairing_t pairing; + + +/* PBC is using multiplicative notion and ONE is indeed the neutral + * element wrt multiplication. + */ +TEST(PbcTest, PbcOneTest) { + element_t g1; + element_t z; + element_t g1z; + + element_init_G1(g1, pairing); + element_init_Zr(z, pairing); + element_init_G1(g1z, pairing); + + element_set1(g1); + element_random(z); + element_pow_zn(g1z, g1, z); + + EXPECT_EQ(element_cmp(g1, g1z), 0); + + element_clear(g1); + element_clear(z); + element_clear(g1z); +} + +TEST(PbcTest, PbcFromHash) { + char test1[] = "pbctest1"; + char test2[] = "pbctest2"; + element_t a, b; + + element_init_G2(a, pairing); + element_init_G2(b, pairing); + + element_from_hash(a, test1, 8); + element_from_hash(b, test1, 8); + EXPECT_EQ(element_cmp(a, b), 0); + + element_from_hash(a, test1, 8); + element_from_hash(b, test2, 8); + EXPECT_NE(element_cmp(a, b), 0); + + element_clear(a); + element_clear(b); +} + +int main(int argc, char **argv) { + char buffer[2<<16]; + ::testing::InitGoogleTest(&argc, argv); + + FILE *fp; + fp = fopen("../tests/a.param", "r"); + if (fp == NULL) { + perror("Reading Pairing Parameters"); + return 1; + } + size_t count = fread(buffer, 1, 2<<16, fp); + + pairing_init_set_buf(pairing, buffer, 2<<16); + + + int result = RUN_ALL_TESTS(); + pairing_clear(pairing); + return result; +} +