📄 des_test.c
字号:
#include <stdio.h>#include "hi_des_api.h" static unsigned char key_cbc[4][8]={ {0x94,0xd3,0xf5,0x61,0x9c,0x63,0x65,0xf2}, {0x6a,0xee,0x97,0x2c,0x18,0x5f,0xcc,0xb3}, {0x4f,0x86,0x91,0xd0,0xd6,0x06,0x27,0xe9}, {0x53,0x38,0xf2,0x26,0xf8,0xfc,0x9d,0xc0} }; static unsigned char pplaintext_cbc[4][8]={ {0xb4,0x99,0xe2,0x34,0xef,0x2a,0xe0,0x57}, {0x48,0x5a,0xa8,0x96,0x84,0xbe,0x49,0x0e}, {0xd7,0x25,0x53,0x3c,0x14,0xe1,0x8c,0xde}, {0x74,0xf7,0x87,0xab,0xd0,0x00,0xe2,0x82} }; static unsigned char ivin_cbc[4][8]={ {0x17,0xe9,0xbb,0x79,0x53,0x99,0xdc,0x4a}, {0xee,0x61,0x1f,0x1b,0x0e,0x7d,0x86,0x4d}, {0x6b,0xbf,0x47,0x83,0x04,0x70,0x58,0xdf}, {0xe1,0xde,0xaf,0x63,0x3e,0x10,0x83,0x93} }; static unsigned char dout_cbc[4][8]={ {0xd0,0xba,0xcf,0x7f,0xfa,0x3c,0x42,0x64}, {0x5b,0x2a,0x16,0x8e,0x32,0x60,0xc5,0xe3}, {0xd4,0xa5,0xc8,0xcb,0x52,0x53,0x1d,0x8a}, {0x7b,0x28,0x06,0x4a,0x71,0xec,0x24,0xc0} }; static unsigned char mydout_cbc[4][8];/***********************************ecb******************************************/static unsigned char key_ecb[2][8]={ {0x16,0xac,0x15,0x1a,0xae,0xfe,0xb5,0x6d}, {0xaa,0xc0,0x15,0x48,0xed,0x9f,0x5f,0x9c} }; static unsigned char pplaintext_ecb[2][8]={ {0xcd,0x16,0x68,0xba,0xac,0x7a,0xa6,0xf2}, {0x4f,0x24,0xbc,0x86,0x4e,0x5c,0x11,0xb3} }; static unsigned char ivin_ecb[2][8]={ {0xd8,0x7e,0x88,0x45,0xe1,0xa5,0x9b,0x25}, {0xe0,0xb0,0xdf,0x81,0x19,0xf7,0xa0,0x85} }; static unsigned char dout_ecb[2][8]={ {0xda,0xe6,0xcd,0x06,0xe1,0x98,0xa7,0xa9}, {0x03,0xc3,0x9d,0x31,0xeb,0x05,0xcd,0xc5} }; static unsigned char mydout_ecb[2][8];/******************************************cfb-64***********************************/ static unsigned char key_cfb_64[2][8]={ {0x16,0xac,0x15,0x1a,0xae,0xfe,0xb5,0x6d}, {0xaa,0xc0,0x15,0x48,0xed,0x9f,0x5f,0x9c} }; static unsigned char pplaintext_cfb_64[2][8]={ {0xcd,0x16,0x68,0xba,0xac,0x7a,0xa6,0xf2}, {0x4f,0x24,0xbc,0x86,0x4e,0x5c,0x11,0xb3} }; static unsigned char ivin_cfb_64[2][8]={ {0xd8,0x7e,0x88,0x45,0xe1,0xa5,0x9b,0x25}, {0xe0,0xb0,0xdf,0x81,0x19,0xf7,0xa0,0x85} }; static unsigned char dout_cfb_64[2][8]={ {0x2f,0xe6,0xab,0x8e,0x0c,0x2e,0xd8,0x52}, {0x2e,0xa5,0x23,0xd4,0x71,0x90,0xb8,0xc8} }; static unsigned char mydout_cfb_64[2][8];/******************************************cfb-8***********************************/ static unsigned char key_cfb_8[2][8]={ {0x94,0xd3,0xf5,0x61,0x9c,0x63,0x65,0xf2}, {0x4f,0x86,0x91,0xd0,0xd6,0x06,0x27,0xe9} }; static unsigned char pplaintext_cfb_8[2][8]={ {0x57,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0xde,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char ivin_cfb_8[2][8]={ {0x17,0xe9,0xbb,0x79,0x53,0x99,0xdc,0x4a}, {0x6b,0xbf,0x47,0x83,0x04,0x70,0x58,0xdf} }; static unsigned char dout_cfb_8[2][8]={ {0xd5,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x68,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char mydout_cfb_8[2][8];/******************************************cfb-1***********************************/ static unsigned char key_cfb_1[2][8]={ {0x64,0x6b,0xfe,0x2f,0x87,0x3e,0x21,0x62}, {0x42,0xef,0x35,0xf4,0xe2,0xc1,0x54,0x37} }; static unsigned char pplaintext_cfb_1[2][8]={ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char ivin_cfb_1[2][8]={ {0x7c,0x0c,0xb7,0xa6,0x0c,0xed,0x87,0x51}, {0x81,0x9b,0x6a,0x6a,0x6c,0x3e,0x59,0x32} }; static unsigned char dout_cfb_1[2][8]={ {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char mydout_cfb_1[2][8];/***********************************************ofb-64****************************/static unsigned char key_ofb_64[2][8]={ {0x01,0x11,0xd2,0x4a,0x71,0x3b,0x31,0x79}, {0xd8,0xa5,0xfd,0x6e,0x41,0xad,0x01,0x0f} }; static unsigned char pplaintext_ofb_64[2][8]={ {0xa1,0x3b,0x24,0x51,0x1f,0x1d,0x6b,0xf5}, {0x2a,0x2e,0xde,0x6e,0x3b,0xd0,0x82,0x3f} }; static unsigned char ivin_ofb_64[2][8]={ {0x56,0x0b,0xab,0x36,0x33,0xb3,0x86,0xca}, {0x65,0x77,0x87,0x8d,0xb7,0x70,0x5d,0xef} }; static unsigned char dout_ofb_64[2][8]={ {0xe1,0xdd,0x08,0xaa,0xbc,0x89,0x6c,0x41}, {0xa5,0xaf,0xfc,0x4b,0xd7,0x1d,0x89,0x7b} }; static unsigned char mydout_ofb_64[2][8];/********************************************ofb-8****************************/static unsigned char key_ofb_8[2][8]={ {0x30,0xa6,0x60,0xc0,0x53,0xac,0x75,0x37}, {0xfd,0x44,0xdb,0x92,0xea,0xc4,0x5e,0xd5} }; static unsigned char pplaintext_ofb_8[2][8]={ {0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char ivin_ofb_8[2][8]={ {0x65,0x77,0x87,0x8d,0xb7,0x70,0x5d,0xef}, {0x7c,0x57,0xf0,0x9c,0xe1,0x58,0x43,0x83} }; static unsigned char dout_ofb_8[2][8]={ {0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x2a,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char mydout_ofb_8[2][8];/************************************ofb-1**************************************/static unsigned char key_ofb_1[2][8]={ {0xd3,0x97,0xf7,0xf8,0x36,0x33,0xa1,0xc7}, {0x22,0xb3,0xbe,0xa7,0x7a,0xfc,0xfc,0x3f} }; static unsigned char pplaintext_ofb_1[2][8]={ {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char ivin_ofb_1[2][8]={ {0xfd,0x3b,0x07,0xd2,0xac,0x78,0x3b,0xb5}, {0x69,0x56,0x42,0xea,0xd4,0xcb,0xe4,0x46} }; static unsigned char dout_ofb_1[2][8]={ {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00} }; static unsigned char mydout_ofb_1[2][8];/****************************************over*********************************/int ofb_1_test();int ofb_8_test();int ofb_64_test();int cfb_1_test();int cfb_8_test();int cfb_64_test();int ecb_test();int cbc_test(); struct des_encrypt_ctrl ctrl; struct keys keys; int main(void){ hi_des_init(); ofb_1_test(); ofb_8_test(); ofb_64_test(); cfb_1_test(); cfb_8_test(); cfb_64_test(); ecb_test(); cbc_test(); hi_des_exit(); return 0;}int ofb_1_test(){ unsigned int i,k,j; ctrl.des_endian=0; //little; ctrl.des_shift =2; //64; ctrl.des_type = 3; //ofb_1; ctrl.des_alg = 0; printf(" des_ofb_1_test begin!\n"); for(i=0;i<2;i++) { for(k=0;k<8;k++) { keys.keys1[k]=key_ofb_1[i][k]; ctrl.iv[k]=ivin_ofb_1[i][k]; } hi_des_config(&ctrl); if(i<1) { hi_des_crypt(&pplaintext_ofb_1[i][0],&mydout_ofb_1[i][0],8,&keys); } else { hi_des_decrypt(&pplaintext_ofb_1[i][0],&mydout_ofb_1[i][0],8,&keys); } for(j=0;j<1;j++) { //printf("%d___:%x\n",i,mydout_ofb_1[i][j]); if((mydout_ofb_1[i][j]&0x80)!=(dout_ofb_1[i][j]&0x80)) { printf("des_ofb_1 test failed at: %d row!",i); return -1; } } } printf(" all des_ofb_1 tests passed!\n"); return 0;}int ofb_8_test(){ unsigned int i,k,j; ctrl.des_endian=1; //little; ctrl.des_shift =1; //64; ctrl.des_type = 3; //ofb_8; ctrl.des_alg = 0; printf(" des_ofb_8_test begin!\n"); for(i=0;i<2;i++) { for(k=0;k<8;k++) { keys.keys1[k]=key_ofb_8[i][k]; ctrl.iv[k]=ivin_ofb_8[i][k]; } hi_des_config(&ctrl); if(i<1) { hi_des_crypt(&pplaintext_ofb_8[i][0],&mydout_ofb_8[i][0],8,&keys); } else { hi_des_decrypt(&pplaintext_ofb_8[i][0],&mydout_ofb_8[i][0],8,&keys); } for(j=0;j<1;j++) { // printf("%d___:%x\n",i,mydout_ofb_8[i][j]); if(mydout_ofb_8[i][j]!=dout_ofb_8[i][j]) { printf("des_ofb_8 test failed at: %d row!",i); return -1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -