- Pseudo-seed the PRNG in programs used for "make test"
[openssl.git] / crypto / bn / d.c
1 /* unused */
2
3 #include <stdio.h>
4 #include <openssl/bio.h>
5 #include "bn_lcl.h"
6
7 #define SIZE_A (100*4+4)
8 #define SIZE_B (13*4)
9
10 main(argc,argv)
11 int argc;
12 char *argv[];
13         {
14         BN_CTX ctx;
15         BN_RECP_CTX recp;
16         BIGNUM a,b,dd,d,r,rr,t,l;
17         int i;
18
19         MemCheck_start();
20         MemCheck_on();
21         BN_CTX_init(&ctx);
22         BN_RECP_CTX_init(&recp);
23
24         BN_init(&r);
25         BN_init(&rr);
26         BN_init(&d);
27         BN_init(&dd);
28         BN_init(&a);
29         BN_init(&b);
30
31         {
32         BN_rand(&a,SIZE_A,0,0);
33         BN_rand(&b,SIZE_B,0,0);
34
35         a.neg=1;
36         BN_RECP_CTX_set(&recp,&b,&ctx);
37
38         BN_print_fp(stdout,&a); printf(" a\n");
39         BN_print_fp(stdout,&b); printf(" b\n");
40
41         BN_print_fp(stdout,&recp.N); printf(" N\n");
42         BN_print_fp(stdout,&recp.Nr); printf(" Nr num_bits=%d\n",recp.num_bits);
43
44         BN_div_recp(&r,&d,&a,&recp,&ctx);
45
46 for (i=0; i<300; i++)
47         BN_div(&rr,&dd,&a,&b,&ctx);
48
49         BN_print_fp(stdout,&r); printf(" div recp\n");
50         BN_print_fp(stdout,&rr); printf(" div\n");
51         BN_print_fp(stdout,&d); printf(" rem recp\n");
52         BN_print_fp(stdout,&dd); printf(" rem\n");
53         }
54         BN_CTX_free(&ctx);
55         BN_RECP_CTX_free(&recp);
56
57         BN_free(&r);
58         BN_free(&rr);
59         BN_free(&d);
60         BN_free(&dd);
61         BN_free(&a);
62         BN_free(&b);
63
64         {
65         BIO *out;
66
67         if ((out=BIO_new(BIO_s_file())) != NULL)
68                 BIO_set_fp(out,stderr,BIO_NOCLOSE|BIO_FP_TEXT);
69
70         CRYPTO_mem_leaks(out);
71         BIO_free(out);
72         }
73
74         }