rename files
[iotcloud.git] / version2 / src / C / Mac.cpp
diff --git a/version2/src/C/Mac.cpp b/version2/src/C/Mac.cpp
new file mode 100644 (file)
index 0000000..aec7455
--- /dev/null
@@ -0,0 +1,20 @@
+#include "Mac.h"
+#include "Crypto.h"
+
+Mac::Mac() {
+}
+
+void Mac::update(Array<char> *array, int32_t offset, int32_t len) {
+       sha2_hmac_update(&ctx, (const unsigned char *) &array->internalArray()[offset], len);
+}
+
+Array<char> *Mac::doFinal() {
+       Array<char> *hmac = new Array<char>(32);
+       sha2_hmac_finish(&ctx, (unsigned char *) hmac->internalArray());
+       sha2_hmac_reset(&ctx);
+       return hmac;
+}
+
+void Mac::init(AESKey *key) {
+       sha2_hmac_starts(&ctx, (const unsigned char *) key->getKey()->internalArray(), key->getKey()->length(), false);
+}