?? testcrypt.cpp
字號:
#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++);
}
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=NULL;
bit8* plain=NULL;
int sw=0;
char* pp="asdf";
switch(sw)
{
case '0':
key=key00;
plain=plain00;
break;
}
printMsg("密鑰為:\n", key, 16);
printMsg("輸入明文為:\n", plain, 16);
en_key_ssf43(key, g_enKey);
printf("加密層密鑰為:\n");
for(int 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");
return ret;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -