亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? r_keygen.c

?? 簡單的RSA加密范例
?? C
字號:
/*	R_KEYGEN.C - key-pair generation for RSAEURO    Copyright (c) J.S.A.Kapp 1994 - 1996.	RSAEURO - RSA Library compatible with RSAREF(tm) 2.0.	All functions prototypes are the Same as for RSAREF(tm).	To aid compatiblity the source and the files follow the	same naming comventions that RSAREF(tm) uses.  This should aid	direct importing to you applications.	This library is legal everywhere outside the US.  And should	NOT be imported to the US and used there.	All Trademarks Acknowledged.	Revision history		0.90 First revision, produced to perform just like the		RSAREF(tm) version.		0.91 Second revision, minor modifications to RSAFilter routine		and method.  Result minor speed increase.*/#include "rsaeuro.h"#include "r_random.h"#include "nn.h"#include "prime.h"static int RSAFilter PROTO_LIST	((NN_DIGIT *, unsigned int, NN_DIGIT *, unsigned int));/* Generates an RSA key pair with a given length and public exponent. */int R_GeneratePEMKeys(publicKey, privateKey, protoKey, randomStruct)R_RSA_PUBLIC_KEY *publicKey;    /* new RSA public key */R_RSA_PRIVATE_KEY *privateKey;  /* new RSA private key */R_RSA_PROTO_KEY *protoKey;      /* RSA prototype key */R_RANDOM_STRUCT *randomStruct;  /* random structure */{	NN_DIGIT d[MAX_NN_DIGITS], dP[MAX_NN_DIGITS], dQ[MAX_NN_DIGITS],		e[MAX_NN_DIGITS], n[MAX_NN_DIGITS], p[MAX_NN_DIGITS], phiN[MAX_NN_DIGITS],		pMinus1[MAX_NN_DIGITS], q[MAX_NN_DIGITS], qInv[MAX_NN_DIGITS],		qMinus1[MAX_NN_DIGITS], t[MAX_NN_DIGITS], u[MAX_NN_DIGITS],		v[MAX_NN_DIGITS];	int status;	unsigned int nDigits, pBits, pDigits, qBits;	if((protoKey->bits < MIN_RSA_MODULUS_BITS) || (protoKey->bits > MAX_RSA_MODULUS_BITS))		return(RE_MODULUS_LEN);	nDigits = (protoKey->bits + NN_DIGIT_BITS - 1) / NN_DIGIT_BITS;	pDigits = (nDigits + 1) / 2;	pBits = (protoKey->bits + 1) / 2;	qBits = protoKey->bits - pBits;	/* NB: for 65537, this means that NN_DIGIT is at least 17 bits		 in length. */	NN_ASSIGN_DIGIT(e, protoKey->useFermat4 ? (NN_DIGIT)65537 : (NN_DIGIT)3, nDigits);	/* Generate prime p between 3*2^(pBits-2) and 2^pBits-1, searching		 in steps of 2, until one satisfies gcd (p-1, e) = 1. */	NN_Assign2Exp(t, pBits-1, pDigits);	NN_Assign2Exp(u, pBits-2, pDigits);	NN_Add(t, t, u, pDigits);	NN_ASSIGN_DIGIT(v, 1, pDigits);	NN_Sub(v, t, v, pDigits);	NN_Add(u, u, v, pDigits);	NN_ASSIGN_DIGIT(v, 2, pDigits);	do {		if(status = GeneratePrime(p, t, u, v, pDigits, randomStruct))			return(status);	}while(!RSAFilter(p, pDigits, e, 1));	/* Generate prime q between 3*2^(qBits-2) and 2^qBits-1, searching		 in steps of 2, until one satisfies gcd (q-1, e) = 1. */	NN_Assign2Exp(t, qBits-1, pDigits);	NN_Assign2Exp(u, qBits-2, pDigits);	NN_Add(t, t, u, pDigits);	NN_ASSIGN_DIGIT(v, 1, pDigits);	NN_Sub(v, t, v, pDigits);	NN_Add(u, u, v, pDigits);	NN_ASSIGN_DIGIT(v, 2, pDigits);	do {		if(status = GeneratePrime(q, t, u, v, pDigits, randomStruct))			return(status);	}while(!RSAFilter(q, pDigits, e, 1));	/* Sort so that p > q. (p = q case is extremely unlikely. */	if(NN_Cmp(p, q, pDigits) < 0) {		NN_Assign(t, p, pDigits);		NN_Assign(p, q, pDigits);		NN_Assign(q, t, pDigits);	}	/* Compute n = pq, qInv = q^{-1} mod p, d = e^{-1} mod (p-1)(q-1),		 dP = d mod p-1, dQ = d mod q-1. */	NN_Mult(n, p, q, pDigits);	NN_ModInv(qInv, q, p, pDigits);	NN_ASSIGN_DIGIT(t, 1, pDigits);	NN_Sub(pMinus1, p, t, pDigits);	NN_Sub(qMinus1, q, t, pDigits);	NN_Mult(phiN, pMinus1, qMinus1, pDigits);	NN_ModInv(d, e, phiN, nDigits);	NN_Mod(dP, d, nDigits, pMinus1, pDigits);	NN_Mod(dQ, d, nDigits, qMinus1, pDigits);	publicKey->bits = privateKey->bits = protoKey->bits;	NN_Encode(publicKey->modulus, MAX_RSA_MODULUS_LEN, n, nDigits);	NN_Encode(publicKey->exponent, MAX_RSA_MODULUS_LEN, e, 1);	R_memcpy((POINTER)privateKey->modulus, (POINTER)publicKey->modulus, MAX_RSA_MODULUS_LEN);	R_memcpy((POINTER)privateKey->publicExponent, (POINTER)publicKey->exponent, MAX_RSA_MODULUS_LEN);	NN_Encode(privateKey->exponent, MAX_RSA_MODULUS_LEN, d, nDigits);	NN_Encode(privateKey->prime[0], MAX_RSA_PRIME_LEN, p, pDigits);	NN_Encode(privateKey->prime[1], MAX_RSA_PRIME_LEN, q, pDigits);	NN_Encode(privateKey->primeExponent[0], MAX_RSA_PRIME_LEN, dP, pDigits);	NN_Encode(privateKey->primeExponent[1], MAX_RSA_PRIME_LEN, dQ, pDigits);	NN_Encode(privateKey->coefficient, MAX_RSA_PRIME_LEN, qInv, pDigits);	/* Clear sensitive information. */	R_memset((POINTER)d, 0, sizeof(d));	R_memset((POINTER)dP, 0, sizeof(dP));	R_memset((POINTER)dQ, 0, sizeof(dQ));	R_memset((POINTER)p, 0, sizeof(p));	R_memset((POINTER)phiN, 0, sizeof(phiN));	R_memset((POINTER)pMinus1, 0, sizeof(pMinus1));	R_memset((POINTER)q, 0, sizeof(q));	R_memset((POINTER)qInv, 0, sizeof(qInv));	R_memset((POINTER)qMinus1, 0, sizeof(qMinus1));	R_memset((POINTER)t, 0, sizeof(t));	return (0);}/* Returns nonzero iff GCD (a-1, b) = 1.	 Assumes aDigits < MAX_NN_DIGITS, bDigits < MAX_NN_DIGITS. */static int RSAFilter(a, aDigits, b, bDigits)NN_DIGIT *a, *b;unsigned int aDigits, bDigits;{	int status = 0;	NN_DIGIT aMinus1[MAX_NN_DIGITS], t[MAX_NN_DIGITS];	NN_DIGIT u[MAX_NN_DIGITS];	NN_ASSIGN_DIGIT(t, 1, aDigits);	NN_Sub(aMinus1, a, t, aDigits);	NN_Gcd(u, aMinus1, b, aDigits);	status = NN_EQUAL(t, u, aDigits);	R_memset((POINTER)aMinus1, 0, sizeof(aMinus1));	return(status);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区四区 | 99久久777色| 国产一区二区三区高清播放| 欧美aaaaa成人免费观看视频| 天天影视网天天综合色在线播放| 亚洲成人av免费| 亚洲国产精品久久久久婷婷884 | 亚洲国产日韩a在线播放性色| 亚洲欧美日韩电影| 亚洲免费观看高清完整版在线观看熊| 中文字幕一区二区三区色视频| 国产精品私人自拍| 亚洲婷婷综合色高清在线| 亚洲免费观看视频| 午夜精品123| 久久 天天综合| 国产xxx精品视频大全| 丁香一区二区三区| 色婷婷亚洲综合| 欧美日韩成人综合在线一区二区| 5月丁香婷婷综合| 亚洲精品一区二区三区99| 国产欧美日韩亚州综合| 中文字幕视频一区二区三区久| 亚洲人快播电影网| 日精品一区二区三区| 极品美女销魂一区二区三区免费| 国产精品77777| 99精品欧美一区二区三区综合在线| 欧美主播一区二区三区| 欧美一区二区三区播放老司机| 国产午夜亚洲精品理论片色戒| 综合久久久久综合| 日韩av一区二| 成人一二三区视频| 欧美午夜电影网| 久久综合九色综合97婷婷女人 | 亚洲国产你懂的| 久久精品免费看| 成人午夜av电影| 欧美日韩视频在线第一区| 日韩欧美在线不卡| 国产精品久久久久久久浪潮网站 | 色婷婷av一区| 日韩欧美中文一区| 亚洲色图欧美激情| 日韩av电影天堂| 99久免费精品视频在线观看| 欧美精品日日鲁夜夜添| 亚洲国产成人午夜在线一区| 一片黄亚洲嫩模| 国产精品一区二区在线观看不卡| 欧美综合久久久| 中文字幕欧美区| 免费成人在线播放| 色综合久久综合| 久久久精品综合| 亚洲成av人影院在线观看网| 大胆欧美人体老妇| 91精品国产丝袜白色高跟鞋| 亚洲三级免费观看| 激情综合色丁香一区二区| 欧洲亚洲精品在线| 国产精品视频第一区| 日本成人中文字幕| 色网站国产精品| 国产亚洲综合色| 麻豆国产精品一区二区三区 | 精品国产露脸精彩对白| 亚洲福利国产精品| 99国产精品视频免费观看| 欧美精品一区二区三区久久久| 亚洲chinese男男1069| 99视频热这里只有精品免费| 久久久综合视频| 日本亚洲天堂网| 欧美日韩一区二区在线观看| 亚洲欧美在线高清| 国产999精品久久| 久久蜜桃av一区二区天堂 | 成人一区二区三区中文字幕| 精品免费99久久| 图片区小说区区亚洲影院| 欧美怡红院视频| 一区二区三区资源| 91蝌蚪国产九色| 中文字幕一区二区三区不卡| 国产成人aaa| 国产日韩一级二级三级| 精品伊人久久久久7777人| 欧美一区日韩一区| 日日摸夜夜添夜夜添国产精品 | 国产精品免费观看视频| 国产精品一区久久久久| 日韩极品在线观看| 欧美蜜桃一区二区三区| 亚洲一区二区视频| 91成人在线观看喷潮| 亚洲精品你懂的| 91传媒视频在线播放| 亚洲香肠在线观看| 欧美图片一区二区三区| 五月天久久比比资源色| 欧美丰满嫩嫩电影| 免费成人在线视频观看| 94-欧美-setu| 91精品欧美久久久久久动漫 | 精品少妇一区二区三区日产乱码 | 亚洲国产精品综合小说图片区| 97aⅴ精品视频一二三区| 亚洲欧美欧美一区二区三区| 97se亚洲国产综合在线| 亚洲一区二区欧美日韩| 欧美日韩高清不卡| 日本不卡不码高清免费观看| 欧美va亚洲va国产综合| 国产精品1024| 国产精品久久久久一区二区三区共| 99精品视频一区二区| 依依成人精品视频| 欧美高清激情brazzers| 老色鬼精品视频在线观看播放| 久久众筹精品私拍模特| zzijzzij亚洲日本少妇熟睡| 国产91丝袜在线播放九色| 精品国产精品一区二区夜夜嗨| 国产一区二区免费视频| 国产欧美日韩激情| av电影天堂一区二区在线观看| 亚洲男人的天堂在线观看| 欧美色图一区二区三区| 美女网站色91| 中文幕一区二区三区久久蜜桃| 91免费在线视频观看| 舔着乳尖日韩一区| 久久久久久麻豆| 色系网站成人免费| 美女视频一区在线观看| 中文字幕精品在线不卡| 欧美色精品在线视频| 国产一区二区福利视频| 日韩理论电影院| 欧美一级生活片| 粉嫩aⅴ一区二区三区四区| 亚洲午夜三级在线| 2021中文字幕一区亚洲| 91福利社在线观看| 激情综合色播激情啊| 有码一区二区三区| 日韩精品在线一区二区| 97成人超碰视| 青青青伊人色综合久久| 中文字幕亚洲不卡| 精品国精品自拍自在线| 一本大道久久a久久综合婷婷| 日本大胆欧美人术艺术动态| 中文字幕亚洲在| 精品理论电影在线| 欧美主播一区二区三区美女| 国产成人在线网站| 首页国产欧美日韩丝袜| 亚洲欧美日韩国产手机在线 | 日韩毛片视频在线看| 91精品婷婷国产综合久久性色| 成人综合婷婷国产精品久久 | 久久久久九九视频| 94色蜜桃网一区二区三区| 精品亚洲成a人| 欧美伊人久久久久久久久影院| 国产一区二区不卡| 香蕉乱码成人久久天堂爱免费| 国产日韩一级二级三级| 日韩一级大片在线| 欧美中文字幕不卡| 成人性生交大合| 国内精品久久久久影院薰衣草| 亚洲午夜久久久久| 中文字幕人成不卡一区| 久久一区二区视频| 欧美一卡二卡三卡| 欧美熟乱第一页| 91亚洲男人天堂| 国产91精品露脸国语对白| 蜜臀91精品一区二区三区| 亚洲一区二区三区四区的| 亚洲欧洲无码一区二区三区| 337p日本欧洲亚洲大胆色噜噜| 欧美精品乱人伦久久久久久| 日本高清不卡一区| 成人免费看视频| 国产福利不卡视频| 国产在线精品一区二区三区不卡| 丝袜亚洲另类丝袜在线| 亚洲综合一区二区精品导航| 1000部国产精品成人观看| 亚洲国产成人私人影院tom| 欧美高清在线精品一区| 国产日韩欧美高清在线| 国产午夜精品美女毛片视频| 精品成人a区在线观看|