diff --git a/tests/unit-tests/crypto-helper.t.cpp b/tests/unit-tests/crypto-helper.t.cpp
new file mode 100644
index 0000000..4576942
--- /dev/null
+++ b/tests/unit-tests/crypto-helper.t.cpp
@@ -0,0 +1,217 @@
+/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
+/**
+ * Copyright (c) 2017-2019, Regents of the University of California.
+ *
+ * This file is part of ndncert, a certificate management system based on NDN.
+ *
+ * ndncert is free software: you can redistribute it and/or modify it under the terms
+ * of the GNU General Public License as published by the Free Software Foundation, either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * ndncert is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received copies of the GNU General Public License along with
+ * ndncert, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * See AUTHORS.md for complete list of ndncert authors and contributors.
+ */
+
+#include "crypto-support/crypto-helper.hpp"
+#include "test-common.hpp"
+#include <iostream>
+
+namespace ndn {
+namespace ndncert {
+namespace tests {
+
+BOOST_AUTO_TEST_SUITE(TestCryptoHelper)
+
+BOOST_AUTO_TEST_CASE(Test0)
+{
+  ECDHState aliceState;
+  auto alicePub = aliceState.getRawSelfPubKey();
+  BOOST_CHECK(aliceState.context->publicKeyLen != 0);
+
+  ECDHState bobState;
+  auto bobPub = bobState.getRawSelfPubKey();
+  BOOST_CHECK(bobState.context->publicKeyLen != 0);
+
+  auto aliceResult = aliceState.deriveSecret(
+        bobPub, bobState.context->publicKeyLen);
+
+  BOOST_CHECK(aliceState.context->sharedSecretLen != 0);
+
+  auto bobResult = bobState.deriveSecret(
+        alicePub, aliceState.context->publicKeyLen);
+
+  BOOST_CHECK(bobState.context->sharedSecretLen != 0);
+
+  BOOST_CHECK_EQUAL_COLLECTIONS(aliceResult, aliceResult + 32,
+                                bobResult, bobResult + 32);
+}
+
+BOOST_AUTO_TEST_CASE(Test1)
+{
+  ECDHState aliceState;
+  auto alicePub = aliceState.getBase64PubKey();
+  BOOST_CHECK(alicePub != "");
+
+  ECDHState bobState;
+  auto bobPub = bobState.getBase64PubKey();
+  BOOST_CHECK(bobPub != "");
+
+  auto aliceResult = aliceState.deriveSecret(bobPub);
+  BOOST_CHECK(aliceState.context->sharedSecretLen != 0);
+
+  auto bobResult = bobState.deriveSecret(alicePub);
+  BOOST_CHECK(bobState.context->sharedSecretLen != 0);
+
+  BOOST_CHECK_EQUAL_COLLECTIONS(aliceResult, aliceResult + 32,
+                                bobResult, bobResult + 32);
+}
+
+
+BOOST_AUTO_TEST_CASE(NDN_COMPUTE_HMAC_SHA256_TEST1)
+{
+  uint8_t secret[] = {0x00,0x01,0x02,0x03,0x04,0x05,
+                 0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c};
+
+  uint8_t salt[] = {0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b};
+
+  uint8_t result[32];
+
+  uint8_t expected[] = {0x07,0x77,0x09,0x36,0x2c,0x2e,0x32,
+                        0xdf,0x0d,0xdc,0x3f,0x0d,0xc4,0x7b,
+                        0xba,0x63,0x90,0xb6,0xc7,0x3b,0xb5,
+                        0x0f,0x9c,0x31,0x22,0xec,0x84,0x4a,
+                        0xd7,0xc2,0xb3,0xe5};
+
+  ndn_compute_hmac_sha256(salt, sizeof(salt), secret, sizeof(secret), result);
+  BOOST_CHECK(memcmp(expected, result, sizeof(result)) == 0);
+}
+
+BOOST_AUTO_TEST_CASE(IETF_TEST_1)
+{
+  uint8_t secret[] = {0x00,0x01,0x02,0x03,0x04,0x05,
+                      0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c};
+
+  uint8_t salt[] = {0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b,0x0b,0x0b,0x0b};
+
+  uint8_t info[] = {0xf0,0xf1,0xf2,0xf3,0xf4,
+                    0xf5,0xf6,0xf7,0xf8,0xf9};
+
+  uint8_t result[42];
+  uint8_t expected[] = {0x3c,0xb2,0x5f,0x25,0xfa,0xac,0xd5,0x7a,0x90,0x43,
+                        0x4f,0x64,0xd0,0x36,0x2f,0x2a,0x2d,0x2d,0x0a,0x90,
+                        0xcf,0x1a,0x5a,0x4c,0x5d,0xb0,0x2d,0x56,0xec,0xc4,
+                        0xc5,0xbf,0x34,0x00,0x72,0x08,0xd5,0xb8,0x87,0x18,
+                        0x58,0x65};
+
+  auto resultLen = hkdf(secret, sizeof(secret),
+                        salt,sizeof(salt),
+                        result, sizeof(result),
+                        info, sizeof(info));
+
+  BOOST_CHECK(resultLen != 0);
+  BOOST_CHECK(memcmp(expected, result, sizeof(result)) == 0);
+}
+
+BOOST_AUTO_TEST_CASE(IETF_TEST_2)
+{
+  uint8_t secret[] = {0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,
+                      0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,
+                      0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,
+                      0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+                      0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
+                      0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
+                      0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
+                      0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f,
+                      0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
+                      0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf};
+
+  uint8_t salt[] = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,
+                    0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,
+                    0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,
+                    0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,
+                    0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
+                    0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,
+                    0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,
+                    0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f,
+                    0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,
+                    0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f};
+
+  uint8_t info[] = {0xb0,0xb1,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,
+                    0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xbf,
+                    0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,
+                    0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,
+                    0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,
+                    0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,
+                    0xe0,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,
+                    0xe8,0xe9,0xea,0xeb,0xec,0xed,0xee,0xef,
+                    0xf0,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,
+                    0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfe,0xff};
+
+  uint8_t result[82];
+  uint8_t expected[] = {0xb1,0x1e,0x39,0x8d,0xc8,0x03,0x27,
+                        0xa1,0xc8,0xe7,0xf7,0x8c,0x59,0x6a,
+                        0x49,0x34,0x4f,0x01,0x2e,0xda,0x2d,
+                        0x4e,0xfa,0xd8,0xa0,0x50,0xcc,0x4c,
+                        0x19,0xaf,0xa9,0x7c,0x59,0x04,0x5a,
+                        0x99,0xca,0xc7,0x82,0x72,0x71,0xcb,
+                        0x41,0xc6,0x5e,0x59,0x0e,0x09,0xda,
+                        0x32,0x75,0x60,0x0c,0x2f,0x09,0xb8,
+                        0x36,0x77,0x93,0xa9,0xac,0xa3,0xdb,
+                        0x71,0xcc,0x30,0xc5,0x81,0x79,0xec,
+                        0x3e,0x87,0xc1,0x4c,0x01,0xd5,0xc1,
+                        0xf3,0x43,0x4f,0x1d,0x87};
+
+  auto resultLen = hkdf(secret, sizeof(secret),
+                        salt,sizeof(salt),
+                        result, sizeof(result),
+                        info, sizeof(info));
+
+  BOOST_CHECK(resultLen != 0);
+  BOOST_CHECK(memcmp(expected, result, 42) == 0);
+}
+
+BOOST_AUTO_TEST_CASE(IETF_TEST_3)
+{
+  //uint8_t secret[] = {}; secret is empty in this test
+
+  uint8_t salt[] = {0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,0x0b,
+                    0x0b,0x0b,0x0b,0x0b,0x0b,0x0b};
+
+  //uint8_t info[] = {}; info is empty in this test
+
+  uint8_t result[42];
+  uint8_t expected[] = {0x8d,0xa4,0xe7,0x75,0xa5,0x63,0xc1,0x8f,
+                        0x71,0x5f,0x80,0x2a,0x06,0x3c,0x5a,0x31,
+                        0xb8,0xa1,0x1f,0x5c,0x5e,0xe1,0x87,0x9e,
+                        0xc3,0x45,0x4e,0x5f,0x3c,0x73,0x8d,0x2d,
+                        0x9d,0x20,0x13,0x95,0xfa,0xa4,0xb6,0x1a,
+                        0x96,0xc8};
+
+  auto resultLen = hkdf(nullptr, 0,
+                        salt,sizeof(salt),
+                        result, sizeof(result),
+                        nullptr, 0);
+
+  BOOST_CHECK(resultLen != 0);
+  BOOST_CHECK(memcmp(expected, result, sizeof(result)) == 0);
+}
+
+
+BOOST_AUTO_TEST_SUITE_END()
+
+} // namespace tests
+} // namespace ndncert
+} // namespace ndn
