security: add HMAC support in verification helpers

Add two more verifySignature() overloads with tpm and keyname as parameters

Change-Id: I53ef8f15c8764b17a26df3216c25f6b19f7c1719
diff --git a/tests/unit/security/v2/key-chain.t.cpp b/tests/unit/security/v2/key-chain.t.cpp
index 17f8569..1d25e59 100644
--- a/tests/unit/security/v2/key-chain.t.cpp
+++ b/tests/unit/security/v2/key-chain.t.cpp
@@ -366,19 +366,8 @@
       BOOST_CHECK_EQUAL(data.getSignature().getType(), tlv::SignatureHmacWithSha256);
       BOOST_CHECK_EQUAL(interestSignature.getType(), tlv::SignatureHmacWithSha256);
 
-      BOOST_CHECK(bool(tpm.verify(data.wireEncode().value(),
-                                  data.wireEncode().value_size() - data.getSignature().getValue().size(),
-                                  data.getSignature().getValue().value(),
-                                  data.getSignature().getValue().value_size(),
-                                  keyName, DigestAlgorithm::SHA256)));
-
-      const Name& interestName = interest.getName();
-      auto nameBlock = interestName.wireEncode();
-      BOOST_CHECK(bool(tpm.verify(nameBlock.value(),
-                                  nameBlock.value_size() - interestName[signed_interest::POS_SIG_VALUE].size(),
-                                  interestName[signed_interest::POS_SIG_VALUE].blockFromValue().value(),
-                                  interestName[signed_interest::POS_SIG_VALUE].blockFromValue().value_size(),
-                                  keyName, DigestAlgorithm::SHA256)));
+      BOOST_CHECK(bool(verifySignature(data, tpm, keyName, DigestAlgorithm::SHA256)));
+      BOOST_CHECK(bool(verifySignature(interest, tpm, keyName, DigestAlgorithm::SHA256)));
     }
     else {
       BOOST_CHECK_EQUAL(data.getSignature().getType(), tlv::SignatureSha256WithEcdsa);
diff --git a/tests/unit/security/verification-helpers.t.cpp b/tests/unit/security/verification-helpers.t.cpp
index 977ec30..c0c6b5a 100644
--- a/tests/unit/security/verification-helpers.t.cpp
+++ b/tests/unit/security/verification-helpers.t.cpp
@@ -469,6 +469,25 @@
   // - pib::Key version is tested as part of v2/key-chain.t.cpp (Security/V2/TestKeyChain)
 }
 
+BOOST_FIXTURE_TEST_CASE(VerifyHmac, IdentityManagementFixture)
+{
+  const Tpm& tpm = m_keyChain.getTpm();
+  Data data("/data");
+  Interest interest("/interest");
+  SigningInfo signingInfo;
+  signingInfo.setSigningHmacKey("QjM3NEEyNkE3MTQ5MDQzN0FBMDI0RTRGQURENUI0OTdGREZGMUE4RUE2RkYxMkY2"
+                                "RkI2NUFGMjcyMEI1OUNDRg==");
+  signingInfo.setDigestAlgorithm(DigestAlgorithm::SHA256);
+
+  BOOST_CHECK(!verifySignature(data, tpm, signingInfo.getSignerName(), DigestAlgorithm::SHA256));
+  BOOST_CHECK(!verifySignature(interest, tpm, signingInfo.getSignerName(), DigestAlgorithm::SHA256));
+
+  m_keyChain.sign(data, signingInfo);
+  m_keyChain.sign(interest, signingInfo);
+  BOOST_CHECK(verifySignature(data, tpm, signingInfo.getSignerName(), DigestAlgorithm::SHA256));
+  BOOST_CHECK(verifySignature(interest, tpm, signingInfo.getSignerName(), DigestAlgorithm::SHA256));
+}
+
 using DigestDatasets = boost::mpl::vector<Sha256Dataset>;
 
 BOOST_AUTO_TEST_CASE_TEMPLATE(VerifyDigest, Dataset, DigestDatasets)