⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sec2_test.c

📁 freescale ppc sec2加解密单元驱动
💻 C
📖 第 1 页 / 共 5 页
字号:
    {
        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 + -