]> git.ipfire.org Git - thirdparty/openssl.git/blame - crypto/bn/exp.c
Run util/openssl-format-source -v -c .
[thirdparty/openssl.git] / crypto / bn / exp.c
CommitLineData
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 11main(argc, argv)
dfeab068
RE
12int argc;
13char *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}