NuMaker connection with AWS IoT thru MQTT/HTTPS

Dependencies:   MQTT

Committer:
ccli8
Date:
Thu Sep 02 11:34:22 2021 +0800
Revision:
45:7d315fb1ba3e
Parent:
41:b878d7cd7035
Fix MQTT client ID collision

If not assigned, generate unique MQTT client ID:
1. For non-TZ targets, use FMC/UID.
2. For TZ targets (NS), FMC/UID is inaccessible. Use random instead.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ccli8 25:edf568984d27 1 #ifndef _MY_TLS_SOCKET_H_
ccli8 25:edf568984d27 2 #define _MY_TLS_SOCKET_H_
ccli8 25:edf568984d27 3
ccli8 41:b878d7cd7035 4 #include "mbed.h"
ccli8 41:b878d7cd7035 5 #include "TLSSocket.h"
ccli8 41:b878d7cd7035 6 #include "mbedtls_utils.h"
ccli8 25:edf568984d27 7
ccli8 25:edf568984d27 8 #if MBED_CONF_MY_TLSSOCKET_TLS_DEBUG_LEVEL > 0
ccli8 25:edf568984d27 9 #include "mbedtls/debug.h"
ccli8 25:edf568984d27 10 #endif
ccli8 25:edf568984d27 11
ccli8 41:b878d7cd7035 12 /* MyTLSSocket = TLSSocket + MQTT lib required timed read/write + debug thru console */
ccli8 41:b878d7cd7035 13 class MyTLSSocket : public TLSSocket
ccli8 41:b878d7cd7035 14 {
ccli8 25:edf568984d27 15 public:
ccli8 41:b878d7cd7035 16 MyTLSSocket();
ccli8 25:edf568984d27 17 ~MyTLSSocket();
ccli8 25:edf568984d27 18
ccli8 25:edf568984d27 19 /**
ccli8 25:edf568984d27 20 * Timed recv for MQTT lib
ccli8 25:edf568984d27 21 */
ccli8 25:edf568984d27 22 int read(unsigned char* buffer, int len, int timeout);
ccli8 25:edf568984d27 23
ccli8 25:edf568984d27 24 /**
ccli8 25:edf568984d27 25 * Timed send for MQTT lib
ccli8 25:edf568984d27 26 */
ccli8 25:edf568984d27 27 int write(unsigned char* buffer, int len, int timeout);
ccli8 25:edf568984d27 28
ccli8 25:edf568984d27 29 protected:
ccli8 25:edf568984d27 30 #if MBED_CONF_MY_TLSSOCKET_TLS_DEBUG_LEVEL > 0
ccli8 25:edf568984d27 31 /**
ccli8 41:b878d7cd7035 32 * Debug callback for Mbed TLS
ccli8 25:edf568984d27 33 * Just prints on the USB serial port
ccli8 25:edf568984d27 34 */
ccli8 25:edf568984d27 35 static void my_debug(void *ctx, int level, const char *file, int line,
ccli8 25:edf568984d27 36 const char *str);
ccli8 25:edf568984d27 37
ccli8 25:edf568984d27 38 /**
ccli8 41:b878d7cd7035 39 * Certificate verification callback for Mbed TLS
ccli8 25:edf568984d27 40 * Here we only use it to display information on each cert in the chain
ccli8 25:edf568984d27 41 */
ccli8 25:edf568984d27 42 static int my_verify(void *data, mbedtls_x509_crt *crt, int depth, uint32_t *flags);
ccli8 25:edf568984d27 43 #endif
ccli8 25:edf568984d27 44 };
ccli8 25:edf568984d27 45
ccli8 25:edf568984d27 46 #endif // _MY_TLS_SOCKET_H_