commit 267e16ea616b3466652bfee81fec507ea45d96a6 Author: David Goulet dgoulet@torproject.org Date: Mon Jul 4 12:05:48 2016 -0400
sr: add the base16 RSA identity digest to commit
Keep the base16 representation of the RSA identity digest in the commit object so we can use it without using hex_str() or dynamically encoding it everytime we need it. It's used extensively in the logs for instance.
Fixes #19561
Signed-off-by: David Goulet dgoulet@torproject.org --- src/or/shared_random.c | 2 ++ src/or/shared_random.h | 7 ++++--- src/test/test_shared_random.c | 12 ++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/src/or/shared_random.c b/src/or/shared_random.c index e9e6cbc..612e1c6 100644 --- a/src/or/shared_random.c +++ b/src/or/shared_random.c @@ -140,6 +140,8 @@ commit_new(const char *rsa_identity) commit = tor_malloc_zero(sizeof(*commit)); commit->alg = SR_DIGEST_ALG; memcpy(commit->rsa_identity, rsa_identity, sizeof(commit->rsa_identity)); + base16_encode(commit->rsa_identity_hex, sizeof(commit->rsa_identity_hex), + commit->rsa_identity, sizeof(commit->rsa_identity)); return commit; }
diff --git a/src/or/shared_random.h b/src/or/shared_random.h index 51f3b55..7c0a3e7 100644 --- a/src/or/shared_random.h +++ b/src/or/shared_random.h @@ -76,8 +76,10 @@ typedef struct sr_commit_t {
/* Commit owner info */
- /* The RSA identity key of the authority. */ + /* The RSA identity key of the authority and it's base16 representation + * which includes the NUL terminated byte. */ char rsa_identity[DIGEST_LEN]; + char rsa_identity_hex[HEX_DIGEST_LEN + 1];
/* Commitment information */
@@ -121,8 +123,7 @@ void sr_srv_encode(char *dst, size_t dst_len, const sr_srv_t *srv); static inline const char *sr_commit_get_rsa_fpr(const sr_commit_t *commit) { - return hex_str((const char *) commit->rsa_identity, - sizeof(commit->rsa_identity)); + return commit->rsa_identity_hex; }
void sr_compute_srv(void); diff --git a/src/test/test_shared_random.c b/src/test/test_shared_random.c index d001785..270cd81 100644 --- a/src/test/test_shared_random.c +++ b/src/test/test_shared_random.c @@ -702,6 +702,9 @@ test_sr_setup_commits(void)
/* Do some surgery on the commit */ memset(commit_a->rsa_identity, 'A', sizeof(commit_a->rsa_identity)); + base16_encode(commit_a->rsa_identity_hex, + sizeof(commit_a->rsa_identity_hex), commit_a->rsa_identity, + sizeof(commit_a->rsa_identity)); strlcpy(commit_a->encoded_reveal, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", sizeof(commit_a->encoded_reveal)); @@ -716,6 +719,9 @@ test_sr_setup_commits(void)
/* Do some surgery on the commit */ memset(commit_b->rsa_identity, 'B', sizeof(commit_b->rsa_identity)); + base16_encode(commit_b->rsa_identity_hex, + sizeof(commit_b->rsa_identity_hex), commit_b->rsa_identity, + sizeof(commit_b->rsa_identity)); strlcpy(commit_b->encoded_reveal, "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB", sizeof(commit_b->encoded_reveal)); @@ -730,6 +736,9 @@ test_sr_setup_commits(void)
/* Do some surgery on the commit */ memset(commit_c->rsa_identity, 'C', sizeof(commit_c->rsa_identity)); + base16_encode(commit_c->rsa_identity_hex, + sizeof(commit_c->rsa_identity_hex), commit_c->rsa_identity, + sizeof(commit_c->rsa_identity)); strlcpy(commit_c->encoded_reveal, "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC", sizeof(commit_c->encoded_reveal)); @@ -744,6 +753,9 @@ test_sr_setup_commits(void)
/* Do some surgery on the commit */ memset(commit_d->rsa_identity, 'D', sizeof(commit_d->rsa_identity)); + base16_encode(commit_d->rsa_identity_hex, + sizeof(commit_d->rsa_identity_hex), commit_d->rsa_identity, + sizeof(commit_d->rsa_identity)); strlcpy(commit_d->encoded_reveal, "DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD", sizeof(commit_d->encoded_reveal));