egverify.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 30 行

C
30
字号
#include "os.h"#include <mp.h>#include <libsec.h>integverify(EGpub *pub, EGsig *sig, mpint *m){	mpint *p = pub->p, *alpha = pub->alpha;	mpint *r = sig->r, *s = sig->s;	mpint *v1, *v2, *rs;	int rv = -1;	if(mpcmp(r, mpone) < 0 || mpcmp(r, p) >= 0)		return rv;	v1 = mpnew(0);	rs = mpnew(0);	v2 = mpnew(0);	mpexp(pub->key, r, p, v1);	mpexp(r, s, p, rs);	mpmul(v1, rs, v1);	mpmod(v1, p, v1);	mpexp(alpha, m, p, v2);	if(mpcmp(v1, v2) == 0)		rv = 0;	mpfree(v1);	mpfree(rs);	mpfree(v2);	return rv;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?