]>
Commit | Line | Data |
---|---|---|
0c50e02b BM |
1 | /* unused */ |
2 | ||
dfeab068 | 3 | #include <stdio.h> |
ec577822 | 4 | #include <openssl/tmdiff.h> |
dfeab068 RE |
5 | #include "bn_lcl.h" |
6 | ||
ae5c8664 MC |
7 | #define SIZE 256 |
8 | #define NUM (8*8*8) | |
9 | #define MOD (8*8*8*8*8) | |
dfeab068 | 10 | |
ae5c8664 | 11 | main(argc, argv) |
dfeab068 RE |
12 | int argc; |
13 | char *argv[]; | |
ae5c8664 MC |
14 | { |
15 | BN_CTX ctx; | |
16 | BIGNUM a, b, c, r, rr, t, l; | |
17 | int j, i, size = SIZE, num = NUM, mod = MOD; | |
18 | char *start, *end; | |
19 | BN_MONT_CTX mont; | |
20 | double d, md; | |
21 | ||
22 | BN_MONT_CTX_init(&mont); | |
23 | BN_CTX_init(&ctx); | |
24 | BN_init(&a); | |
25 | BN_init(&b); | |
26 | BN_init(&c); | |
27 | BN_init(&r); | |
28 | ||
29 | start = ms_time_new(); | |
30 | end = ms_time_new(); | |
31 | while (size <= 1024 * 8) { | |
32 | BN_rand(&a, size, 0, 0); | |
33 | BN_rand(&b, size, 1, 0); | |
34 | BN_rand(&c, size, 0, 1); | |
35 | ||
36 | BN_mod(&a, &a, &c, &ctx); | |
37 | ||
38 | ms_time_get(start); | |
39 | for (i = 0; i < 10; i++) | |
40 | BN_MONT_CTX_set(&mont, &c, &ctx); | |
41 | ms_time_get(end); | |
42 | md = ms_time_diff(start, end); | |
43 | ||
44 | ms_time_get(start); | |
45 | for (i = 0; i < num; i++) { | |
46 | /* bn_mull(&r,&a,&b,&ctx); */ | |
47 | /* BN_sqr(&r,&a,&ctx); */ | |
48 | BN_mod_exp_mont(&r, &a, &b, &c, &ctx, &mont); | |
49 | } | |
50 | ms_time_get(end); | |
51 | d = ms_time_diff(start, end) /* *50/33 */ ; | |
52 | printf("%5d bit:%6.2f %6d %6.4f %4d m_set(%5.4f)\n", size, | |
53 | d, num, d / num, (int)((d / num) * mod), md / 10.0); | |
54 | num /= 8; | |
55 | mod /= 8; | |
56 | if (num <= 0) | |
57 | num = 1; | |
58 | size *= 2; | |
59 | } | |
60 | ||
61 | } |