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

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

?? rijndaeltest-ref.c

?? AES(The Advanced Encryption Standard)是美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究所用于加密電子數(shù)據(jù)的規(guī)范
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/* rijndaeltest-ref.c   v2.0   August '99 * Reference ANSI C code * authors: Paulo Barreto *          Vincent Rijmen, K.U.Leuven * * This code is placed in the public domain. */#include <assert.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#ifdef TRACE_KAT_MCT#include <time.h>#endif /* ?TRACE_KAT_MCT */#include "rijndael-api-ref.h"#define SUBMITTER "Joan Daemen"static void blockPrint (FILE *fp, const BYTE *block, int blockBits, const char *tag){	int i;	fprintf (fp, "%s=", tag);	for (i = 0; i < blockBits/8; i++) {		fprintf (fp, "%02X", block[i]);	}	fprintf (fp, "\n");	fflush (fp);} /* blockPrint */static void HexToBin (BYTE *binBlock, const BYTE *hexBlock, int blockLen){	int j = 0, t;	while (blockLen > 0) {		t = *hexBlock++;		if ((t >= '0') && (t <= '9')) j = (t - '0') << 4;		else if ((t >= 'a') && (t <= 'f')) j = (t - 'a' + 10) << 4; 		else if ((t >= 'A') && (t <= 'F')) j = (t - 'A' + 10) << 4; 						t = *hexBlock++;		if ((t >= '0') && (t <= '9')) j ^= (t - '0');		else if ((t >= 'a') && (t <= 'f')) j ^= (t - 'a' + 10); 		else if ((t >= 'A') && (t <= 'F')) j ^= (t - 'A' + 10); 		*binBlock++ = j;		blockLen -= 8;	}} /* HexToBin */static void rijndaelVKKAT (FILE *fp, int keyLength, int blockLength){	int i, j, r;	BYTE block[4*MAXBC];	BYTE keyMaterial[320];	BYTE byteVal = (BYTE)'8';	keyInstance keyInst;	cipherInstance cipherInst;#ifdef TRACE_KAT_MCT	printf ("Executing Variable-Key KAT (key %d): ", keyLength);	fflush (stdout);#endif /* ?TRACE_KAT_MCT */	fprintf (fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n"		"\n", keyLength);	fflush (fp);	memset (block, 0, blockLength/8);	blockPrint (fp, block, blockLength, "PT");	memset (keyMaterial, 0, sizeof (keyMaterial));	memset (keyMaterial, '0', keyLength/4);	for (i = 0; i < keyLength; i++) {		keyMaterial[i/4] = byteVal; /* set only the i-th bit of the i-th test key */		keyInst.blockLen = blockLength;		r = makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);		if (TRUE != r) {			fprintf(stderr,"makeKey error %d\n",r);			exit(-1);		}		fprintf (fp, "\nI=%d\n", i+1);		fprintf (fp, "KEY=%s\n", keyMaterial);		memset (block, 0, blockLength/8);		cipherInst.blockLen = blockLength;		r = cipherInit (&cipherInst, MODE_ECB, NULL);		if (TRUE != r) {			fprintf(stderr,"cipherInit error %d\n",r);			exit(-1);		}		r = blockEncrypt(&cipherInst, &keyInst, block, blockLength, block);		if (blockLength != r) {			fprintf(stderr,"blockEncrypt error %d\n",r);			exit(-1);		}		blockPrint (fp, block, blockLength, "CT");		/* now check decryption: */		keyInst.blockLen = blockLength;		makeKey(&keyInst, DIR_DECRYPT, keyLength, keyMaterial);		blockDecrypt(&cipherInst, &keyInst, block, blockLength, block);		for (j = 0; j < blockLength/8; j++) {			assert (block[j] == 0);		}		/* undo changes for the next iteration: */		keyMaterial[i/4] = (BYTE)'0';		byteVal =			(byteVal == '8') ?	'4' :			(byteVal == '4') ?	'2' :			(byteVal == '2') ?	'1' :		/*	(byteVal == '1') */	'8';	}	assert (byteVal == (BYTE)'8');	#ifdef TRACE_KAT_MCT	printf (" done.\n");#endif /* ?TRACE_KAT_MCT */} /* rijndaelVKKAT */static void rijndaelVTKAT (FILE *fp, int keyLength, int blockLength){	int i;	BYTE block[4*MAXBC];	BYTE keyMaterial[320];	keyInstance keyInst;	cipherInstance cipherInst;#ifdef TRACE_KAT_MCT	printf ("Executing Variable-Text KAT (key %d): ", keyLength);	fflush (stdout);#endif /* ?TRACE_KAT_MCT */	fprintf (fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n"		"\n", keyLength);	fflush (fp);	memset (keyMaterial, 0, sizeof (keyMaterial));	memset (keyMaterial, '0', keyLength/4);	keyInst.blockLen = blockLength;	makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);	fprintf (fp, "KEY=%s\n", keyMaterial);	for (i = 0; i < blockLength; i++) {		memset (block, 0, blockLength/8);		block[i/8] |= 1 << (7 - i%8); /* set only the i-th bit of the i-th test block */		fprintf (fp, "\nI=%d\n", i+1);		blockPrint (fp, block, blockLength, "PT");		cipherInst.blockLen = blockLength;		cipherInit (&cipherInst, MODE_ECB, NULL);		blockEncrypt(&cipherInst, &keyInst, block, blockLength, block);		blockPrint (fp, block, blockLength, "CT");	}#ifdef TRACE_KAT_MCT	printf (" done.\n");#endif /* ?TRACE_KAT_MCT */}static void rijndaelTKAT (FILE *fp, int blockLength, int keyLength, FILE *in){	int i, j;	unsigned int s;	BYTE block[4*MAXBC], block2[4*MAXBC];	BYTE keyMaterial[320];	keyInstance keyInst;	cipherInstance cipherInst;#ifdef TRACE_KAT_MCT	printf ("Executing Tables KAT (key %d): ", keyLength);	fflush (stdout);#endif /* ?TRACE_KAT_MCT */	fprintf (fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n"		"\n", keyLength);	fflush (fp);	memset (keyMaterial, 0, sizeof (keyMaterial));		for(i = 0; i < 64; i++) {		fprintf (fp, "\nI=%d\n", i+1);		for(j = 0; j < keyLength/4; j++) {			fscanf(in,"%c",&keyMaterial[j]);		}		keyInst.blockLen = blockLength;		makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);				fprintf (fp, "KEY=%s\n", keyMaterial);				for(j = 0; j < blockLength/8; j++) {			fscanf(in,"%02x",&s);			block[j] = s;		}		fscanf(in,"%c",&s);		fscanf(in,"%c",&s);		blockPrint (fp, block, blockLength, "PT");		cipherInst.blockLen = blockLength;		cipherInit (&cipherInst, MODE_ECB, NULL);		blockEncrypt(&cipherInst, &keyInst, block, blockLength, block2);		blockPrint (fp, block2, blockLength, "CT");	}	for(i = 64; i < 128; i++) {		fprintf (fp, "\nI=%d\n", i+1);		for(j = 0; j < keyLength/4; j++) {			fscanf(in,"%c",&keyMaterial[j]);		}		keyInst.blockLen = blockLength;		makeKey(&keyInst, DIR_DECRYPT, keyLength, keyMaterial);				fprintf (fp, "KEY=%s\n", keyMaterial);				for(j = 0; j < blockLength/8; j++) {			fscanf(in,"%02x",&s);			block[j] = s;		}		fscanf(in,"%c",&s);		fscanf(in,"%c",&s);		cipherInst.blockLen = blockLength;		cipherInit (&cipherInst, MODE_ECB, NULL);		blockDecrypt(&cipherInst, &keyInst, block, blockLength, block2);		blockPrint (fp, block2, blockLength, "PT");		blockPrint (fp, block, blockLength, "CT");	}#ifdef TRACE_KAT_MCT	printf (" done.\n");#endif /* ?TRACE_KAT_MCT */}static void rijndaelIVKAT (FILE *fp, int keyLength, int blockLength){	int i, ROUNDS;	BYTE block[4*MAXBC], block2[4*MAXBC];	BYTE keyMaterial[320];	keyInstance keyInst;	cipherInstance cipherInst;	char format[10];#ifdef TRACE_KAT_MCT	printf ("Executing Intermediate value KAT (key %d): ", keyLength);	fflush (stdout);#endif /* ?TRACE_KAT_MCT */	switch (keyLength >= blockLength ? keyLength : blockLength) {	case 128: ROUNDS = 10; break;	case 192: ROUNDS = 12; break;	case 256: ROUNDS = 14; break;	default : return; /* this cannot happen */	}		fprintf (fp,		"\n"		"==========\n"		"\n"		"KEYSIZE=%d\n",		keyLength);	fflush (fp);	memset (keyMaterial, 0, sizeof (keyMaterial));	for (i = 0; i < keyLength/8; i++) {		sprintf (&keyMaterial[2*i], "%02X", i);	}	keyInst.blockLen = blockLength;	makeKey(&keyInst, DIR_ENCRYPT, keyLength, keyMaterial);	fprintf (fp, "KEY=%s\n", keyMaterial);	fprintf (fp, "\nIntermediate Ciphertext Values (Encryption)\n\n");	for (i = 0; i < blockLength/8; i++) {		block[i] = i;	}	blockPrint (fp, block, blockLength, "PT");	cipherInst.blockLen = blockLength;	cipherInit (&cipherInst, MODE_ECB, NULL);	for(i = 1; i < ROUNDS; i++) {		cipherUpdateRounds (&cipherInst, &keyInst, block, blockLength/8, block2, i);		sprintf(format,"CT%d",i);		blockPrint (fp, block2, blockLength, format);	}	cipherUpdateRounds (&cipherInst, &keyInst, block, blockLength, block2, ROUNDS);	blockPrint (fp, block2, blockLength, "CT");		keyInst.blockLen = blockLength;	makeKey(&keyInst, DIR_DECRYPT, keyLength, keyMaterial);	fprintf (fp, "\nIntermediate Ciphertext Values (Decryption)\n\n");	blockPrint (fp, block2, blockLength, "CT");	cipherInst.blockLen = blockLength;	cipherInit (&cipherInst, MODE_ECB, NULL);	for(i = 1; i < ROUNDS; i++) {		cipherUpdateRounds (&cipherInst, &keyInst, block2, blockLength,block, ROUNDS-i);		sprintf(format,"PT%d",i);		blockPrint (fp, block, blockLength, format);	}	cipherUpdateRounds (&cipherInst, &keyInst, block2, blockLength, block, 0);	blockPrint (fp, block, blockLength, "PT");	#ifdef TRACE_KAT_MCT	printf (" done.\n");#endif }static void makeKATs (const char *vkFile, const char *vtFile, const char *tblFile,                      const char *ivFile){	FILE *fp, *fp2;	/* prepare Variable Key Known Answer Tests: */	fp = fopen (vkFile, "w");	fprintf (fp,		"\n"		"=========================\n"		"\n"		"FILENAME:  \"%s\"\n"		"\n"		"Electronic Codebook (ECB) Mode\n"		"Variable Key Known Answer Tests\n"		"\n"		"Algorithm Name: Rijndael\n"		"Principal Submitter: %s\n",		vkFile,SUBMITTER);	fflush (fp);	rijndaelVKKAT (fp, 128, BITSPERBLOCK); /* test for 128-bit key */	rijndaelVKKAT (fp, 192, BITSPERBLOCK); /* test for 192-bit key */	rijndaelVKKAT (fp, 256, BITSPERBLOCK); /* test for 256-bit key */	fprintf (fp,		"\n"		"==========");	fclose (fp);	/* prepare Variable Text Known Answer Tests: */	fp = fopen (vtFile, "w");	fprintf (fp,		"\n"		"=========================\n"		"\n"		"FILENAME:  \"%s\"\n"		"\n"		"Electronic Codebook (ECB) Mode\n"		"Variable Text Known Answer Tests\n"		"\n"		"Algorithm Name: Rijndael\n"		"Principal Submitter: %s\n",		vtFile,SUBMITTER);	fflush (fp);	rijndaelVTKAT (fp, 128, BITSPERBLOCK);	rijndaelVTKAT (fp, 192, BITSPERBLOCK);	rijndaelVTKAT (fp, 256, BITSPERBLOCK);	fprintf (fp,		"\n"		"==========");	fclose (fp);	/* prepare Tables Known Answer Tests: */	fp = fopen (tblFile, "w");	fprintf (fp,	        "/* Description of what tables are tested:\n"		"   The provided implementations each use a different set of tables\n"		"    - Java implementation: uses no tables\n"		"    - reference C implementation: uses Logtable, Alogtable, S, Si, rcon\n"		"    - fast C implementation: uses Logtable, Alogtable,  rcon\n"		"        and additionally, T1, T2, T3, T4, T5, T6, T7, T8\n"		"        and (for the inverse key schedule only) U1, U2, U3, U4.\n"		"   All these tables are tested.\n" 		"\n"		"=========================\n"		"\n"		"FILENAME:  \"%s\"\n"		"\n"		"Electronic Codebook (ECB) Mode\n"		"Tables Known Answer Tests\n"		"\n"		"Algorithm Name: Rijndael\n"		"Principal Submitter: %s\n",		tblFile,SUBMITTER);	fflush (fp);	if (NULL != (fp2 = fopen("table.128","r"))) {		rijndaelTKAT (fp, 128, 128,fp2);		fclose(fp2);	} else {		printf("Table Known Answer test expects file table.128\n");		fclose(fp);		exit (EXIT_FAILURE);			}	if (NULL != (fp2 = fopen("table.192","r"))) {		rijndaelTKAT (fp, 128, 192,fp2);		fclose(fp2);	} else {		printf("Table Known Answer test expects file table.192\n");		fclose(fp);

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产欧美在线观看| 婷婷国产v国产偷v亚洲高清| 欧美视频一区二区在线观看| www.性欧美| 波多野结衣中文一区| 夫妻av一区二区| 国产成人精品一区二区三区四区| 黄色日韩三级电影| 国产一区二区成人久久免费影院| 国内精品嫩模私拍在线| 国产一区欧美日韩| 国产美女主播视频一区| 国产.欧美.日韩| 成人精品免费网站| 91丨porny丨中文| 日本国产一区二区| 欧美日韩日日夜夜| 日韩欧美一级在线播放| 欧美xingq一区二区| 国产偷国产偷亚洲高清人白洁| 久久精品免费在线观看| 国产精品福利在线播放| 亚洲男人天堂av| 一二三四区精品视频| 亚洲婷婷在线视频| 亚洲成人动漫在线观看| 日本不卡1234视频| 6080国产精品一区二区| 日韩av一区二区在线影视| 日本欧美一区二区三区乱码| 精品综合免费视频观看| 国产99久久久久| 色综合中文综合网| 欧美大肚乱孕交hd孕妇| 精品免费日韩av| 国产精品麻豆视频| 亚洲二区在线视频| 精品一区二区免费| aaa亚洲精品| 欧美精品乱人伦久久久久久| 久久色.com| 亚洲乱码日产精品bd| 琪琪久久久久日韩精品| 福利91精品一区二区三区| 欧美性欧美巨大黑白大战| 欧美一区二区三区精品| 欧美激情一区二区三区在线| 亚洲一区二区三区四区在线免费观看| 五月婷婷另类国产| 国产成人综合在线观看| 欧美日韩精品欧美日韩精品| 久久婷婷国产综合精品青草| 丰满白嫩尤物一区二区| 在线视频中文字幕一区二区| 欧美一区二区三区在| 国产精品白丝在线| 久久精品国产亚洲5555| 91久久精品网| 国产日产欧美一区二区三区| 亚洲一二三四区不卡| 国产aⅴ综合色| 欧美一区二区三区性视频| 亚洲欧洲精品成人久久奇米网| 免费在线一区观看| 日本韩国视频一区二区| 国产日韩视频一区二区三区| 91丝袜高跟美女视频| 亚洲男同1069视频| 精品一区二区日韩| 欧洲一区二区三区在线| 亚洲国产精品成人综合| 蜜桃一区二区三区在线观看| 91久久国产最好的精华液| 久久这里只有精品首页| 热久久久久久久| 欧美亚洲免费在线一区| 中文字幕一区二区三区不卡在线| 日本va欧美va瓶| 欧美视频在线一区| 亚洲免费观看高清在线观看| 成人综合在线视频| 精品国产91亚洲一区二区三区婷婷| 亚洲宅男天堂在线观看无病毒| 成人精品视频一区二区三区| 精品久久久久久久久久久久久久久 | 亚洲国产美女搞黄色| eeuss国产一区二区三区| 久久久久亚洲综合| 激情五月播播久久久精品| 日韩一二三四区| 欧美aaaaaa午夜精品| 欧美午夜在线观看| 亚洲在线观看免费视频| 日本精品一区二区三区四区的功能| 国产精品久久午夜夜伦鲁鲁| 国产激情91久久精品导航| 精品精品欲导航| 美腿丝袜在线亚洲一区| 日韩丝袜情趣美女图片| 免费在线观看精品| 欧美福利一区二区| 午夜精品福利在线| 91精品婷婷国产综合久久竹菊| 午夜私人影院久久久久| 欧美久久久影院| 美女国产一区二区三区| 日韩欧美在线影院| 九九精品视频在线看| 久久综合久色欧美综合狠狠| 国内精品国产成人| 久久久美女艺术照精彩视频福利播放 | 日韩黄色免费网站| 欧美一级艳片视频免费观看| 日韩电影在线一区| 欧美videossexotv100| 国产美女娇喘av呻吟久久| 欧美激情一二三区| av不卡免费电影| 亚洲国产日韩综合久久精品| 欧美久久一区二区| 黄色日韩三级电影| 国产精品欧美综合在线| 波多野洁衣一区| 一个色在线综合| 日韩欧美你懂的| 国产成人一级电影| 亚洲人成精品久久久久久| 欧美性生活一区| 久久99久久99小草精品免视看| 久久精品人人做人人爽人人| av午夜一区麻豆| 午夜亚洲国产au精品一区二区| 欧美一级久久久久久久大片| 国产尤物一区二区在线| 中文字幕制服丝袜成人av| 欧美日韩三级在线| 国产一区91精品张津瑜| 亚洲女同女同女同女同女同69| 欧美亚洲精品一区| 激情亚洲综合在线| 亚洲色图欧洲色图| 日韩一区二区三区在线视频| 国产成人免费9x9x人网站视频| 亚洲老司机在线| 日韩亚洲欧美一区二区三区| 高清在线不卡av| 舔着乳尖日韩一区| 亚洲国产精品传媒在线观看| 欧美天天综合网| 国产精品 日产精品 欧美精品| 亚洲乱码中文字幕| 精品国产亚洲在线| 91久久奴性调教| 国产一区二区不卡| 亚洲成人在线观看视频| 国产日本亚洲高清| 欧美精品精品一区| av在线播放一区二区三区| 日本vs亚洲vs韩国一区三区| 日韩一区有码在线| 欧美精品一区男女天堂| 91在线国产福利| 国内精品嫩模私拍在线| 亚洲午夜视频在线| 日本一区二区高清| 日韩视频一区二区| 在线看国产一区二区| 国产精品香蕉一区二区三区| 一区二区三区成人在线视频| 国产亚洲精品精华液| 欧美一区二区视频在线观看2020| 91社区在线播放| 国产福利一区二区三区在线视频| 日韩一区精品视频| 亚洲美女免费在线| 日本一区二区三区在线不卡| 91精品国产高清一区二区三区| 色综合天天综合在线视频| 国产激情视频一区二区在线观看 | 日韩欧美电影一区| 欧美日韩在线电影| 97精品视频在线观看自产线路二| 免费观看成人av| 亚洲成人精品影院| 亚洲精品成人在线| 亚洲视频香蕉人妖| 国产精品色哟哟网站| 久久免费精品国产久精品久久久久 | 97精品国产露脸对白| 国产精品一区二区男女羞羞无遮挡| 天堂久久一区二区三区| 亚洲精品第1页| 1区2区3区国产精品| 国产欧美日韩亚州综合| 久久亚洲私人国产精品va媚药| 亚洲国产精品人人做人人爽| 亚洲视频香蕉人妖| 亚洲免费成人av| 亚洲精品中文在线影院| 国产精品麻豆网站|