diff options
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; +} |