ATSHA204加密认证过程

1、sha204_wakeup(wakeup_response)     //唤醒
  → 1)chip_wakeup()     //wake token 0x00(唤醒标志)
         2)sha204_receive_response(0x4, response)
    → 1)chip_sendbyte(FLAG_CLIENT_TRANSMIT)     //transmit 0x88(内容发送标志)
      2)chip_receive_bytes(size, response)     //接收响应

2、sha204m_random(Random_command,random_data,1)     //产生随机数
  → 1)sha204c_send_and_receive(&tx_buffer[0], 35, &rx_buffer[0], RANDOM_DELAY)      
    → 1)sha204_calculate_crc(count_minus_crc, tx_buffer, tx_buffer + count_minus_crc) //计算发送信息的校验码,并置于消息的最后两位
        2)sha204_send_command(count, tx_buffer) //command 0x77 写内容标志,后面接内容,即产生随机数(包含0x16 随机数产生指令)

        3)sha204_receive_response(rx_size, rx_buffer)

      → 1)chip_sendbyte(FLAG_CLIENT_TRANSMIT)     //transmit 0x88(内容发送标志)

          2)chip_receive_bytes(size, response)     //接收响应

        4)sha204c_check_crc(rx_buffer)     //检测校验码

3、sha204m_mac(u8 *tx_buffer, u8 *rx_buffer,u8 mode, u16 key_id, u8 *challenge)     //生成mac码 
  → 1)sha204c_send_and_receive(&tx_buffer[0], 35, &rx_buffer[0],MAC_DELAY)
    → 1)sha204_calculate_crc(count_minus_crc, tx_buffer, tx_buffer + count_minus_crc)     //计算校验码
        2)sha204_send_command(count, tx_buffer) //command 0x77 写内容标志,后面接内容,即产生mac码(包含0x08 mac产生指令)
      3) sha204_receive_response(rx_size, rx_buffer)

      → 1)chip_sendbyte(FLAG_CLIENT_TRANSMIT)     //transmit 0x88(内容发送标志)
            2)chip_receive_bytes(size, response)     //接收响应

        4)sha204c_check_crc(rx_buffer)     //检测校验码

4、sha204e_read_serial_number(serial_cmmand,serial_number)     //读取芯片的唯一序列号
  → 1) sha204m_read(tx_buffer, rx_buffer, SHA204_ZONE_COUNT_FLAG | SHA204_ZONE_CONFIG, 0)
    → 1)sha204c_send_and_receive(&tx_buffer[0], rx_size, &rx_buffer[0],READ_DELAY)
      → 1)sha204_calculate_crc(count_minus_crc, tx_buffer, tx_buffer + count_minus_crc)     //计算校验码
          2)sha204_send_command(count, tx_buffer) //command 0x77 写内容标志,后面接内容,即读取序列号(包含0x02 read命令)
          3) sha204_receive_response(rx_size, rx_buffer)     //接收响应
          4)sha204c_check_crc(rx_buffer)     //检测校验码

5、sha204_GenMac(u16 KeyID,u8 *Key,u8 *Challenge, u8 Mode, u8 *MAC,u8 *sn)     //在本机生成genmac码

6、比对mac和genmac

posted on 2017-05-22 15:02  echo5  阅读(874)  评论(0编辑  收藏  举报