-// result = HMAC(EVP_sha256(), key, 999, data, 888, NULL, NULL);
-// EVP_MD *
+ HMAC_CTX_init(&hctx);
+ if (!HMAC_Init_ex(&hctx, key, keylen, EVP_sha1(), NULL))
+ return ERR_get_error();
+ if (!HMAC_Update(&hctx, pt, tlen)) return ERR_get_error();
+ if (!HMAC_Final(&hctx, tag, (unsigned int *)taglen))
+ return ERR_get_error();
+ HMAC_CTX_cleanup(&hctx);
+#else
+ if (HMAC(EVP_sha1(), key, keylen, pt, tlen,
+ tag, (unsigned int *)taglen) != tag)
+ return ERR_get_error();
+#endif
+ return 0UL;
+}