DeepCover Embedded Security in IoT: Public-key Secured Data Paths
Dependencies: MaximInterface
The MAXREFDES155# is an internet-of-things (IoT) embedded-security reference design, built to authenticate and control a sensing node using elliptic-curve-based public-key cryptography with control and notification from a web server.
The hardware includes an ARM® mbed™ shield and attached sensor endpoint. The shield contains a DS2476 DeepCover® ECDSA/SHA-2 coprocessor, Wifi communication, LCD push-button controls, and status LEDs. The sensor endpoint is attached to the shield using a 300mm cable and contains a DS28C36 DeepCover ECDSA/SHA-2 authenticator, IR-thermal sensor, and aiming laser for the IR sensor. The MAXREFDES155# is equipped with a standard Arduino® form-factor shield connector for immediate testing using an mbed board such as the MAX32600MBED#. The combination of these two devices represent an IoT device. Communication to the web server is accomplished with the shield Wifi circuitry. Communication from the shield to the attached sensor module is accomplished over I2C . The sensor module represents an IoT endpoint that generates small data with a requirement for message authenticity/integrity and secure on/off operational control.
The design is hierarchical with each mbed platform and shield communicating data from the sensor node to a web server that maintains a centralized log and dispatches notifications as necessary. The simplicity of this design enables rapid integration into any star-topology IoT network to provide security with the low overhead and cost provided by the ECDSA-P256 asymmetric-key and SHA-256 symmetric-key algorithms.
More information about the MAXREFDES155# is available on the Maxim Integrated website.
Diff: xternal/simplelink/user.h
- Revision:
- 17:5926077e5345
- Parent:
- 16:a004191a79ab
--- a/xternal/simplelink/user.h Thu Oct 03 11:40:13 2019 -0500 +++ b/xternal/simplelink/user.h Fri Oct 04 12:10:11 2019 -0500 @@ -74,8 +74,8 @@ ****************************************************************************** */ - #include <string.h> - #include <CC3100_transport.h> +#include <string.h> +typedef void (*SL_P_EVENT_HANDLER)(void *); /*! ****************************************************************************** @@ -369,7 +369,7 @@ \note belongs to \ref porting_sec */ -#define sl_DeviceEnable sl_DeviceEnable +void sl_DeviceEnable(void); /*! \brief Disable the Network Processor @@ -378,7 +378,7 @@ \note belongs to \ref porting_sec */ -#define sl_DeviceDisable sl_DeviceDisable +void sl_DeviceDisable(void); /*! @@ -410,7 +410,7 @@ ****************************************************************************** */ -#define _SlFd_t SlFd_t +#define _SlFd_t void * /*! \brief Opens an interface communication port to be used for communicating @@ -445,7 +445,7 @@ \warning */ -#define sl_IfOpen sl_IfOpen +_SlFd_t sl_IfOpen(const char * ifName, unsigned long flags); /*! \brief Closes an opened interface communication port @@ -464,7 +464,7 @@ \warning */ -#define sl_IfClose sl_IfClose +int sl_IfClose(_SlFd_t fd); /*! \brief Attempts to read up to len bytes from an opened communication channel @@ -490,7 +490,7 @@ \warning */ -#define sl_IfRead sl_IfRead +int sl_IfRead(_SlFd_t fd, unsigned char * pBuff, int len); /*! \brief attempts to write up to len bytes to the SPI channel @@ -520,7 +520,7 @@ \warning */ -#define sl_IfWrite sl_IfWrite +int sl_IfWrite(_SlFd_t fd, const unsigned char * pBuff, int len); /*! \brief register an interrupt handler routine for the host IRQ @@ -545,7 +545,7 @@ \warning */ -#define sl_IfRegIntHdlr(InterruptHdl , pValue) sl_IfRegIntHdlr(InterruptHdl , pValue) +int sl_IfRegIntHdlr(SL_P_EVENT_HANDLER InterruptHdl, void * pValue); /*! \brief Masks the Host IRQ