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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? t_bdrdsa.c

?? RSA operation library.
?? C
字號(hào):
/* $Id: t_bdRDSA.c $ */

/******************** SHORT COPYRIGHT NOTICE**************************
This source code is part of the BigDigits multiple-precision
arithmetic library Version 2.1 originally written by David Ireland,
copyright (c) 2001-6 D.I. Management Services Pty Limited, all rights
reserved. It is provided "as is" with no warranties. You may use
this software under the terms of the full copyright notice
"bigdigitsCopyright.txt" that should have been included with this
library or can be obtained from <www.di-mgt.com.au/bigdigits.html>.
This notice must always be retained in any copy.
******************* END OF COPYRIGHT NOTICE***************************/
/*
	Last updated:
	$Date: 2006-08-23 11:13:00 $
	$Revision: 2.1.0 $
	$Author: dai $
*/

/* EXAMPLE OF THE rDSA from ANSI X9.31 -1998
   Digital Signatures Using Reversible Public Key
   Cryptography for the Financial Services Industry (rDSA), 
   September 9, 1998 
   Appendix D.1 Odd e = 3 with 1024-bit n
   and D.3 Odd e =3 with 2048-bit n
*/

#if _MSC_VER >= 1100
	/* Detect memory leaks in MSVC++ */ 
	#define _CRTDBG_MAP_ALLOC
	#include <stdlib.h>
	#include <crtdbg.h>
#else
	#include <stdlib.h>
#endif

#include <stdio.h>
#include <assert.h>
#include "bigd.h"


void pr_msg(char *msg, BIGD b)
{
	printf("%s", msg);
	bdPrint(b, BD_PRINT_TRIM | BD_PRINT_NL);
}


int rDSA_SignAndVerify(BIGD ir, BIGD n, BIGD e, BIGD d)
{
	BIGD s;
	BIGD tmp;
	BIGD rr, ir1, rr1;
	int result;

	/* Initialise variables */
	s = bdNew();
	rr = bdNew();
	ir1 = bdNew();
	rr1 = bdNew();
	tmp = bdNew();

	pr_msg("n=\n", n);
	pr_msg("e=", e);
	pr_msg("d=\n", d);
	pr_msg("IR=\n", ir);

	/* COMPUTATION BY SIGNER */
	/* (n, e) is the public key
	   (n, d) is the private key
	   IR is the encoded message
	   Keep d secret
	*/

	/* For odd e, RR = IR. The value RR^d mod n is now computed */
	bdModExp(tmp, ir, d, n);
	pr_msg("RR^d mod n=\n", tmp);

	/* S = min { RR^d mod n, n-(RR^d mod n) } */
	/* i.e. if this value > n/2, the signature S = n - (RR^d mod n) */
	bdSubtract(s, n, tmp);
	if (bdCompare(s, tmp) > 0)
		bdSetEqual(s, tmp);
	pr_msg("S=\n", s);

	/* D.1.3 Signature Verification */

	/* The value (S')^e mod n is computed to yield RR'. */
	bdModExp(rr, s, e, n);
	pr_msg("RR'=\n", rr);

	/* If RR' = 12 mod 16, then IR' = RR';
	   If n - RR' = 12 mod 16, then IR' = n - RR'; */

	if (bdShortMod(tmp, rr, 16) == 12)
		bdSetEqual(ir1, rr);
	else
		bdSubtract(ir1, n, rr);
	
	pr_msg("IR'=\n", ir1);

	/* Since IR' is identical to the computed hash IR, and the signature verification is
	   successful. */
	result = bdIsEqual(ir1, ir);
	if (result)
		printf("Signature verified OK\n");
	else
		printf("Signature verification FAILED!\n");

	/* Clean up */
	bdFree(&s);
	bdFree(&rr);
	bdFree(&ir1);
	bdFree(&rr1);
	bdFree(&tmp);

	return result;	/* TRUE = success */
}

