-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.cpp
40 lines (31 loc) · 772 Bytes
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <cstring>
#include <fmpz.h>
#include "parameters.h"
#include "factor.h"
int main(int argc, char** argv)
{
if (argc < 2) {
return 1;
}
unsigned int m, t;
fmpz_t N, Mp, generator, ord;
fmpz_init(N);
fmpz_init(Mp);
fmpz_init(ord);
// base prime generator is 65537
fmpz_init_set_ui(generator, 65537ul);
// input modulo N = pq
if (strncmp(argv[1], "0x", 2) == 0) {
fmpz_set_str(N, argv[1] + 2, 16);
} else {
fmpz_set_str(N, argv[1], 10);
}
// find optimal parameters (M', ord', m, t) for the given N
parameters(Mp, ord, &m, &t, N);
factor(N, generator, Mp, ord, m, t);
fmpz_clear(N);
fmpz_clear(Mp);
fmpz_clear(ord);
fmpz_clear(generator);
return 0;
}