From 7712ddf8e7fe324ec675da9c6142009b8d29d4d1 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 1 Nov 2007 03:56:17 +0000 Subject: [PATCH] r16317@catbus: nickm | 2007-10-31 23:52:52 -0400 Use HMAC() function from openssl. Oops. svn:r12304 --- src/common/crypto.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/common/crypto.c b/src/common/crypto.c index 8762840a54..4289f48395 100644 --- a/src/common/crypto.c +++ b/src/common/crypto.c @@ -31,6 +31,7 @@ const char crypto_c_id[] = #include #include #include +#include #ifdef HAVE_CTYPE_H #include @@ -1297,6 +1298,7 @@ crypto_digest_assign(crypto_digest_env_t *into, memcpy(into,from,sizeof(crypto_digest_env_t)); } +#if 0 /**DOCDOC */ #define DIGEST_BLOCKSIZE 64 @@ -1344,6 +1346,20 @@ crypto_hmac_sha1(char *hmac_out, SHA1_Update(&sha, D, sizeof(D)); SHA1_Final((unsigned char*)hmac_out, &sha); } +#endif + +/** Compute the HMAC-SHA-1 of the msg_len bytes in msg, using + * the key of length key_len. Store the DIGEST_LEN-byte result + * in hmac_out. + */ +void +crypto_hmac_sha1(char *hmac_out, + const char *key, size_t key_len, + const char *msg, size_t msg_len) +{ + HMAC(EVP_sha1(), key, key_len, (unsigned char*)msg, msg_len, + (unsigned char*)hmac_out, NULL); +} /* DH */