mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-25 07:07:52 +01:00
Rename tor_mem_is_zero to fast_mem_is_zero()
For memeq and friends, "tor_" indicates constant-time and "fast_" indicates optimized. I'm fine with leaving the constant-time "safe_mem_is_zero" with its current name, but the "tor_" prefix on the current optimized version is misleading. Also, make the tor_digest*_is_zero() uniformly constant-time, and add a fast_digest*_is_zero() version to use as needed. A later commit in this branch will fix all the users of tor_mem_is_zero(). Closes ticket 30309.
This commit is contained in:
parent
847fc3280d
commit
309467c64e
3 changed files with 13 additions and 7 deletions
3
changes/bug30309
Normal file
3
changes/bug30309
Normal file
|
@ -0,0 +1,3 @@
|
|||
o Code simplification and refactoring:
|
||||
- Rename tor_mem_is_zero() to fast_mem_is_zero(), to emphasize that
|
||||
it is not a constant-time function. Closes ticket 30309.
|
|
@ -71,7 +71,7 @@ tor_memstr(const void *haystack, size_t hlen, const char *needle)
|
|||
|
||||
/** Return true iff the 'len' bytes at 'mem' are all zero. */
|
||||
int
|
||||
tor_mem_is_zero(const char *mem, size_t len)
|
||||
fast_mem_is_zero(const char *mem, size_t len)
|
||||
{
|
||||
static const char ZERO[] = {
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0,
|
||||
|
@ -95,17 +95,14 @@ tor_mem_is_zero(const char *mem, size_t len)
|
|||
int
|
||||
tor_digest_is_zero(const char *digest)
|
||||
{
|
||||
static const uint8_t ZERO_DIGEST[] = {
|
||||
0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0
|
||||
};
|
||||
return tor_memeq(digest, ZERO_DIGEST, DIGEST_LEN);
|
||||
return safe_mem_is_zero(digest, DIGEST_LEN);
|
||||
}
|
||||
|
||||
/** Return true iff the DIGEST256_LEN bytes in digest are all zero. */
|
||||
int
|
||||
tor_digest256_is_zero(const char *digest)
|
||||
{
|
||||
return tor_mem_is_zero(digest, DIGEST256_LEN);
|
||||
return safe_mem_is_zero(digest, DIGEST256_LEN);
|
||||
}
|
||||
|
||||
/** Remove from the string <b>s</b> every character which appears in
|
||||
|
|
|
@ -20,7 +20,13 @@ const void *tor_memmem(const void *haystack, size_t hlen, const void *needle,
|
|||
size_t nlen);
|
||||
const void *tor_memstr(const void *haystack, size_t hlen,
|
||||
const char *needle);
|
||||
int tor_mem_is_zero(const char *mem, size_t len);
|
||||
int fast_mem_is_zero(const char *mem, size_t len);
|
||||
#define fast_digest_is_zero(d) fast_mem_is_zero((d), DIGEST_LEN)
|
||||
#define fast_digetst256_is_zero(d) fast_mem_is_zero((d), DIGEST256_LEN)
|
||||
|
||||
// XXXX remove this after we replace all users.
|
||||
#define tor_mem_is_zero fast_mem_is_zero
|
||||
|
||||
int tor_digest_is_zero(const char *digest);
|
||||
int tor_digest256_is_zero(const char *digest);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue