global: adapt callers to use generic hash context helpers
Adapt callers to use generic hash context helpers instead of using the hash algorithm to update them. This makes the callsites easier to reason about and removes the possibility that the wrong hash algorithm is used to update the hash context's state. And as a nice side effect this also gets rid of a bunch of users of `the_hash_algo`. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
b2755c15e2
commit
0578f1e66a
@@ -572,8 +572,8 @@ static void hmac_hash(unsigned char *out,
|
||||
memset(key, '\0', GIT_MAX_BLKSZ);
|
||||
if (the_hash_algo->blksz < key_len) {
|
||||
the_hash_algo->init_fn(&ctx);
|
||||
the_hash_algo->update_fn(&ctx, key_in, key_len);
|
||||
the_hash_algo->final_fn(key, &ctx);
|
||||
git_hash_update(&ctx, key_in, key_len);
|
||||
git_hash_final(key, &ctx);
|
||||
} else {
|
||||
memcpy(key, key_in, key_len);
|
||||
}
|
||||
@@ -586,15 +586,15 @@ static void hmac_hash(unsigned char *out,
|
||||
|
||||
/* RFC 2104 2. (3) & (4) */
|
||||
the_hash_algo->init_fn(&ctx);
|
||||
the_hash_algo->update_fn(&ctx, k_ipad, sizeof(k_ipad));
|
||||
the_hash_algo->update_fn(&ctx, text, text_len);
|
||||
the_hash_algo->final_fn(out, &ctx);
|
||||
git_hash_update(&ctx, k_ipad, sizeof(k_ipad));
|
||||
git_hash_update(&ctx, text, text_len);
|
||||
git_hash_final(out, &ctx);
|
||||
|
||||
/* RFC 2104 2. (6) & (7) */
|
||||
the_hash_algo->init_fn(&ctx);
|
||||
the_hash_algo->update_fn(&ctx, k_opad, sizeof(k_opad));
|
||||
the_hash_algo->update_fn(&ctx, out, the_hash_algo->rawsz);
|
||||
the_hash_algo->final_fn(out, &ctx);
|
||||
git_hash_update(&ctx, k_opad, sizeof(k_opad));
|
||||
git_hash_update(&ctx, out, the_hash_algo->rawsz);
|
||||
git_hash_final(out, &ctx);
|
||||
}
|
||||
|
||||
static char *prepare_push_cert_nonce(const char *path, timestamp_t stamp)
|
||||
|
||||
Reference in New Issue
Block a user