diff options
author | 2015-09-04 07:35:06 +0000 | |
---|---|---|
committer | 2015-09-04 07:35:06 +0000 | |
commit | ca6aa8198d2335f8c326c3dd4d26bf5899064214 (patch) | |
tree | 6274a2d971fc0cac0896efe8583927d0190e3d20 /moon-abe/pbc-0.5.14/gen/listfreeman.c | |
parent | 92fd2dbfb672d7b2b1cdfd5dd5cf89f7716b3e12 (diff) | |
parent | 3baeb11a8fbcfcdbc31976d421f17b85503b3ecd (diff) |
Merge "init attribute-based encryption"
Diffstat (limited to 'moon-abe/pbc-0.5.14/gen/listfreeman.c')
-rw-r--r-- | moon-abe/pbc-0.5.14/gen/listfreeman.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/moon-abe/pbc-0.5.14/gen/listfreeman.c b/moon-abe/pbc-0.5.14/gen/listfreeman.c new file mode 100644 index 00000000..f3f18cc4 --- /dev/null +++ b/moon-abe/pbc-0.5.14/gen/listfreeman.c @@ -0,0 +1,38 @@ +// List discriminant and bits in r and q for type G pairings that may be +// suitable for cryptography. + +#include "pbc.h" + +int show(pbc_cm_t cm, void *data) { + unsigned int D = * (unsigned *) data; + int qbits, rbits; + qbits = mpz_sizeinbase(cm->q, 2); + rbits = mpz_sizeinbase(cm->r, 2); + printf("%d, %d, %d\n", D, qbits, rbits); + fflush(stdout); + return 0; +} + +void try(int tryD) { + pbc_cm_search_g(show, &tryD, tryD, 500); +} + +int main(int argc, char **argv) { + unsigned int D = 0; + + if (argc > 1) { + D = atoi(argv[1]); + if (D % 120) { + pbc_die("D must be multiple of 120"); + } + } + + printf("D < %u, bits in q, bits in r\n", 1000000000); + while (D < 1000000000) { + try(D + 43); + try(D + 67); + D+=120; + } + + return 0; +} |