diff options
-rw-r--r-- | auto_tests/encryptsave_test.c | 4 | ||||
-rw-r--r-- | toxencryptsave/toxencryptsave.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/auto_tests/encryptsave_test.c b/auto_tests/encryptsave_test.c index b0828964..d187e352 100644 --- a/auto_tests/encryptsave_test.c +++ b/auto_tests/encryptsave_test.c | |||
@@ -164,6 +164,10 @@ START_TEST(test_keys) | |||
164 | ck_assert_msg(ret, "generic failure 5: %u", decerr); | 164 | ck_assert_msg(ret, "generic failure 5: %u", decerr); |
165 | ck_assert_msg(memcmp(out2, string, 44) == 0, "decryption 2 failed"); | 165 | ck_assert_msg(memcmp(out2, string, 44) == 0, "decryption 2 failed"); |
166 | 166 | ||
167 | ret = tox_pass_decrypt(encrypted2, 44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH, NULL, 0, out2, &decerr); | ||
168 | ck_assert_msg(!ret, "Decrypt succeeded with wrong pass"); | ||
169 | ck_assert_msg(decerr != TOX_ERR_DECRYPTION_FAILED, "Bad error code %u", decerr); | ||
170 | |||
167 | // test that pass_decrypt can decrypt things from pass_key_encrypt | 171 | // test that pass_decrypt can decrypt things from pass_key_encrypt |
168 | ret = tox_pass_decrypt(encrypted, 44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH, "123qweasdzxc", 12, out1, &decerr); | 172 | ret = tox_pass_decrypt(encrypted, 44 + TOX_PASS_ENCRYPTION_EXTRA_LENGTH, "123qweasdzxc", 12, out1, &decerr); |
169 | ck_assert_msg(ret, "generic failure 6: %u", decerr); | 173 | ck_assert_msg(ret, "generic failure 6: %u", decerr); |
diff --git a/toxencryptsave/toxencryptsave.c b/toxencryptsave/toxencryptsave.c index 162f530c..e6150ce2 100644 --- a/toxencryptsave/toxencryptsave.c +++ b/toxencryptsave/toxencryptsave.c | |||
@@ -96,7 +96,7 @@ bool tox_derive_key_from_pass(const uint8_t *passphrase, size_t pplength, TOX_PA | |||
96 | bool tox_derive_key_with_salt(const uint8_t *passphrase, size_t pplength, const uint8_t *salt, TOX_PASS_KEY *out_key, | 96 | bool tox_derive_key_with_salt(const uint8_t *passphrase, size_t pplength, const uint8_t *salt, TOX_PASS_KEY *out_key, |
97 | TOX_ERR_KEY_DERIVATION *error) | 97 | TOX_ERR_KEY_DERIVATION *error) |
98 | { | 98 | { |
99 | if (pplength == 0 || !passphrase || !salt || !out_key) { | 99 | if (!salt || !out_key || (!passphrase && pplength != 0)) { |
100 | SET_ERROR_PARAMETER(error, TOX_ERR_KEY_DERIVATION_NULL); | 100 | SET_ERROR_PARAMETER(error, TOX_ERR_KEY_DERIVATION_NULL); |
101 | return 0; | 101 | return 0; |
102 | } | 102 | } |
@@ -255,7 +255,7 @@ bool tox_pass_key_decrypt(const uint8_t *data, size_t length, const TOX_PASS_KEY | |||
255 | bool tox_pass_decrypt(const uint8_t *data, size_t length, const uint8_t *passphrase, size_t pplength, uint8_t *out, | 255 | bool tox_pass_decrypt(const uint8_t *data, size_t length, const uint8_t *passphrase, size_t pplength, uint8_t *out, |
256 | TOX_ERR_DECRYPTION *error) | 256 | TOX_ERR_DECRYPTION *error) |
257 | { | 257 | { |
258 | if (length <= TOX_PASS_ENCRYPTION_EXTRA_LENGTH || pplength == 0) { | 258 | if (length <= TOX_PASS_ENCRYPTION_EXTRA_LENGTH) { |
259 | SET_ERROR_PARAMETER(error, TOX_ERR_DECRYPTION_INVALID_LENGTH); | 259 | SET_ERROR_PARAMETER(error, TOX_ERR_DECRYPTION_INVALID_LENGTH); |
260 | return 0; | 260 | return 0; |
261 | } | 261 | } |