diff --git a/src/or/shared_random.c b/src/or/shared_random.c index e9e6cbcfde..612e1c6bde 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 51f3b550d8..7c0a3e749d 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 d001785340..270cd81228 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));