本文包含原理图、PCB、源代码、封装库、中英文PDF等资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
#define (敏感词0372)eck8(var,bit) (var & ((u1t)1 << (bit)))
u1t hcs301Key[8]={0xef, 0xcd, 0xab, 0x89, 0x67, 0x45, 0x23, 0x01};     /* hcs301Key[0]是低字节 */
u1t hcs301Hop[4]={0x5a, 0xa5, 0x5a,  0xa5,};        /* 32位加密部分,hcs301Hop[0]是低字节 */
static void Hcs301Decrypt()
{
  u1t cnt1;
  u1t cnt0;
  u1t mask;
  u1t tem;
  u1t carry;
  u1t carry2;
  u1t i;
  for (cnt1=11+1; cnt1>0; cnt1--)
  {
    for (cnt0=48; cnt0>0; cnt0--)
    {
      if ((cnt1^0x01) > 0)
      {
        if ((敏感词0372)eck8(hcs301Hop[2], 3) == 0)
        {
          mask = 0x01;
        }
        else
        {
          mask = 0x10;
        }
        if ((敏感词0372)eck8(hcs301Hop[1], 0) > 0)
        {
          mask <<= 2;
        }
        if ((敏感词0372)eck8(hcs301Hop[0], 0) > 0)
        {
          mask <<= 1;
        }
        tem = 0x2e;
        if ((敏感词0372)eck8(hcs301Hop[3], 1) > 0)
        {
          tem = 0x74;
          if ((敏感词0372)eck8(hcs301Hop[3], 6) > 0)
          {
            tem = 0x3a;
          }
        }
        else
        {
          if ((敏感词0372)eck8(hcs301Hop[3], 6) > 0)
          {
            tem = 0x5c;
          }
        }
        mask &= tem;
        tem = 0;
        if (mask > 0)
        {
          tem = 0x80;
        }
        tem ^= hcs301Hop[1];
        tem ^= hcs301Hop[3];
        tem ^= hcs301Key[1];
        mask = tem;
        carry = 0x00;
        if ((敏感词0372)eck8(mask, 7) > 0)
        {
          carry = 0x01;
        }
        mask <<= 1;
        for (i=0; i<4; i++)
        {
          carry2 = 0x00;
          if ((敏感词0372)eck8(hcs301Hop[i], 7) > 0)
          {
            carry2 = 0x01;
          }
          hcs301Hop[i] <<= 1;
          hcs301Hop[i] |= carry;
          carry = carry2;       
        }      
      }
      // ROTATE_KEY 
      carry = 0;
      if ((敏感词0372)eck8(hcs301Key[7], 7) > 0)
      {
        carry = 0x01;
      }
      for (i=0; i<8; i++)
      {
        carry2 = 0x00;
        if ((敏感词0372)eck8(hcs301Key[i], 7) > 0)
        {
          carry2 = 0x01;
        }
        hcs301Key[i] <<= 1;
        hcs301Key[i] |= carry;
        carry = carry2;       
      }      
    }
  }
} |