a
This commit is contained in:
57
libsec/rsatest.c
Normal file
57
libsec/rsatest.c
Normal file
@ -0,0 +1,57 @@
|
||||
#include "os.h"
|
||||
#include <mp.h>
|
||||
#include <libsec.h>
|
||||
#include <bio.h>
|
||||
|
||||
void
|
||||
main(void)
|
||||
{
|
||||
RSApriv *rsa;
|
||||
Biobuf b;
|
||||
char *p;
|
||||
int n;
|
||||
mpint *clr, *enc, *clr2;
|
||||
uchar buf[4096];
|
||||
uchar *e;
|
||||
vlong start;
|
||||
|
||||
fmtinstall('B', mpconv);
|
||||
|
||||
rsa = rsagen(1024, 16, 0);
|
||||
if(rsa == nil)
|
||||
sysfatal("rsagen");
|
||||
Binit(&b, 0, OREAD);
|
||||
clr = mpnew(0);
|
||||
clr2 = mpnew(0);
|
||||
enc = mpnew(0);
|
||||
|
||||
strtomp("123456789abcdef123456789abcdef123456789abcdef123456789abcdef", nil, 16, clr);
|
||||
rsaencrypt(&rsa->pub, clr, enc);
|
||||
|
||||
start = nsec();
|
||||
for(n = 0; n < 10; n++)
|
||||
rsadecrypt(rsa, enc, clr);
|
||||
print("%lld\n", nsec()-start);
|
||||
|
||||
start = nsec();
|
||||
for(n = 0; n < 10; n++)
|
||||
mpexp(enc, rsa->dk, rsa->pub.n, clr2);
|
||||
print("%lld\n", nsec()-start);
|
||||
|
||||
if(mpcmp(clr, clr2) != 0)
|
||||
print("%B != %B\n", clr, clr2);
|
||||
|
||||
print("> ");
|
||||
while(p = Brdline(&b, '\n')){
|
||||
n = Blinelen(&b);
|
||||
letomp((uchar*)p, n, clr);
|
||||
print("clr %B\n", clr);
|
||||
rsaencrypt(&rsa->pub, clr, enc);
|
||||
print("enc %B\n", enc);
|
||||
rsadecrypt(rsa, enc, clr);
|
||||
print("clr %B\n", clr);
|
||||
n = mptole(clr, buf, sizeof(buf), nil);
|
||||
write(1, buf, n);
|
||||
print("> ");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user