summaryrefslogtreecommitdiffstats
path: root/moon-abe/pbc-0.5.14/guru/testindexcalculus.c
diff options
context:
space:
mode:
authorWuKong <rebirthmonkey@gmail.com>2015-09-04 09:25:34 +0200
committerWuKong <rebirthmonkey@gmail.com>2015-09-04 09:25:34 +0200
commit3baeb11a8fbcfcdbc31976d421f17b85503b3ecd (patch)
tree04891d88c1127148f1b390b5a24414e85b270aee /moon-abe/pbc-0.5.14/guru/testindexcalculus.c
parent67c5b73910f5fc437429c356978081b252a59480 (diff)
init attribute-based encryption
Change-Id: Iba1a3d722110abf747a0fba366f3ebc911d25b25
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;
+}