⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsatest.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "os.h"#include <mp.h>#include <libsec.h>#include <bio.h>voidmain(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("> ");	}}

⌨️ 快捷键说明

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