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/listmnt.c | |
parent | 92fd2dbfb672d7b2b1cdfd5dd5cf89f7716b3e12 (diff) | |
parent | 3baeb11a8fbcfcdbc31976d421f17b85503b3ecd (diff) |
Merge "init attribute-based encryption"
Diffstat (limited to 'moon-abe/pbc-0.5.14/gen/listmnt.c')
-rw-r--r-- | moon-abe/pbc-0.5.14/gen/listmnt.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/moon-abe/pbc-0.5.14/gen/listmnt.c b/moon-abe/pbc-0.5.14/gen/listmnt.c new file mode 100644 index 00000000..a9160eab --- /dev/null +++ b/moon-abe/pbc-0.5.14/gen/listmnt.c @@ -0,0 +1,41 @@ +// For different discriminants D, list group size and representation size +// of resulting MNT curves. + +#include "pbc.h" + +int consider(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(unsigned int D) { + pbc_cm_search_d(consider, &D, D, 500); +} + +int main(int argc, char **argv) +{ + unsigned int D = 7; + + if (argc > 1) { + D = atoi(argv[1]); + if (D < 7 || (D % 4) != 3) { + pbc_die("D must be 3 mod 4 and at least 7"); + } + } + + const unsigned int maxD = 1000000000; + printf("D < %u, bits in q, bits in r\n", maxD); + while (D < maxD) { + try(D); + D++; + try(D); + D+=3; + } + + return 0; +} |