[tor-commits] [tor/master] Hide crypto_digest_t again and use an accessor for tests.

nickm at torproject.org nickm at torproject.org
Fri Jul 7 15:19:28 UTC 2017


commit f35f52e8697407dde391ebc4f1be6ba76e1a1bb2
Author: George Kadianakis <desnacked at riseup.net>
Date:   Thu Jul 6 16:39:48 2017 +0300

    Hide crypto_digest_t again and use an accessor for tests.
---
 src/common/crypto.c        | 27 +++++++++++++++++++++++++++
 src/common/crypto.h        | 16 +---------------
 src/test/test_hs_client.c  | 12 ++++++++----
 src/test/test_hs_service.c |  6 ++++--
 4 files changed, 40 insertions(+), 21 deletions(-)

diff --git a/src/common/crypto.c b/src/common/crypto.c
index 8b214a6..875b4ee 100644
--- a/src/common/crypto.c
+++ b/src/common/crypto.c
@@ -1839,6 +1839,33 @@ crypto_digest_algorithm_get_length(digest_algorithm_t alg)
   }
 }
 
+/** Intermediate information about the digest of a stream of data. */
+struct crypto_digest_t {
+  digest_algorithm_t algorithm; /**< Which algorithm is in use? */
+   /** State for the digest we're using.  Only one member of the
+    * union is usable, depending on the value of <b>algorithm</b>. Note also
+    * that space for other members might not even be allocated!
+    */
+  union {
+    SHA_CTX sha1; /**< state for SHA1 */
+    SHA256_CTX sha2; /**< state for SHA256 */
+    SHA512_CTX sha512; /**< state for SHA512 */
+    keccak_state sha3; /**< state for SHA3-[256,512] */
+  } d;
+};
+
+#ifdef TOR_UNIT_TESTS
+
+digest_algorithm_t
+crypto_digest_get_algorithm(crypto_digest_t *digest)
+{
+  tor_assert(digest);
+
+  return digest->algorithm;
+}
+
+#endif
+
 /**
  * Return the number of bytes we need to malloc in order to get a
  * crypto_digest_t for <b>alg</b>, or the number of bytes we need to wipe
diff --git a/src/common/crypto.h b/src/common/crypto.h
index 3766830..5951321 100644
--- a/src/common/crypto.h
+++ b/src/common/crypto.h
@@ -339,21 +339,6 @@ void crypto_add_spaces_to_fp(char *out, size_t outlen, const char *in);
 
 #ifdef CRYPTO_PRIVATE
 
-/** Intermediate information about the digest of a stream of data. */
-struct crypto_digest_t {
-  digest_algorithm_t algorithm; /**< Which algorithm is in use? */
-   /** State for the digest we're using.  Only one member of the
-    * union is usable, depending on the value of <b>algorithm</b>. Note also
-    * that space for other members might not even be allocated!
-    */
-  union {
-    SHA_CTX sha1; /**< state for SHA1 */
-    SHA256_CTX sha2; /**< state for SHA256 */
-    SHA512_CTX sha512; /**< state for SHA512 */
-    keccak_state sha3; /**< state for SHA3-[256,512] */
-  } d;
-};
-
 STATIC int crypto_force_rand_ssleay(void);
 STATIC int crypto_strongest_rand_raw(uint8_t *out, size_t out_len);
 
@@ -365,6 +350,7 @@ extern int break_strongest_rng_fallback;
 
 #ifdef TOR_UNIT_TESTS
 void crypto_pk_assign_(crypto_pk_t *dest, const crypto_pk_t *src);
+digest_algorithm_t crypto_digest_get_algorithm(crypto_digest_t *digest);
 #endif
 
 #endif
diff --git a/src/test/test_hs_client.c b/src/test/test_hs_client.c
index 938d3d2..77fee88 100644
--- a/src/test/test_hs_client.c
+++ b/src/test/test_hs_client.c
@@ -188,8 +188,10 @@ test_e2e_rend_circuit_setup_legacy(void *arg)
   tt_int_op(retval, OP_EQ, 1);
 
   /* Check the digest algo */
-  tt_int_op(or_circ->cpath->f_digest->algorithm, OP_EQ, DIGEST_SHA1);
-  tt_int_op(or_circ->cpath->b_digest->algorithm, OP_EQ, DIGEST_SHA1);
+  tt_int_op(crypto_digest_get_algorithm(or_circ->cpath->f_digest),
+            OP_EQ, DIGEST_SHA1);
+  tt_int_op(crypto_digest_get_algorithm(or_circ->cpath->b_digest),
+            OP_EQ, DIGEST_SHA1);
   tt_assert(or_circ->cpath->f_crypto);
   tt_assert(or_circ->cpath->b_crypto);
 
@@ -255,8 +257,10 @@ test_e2e_rend_circuit_setup(void *arg)
   tt_int_op(retval, OP_EQ, 1);
 
   /* Check that the crypt path has prop224 algorithm parameters */
-  tt_int_op(or_circ->cpath->f_digest->algorithm, OP_EQ, DIGEST_SHA3_256);
-  tt_int_op(or_circ->cpath->b_digest->algorithm, OP_EQ, DIGEST_SHA3_256);
+  tt_int_op(crypto_digest_get_algorithm(or_circ->cpath->f_digest),
+            OP_EQ, DIGEST_SHA3_256);
+  tt_int_op(crypto_digest_get_algorithm(or_circ->cpath->b_digest),
+            OP_EQ, DIGEST_SHA3_256);
   tt_assert(or_circ->cpath->f_crypto);
   tt_assert(or_circ->cpath->b_crypto);
 
diff --git a/src/test/test_hs_service.c b/src/test/test_hs_service.c
index 5793747..aa9a12e 100644
--- a/src/test/test_hs_service.c
+++ b/src/test/test_hs_service.c
@@ -301,8 +301,10 @@ test_e2e_rend_circuit_setup(void *arg)
   tt_int_op(retval, OP_EQ, 1);
 
   /* Check the digest algo */
-  tt_int_op(or_circ->cpath->f_digest->algorithm, OP_EQ, DIGEST_SHA3_256);
-  tt_int_op(or_circ->cpath->b_digest->algorithm, OP_EQ, DIGEST_SHA3_256);
+  tt_int_op(crypto_digest_get_algorithm(or_circ->cpath->f_digest),
+            OP_EQ, DIGEST_SHA3_256);
+  tt_int_op(crypto_digest_get_algorithm(or_circ->cpath->b_digest),
+            OP_EQ, DIGEST_SHA3_256);
   tt_assert(or_circ->cpath->f_crypto);
   tt_assert(or_circ->cpath->b_crypto);
 





More information about the tor-commits mailing list