diff options
author | Richard van der Hoff <richard@matrix.org> | 2016-09-01 14:06:57 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2016-09-01 14:06:57 +0100 |
commit | 214e9328069b2c1db59d0ec63b7ff2753a5abfc9 (patch) | |
tree | 62fb26fc8ee3ca6ba30ce28f49ce455844b3fb88 /tests/test_olm.cpp | |
parent | f2906ac0e7a3168a1206beaa1fdd6ba1dd44b62d (diff) | |
parent | 0c462cff112589fc52d13da6c919f881cb6d3f8c (diff) |
Merge branch 'rav/ed25519_fix'
Diffstat (limited to 'tests/test_olm.cpp')
-rw-r--r-- | tests/test_olm.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/test_olm.cpp b/tests/test_olm.cpp index de7e236..af2c9f7 100644 --- a/tests/test_olm.cpp +++ b/tests/test_olm.cpp @@ -65,6 +65,33 @@ assert_equals(pickle1, pickle2, pickle_length); } + +{ + TestCase test_case("Old account unpickle test"); + + // this uses the old pickle format, which did not use enough space + // for the Ed25519 key. We should reject it. + std::uint8_t pickle[] = + "x3h9er86ygvq56pM1yesdAxZou4ResPQC9Rszk/fhEL9JY/umtZ2N/foL/SUgVXS" + "v0IxHHZTafYjDdzJU9xr8dQeBoOTGfV9E/lCqDGBnIlu7SZndqjEKXtzGyQr4sP4" + "K/A/8TOu9iK2hDFszy6xETiousHnHgh2ZGbRUh4pQx+YMm8ZdNZeRnwFGLnrWyf9" + "O5TmXua1FcU"; + + std::uint8_t account_buffer[::olm_account_size()]; + ::OlmAccount *account = ::olm_account(account_buffer); + assert_equals( + std::size_t(-1), + ::olm_unpickle_account( + account, "", 0, pickle, sizeof(pickle)-1 + ) + ); + assert_equals( + std::string("BAD_LEGACY_ACCOUNT_PICKLE"), + std::string(::olm_account_last_error(account)) + ); +} + + { /** Pickle session test */ TestCase test_case("Pickle session test"); |