如果看到代码是完整且整齐的,则说明插件测试成功.

/*
 * 功能描述: DES单元运算
 * 参数列表: Out     - 8字节运算结果
 *          In      - 8字节数据
 *          pSubKey - 过程密钥
 *          Typde   - {ENCRYPT(加密),DECRYPT(解密)}
 * 返 回 值: 无
 */
void SingleDes(char Out[8], char In[8], char Type)
{
    int i = 0;    
    char M[64], tmp[32];    
    char *Li = &M[0];
    char *Ri = &M[32];
    memset(M,   0, sizeof(char)*sizeof(M));
    memset(tmp, 0, sizeof(char)*sizeof(tmp));
    ByteToBit(M, In, 64);
    Transform(M, M, IP_Table, 64);      //初始置换(IP置换)
    if( Type == ENCRYPT )
    {
        for(i=0; i<16; i++)
        {
            memcpy(tmp, Ri, 32);        //保存右半部分
            F_func(Ri, (*pSubKey)[i]);  //对右半部分和密钥进行操作
            Xor(Ri, Li, 32);            //右半部分与左半部分异或操作
            memcpy(Li, tmp, 32);        //原来的右半部分放至左半部分
        }
    }
    else
    {
        for(i=15; i>=0; i--)            //加密和解密只是顺序不同
        {
            memcpy(tmp, Ri, 32);
            F_func(Ri, (*pSubKey)[i]);
            Xor(Ri, Li, 32);
            memcpy(Li, tmp, 32);
        }
    }
    RotateL(M,64,32);               //左右交换(循环移位)
    Transform(M, M, IPR_Table, 64); //逆初值置换(IPR置换)
    BitToByte(Out, M, 64);          //bit流转换为字节
}