From 013db25897ed1e77805010023c82ca7bf1e64512 Mon Sep 17 00:00:00 2001 From: levlam Date: Sun, 27 Sep 2020 22:07:42 +0300 Subject: [PATCH] Improve AES CTR test. GitOrigin-RevId: a65b34e408f972e737489222d9f3e0604582fa3d --- tdutils/test/crypto.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tdutils/test/crypto.cpp b/tdutils/test/crypto.cpp index 1a634b2e1..cfa46d1a6 100644 --- a/tdutils/test/crypto.cpp +++ b/tdutils/test/crypto.cpp @@ -71,17 +71,32 @@ TEST(Crypto, AesCtrState) { td::AesCtrState state; state.init(as_slice(key), as_slice(iv)); td::string t(length, '\0'); - state.encrypt(s, t); + std::size_t pos = 0; + for (auto str : td::rand_split(td::string(length, '\0'))) { + auto len = str.size(); + state.encrypt(td::Slice(s).substr(pos, len), td::MutableSlice(t).substr(pos, len)); + pos += len; + } ASSERT_EQ(answers1[i], td::crc32(t)); state.init(as_slice(key), as_slice(iv)); - state.decrypt(t, t); + pos = 0; + for (auto str : td::rand_split(td::string(length, '\0'))) { + auto len = str.size(); + state.decrypt(td::Slice(t).substr(pos, len), td::MutableSlice(t).substr(pos, len)); + pos += len; + } ASSERT_STREQ(td::base64_encode(s), td::base64_encode(t)); for (auto &c : iv.raw) { c = 0xFF; } state.init(as_slice(key), as_slice(iv)); - state.encrypt(s, t); + pos = 0; + for (auto str : td::rand_split(td::string(length, '\0'))) { + auto len = str.size(); + state.encrypt(td::Slice(s).substr(pos, len), td::MutableSlice(t).substr(pos, len)); + pos += len; + } ASSERT_EQ(answers2[i], td::crc32(t)); i++;