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