Add HMAC-SHA256 support.

Change-Id: I64c7bdf77388e3cb491b702c52c6746d32f317b0
diff --git a/symmetric_key.cpp b/symmetric_key.cpp
index 5105c7d..9678f9d 100644
--- a/symmetric_key.cpp
+++ b/symmetric_key.cpp
@@ -22,6 +22,7 @@
 #include <openssl/rand.h>
 
 #include "aes_key.h"
+#include "hmac_key.h"
 #include "unencrypted_key_blob.h"
 
 namespace keymaster {
@@ -40,6 +41,9 @@
     case KM_ALGORITHM_AES:
         key.reset(new AesKey(key_description, logger));
         break;
+    case KM_ALGORITHM_HMAC:
+        key.reset(new HmacKey(key_description, logger));
+        break;
     default:
         *error = KM_ERROR_UNSUPPORTED_ALGORITHM;
         return NULL;
@@ -74,6 +78,8 @@
     switch (algorithm) {
     case KM_ALGORITHM_AES:
         return new AesKey(blob, logger, error);
+    case KM_ALGORITHM_HMAC:
+        return new HmacKey(blob, logger, error);
     default:
         *error = KM_ERROR_UNSUPPORTED_ALGORITHM;
         return NULL;