Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/feature_posix/sys/src/cmd/unix/drawterm/libsec/egverify.c – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
#include "os.h"
2
#include <mp.h>
3
#include <libsec.h>
4
 
5
int
6
egverify(EGpub *pub, EGsig *sig, mpint *m)
7
{
8
	mpint *p = pub->p, *alpha = pub->alpha;
9
	mpint *r = sig->r, *s = sig->s;
10
	mpint *v1, *v2, *rs;
11
	int rv = -1;
12
 
13
	if(mpcmp(r, mpone) < 0 || mpcmp(r, p) >= 0)
14
		return rv;
15
	v1 = mpnew(0);
16
	rs = mpnew(0);
17
	v2 = mpnew(0);
18
	mpexp(pub->key, r, p, v1);
19
	mpexp(r, s, p, rs);
20
	mpmul(v1, rs, v1);
21
	mpmod(v1, p, v1);
22
	mpexp(alpha, m, p, v2);
23
	if(mpcmp(v1, v2) == 0)
24
		rv = 0;
25
	mpfree(v1);
26
	mpfree(rs);
27
	mpfree(v2);
28
	return rv;
29
}