int main(void)
{
	BIGD e, n, d;
	BIGD ir;
	int result;

/* MSVC memory leak checking stuff */
#if _MSC_VER >= 1100
	_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
	_CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
	_CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );
	_CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
	_CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );
	_CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
	_CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );
#endif

	printf("EXAMPLE OF THE rDSA from ANSI X9.31-1998 Appendix D\n");

	/* Initialise variables */
	e = bdNew();
	n = bdNew();
	d = bdNew();
	ir = bdNew();

	/* INPUT */
	/* Convert integers from hex format to BIGD (spaces are ignored) */
	bdConvFromHex(n, "ACD1CC46 DFE54FE8 F9786672 664CA269 0D0AD7E5"
		"003BC642 7954D939 EEE8B271 52E6A947 450D7FA9"
		"80172DE0 64D6569A 28A83FE7 0FA840F5 E9802CB8"
		"984AB34B D5C1E639 9EC21E4D 3A3A69BE 4E676F39"
		"5AAFEF7C 4925FD4F AEE9F9E5 E48AF431 5DF0EC2D"
		"B9AD7A35 0B3DF2F4 D15DC003 9846D1AC A3527B1A"
		"75049E3F E34F43BD");
	bdConvFromHex(d, "1CCDA20B CFFB8D51 7EE96668 66621B11 822C7950"
		"D55F4BB5 BEE37989 A7D17312 E326718B E0D79546"
		"EAAE87A5 6623B919 B1715FFB D7F16028 FC400774"
		"1961C88C 5D7B4DAA AC8D36A9 8C9EFBB2 6C8A4A0E"
		"6BC15B35 8E528A1A C9D0F042 BEB93BCA 16B541B3"
		"3F80C933 A3B76928 5C462ED5 677BFE89 DF07BED5"
		"C127FD13 241D3C4B");
	bdConvFromHex(ir, "6BBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBAA999 3E364706 816ABA3E 25717850"
		"C26C9CD0 D89D33CC");
	/* Set e = 3 directly */
	bdSetShort(e, 3);

	result = rDSA_SignAndVerify(ir, n, e, d);
	assert(result);

	/* Repeat for D.3 Odd e =3 with 2048-bit n */
	bdConvFromHex(n, "BCCA30CA 5280BC51 E758DBAF FEDFE46A 5D2A78D8"
		"3969E154 780F9B27 AD4E76E6 3E8FA960 29C04DE3"
		"F2C4B01F ECBEBB44 FC2F5F8A C69BD0E3 278FF065"
		"8A6F9AC2 3BCFB2C9 AAAF1AC4 D5571A55 D3B1EC35"
		"50CF34D8 F789235D D3B5C4E2 F3DF1761 19D918F2"
		"D35E805B 62FC35FE E5FD0785 4824B984 6DC1665E"
		"35A31873 BF6A24FE 50842D0A A0305C35 D0F45B0D"
		"7C2F1E94 32D850D6 7956D383 BBEF52FC 2ACBF7AE"
		"6F7CA214 88A56456 BDF66726 96EE037C 3CAA2199"
		"904E37AA 40134E10 155FC813 93A225BD 129C4B3B"
		"C91AD3A5 FC958A6A BCABE355 0390B677 87625D78"
		"F8D3172B 673C4482 CE354B89 51D7E8C4 DDCE5D4C"
		"DFA6790C 6CE8C02C 8D807AE2 6F27FE33");
	bdConvFromHex(d, "7DDC2086 E1AB2836 9A3B3D1F FF3FED9C 3E1C5090"
		"26469638 500A676F C8DEF9EE D45FC640 1BD58942"
		"A1D8756A 9DD47CD8 A81F9507 2F128B42 1A5FF599"
		"06F511D6 D28A7731 1C74BC83 38E4BC39 37CBF2CE"
		"35DF7890 A5061793 E2792DEC A294BA40 BBE610A1"
		"E23F003C ECA823FF 43FE0503 856DD102 F3D6443E"
		"CE6CBAF7 D4F16DFD BAF7C2F8 CB4955E2 F2DF29FD"
		"A7A4DD7B 93785252 E2CA4AAD 14E8B1A1 7881D381"
		"DAD9061E C8AB50DD CBF8B56A FA464F01 D28DFDFF"
		"0CAFF6B5 588E8F77 6FA128DE 7C102494 7D5D8067"
		"3F545A5C 73FBC16B 609A33A1 1021DD8F 37A4E7C4"
		"78AA19E3 BCB1BBD8 F4AA9232 65F1F1D5 5236753A"
		"C8C10D60 F0FAB073 66439A90 5E2C63AB");
	bdConvFromHex(ir, "6BBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB BBBBBBBB"
		"BBBBBBBB BBBBBBBB BBBBBBBB BBBAA999 3E364706"
		"816ABA3E 25717850 C26C9CD0 D89D33CC");

	result = rDSA_SignAndVerify(ir, n, e, d);
	assert(result);

	/* Clean up */
	bdFree(&e);
	bdFree(&n);
	bdFree(&d);
	bdFree(&ir);

	printf("OK, successfully completed tests.\n");

	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人激情文学综合网| 国产成人在线视频网站| 玉足女爽爽91| 亚洲一区二区三区爽爽爽爽爽| 国产精品久久777777| 亚洲免费伊人电影| 亚洲影视资源网| 免费高清在线视频一区·| 美女一区二区三区| 丁香桃色午夜亚洲一区二区三区| 美女在线一区二区| 不卡视频免费播放| 欧美在线观看一区| 欧美一卡2卡3卡4卡| 91精品国产欧美日韩| 久久精品欧美一区二区三区麻豆| 国产精品无遮挡| 日本成人在线一区| yourporn久久国产精品| 欧美一区二区三区四区高清| 国产日韩精品一区二区三区| 亚洲成人资源网| 懂色av一区二区在线播放| 欧美日韩视频在线一区二区| 久久精品欧美一区二区三区麻豆| 一区二区三区高清| 国产一区二区剧情av在线| 欧美在线观看你懂的| 国产日韩三级在线| 午夜欧美2019年伦理| 成人午夜精品一区二区三区| 日韩欧美一级精品久久| 亚洲午夜精品久久久久久久久| 国产成人亚洲综合a∨猫咪| 777久久久精品| 亚洲成人动漫在线免费观看| 欧美无乱码久久久免费午夜一区 | 亚洲一区二区三区影院| 色欧美乱欧美15图片| 国产欧美视频一区二区| 国产一区二区毛片| 国产清纯美女被跳蛋高潮一区二区久久w | 91色视频在线| 中文字幕欧美日本乱码一线二线| 国产精品一区二区视频| 精品国产免费人成电影在线观看四季| 一区二区在线观看免费视频播放| 国产福利一区二区三区在线视频| 日韩欧美精品在线视频| 精东粉嫩av免费一区二区三区| 日韩精品一区在线观看| 久久99国产精品久久99 | 毛片av一区二区三区| 日韩欧美国产小视频| 九九视频精品免费| 国产亚洲成aⅴ人片在线观看 | 欧美精品精品一区| 亚洲国产欧美在线| 久久这里只有精品首页| 国产成人av自拍| 亚洲成人动漫在线观看| 精品福利在线导航| 91福利精品视频| 国产一区二区三区高清播放| 亚洲欧美乱综合| 欧美精选一区二区| 豆国产96在线|亚洲| 亚洲成人精品一区| 亚洲欧美日韩成人高清在线一区| 中文字幕精品一区二区三区精品| 精品视频1区2区| 丁香啪啪综合成人亚洲小说| 日日夜夜精品免费视频| 一区二区三区日韩在线观看| 精品捆绑美女sm三区| 欧美熟乱第一页| 在线一区二区视频| 99在线精品免费| 成人动漫一区二区| 国产成人鲁色资源国产91色综 | 欧美人牲a欧美精品| 91浏览器在线视频| 99久久99久久综合| 91性感美女视频| 欧美体内she精高潮| 久久综合一区二区| 久久久蜜臀国产一区二区| |精品福利一区二区三区| av激情亚洲男人天堂| 成人激情小说网站| 色av成人天堂桃色av| 成人三级伦理片| 国产.欧美.日韩| 成人小视频免费在线观看| 99久久精品免费看国产免费软件| 国产91在线观看| 欧美中文字幕一区二区三区| 欧美日精品一区视频| 91精品国产色综合久久不卡蜜臀 | 国产精品超碰97尤物18| 亚洲精品国产一区二区三区四区在线| 亚洲欧美综合网| 午夜不卡av免费| 国产一区二区三区最好精华液| 成人性生交大片免费看中文| 欧美日韩一区二区三区高清| 色琪琪一区二区三区亚洲区| 欧美高清视频www夜色资源网| 久久只精品国产| 亚洲一区在线看| 成人午夜激情影院| 欧美一区二区视频网站| 国产精品久久久久影视| 亚洲va国产va欧美va观看| 成人国产精品免费网站| 日韩一区二区三区视频在线| 亚洲日本在线天堂| 国产福利一区二区三区视频| 91.麻豆视频| 亚洲视频免费观看| 国产成人av资源| 国产欧美日韩在线| 另类欧美日韩国产在线| 欧美日韩国产影片| 亚洲欧美综合另类在线卡通| 久久99精品国产.久久久久久| 色成人在线视频| 综合久久综合久久| 91丝袜呻吟高潮美腿白嫩在线观看| 精品国产91洋老外米糕| 精品无人码麻豆乱码1区2区| 日韩视频在线你懂得| 精品一区二区影视| 久久久久免费观看| 国产99精品国产| 国产精品久久久久久久岛一牛影视 | 日韩avvvv在线播放| 日韩一区和二区| 激情综合网av| 中文字幕av一区二区三区高| 99亚偷拍自图区亚洲| 午夜天堂影视香蕉久久| 7777精品久久久大香线蕉| 视频一区视频二区中文字幕| 色吊一区二区三区| 免费在线看一区| 中文字幕在线观看一区二区| 色美美综合视频| 蜜臀av一区二区在线观看| 国产精品乱人伦中文| 欧美在线视频不卡| 国产九色精品成人porny| 国产精品乱人伦| 精品久久人人做人人爽| 色婷婷一区二区| 看国产成人h片视频| 亚洲精品免费一二三区| 2021久久国产精品不只是精品| 色哟哟一区二区三区| 精品在线一区二区| 亚洲国产一二三| 国产欧美一区在线| 欧美日韩一区不卡| 处破女av一区二区| 国产真实乱子伦精品视频| 一区二区三区在线视频免费| 日韩亚洲欧美成人一区| 欧美视频一区二区三区| 成人白浆超碰人人人人| 国产美女在线精品| 麻豆国产欧美日韩综合精品二区 | 99免费精品在线| 国产成人鲁色资源国产91色综| 婷婷国产在线综合| 亚洲成人黄色影院| 视频一区二区中文字幕| 一区二区欧美精品| 亚洲韩国一区二区三区| 中文字幕一区二区三| 自拍偷拍亚洲欧美日韩| 国产精品卡一卡二卡三| 国产精品久久久久久久裸模| 中文字幕第一区第二区| 国产精品国产三级国产普通话三级 | 国产精品久久久一区麻豆最新章节| 2欧美一区二区三区在线观看视频| 日韩三区在线观看| 欧美精品一区在线观看| 国产精品色哟哟网站| 亚洲美女在线国产| 日本欧美在线观看| 国产不卡视频在线观看| 欧美伊人久久久久久久久影院| 欧美日韩国产区一| 久久久久久免费| 一区二区三区丝袜| 国产一区二区精品久久91| 色综合天天综合狠狠| 欧美二区乱c少妇| 中文字幕亚洲在|