edits
[iotcloud.git] / version2 / src / C / Mac.cc
1 #include "Mac.h"
2 #include "Crypto.h"
3
4 Mac::Mac() {
5 }
6
7 void Mac::update(Array<char> *array, int32_t offset, int32_t len) {
8         sha2_hmac_update(&ctx, (const unsigned char *) &array->internalArray()[offset], len);
9 }
10
11 Array<char> *Mac::doFinal() {
12         Array<char> *hmac = new Array<char>(32);
13         sha2_hmac_finish(&ctx, (unsigned char *) hmac->internalArray());
14         sha2_hmac_reset(&ctx);
15         return hmac;
16 }
17
18 void Mac::init(AESKey *key) {
19         sha2_hmac_starts(&ctx, (const unsigned char *) key->getKey()->internalArray(), key->getKey()->length(), false);
20 }