MCPcopy Create free account
hub / github.com/apache/httpd / md_crypt_hmac64

Function md_crypt_hmac64

modules/md/md_crypt.c:1172–1195  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1170}
1171
1172apr_status_t md_crypt_hmac64(const char **pmac64, const md_data_t *hmac_key,
1173 apr_pool_t *p, const char *d, size_t dlen)
1174{
1175 const char *mac64 = NULL;
1176 unsigned char *s;
1177 unsigned int digest_len = 0;
1178 md_data_t *digest;
1179 apr_status_t rv = APR_SUCCESS;
1180
1181 digest = md_data_pmake(EVP_MAX_MD_SIZE, p);
1182 s = HMAC(EVP_sha256(), (const unsigned char*)hmac_key->data, (int)hmac_key->len,
1183 (const unsigned char*)d, (size_t)dlen,
1184 (unsigned char*)digest->data, &digest_len);
1185 if (!s) {
1186 rv = APR_EINVAL;
1187 goto cleanup;
1188 }
1189 digest->len = digest_len;
1190 mac64 = md_util_base64url_encode(digest, p);
1191
1192cleanup:
1193 *pmac64 = (APR_SUCCESS == rv)? mac64 : NULL;
1194 return rv;
1195}
1196
1197/**************************************************************************************************/
1198/* certificates */

Callers 1

md_jws_hmacFunction · 0.85

Calls 2

md_data_pmakeFunction · 0.85
md_util_base64url_encodeFunction · 0.85

Tested by

no test coverage detected