📄 sec2_test.c
字号:
{
printf("mpc190_test_rng: malloc param failed!\n");
OsFree(cbc_msg);
return;
}
memset(arg_in , 0, (sizeof(DRV_LNDEC_ALG_REQ_PARA)));
arg_in->crypt = cbc;
arg_in->data = cbc_msg ;
/*下发驱动*/
for(i=0; i<count;i++)
{
drv_sec2_des_crypt(DRV_IPSEC_DES_DECRYPT, arg_in);
}
return;
}
/*****************************************************************************/
void sec2_test_3des_encrypt(int count,int len)
{
algo_msg_ike_cbc_t *cbc_msg = NULL; /*第三个参数*/
algo_msg_crypt_t *cbc = NULL; /*第二个参数*/
UINT8 pt3[8] = "01234567"; /*KEY1 */
/*UINT8 pt5[8] = "abcdefgh"; */ /*KEY23*/
UINT8 pt5[24] = "012345679876543212345678";
int i;
DRV_LNDEC_ALG_REQ_PARA* arg_in = NULL; /*写消息结构,分配地址空间*/
cbc_msg = (algo_msg_ike_cbc_t *)OsAlloc(sizeof(algo_msg_ike_cbc_t));
if (cbc_msg == NULL)
{
printf("mpc190_test_des: failed to malloc hash_msg!\n");
return;
}
cbc_msg->msgHdr.algoid = ALGO_IKE_CBC_ENCRYPT_3DES; /*CBC DES*/
cbc_msg->msgHdr.callback = sec2_test_des_callback;
cbc_msg->msgHdr.ctx = cbc_msg;
cbc_msg->msgHdr.error_callback = sec2_test_des_err_callback;
cbc_msg->msgHdr.ISSC_num = 0;
cbc_msg->msgHdr.reply_msgId = MSG_IKE_ALGO_OK;
cbc = &(cbc_msg->msgCrypt);
cbc->inLen = len; /*输入数据长度*/
cbc->inData = malloc(cbc->inLen); /*分配输入内存*/
if (cbc->inData == NULL)
{
printf("mpc190_test_des: failed to malloc inData!\n");
OsFree(cbc_msg);
return;
}
memset(cbc->inData, 0x67, cbc->inLen); /*输入数据,64 位*/
cbc->keyLen = 24; /*输入密钥长度*/
cbc->key = malloc(cbc->keyLen); /*分配内存空间*/
if (cbc->key == NULL)
{
printf("mpc190_test_des: failed to malloc key!\n");
free(cbc->inData);
OsFree(cbc_msg);
return;
}
memcpy(cbc->key, pt5, cbc->keyLen); /*输入密钥*/
cbc->ivlen = 8; /*初始化向量长度*/
cbc->iv = malloc(cbc->ivlen);
if (cbc->iv == NULL)
{
printf("mpc190_test_des: failed to malloc iv!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
memcpy(cbc->iv, pt3, cbc->ivlen); /*初始化向量赋值*/
cbc->outLen = len;
cbc->outData = malloc(cbc->outLen); /*分配输出内存*/
if (cbc->outData == NULL) /*如果分配失败则释放*/
{
printf("mpc190_test_des: failed to malloc outData!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
memset(cbc->outData, 0, len);
/*下发驱动*/
for(i=0;i<count;i++)
{
drv_sec2_tdes_crypt(DRV_IPSEC_3DES_ENCRYPT, arg_in);
}
return;
}
void sec2_test_3des_decrypt(int count,int len)
{
algo_msg_ike_cbc_t *cbc_msg = NULL; /*第三个参数*/
algo_msg_crypt_t *cbc = NULL; /*第二个参数*/
UINT8 pt3[8] = "01234567"; /*KEY1 */
/*UINT8 pt5[8] = "abcdefgh"; */ /*KEY23*/
UINT8 pt5[24] = "012345679876543212345678";
int i;
DRV_LNDEC_ALG_REQ_PARA* arg_in = NULL; /*写消息结构,分配地址空间*/
cbc_msg = (algo_msg_ike_cbc_t *)OsAlloc(sizeof(algo_msg_ike_cbc_t));
if (cbc_msg == NULL)
{
printf("mpc190_test_des: failed to malloc hash_msg!\n");
return;
}
cbc_msg->msgHdr.algoid = ALGO_IKE_CBC_ENCRYPT_3DES; /*CBC DES*/
cbc_msg->msgHdr.callback = sec2_test_des_callback;
cbc_msg->msgHdr.ctx = cbc_msg;
cbc_msg->msgHdr.error_callback = sec2_test_des_err_callback;
cbc_msg->msgHdr.ISSC_num = 0;
cbc_msg->msgHdr.reply_msgId = MSG_IKE_ALGO_OK;
cbc = &(cbc_msg->msgCrypt);
cbc->inLen = len; /*输入数据长度*/
cbc->inData = drv_ipsec_out_internalSec2;
if (cbc->inData == NULL)
{
printf("mpc190_test_des: failed to malloc inData!\n");
OsFree(cbc_msg);
return;
}
cbc->keyLen = 24; /*输入密钥长度*/
cbc->key = malloc(cbc->keyLen); /*分配内存空间*/
if (cbc->key == NULL)
{
printf("mpc190_test_des: failed to malloc key!\n");
free(cbc->inData);
OsFree(cbc_msg);
return;
}
memcpy(cbc->key, pt5, cbc->keyLen); /*输入密钥*/
cbc->ivlen = 8; /*初始化向量长度*/
cbc->iv = malloc(cbc->ivlen);
if (cbc->iv == NULL)
{
printf("mpc190_test_des: failed to malloc iv!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
memcpy(cbc->iv, pt3, cbc->ivlen); /*初始化向量赋值*/
cbc->outLen = len;
cbc->outData = malloc(cbc->outLen); /*分配输出内存*/
if (cbc->outData == NULL) /*如果分配失败则释放*/
{
printf("mpc190_test_des: failed to malloc outData!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
memset(cbc->outData, 0, len);
arg_in =(DRV_LNDEC_ALG_REQ_PARA*) malloc(sizeof(DRV_LNDEC_ALG_REQ_PARA));
/*检测是否为空*/
if (arg_in == NULL)
{
printf("mpc190_test_rng: malloc param failed!\n");
OsFree(cbc_msg);
return;
}
memset(arg_in , 0, (sizeof(DRV_LNDEC_ALG_REQ_PARA)));
arg_in->crypt = cbc;
arg_in->data = cbc_msg ;
/*下发驱动*/
for(i=0;i<count;i++)
{
drv_sec2_tdes_crypt(DRV_IPSEC_3DES_DECRYPT, arg_in);
}
return;
}
/*****************************************************************************/
void sec2_test_Aes_encrypt(int count,int len)
{
algo_msg_ike_cbc_t *cbc_msg = NULL; /*第三个参数*/
algo_msg_crypt_t *cbc = NULL; /*第二个参数*/
UINT8 pt3[16] = "0123456701234567"; /*KEY1 */
UINT8 pt5[24] = "012345678987654321012345";
int i;
DRV_LNDEC_ALG_REQ_PARA* arg_in = NULL; /*写消息结构,分配地址空间*/
cbc_msg = (algo_msg_ike_cbc_t *)OsAlloc(sizeof(algo_msg_ike_cbc_t));
if (cbc_msg == NULL)
{
printf("mpc190_test_des: failed to malloc hash_msg!\n");
return;
}
cbc_msg->msgHdr.algoid = ALGO_IKE_CBC_ENCRYPT_3DES; /*CBC DES*/
cbc_msg->msgHdr.callback = sec2_test_Aes_callback;
cbc_msg->msgHdr.ctx = cbc_msg;
cbc_msg->msgHdr.error_callback = sec2_test_Aes_err_callback;
cbc_msg->msgHdr.ISSC_num = 0;
cbc_msg->msgHdr.reply_msgId = MSG_IKE_ALGO_OK;
cbc = &(cbc_msg->msgCrypt);
cbc->inLen = len; /*输入数据长度*/
cbc->inData = malloc(cbc->inLen); /*分配输入内存*/
if (cbc->inData == NULL)
{
printf("mpc190_test_des: failed to malloc inData!\n");
OsFree(cbc_msg);
return;
}
memset(cbc->inData, 0x67, cbc->inLen); /*输入数据,64 位*/
cbc->keyLen = 24; /*输入密钥长度*/
cbc->key = malloc(cbc->keyLen); /*分配内存空间*/
if (cbc->key == NULL)
{
printf("mpc190_test_des: failed to malloc key!\n");
free(cbc->inData);
OsFree(cbc_msg);
return;
}
memcpy(cbc->key, pt5, cbc->keyLen); /*输入密钥*/
cbc->ivlen = 16; /*初始化向量长度*/
cbc->iv = malloc(cbc->ivlen);
if (cbc->iv == NULL)
{
printf("mpc190_test_des: failed to malloc iv!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
memcpy(cbc->iv, pt3, cbc->ivlen); /*初始化向量赋值*/
cbc->outLen = len;
cbc->outData = malloc(cbc->outLen); /*分配输出内存*/
if (cbc->outData == NULL) /*如果分配失败则释放*/
{
printf("mpc190_test_des: failed to malloc outData!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
arg_in =(DRV_LNDEC_ALG_REQ_PARA*) malloc(sizeof(DRV_LNDEC_ALG_REQ_PARA));
/*检测是否为空*/
if (arg_in == NULL)
{
printf("mpc190_test_rng: malloc param failed!\n");
OsFree(cbc_msg);
return;
}
memset(arg_in , 0, (sizeof(DRV_LNDEC_ALG_REQ_PARA)));
arg_in->crypt = cbc;
arg_in->data = cbc_msg ;
/*下发驱动*/
for(i=0;i<count;i++)
{
drv_sec2_Aes_crypt(DRV_IPSEC_AES_ENCRYPT, arg_in);
}
return;
}
void sec2_test_Aes_decrypt(int count,int len)
{
algo_msg_ike_cbc_t *cbc_msg = NULL; /*第三个参数*/
algo_msg_crypt_t *cbc = NULL; /*第二个参数*/
UINT8 pt3[16] = "0123456701234567"; /*KEY1 */
/*UINT8 pt5[8] = "abcdefgh"; */ /*KEY23*/
UINT8 pt5[24] = "012345678987654321012345";
int i;
DRV_LNDEC_ALG_REQ_PARA* arg_in = NULL; /*写消息结构,分配地址空间*/
cbc_msg = (algo_msg_ike_cbc_t *)OsAlloc(sizeof(algo_msg_ike_cbc_t));
if (cbc_msg == NULL)
{
printf("mpc190_test_des: failed to malloc hash_msg!\n");
return;
}
cbc_msg->msgHdr.algoid = ALGO_IKE_CBC_ENCRYPT_3DES; /*CBC DES*/
cbc_msg->msgHdr.callback = sec2_test_Aes_callback;
cbc_msg->msgHdr.ctx = cbc_msg;
cbc_msg->msgHdr.error_callback = sec2_test_Aes_err_callback;
cbc_msg->msgHdr.ISSC_num = 0;
cbc_msg->msgHdr.reply_msgId = MSG_IKE_ALGO_OK;
cbc = &(cbc_msg->msgCrypt);
cbc->inLen = 128; /*输入数据长度*/
cbc->inData = drv_ipsec_out_internalSec2;
if (cbc->inData == NULL)
{
printf("mpc190_test_des: failed to malloc inData!\n");
OsFree(cbc_msg);
return;
}
cbc->keyLen = 24; /*输入密钥长度*/
cbc->key = malloc(cbc->keyLen); /*分配内存空间*/
if (cbc->key == NULL)
{
printf("mpc190_test_des: failed to malloc key!\n");
free(cbc->inData);
OsFree(cbc_msg);
return;
}
memcpy(cbc->key, pt5, cbc->keyLen); /*输入密钥*/
cbc->ivlen = 16; /*初始化向量长度*/
cbc->iv = malloc(cbc->ivlen);
if (cbc->iv == NULL)
{
printf("mpc190_test_des: failed to malloc iv!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
memcpy(cbc->iv, pt3, cbc->ivlen); /*初始化向量赋值*/
cbc->outLen = 128;
cbc->outData = malloc(cbc->outLen); /*分配输出内存*/
if (cbc->outData == NULL) /*如果分配失败则释放*/
{
printf("mpc190_test_des: failed to malloc outData!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
arg_in =(DRV_LNDEC_ALG_REQ_PARA*) malloc(sizeof(DRV_LNDEC_ALG_REQ_PARA));
/*检测是否为空*/
if (arg_in == NULL)
{
printf("mpc190_test_rng: malloc param failed!\n");
OsFree(cbc_msg);
return;
}
memset(arg_in , 0, (sizeof(DRV_LNDEC_ALG_REQ_PARA)));
arg_in->crypt = cbc;
arg_in->data = cbc_msg ;
/*下发驱动*/
for(i=0;i<count;i++)
{
drv_sec2_Aes_crypt(DRV_IPSEC_AES_DECRYPT, arg_in);
}
return;
}
/*****************************************************************************/
void sec2_test_Aes_ctr_encrypt(int count,int len)
{
algo_msg_ike_cbc_t *cbc_msg = NULL; /*第三个参数*/
algo_msg_crypt_t *cbc = NULL; /*第二个参数*/
UINT8 pt5[24] = "012345678987654321012345";
int i;
DRV_LNDEC_ALG_REQ_PARA* arg_in = NULL; /*写消息结构,分配地址空间*/
cbc_msg = (algo_msg_ike_cbc_t *)OsAlloc(sizeof(algo_msg_ike_cbc_t));
if (cbc_msg == NULL)
{
printf("mpc190_test_des: failed to malloc hash_msg!\n");
return;
}
cbc_msg->msgHdr.algoid = ALGO_IKE_CBC_ENCRYPT_AES; /*CBC DES*/
cbc_msg->msgHdr.callback = sec2_test_Aes_callback;
cbc_msg->msgHdr.ctx = cbc_msg;
cbc_msg->msgHdr.error_callback = sec2_test_Aes_err_callback;
cbc_msg->msgHdr.ISSC_num = 0;
cbc_msg->msgHdr.reply_msgId = MSG_IKE_ALGO_OK;
cbc = &(cbc_msg->msgCrypt);
cbc->inLen = len; /*输入数据长度*/
cbc->inData = malloc(cbc->inLen); /*分配输入内存*/
if (cbc->inData == NULL)
{
printf("mpc190_test_des: failed to malloc inData!\n");
OsFree(cbc_msg);
return;
}
memset(cbc->inData, 0x67, cbc->inLen); /*输入数据,64 位*/
cbc->keyLen = 16; /*输入密钥长度*/
cbc->key = malloc(cbc->keyLen); /*分配内存空间*/
if (cbc->key == NULL)
{
printf("mpc190_test_des: failed to malloc key!\n");
free(cbc->inData);
OsFree(cbc_msg);
return;
}
memcpy(cbc->key, pt5, cbc->keyLen); /*输入密钥*/
cbc->outLen = len;
cbc->outData = malloc(cbc->outLen); /*分配输出内存*/
if (cbc->outData == NULL) /*如果分配失败则释放*/
{
printf("mpc190_test_des: failed to malloc outData!\n");
free(cbc->inData);
free(cbc->key);
OsFree(cbc_msg);
return;
}
memset(cbc->outData,0,cbc->outLen);
arg_in =(DRV_LNDEC_ALG_REQ_PARA*) malloc(sizeof(DRV_LNDEC_ALG_REQ_PARA));
/*检测是否为空*/
if (arg_in == NULL)
{
printf("mpc190_test_rng: malloc param failed!\n");
OsFree(cbc_msg);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -