Implementation of 1-Wire with added Alarm Search Functionality

Dependents:   Max32630_One_Wire_Interface

Revision:
21:00c94aeb533e
Child:
33:a4c015046956
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OneWire_Masters/ISha256MacCoprocessor.hpp	Mon Mar 21 14:12:28 2016 -0500
@@ -0,0 +1,35 @@
+#ifndef ISHA256MACCOPROCESSOR_H
+#define ISHA256MACCOPROCESSOR_H
+
+#include <cstddef>
+#include <cstdint>
+
+class ISha256MacCoprocessor
+{
+public:
+  enum CmdResult
+  {
+    Success,
+    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;
+  
+  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;
+};
+
+#endif
\ No newline at end of file