summaryrefslogtreecommitdiff
path: root/src/test/test_crypto.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-09-16 10:12:30 -0400
committerNick Mathewson <nickm@torproject.org>2016-09-16 10:12:30 -0400
commitff116b780896bb735f887a669d87694bb6d8a964 (patch)
tree39e931311cd87e89bb1d730b0aee7e2295ffb8f3 /src/test/test_crypto.c
parent981d0a24b81f27a642946648e49b3cadbd0c28b7 (diff)
downloadtor-ff116b780896bb735f887a669d87694bb6d8a964.tar.gz
tor-ff116b780896bb735f887a669d87694bb6d8a964.zip
Simplify the crypto_cipher_t interface and structure
Previously, the IV and key were stored in the structure, even though they mostly weren't needed. The only purpose they had was to support a seldom-used API where you could pass NULL when creating a cipher in order to get a random key/IV, and then pull that key/IV back out. This saves 32 bytes per AES instance, and makes it easier to support different key lengths.
Diffstat (limited to 'src/test/test_crypto.c')
-rw-r--r--src/test/test_crypto.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/test/test_crypto.c b/src/test/test_crypto.c
index d83b93be58..6586c06209 100644
--- a/src/test/test_crypto.c
+++ b/src/test/test_crypto.c
@@ -371,7 +371,7 @@ test_crypto_aes(void *arg)
crypto_cipher_t *env1 = NULL, *env2 = NULL;
int i, j;
char *mem_op_hex_tmp=NULL;
-
+ char key[CIPHER_KEY_LEN];
int use_evp = !strcmp(arg,"evp");
evaluate_evp_for_aes(use_evp);
evaluate_ctr_for_aes();
@@ -387,9 +387,10 @@ test_crypto_aes(void *arg)
memset(data2, 0, 1024);
memset(data3, 0, 1024);
- env1 = crypto_cipher_new(NULL);
+ crypto_rand(key, sizeof(key));
+ env1 = crypto_cipher_new(key);
tt_ptr_op(env1, OP_NE, NULL);
- env2 = crypto_cipher_new(crypto_cipher_get_key(env1));
+ env2 = crypto_cipher_new(key);
tt_ptr_op(env2, OP_NE, NULL);
/* Try encrypting 512 chars. */
@@ -420,7 +421,7 @@ test_crypto_aes(void *arg)
env2 = NULL;
memset(data3, 0, 1024);
- env2 = crypto_cipher_new(crypto_cipher_get_key(env1));
+ env2 = crypto_cipher_new(key);
tt_ptr_op(env2, OP_NE, NULL);
for (j = 0; j < 1024-16; j += 17) {
crypto_cipher_encrypt(env2, data3+j, data1+j, 17);