Xin Zhang / azure-iot-c-sdk-f767zi

Dependents:   samplemqtt

Committer:
XinZhangMS
Date:
Thu Aug 23 06:52:14 2018 +0000
Revision:
0:f7f1f0d76dd6
azure-c-sdk for mbed os supporting NUCLEO_F767ZI

Who changed what in which revision?

UserRevisionLine numberNew contents of line
XinZhangMS 0:f7f1f0d76dd6 1 // Copyright (c) Microsoft. All rights reserved.
XinZhangMS 0:f7f1f0d76dd6 2 // Licensed under the MIT license. See LICENSE file in the project root for full license information.
XinZhangMS 0:f7f1f0d76dd6 3
XinZhangMS 0:f7f1f0d76dd6 4 #include <stddef.h>
XinZhangMS 0:f7f1f0d76dd6 5 #include "azure_c_shared_utility/hmacsha256.h"
XinZhangMS 0:f7f1f0d76dd6 6 #include "azure_c_shared_utility/hmac.h"
XinZhangMS 0:f7f1f0d76dd6 7 #include "azure_c_shared_utility/buffer_.h"
XinZhangMS 0:f7f1f0d76dd6 8
XinZhangMS 0:f7f1f0d76dd6 9 HMACSHA256_RESULT HMACSHA256_ComputeHash(const unsigned char* key, size_t keyLen, const unsigned char* payload, size_t payloadLen, BUFFER_HANDLE hash)
XinZhangMS 0:f7f1f0d76dd6 10 {
XinZhangMS 0:f7f1f0d76dd6 11 HMACSHA256_RESULT result;
XinZhangMS 0:f7f1f0d76dd6 12
XinZhangMS 0:f7f1f0d76dd6 13 if (key == NULL ||
XinZhangMS 0:f7f1f0d76dd6 14 keyLen == 0 ||
XinZhangMS 0:f7f1f0d76dd6 15 payload == NULL ||
XinZhangMS 0:f7f1f0d76dd6 16 payloadLen == 0 ||
XinZhangMS 0:f7f1f0d76dd6 17 hash == NULL)
XinZhangMS 0:f7f1f0d76dd6 18 {
XinZhangMS 0:f7f1f0d76dd6 19 result = HMACSHA256_INVALID_ARG;
XinZhangMS 0:f7f1f0d76dd6 20 }
XinZhangMS 0:f7f1f0d76dd6 21 else
XinZhangMS 0:f7f1f0d76dd6 22 {
XinZhangMS 0:f7f1f0d76dd6 23 if ((BUFFER_enlarge(hash, 32) != 0) ||
XinZhangMS 0:f7f1f0d76dd6 24 (hmac(SHA256, payload, (int)payloadLen, key, (int)keyLen, BUFFER_u_char(hash) ) != 0))
XinZhangMS 0:f7f1f0d76dd6 25 {
XinZhangMS 0:f7f1f0d76dd6 26 result = HMACSHA256_ERROR;
XinZhangMS 0:f7f1f0d76dd6 27 }
XinZhangMS 0:f7f1f0d76dd6 28 else
XinZhangMS 0:f7f1f0d76dd6 29 {
XinZhangMS 0:f7f1f0d76dd6 30 result = HMACSHA256_OK;
XinZhangMS 0:f7f1f0d76dd6 31 }
XinZhangMS 0:f7f1f0d76dd6 32 }
XinZhangMS 0:f7f1f0d76dd6 33
XinZhangMS 0:f7f1f0d76dd6 34 return result;
XinZhangMS 0:f7f1f0d76dd6 35 }