Demo using MBED TLS

Dependencies:   EthernetInterface NTPClient iothub_amqp_transport iothub_client mbed-rtos mbed

Fork of iothub_client_sample_amqp by Azure IoT

Committer:
markrad
Date:
Thu Jan 05 00:20:03 2017 +0000
Revision:
58:f50b97b08851
Sample using MBED TLS

Who changed what in which revision?

UserRevisionLine numberNew contents of line
markrad 58:f50b97b08851 1 // Copyright (c) Microsoft. All rights reserved.
markrad 58:f50b97b08851 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
markrad 58:f50b97b08851 3
markrad 58:f50b97b08851 4 #include "azure_c_shared_utility/tlsio_mbedconfig.h"
markrad 58:f50b97b08851 5
markrad 58:f50b97b08851 6 #include <stdlib.h>
markrad 58:f50b97b08851 7 #include <stdio.h>
markrad 58:f50b97b08851 8 #ifdef _CRTDBG_MAP_ALLOC
markrad 58:f50b97b08851 9 #include <crtdbg.h>
markrad 58:f50b97b08851 10 #endif
markrad 58:f50b97b08851 11 #include "azure_c_shared_utility/platform.h"
markrad 58:f50b97b08851 12 #include "EthernetInterface.h"
markrad 58:f50b97b08851 13 #include "NTPClient.h"
markrad 58:f50b97b08851 14 #include "azure_c_shared_utility/xio.h"
markrad 58:f50b97b08851 15
markrad 58:f50b97b08851 16 #if defined(USE_WOLF_SSL)
markrad 58:f50b97b08851 17 #include "azure_c_shared_utility/tlsio_wolfssl.h"
markrad 58:f50b97b08851 18 #elif defined(USE_MBED_TLS)
markrad 58:f50b97b08851 19 #include "azure_c_shared_utility/tlsio_mbedtls.h"
markrad 58:f50b97b08851 20 #else
markrad 58:f50b97b08851 21 #error No TLS/SSL library has been specified (see tlsio_mbedconfig.h)
markrad 58:f50b97b08851 22 #endif
markrad 58:f50b97b08851 23
markrad 58:f50b97b08851 24 int setupRealTime(void)
markrad 58:f50b97b08851 25 {
markrad 58:f50b97b08851 26 int result;
markrad 58:f50b97b08851 27
markrad 58:f50b97b08851 28 if (EthernetInterface::connect())
markrad 58:f50b97b08851 29 {
markrad 58:f50b97b08851 30 result = __LINE__;
markrad 58:f50b97b08851 31 }
markrad 58:f50b97b08851 32 else
markrad 58:f50b97b08851 33 {
markrad 58:f50b97b08851 34 NTPClient ntp;
markrad 58:f50b97b08851 35 if (ntp.setTime("0.pool.ntp.org") != 0)
markrad 58:f50b97b08851 36 {
markrad 58:f50b97b08851 37 result = __LINE__;
markrad 58:f50b97b08851 38 }
markrad 58:f50b97b08851 39 else
markrad 58:f50b97b08851 40 {
markrad 58:f50b97b08851 41 result = 0;
markrad 58:f50b97b08851 42 }
markrad 58:f50b97b08851 43 EthernetInterface::disconnect();
markrad 58:f50b97b08851 44 }
markrad 58:f50b97b08851 45
markrad 58:f50b97b08851 46 return result;
markrad 58:f50b97b08851 47 }
markrad 58:f50b97b08851 48
markrad 58:f50b97b08851 49 int platform_init(void)
markrad 58:f50b97b08851 50 {
markrad 58:f50b97b08851 51 printf("Initializing platform\r\n");
markrad 58:f50b97b08851 52 int result;
markrad 58:f50b97b08851 53
markrad 58:f50b97b08851 54 if (EthernetInterface::init())
markrad 58:f50b97b08851 55 {
markrad 58:f50b97b08851 56 result = __LINE__;
markrad 58:f50b97b08851 57 }
markrad 58:f50b97b08851 58 else if (setupRealTime() != 0)
markrad 58:f50b97b08851 59 {
markrad 58:f50b97b08851 60 result = __LINE__;
markrad 58:f50b97b08851 61 }
markrad 58:f50b97b08851 62 else if (EthernetInterface::connect())
markrad 58:f50b97b08851 63 {
markrad 58:f50b97b08851 64 result = __LINE__;
markrad 58:f50b97b08851 65 }
markrad 58:f50b97b08851 66 else
markrad 58:f50b97b08851 67 {
markrad 58:f50b97b08851 68 result = 0;
markrad 58:f50b97b08851 69 }
markrad 58:f50b97b08851 70
markrad 58:f50b97b08851 71 return result;
markrad 58:f50b97b08851 72 }
markrad 58:f50b97b08851 73
markrad 58:f50b97b08851 74 const IO_INTERFACE_DESCRIPTION* platform_get_default_tlsio(void)
markrad 58:f50b97b08851 75 {
markrad 58:f50b97b08851 76 printf("Returning tlsio\r\n");
markrad 58:f50b97b08851 77 #if defined(USE_WOLF_SSL)
markrad 58:f50b97b08851 78 return tlsio_wolfssl_get_interface_description();
markrad 58:f50b97b08851 79 #else
markrad 58:f50b97b08851 80 return tlsio_mbedtls_get_interface_description();
markrad 58:f50b97b08851 81 #endif
markrad 58:f50b97b08851 82 }
markrad 58:f50b97b08851 83
markrad 58:f50b97b08851 84 void platform_deinit(void)
markrad 58:f50b97b08851 85 {
markrad 58:f50b97b08851 86 EthernetInterface::disconnect();
markrad 58:f50b97b08851 87 }