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 <stdlib.h>
markrad 58:f50b97b08851 5 #ifdef _CRTDBG_MAP_ALLOC
markrad 58:f50b97b08851 6 #include <crtdbg.h>
markrad 58:f50b97b08851 7 #endif
markrad 58:f50b97b08851 8 #include "azure_c_shared_utility/gballoc.h"
markrad 58:f50b97b08851 9
markrad 58:f50b97b08851 10 #include "azure_c_shared_utility/hmacsha256.h"
markrad 58:f50b97b08851 11 #include "azure_c_shared_utility/hmac.h"
markrad 58:f50b97b08851 12 #include "azure_c_shared_utility/strings.h"
markrad 58:f50b97b08851 13
markrad 58:f50b97b08851 14 HMACSHA256_RESULT HMACSHA256_ComputeHash(const unsigned char* key, size_t keyLen, const unsigned char* payload, size_t payloadLen, BUFFER_HANDLE hash)
markrad 58:f50b97b08851 15 {
markrad 58:f50b97b08851 16 HMACSHA256_RESULT result;
markrad 58:f50b97b08851 17
markrad 58:f50b97b08851 18 if (key == NULL ||
markrad 58:f50b97b08851 19 keyLen == 0 ||
markrad 58:f50b97b08851 20 payload == NULL ||
markrad 58:f50b97b08851 21 payloadLen == 0 ||
markrad 58:f50b97b08851 22 hash == NULL)
markrad 58:f50b97b08851 23 {
markrad 58:f50b97b08851 24 result = HMACSHA256_INVALID_ARG;
markrad 58:f50b97b08851 25 }
markrad 58:f50b97b08851 26 else
markrad 58:f50b97b08851 27 {
markrad 58:f50b97b08851 28 if ((BUFFER_enlarge(hash, 32) != 0) ||
markrad 58:f50b97b08851 29 (hmac(SHA256, payload, (int)payloadLen, key, (int)keyLen, BUFFER_u_char(hash) ) != 0))
markrad 58:f50b97b08851 30 {
markrad 58:f50b97b08851 31 result = HMACSHA256_ERROR;
markrad 58:f50b97b08851 32 }
markrad 58:f50b97b08851 33 else
markrad 58:f50b97b08851 34 {
markrad 58:f50b97b08851 35 result = HMACSHA256_OK;
markrad 58:f50b97b08851 36 }
markrad 58:f50b97b08851 37 }
markrad 58:f50b97b08851 38
markrad 58:f50b97b08851 39 return result;
markrad 58:f50b97b08851 40 }