xref: /plan9/sys/src/cmd/unix/drawterm/libsec/egtest.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1*8ccd4a63SDavid du Colombier #include "os.h"
2*8ccd4a63SDavid du Colombier #include <mp.h>
3*8ccd4a63SDavid du Colombier #include <libsec.h>
4*8ccd4a63SDavid du Colombier 
5*8ccd4a63SDavid du Colombier void
main(void)6*8ccd4a63SDavid du Colombier main(void)
7*8ccd4a63SDavid du Colombier {
8*8ccd4a63SDavid du Colombier 	EGpriv *sk;
9*8ccd4a63SDavid du Colombier 	mpint *m, *gamma, *delta, *in, *out;
10*8ccd4a63SDavid du Colombier 	int plen, shift;
11*8ccd4a63SDavid du Colombier 
12*8ccd4a63SDavid du Colombier 	fmtinstall('B', mpconv);
13*8ccd4a63SDavid du Colombier 
14*8ccd4a63SDavid du Colombier 	sk = egprivalloc();
15*8ccd4a63SDavid du Colombier 	sk->pub.p = uitomp(2357, nil);
16*8ccd4a63SDavid du Colombier 	sk->pub.alpha = uitomp(2, nil);
17*8ccd4a63SDavid du Colombier 	sk->pub.key = uitomp(1185, nil);
18*8ccd4a63SDavid du Colombier 	sk->secret = uitomp(1751, nil);
19*8ccd4a63SDavid du Colombier 
20*8ccd4a63SDavid du Colombier 	m = uitomp(2035, nil);
21*8ccd4a63SDavid du Colombier 
22*8ccd4a63SDavid du Colombier 	plen = mpsignif(sk->pub.p)+1;
23*8ccd4a63SDavid du Colombier 	shift = ((plen+Dbits-1)/Dbits)*Dbits;
24*8ccd4a63SDavid du Colombier 	gamma = uitomp(1430, nil);
25*8ccd4a63SDavid du Colombier 	delta = uitomp(697, nil);
26*8ccd4a63SDavid du Colombier 	out = mpnew(0);
27*8ccd4a63SDavid du Colombier 	in = mpnew(0);
28*8ccd4a63SDavid du Colombier 	mpleft(gamma, shift, in);
29*8ccd4a63SDavid du Colombier 	mpadd(delta, in, in);
30*8ccd4a63SDavid du Colombier 	egdecrypt(sk, in, out);
31*8ccd4a63SDavid du Colombier 
32*8ccd4a63SDavid du Colombier 	if(mpcmp(m, out) != 0)
33*8ccd4a63SDavid du Colombier 		print("decrypt failed to recover message\n");
34*8ccd4a63SDavid du Colombier }
35