// Read Checksum // // CryptoMemory Library Include Files #include "CM_LIB.h" #include "CM_I2C.h" #include "CM_I2C_L.h" #include "CM_GPA.h" uint8_t ucCmdRdChk[4] = {0xb6, 0x02, 0x00, 0x02}; // Read Checksum uint8_t cm_ReadChecksum(uint8_t * pucChkSum) { uint8_t ucDCR[1]; uint8_t ucReturn; // 20 0x00s (10 0x00s, ignore first byte, 5 0x00s, ignore second byte, 5 0x00s cm_GPAGenN(20); // Read the checksum if((ucReturn = cm_ReadCommand(ucCmdRdChk, pucChkSum, 2))!= SUCCESS) return ucReturn; // Check if unlimited reads allowed if ((ucReturn = cm_ReadConfigZone(DCR_ADDR, ucDCR, 1)) != SUCCESS) return ucReturn; if ((ucDCR[0]&DCR_UCR)) cm_ResetCrypto(); return SUCCESS; }