intiial commit

Dependencies:   MAX8614X USBDevice max32630hsp_test

Revision:
13:97854f761347
Parent:
12:fc888315e5fd
Child:
14:1939758a03cf
diff -r fc888315e5fd -r 97854f761347 main.cpp
--- a/main.cpp	Thu Aug 16 20:44:08 2018 +0000
+++ b/main.cpp	Thu Aug 16 21:06:58 2018 +0000
@@ -61,29 +61,20 @@
 {
     #define CHALLENGE_SZ_NO_SECRET 20
     uint8_t challenge_1[CHALLENGE_SZ_NO_SECRET] = {  // 160 bit
-#if 0
-        0x24, 0x35, 0x81, 0x5e,
-        0x09, 0xd6, 0x63, 0x56,
-        0x0d, 0x7b, 0x8d, 0x99,
-        0x65, 0x84, 0x12, 0x52,
-        0x01, 0xe3, 0x0d, 0xcd
-#endif
-#if 1
         0x5e, 0x81, 0x35, 0x24,
         0x56, 0x63, 0xd6, 0x09,
         0x99, 0x8d, 0x7b, 0x0d,
         0x52, 0x12, 0x84, 0x65,
         0xcd, 0x0d, 0xe3, 0x01
-#endif
-#if 0
-1, 0, 0, 0,
-0, 0, 0, 0,
-0, 0, 0, 0,
-0, 0, 0, 0,
-0, 0, 0, 0
-#endif
     };
 
+    uint8_t challenge_2[CHALLENGE_SZ_NO_SECRET] = {  // 160 bit
+        0xd2, 0xaa, 0x84, 0xc5,
+        0x72, 0x77, 0xf7, 0xe5,
+        0xdb, 0x8f, 0xd6, 0x12,
+        0x96, 0xce, 0x69, 0xf2,
+        0x4e, 0xc5, 0x7a, 0xe8
+    };
     #define MAC_SZ 32
 
 
@@ -101,9 +92,11 @@
 //    printf("device id should be 0x24, reg %02X = %02X\r\n", MAX8614X::MAX8614X_PART_ID_REG, data[0]);
 
     executeSha256(m, challenge_1, CHALLENGE_SZ_NO_SECRET, 1);
-   //● Compare MAC from MAX86140 wth Host's precalculated MAC.
-    //● Check PASS or FAIL.
-    //● Disable SHA_EN bit ( Write 0 to SHA_EN bit).     
+    executeSha256(m, challenge_2, CHALLENGE_SZ_NO_SECRET, 1);
+    executeSha256(m, challenge_2, CHALLENGE_SZ_NO_SECRET, 0);
+    //- Compare MAC from MAX86140 wth Host's precalculated MAC.
+    //- Check PASS or FAIL.
+    //- Disable SHA_EN bit ( Write 0 to SHA_EN bit).     
     while(1) {
         gLED = !gLED;
         wait(1.0);
@@ -154,15 +147,15 @@
     const unsigned int responseLen32 = 8;
     uint8_t data[5];
 
-    //● Enable SHA_DONE Interrupt
+    //- Enable SHA_DONE Interrupt
     m.writeRegister(MAX8614X::MAX8614X_INT_ENABLE2_REG, MAX8614X::MAX8614X_IE_SHA_DONE_EN);
 
     m.writeRegister(MAX8614X::MAX8614X_INT_ENABLE1_REG, 0);  // Disable all other interrupts
 
-    //● Enable SHA_EN bit.
+    //- Enable SHA_EN bit.
     m.writeRegister(MAX8614X::MAX8614X_SHA_CFG_REG,MAX8614X::MAX8614X_SHACFG_SHA_EN);
 
-    //● Write 160-bit random challenge value to RAM using registers MEM_IDX and MEM_DATA.
+    //- Write 160-bit random challenge value to RAM using registers MEM_IDX and MEM_DATA.
     // Enable Memory Write, Select Bank 0, address 0x00 to 0xFF
     m.writeRegister(MAX8614X::MAX8614X_MEMORY_CONTROL_REG, MAX8614X::MAX8614X_MEMCNTRL_WR_EN_MASK | MAX8614X::MAX8614X_MEMCNTRL_BANK0_MASK);
 
@@ -204,17 +197,17 @@
     // The message block consists of a 160-bit secret, a 160-bit challenge and 192 bits of constant data. Optionally, the 64-bit
     // ROM ID replaces 64 of the 192 bits of constant data used in the hash operation. 16 bits out of the 160-bit secret and 16
     // bits of ROM ID are programmable–8 bits each in metal and 8 bits each in OTP bits
-    //● Write command, with ROM ID (0x35) or without ROM ID (0x36), to SHA_CMD register
+    //- Write command, with ROM ID (0x35) or without ROM ID (0x36), to SHA_CMD register
    if (romID) {
         printf("ROMID \r\n");
-        m.writeRegister(MAX8614X::MAX8614X_SHA_CMD_REG, MAX8614X::MAX8614X_SHACMD_MAC_ROM_ID);
+//        m.writeRegister(MAX8614X::MAX8614X_SHA_CMD_REG, MAX8614X::MAX8614X_SHACMD_MAC_ROM_ID);
         m.writeRegister(MAX8614X::MAX8614X_SHA_CMD_REG, MAX8614X::MAX8614X_SHACMD_MAC_ROM_ID);
         wait(1);
 }
     else
 {
          printf("no ROMID \r\n");
-       m.writeRegister(MAX8614X::MAX8614X_SHA_CMD_REG,MAX8614X::MAX8614X_SHACMD_MAC_NO_ROM_ID);
+//       m.writeRegister(MAX8614X::MAX8614X_SHA_CMD_REG,MAX8614X::MAX8614X_SHACMD_MAC_NO_ROM_ID);
        m.writeRegister(MAX8614X::MAX8614X_SHA_CMD_REG,MAX8614X::MAX8614X_SHACMD_MAC_NO_ROM_ID);
         wait(1);
 }