?? testcrypt.c
字號:
#include "ssf43.h"
#include "SymmCrypt.h"
#include "input.h"
void printMsg(char *title,bit8 *content,bit32 size)
{
bit32 i;
printf("%s[ ",title);
for(i=0;i<size;i++)
{
printf("%02x ",content[i]);
}
printf("]\n");
}
int WriteFile( char *name, bit8 *buf, int size )
{
FILE* p = fopen(name, "wb");
if( p!= NULL){
fwrite( buf, 1, size, p);
}else
return -1;
fclose(p);
return 0;
}
//讀取文件函數
int ReadFile( char* fileName, bit8* hbFileBuf, int* size )
{
FILE *fp;
int i = 0;
if((fp = fopen(fileName,"rb"))==NULL)
{
return -1;
}
while(!feof(fp))
{
hbFileBuf[i] = (bit8)fgetc(fp);
i++;
}
*size = i-1;
fclose(fp);
return 0;
}
int main()
{
int ret = 0;
/* bit8 key[16] = {0x79,0x0c,0xcf,0x80,
0x36,0x11,0x4c,0x95,
0x6b,0x6c,0x64,0x43,
0x99,0x6f,0x40,0xb8};
bit8 plain[16] = {0xa4,0xa4,0x44,0x0a,
0x89,0x9e,0xa4,0xb3,
0x5a,0x18,0x48,0x29,
0x74,0x45,0x01,0x8c};*/
bit8 key00[16] = {0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01
};
bit8 plain00[16] = {0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00
};
/*
bit8 plain[16] = {0x00,0x01,0x02,0x03,
0x04,0x05,0x06,0x07,
0x08,0x09,0x0a,0x0b,
0x0c,0x0d,0x0e,0x0f
};
*/
/* bit8 cipher[16] = {0x44,0x90,0xf2,0xa7,
0x6f,0x4c,0x05,0xa3,
0x17,0x42,0xed,0xa5,
0x35,0xe4,0xb0,0xec
};*/
/*bit8 key[16] = {0x00,0x01,0x02,0x03,0x04,
0x05,0x06,0x07,0x08,0x09,
0x0a,0x0b,0x0c,0x0d,0x0e,
0x0f};
bit8 plain[16] = {0x00,0x01,0x02,0x03,0x04,
0x05,0x06,0x07,0x08,0x09,
0x0a,0x0b,0x0c,0x0d,0x0e,
0x0f};*/
bit8 cipher[16];
bit8 de_cipher[16];
bit32 g_enKey[40];
bit32 g_deKey[40];
//bit8* key=(bit8*)malloc(16);
bit8* key=NULL;
bit8* plain=NULL;
//bit8 key[16];
//bit8 plain[16];
int i;
char sw;
//key=(bit8*)malloc(16);
while(1)
{
printf("Plz input a char\n");
sw=getchar();
switch(sw)
{
case '0':
{
printf("sw=%c\n",sw);
key=key00;
plain=plain00;
break;
}
case '1':
{
printf("sw=%c\n",sw);
key=key01;
plain=plain01;
break;
}
case '2':
{
printf("sw=%c\n",sw);
key=key02;
plain=plain02;
break;
}
case '3':
{
printf("sw=%c\n",sw);
key=key03;
plain=plain03;
break;
}
case '4':
{
printf("sw=%c\n",sw);
key=key04;
plain=plain04;
break;
}
case '5':
{
printf("sw=%c\n",sw);
key=key05;
plain=plain05;
break;
}
case '6':
{
printf("sw=%c\n",sw);
key=key06;
plain=plain06;
break;
}
case '7':
{
printf("sw=%c\n",sw);
key=key07;
plain=plain07;
break;
}
case '8':
{
printf("sw=%c\n",sw);
key=key08;
plain=plain08;
break;
}
case '9':
{
printf("sw=%c\n",sw);
key=key09;
plain=plain09;
break;
}
default:
printf("sw=%c\n",sw);
printf("error & return -1 \n");
return (-1);
}
getchar();
printMsg("密鑰為:\n", key, 16);
printMsg("輸入明文為:\n", plain, 16);
en_key_ssf43(key, g_enKey);
printf("加密層密鑰為:\n");
for(i=0; i<40; i++)
{
printf("%08x ",g_enKey[i]);
}
printf("\n");
cipher_ssf43(g_enKey, plain, cipher);
de_key_ssf43(g_enKey,g_deKey);
printf("解密層密鑰為:\n");
for(i=0; i<40; i++)
{
printf("%08x ",g_deKey[i]);
}
printf("\n");
cipher_ssf43(g_deKey, cipher, de_cipher);
printMsg("密文為:\n", cipher, 16);
printMsg("解密明文為:\n", de_cipher, 16);
printMsg("輸入明文為:\n", plain, 16);
if(memcmp(plain,de_cipher,16)==0)
printf("密文還原明文成功。\n");
else
printf("密文還原明文失敗。\n");
//getchar();
} //while(1)
getchar();
//free(key);
return ret;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -