git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2] builtin/receive-pack: avoid generic function name hmac()

From
Carlo Marcelo Arenas Belón <carenas@gmail.com>
Date
May 5, 2020, 09:53 UTC
Message-ID
<20200505095326.36374-1-carenas@gmail.com>
In-Reply-To
<20200505054630.5821-1-carenas@gmail.com>

fabec2c5c3 (builtin/receive-pack: switch to use the_hash_algo, 2019-08-18) renames hmac_sha1 to hmac, as it was updated to use the hash function used by git (which won't be sha1 in the future).

hmac() is provided by NetBSD >= 8 libc and therefore conflicts as shown by :
builtin/receive-pack.c:421:13: error: conflicting types for 'hmac'
 static void hmac(unsigned char *out,
             ^~~~
In file included from ./git-compat-util.h:172:0,
                 from ./builtin.h:4,
                 from builtin/receive-pack.c:1:
/usr/include/stdlib.h:305:10: note: previous declaration of 'hmac' was here
 ssize_t  hmac(const char *, const void *, size_t, const void *, size_t, void *,
          ^~~~

Rename it again to hmac_hash to reflect it will use the git's defined hash function and avoid the conflict, while at it update a comment to better describe the HMAC function that was used.

Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com>
---
v2
* cleaner commit message that even has an SOB
 builtin/receive-pack.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 2cc18bbffd..39b0c3d70b 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -418,7 +418,7 @@ static int copy_to_sideband(int in, int out, void *arg)
 	return 0;
 }
 
-static void hmac(unsigned char *out,
+static void hmac_hash(unsigned char *out,
 		      const char *key_in, size_t key_len,
 		      const char *text, size_t text_len)
 {
@@ -463,10 +463,10 @@ static char *prepare_push_cert_nonce(const char *path, timestamp_t stamp)
 	unsigned char hash[GIT_MAX_RAWSZ];
 
 	strbuf_addf(&buf, "%s:%"PRItime, path, stamp);
-	hmac(hash, buf.buf, buf.len, cert_nonce_seed, strlen(cert_nonce_seed));
+	hmac_hash(hash, buf.buf, buf.len, cert_nonce_seed, strlen(cert_nonce_seed));
 	strbuf_release(&buf);
 
-	/* RFC 2104 5. HMAC-SHA1-80 */
+	/* RFC 2104 5. HMAC-SHA1 or HMAC-SHA256 */
 	strbuf_addf(&buf, "%"PRItime"-%.*s", stamp, (int)the_hash_algo->hexsz, hash_to_hex(hash));
 	return strbuf_detach(&buf, NULL);
 }

base-commit: af6b65d45ef179ed52087e80cb089f6b2349f4ec
-- 
2.26.2.686.gfaf46a9ccd
Previous: Carlo Marcelo Arenas BelónNext: brian m. carlson
Message 7 of 8 in “builtin/receive-pack: avoid generic function name hmac”
  1. builtin/receive-pack: avoid generic function name hmacCarlo Marcelo Arenas Belón, May 5, 2020
  2. Eric SunshineMay 5, 2020
  3. Junio C HamanoMay 5, 2020
  4. Carlo Marcelo Arenas BelónMay 5, 2020
  5. brian m. carlsonMay 5, 2020
  6. Carlo Marcelo Arenas BelónMay 5, 2020
  7. builtin/receive-pack: avoid generic function name hmac()Carlo Marcelo Arenas Belón, May 5, 2020
  8. brian m. carlsonMay 5, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.