diff options
author | iphydf <iphydf@users.noreply.github.com> | 2016-12-16 03:00:55 +0000 |
---|---|---|
committer | iphydf <iphydf@users.noreply.github.com> | 2017-12-29 23:24:54 +0000 |
commit | d26f0eb3bcdd622cc8adae98974a27d7487fc6cb (patch) | |
tree | 5643926efde516051ee9fe9efa9e6f9b04ea0548 /auto_tests/encryptsave_test.c | |
parent | 2c8fb05f6e1631403053ef8648d5860e0ec15cc3 (diff) |
Change toxencryptsave API to never overwrite pass keys.
Diffstat (limited to 'auto_tests/encryptsave_test.c')
-rw-r--r-- | auto_tests/encryptsave_test.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/auto_tests/encryptsave_test.c b/auto_tests/encryptsave_test.c index dfe85710..7442d4fc 100644 --- a/auto_tests/encryptsave_test.c +++ b/auto_tests/encryptsave_test.c | |||
@@ -103,7 +103,8 @@ START_TEST(test_save_friend) | |||
103 | size = tox_get_savedata_size(tox3); | 103 | size = tox_get_savedata_size(tox3); |
104 | VLA(uint8_t, data2, size); | 104 | VLA(uint8_t, data2, size); |
105 | tox_get_savedata(tox3, data2); | 105 | tox_get_savedata(tox3, data2); |
106 | Tox_Pass_Key *key = tox_pass_key_new(); | 106 | TOX_ERR_KEY_DERIVATION keyerr; |
107 | Tox_Pass_Key *key = tox_pass_key_derive((const uint8_t *)"123qweasdzxc", 12, &keyerr); | ||
107 | ck_assert_msg(key != NULL, "pass key allocation failure"); | 108 | ck_assert_msg(key != NULL, "pass key allocation failure"); |
108 | memcpy((uint8_t *)key, test_salt, TOX_PASS_SALT_LENGTH); | 109 | memcpy((uint8_t *)key, test_salt, TOX_PASS_SALT_LENGTH); |
109 | memcpy((uint8_t *)key + TOX_PASS_SALT_LENGTH, known_key2, TOX_PASS_KEY_LENGTH); | 110 | memcpy((uint8_t *)key + TOX_PASS_SALT_LENGTH, known_key2, TOX_PASS_KEY_LENGTH); |
@@ -146,14 +147,12 @@ START_TEST(test_keys) | |||
146 | TOX_ERR_ENCRYPTION encerr; | 147 | TOX_ERR_ENCRYPTION encerr; |
147 | TOX_ERR_DECRYPTION decerr; | 148 | TOX_ERR_DECRYPTION decerr; |
148 | TOX_ERR_KEY_DERIVATION keyerr; | 149 | TOX_ERR_KEY_DERIVATION keyerr; |
149 | Tox_Pass_Key *key = tox_pass_key_new(); | 150 | Tox_Pass_Key *key = tox_pass_key_derive((const uint8_t *)"123qweasdzxc", 12, &keyerr); |
150 | ck_assert_msg(key != NULL, "pass key allocation failure"); | 151 | ck_assert_msg(key != NULL, "generic failure 1: %u", keyerr); |
151 | bool ret = tox_pass_key_derive(key, (const uint8_t *)"123qweasdzxc", 12, &keyerr); | ||
152 | ck_assert_msg(ret, "generic failure 1: %u", keyerr); | ||
153 | const uint8_t *string = (const uint8_t *)"No Patrick, mayonnaise is not an instrument."; // 44 | 152 | const uint8_t *string = (const uint8_t *)"No Patrick, mayonnaise is not an instrument."; // 44 |
154 | 153 | ||
155 | uint8_t encrypted[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; | 154 | uint8_t encrypted[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; |
156 | ret = tox_pass_key_encrypt(key, string, 44, encrypted, &encerr); | 155 | bool ret = tox_pass_key_encrypt(key, string, 44, encrypted, &encerr); |
157 | ck_assert_msg(ret, "generic failure 2: %u", encerr); | 156 | ck_assert_msg(ret, "generic failure 2: %u", encerr); |
158 | 157 | ||
159 | uint8_t encrypted2[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; | 158 | uint8_t encrypted2[44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH]; |
@@ -186,10 +185,8 @@ START_TEST(test_keys) | |||
186 | TOX_ERR_GET_SALT salt_err; | 185 | TOX_ERR_GET_SALT salt_err; |
187 | ck_assert_msg(tox_get_salt(encrypted, salt, &salt_err), "couldn't get salt"); | 186 | ck_assert_msg(tox_get_salt(encrypted, salt, &salt_err), "couldn't get salt"); |
188 | ck_assert_msg(salt_err == TOX_ERR_GET_SALT_OK, "get_salt returned an error"); | 187 | ck_assert_msg(salt_err == TOX_ERR_GET_SALT_OK, "get_salt returned an error"); |
189 | Tox_Pass_Key *key2 = tox_pass_key_new(); | 188 | Tox_Pass_Key *key2 = tox_pass_key_derive_with_salt((const uint8_t *)"123qweasdzxc", 12, salt, &keyerr); |
190 | ck_assert_msg(key != NULL, "pass key allocation failure"); | 189 | ck_assert_msg(key2 != NULL, "generic failure 7: %u", keyerr); |
191 | ret = tox_pass_key_derive_with_salt(key2, (const uint8_t *)"123qweasdzxc", 12, salt, &keyerr); | ||
192 | ck_assert_msg(ret, "generic failure 7: %u", keyerr); | ||
193 | ck_assert_msg(0 == memcmp(key, key2, TOX_PASS_KEY_LENGTH + TOX_PASS_SALT_LENGTH), "salt comparison failed"); | 190 | ck_assert_msg(0 == memcmp(key, key2, TOX_PASS_KEY_LENGTH + TOX_PASS_SALT_LENGTH), "salt comparison failed"); |
194 | tox_pass_key_free(key2); | 191 | tox_pass_key_free(key2); |
195 | tox_pass_key_free(key); | 192 | tox_pass_key_free(key); |