Implementation of 1-Wire with added Alarm Search Functionality

Dependents:   Max32630_One_Wire_Interface

Revision:
33:a4c015046956
Parent:
21:00c94aeb533e
Child:
48:6f9208ae280e
--- a/OneWire_Masters/ISha256MacCoprocessor.hpp	Wed Mar 30 16:50:29 2016 -0500
+++ b/OneWire_Masters/ISha256MacCoprocessor.hpp	Thu Mar 31 11:56:01 2016 -0500
@@ -4,6 +4,8 @@
 #include <cstddef>
 #include <cstdint>
 
+#include "array.hpp"
+
 class ISha256MacCoprocessor
 {
 public:
@@ -13,23 +15,18 @@
     OperationFailure
   };
 
-  static const std::size_t devicePage_len = 32;
-  static const std::size_t deviceScratchpad_len = 32;
-  static const std::size_t secret_len = 32;
-  
-  static const std::size_t mac_len = 32;
+  typedef array<std::uint8_t, 32> DevicePage;
+  typedef array<std::uint8_t, 32> DeviceScratchpad;
+  typedef array<std::uint8_t, 32> Secret;
+  typedef array<std::uint8_t, 32> Mac;
+  typedef array<std::uint8_t, 20> WriteMacData;
+  typedef array<std::uint8_t, 12> AuthMacData;
+  typedef array<std::uint8_t, 12> SlaveSecretData;
   
-  static const std::size_t WriteMAC_data_len = 20;
-  static const std::size_t AuthMAC_data_len = 12;
-  static const std::size_t SSecret_data_len = 12;
-  
-  virtual CmdResult setMasterSecret(const std::uint8_t (&secret)[secret_len]) = 0;
-  
-  virtual CmdResult ComputeAndRead_WriteMAC(const std::uint8_t (&WriteMAC_data)[WriteMAC_data_len], std::uint8_t (&mac)[mac_len]) const = 0;
-  virtual CmdResult ComputeAndRead_AuthMAC(const std::uint8_t (&devicePage)[devicePage_len], const std::uint8_t (&challenge)[deviceScratchpad_len],
-                                      const std::uint8_t (&AuthMAC_data)[AuthMAC_data_len], std::uint8_t (&mac)[mac_len]) const = 0;
-  virtual CmdResult Compute_SSecret(const std::uint8_t (&devicePage)[devicePage_len],
-                               const std::uint8_t (&deviceScratchpad)[deviceScratchpad_len], const std::uint8_t (&SSecret_data)[SSecret_data_len]) = 0;
+  virtual CmdResult setMasterSecret(const Secret & secret) = 0;
+  virtual CmdResult computeWriteMac(const WriteMacData & writeMacData, Mac & mac) const = 0;
+  virtual CmdResult computeAuthMac(const DevicePage & devicePage, const DeviceScratchpad & challenge, const AuthMacData & authMacData, Mac & mac) const = 0;
+  virtual CmdResult computeSlaveSecret(const DevicePage & devicePage, const DeviceScratchpad & deviceScratchpad, const SlaveSecretData & slaveSecretData) = 0;
 };
 
 #endif
\ No newline at end of file