summaryrefslogtreecommitdiffstats
path: root/moon-abe/pbc-0.5.14/guru/testindexcalculus.c
diff options
context:
space:
mode:
Diffstat (limited to 'moon-abe/pbc-0.5.14/guru/testindexcalculus.c')
-rw-r--r--moon-abe/pbc-0.5.14/guru/testindexcalculus.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/moon-abe/pbc-0.5.14/guru/testindexcalculus.c b/moon-abe/pbc-0.5.14/guru/testindexcalculus.c
new file mode 100644
index 00000000..1bb36146
--- /dev/null
+++ b/moon-abe/pbc-0.5.14/guru/testindexcalculus.c
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <gmp.h>
+#include "pbc.h"
+
+int main(int argc, char **argv)
+{
+ mpz_t x;
+ mpz_t g, h, q;
+ mpz_init(x);
+ mpz_init(g);
+ mpz_init(h);
+ mpz_init(q);
+ int bits = 40;
+
+ if (argc == 2) {
+ bits = atoi(argv[1]);
+ }
+ mpz_setbit(q, bits);
+ pbc_mpz_random(q, q);
+ mpz_nextprime(q, q);
+ pbc_mpz_random(g, q);
+ pbc_mpz_random(h, q);
+ mpz_powm(h, g, h, q);
+
+ element_dlog_index_calculus(x, g, h, q);
+ element_printf("%Zd^%Zd %% %Zd = %Zd\n", g, x, q, h);
+
+ return 0;
+}