diff options
Diffstat (limited to 'keygen.cpp')
-rw-r--r-- | keygen.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/keygen.cpp b/keygen.cpp new file mode 100644 index 0000000..9f827f6 --- /dev/null +++ b/keygen.cpp @@ -0,0 +1,37 @@ +/* + * keygen.cpp + * + * + */ + +#include "keygen.h" +#include "miller_rabin.h" + +/* forward declaration of variables from keygen_args.h */ +extern char *pubkey; +extern char *prikey; +extern long prime_p; +extern long prime_q; +extern int random_f; + +int main(int argc, char **argv) +{ + /* seed rand() */ + srand((unsigned int ) time(NULL)); + + if (keygen_args(argc, argv) == 0) + cout << "read arguments successfully" << endl; + + unsigned short x = rand(); + printf("x before masking: %10hu 0x%08x\n", x, x); + + /* tips from http://www.di-mgt.com.au/rsa_alg.html */ + x |= LOW_BIT_ON; + x |= FIRST_TWO_BITS_ON; + + printf("x after masking : %10hu 0x%08x\n", x, x); + printf(miller_rabin_16(x) ? "x is prime!\n" : "x is not prime\n"); + + return 0; +} + |