Lines Matching refs:hmac
1 /* $NetBSD: hmac.c,v 1.1 2024/02/18 20:57:49 christos Exp $ */
16 #include <openssl/hmac.h>
20 #include <isc/hmac.h>
32 HMAC_CTX *hmac = HMAC_CTX_new();
33 RUNTIME_CHECK(hmac != NULL);
34 return ((struct hmac *)hmac);
38 isc_hmac_free(isc_hmac_t *hmac) {
39 if (ISC_UNLIKELY(hmac == NULL)) {
43 HMAC_CTX_free(hmac);
47 isc_hmac_init(isc_hmac_t *hmac, const void *key, size_t keylen,
49 REQUIRE(hmac != NULL);
56 if (HMAC_Init_ex(hmac, key, keylen, md_type, NULL) != 1) {
64 isc_hmac_reset(isc_hmac_t *hmac) {
65 REQUIRE(hmac != NULL);
67 if (HMAC_CTX_reset(hmac) != 1) {
75 isc_hmac_update(isc_hmac_t *hmac, const unsigned char *buf, const size_t len) {
76 REQUIRE(hmac != NULL);
82 if (HMAC_Update(hmac, buf, len) != 1) {
90 isc_hmac_final(isc_hmac_t *hmac, unsigned char *digest,
92 REQUIRE(hmac != NULL);
95 if (HMAC_Final(hmac, digest, digestlen) != 1) {
103 isc_hmac_get_md_type(isc_hmac_t *hmac) {
104 REQUIRE(hmac != NULL);
106 return (HMAC_CTX_get_md(hmac));
110 isc_hmac_get_size(isc_hmac_t *hmac) {
111 REQUIRE(hmac != NULL);
113 return ((size_t)EVP_MD_size(HMAC_CTX_get_md(hmac)));
117 isc_hmac_get_block_size(isc_hmac_t *hmac) {
118 REQUIRE(hmac != NULL);
120 return (EVP_MD_block_size(HMAC_CTX_get_md(hmac)));
128 isc_hmac_t *hmac = isc_hmac_new();
130 res = isc_hmac_init(hmac, key, keylen, type);
135 res = isc_hmac_update(hmac, buf, len);
140 res = isc_hmac_final(hmac, digest, digestlen);
145 isc_hmac_free(hmac);