Blame


1 0fc65b37 2004-03-21 devnull #include "os.h"
2 0fc65b37 2004-03-21 devnull #include <mp.h>
3 0fc65b37 2004-03-21 devnull #include <libsec.h>
4 0fc65b37 2004-03-21 devnull #include <bio.h>
5 0fc65b37 2004-03-21 devnull
6 0fc65b37 2004-03-21 devnull void
7 0fc65b37 2004-03-21 devnull main(void)
8 0fc65b37 2004-03-21 devnull {
9 0fc65b37 2004-03-21 devnull RSApriv *rsa;
10 0fc65b37 2004-03-21 devnull Biobuf b;
11 0fc65b37 2004-03-21 devnull char *p;
12 0fc65b37 2004-03-21 devnull int n;
13 0fc65b37 2004-03-21 devnull mpint *clr, *enc, *clr2;
14 0fc65b37 2004-03-21 devnull uchar buf[4096];
15 0fc65b37 2004-03-21 devnull uchar *e;
16 0fc65b37 2004-03-21 devnull vlong start;
17 0fc65b37 2004-03-21 devnull
18 0fc65b37 2004-03-21 devnull fmtinstall('B', mpconv);
19 0fc65b37 2004-03-21 devnull
20 0fc65b37 2004-03-21 devnull rsa = rsagen(1024, 16, 0);
21 0fc65b37 2004-03-21 devnull if(rsa == nil)
22 0fc65b37 2004-03-21 devnull sysfatal("rsagen");
23 0fc65b37 2004-03-21 devnull Binit(&b, 0, OREAD);
24 0fc65b37 2004-03-21 devnull clr = mpnew(0);
25 0fc65b37 2004-03-21 devnull clr2 = mpnew(0);
26 0fc65b37 2004-03-21 devnull enc = mpnew(0);
27 0fc65b37 2004-03-21 devnull
28 0fc65b37 2004-03-21 devnull strtomp("123456789abcdef123456789abcdef123456789abcdef123456789abcdef", nil, 16, clr);
29 0fc65b37 2004-03-21 devnull rsaencrypt(&rsa->pub, clr, enc);
30 fa325e9b 2020-01-10 cross
31 0fc65b37 2004-03-21 devnull start = nsec();
32 0fc65b37 2004-03-21 devnull for(n = 0; n < 10; n++)
33 0fc65b37 2004-03-21 devnull rsadecrypt(rsa, enc, clr);
34 0fc65b37 2004-03-21 devnull print("%lld\n", nsec()-start);
35 0fc65b37 2004-03-21 devnull
36 0fc65b37 2004-03-21 devnull start = nsec();
37 0fc65b37 2004-03-21 devnull for(n = 0; n < 10; n++)
38 0fc65b37 2004-03-21 devnull mpexp(enc, rsa->dk, rsa->pub.n, clr2);
39 0fc65b37 2004-03-21 devnull print("%lld\n", nsec()-start);
40 0fc65b37 2004-03-21 devnull
41 0fc65b37 2004-03-21 devnull if(mpcmp(clr, clr2) != 0)
42 0fc65b37 2004-03-21 devnull print("%B != %B\n", clr, clr2);
43 fa325e9b 2020-01-10 cross
44 0fc65b37 2004-03-21 devnull print("> ");
45 0fc65b37 2004-03-21 devnull while(p = Brdline(&b, '\n')){
46 0fc65b37 2004-03-21 devnull n = Blinelen(&b);
47 0fc65b37 2004-03-21 devnull letomp((uchar*)p, n, clr);
48 0fc65b37 2004-03-21 devnull print("clr %B\n", clr);
49 0fc65b37 2004-03-21 devnull rsaencrypt(&rsa->pub, clr, enc);
50 0fc65b37 2004-03-21 devnull print("enc %B\n", enc);
51 0fc65b37 2004-03-21 devnull rsadecrypt(rsa, enc, clr);
52 0fc65b37 2004-03-21 devnull print("clr %B\n", clr);
53 0fc65b37 2004-03-21 devnull n = mptole(clr, buf, sizeof(buf), nil);
54 0fc65b37 2004-03-21 devnull write(1, buf, n);
55 0fc65b37 2004-03-21 devnull print("> ");
56 0fc65b37 2004-03-21 devnull }
57 0fc65b37 2004-03-21 devnull }