diff options
| author | Alexander Blair <snipa@jagtech.io> | 2020-08-16 12:39:58 -0700 |
|---|---|---|
| committer | Alexander Blair <snipa@jagtech.io> | 2020-08-16 12:39:59 -0700 |
| commit | 6d29ee6c525dd1aa677e6a2a610f3aeb74fd23b2 (patch) | |
| tree | 90237ee6130b0bcf2c22d3aba121bd944a062df5 /tests/unit_tests/serialization.cpp | |
| parent | e2e09d00c27c804bbc3abc97d42a7e805d5bd0cd (diff) | |
| parent | 921dd8dde5d381052d0aa2936304a3541a230c55 (diff) | |
| download | monzero-core-6d29ee6c525dd1aa677e6a2a610f3aeb74fd23b2.tar.gz monzero-core-6d29ee6c525dd1aa677e6a2a610f3aeb74fd23b2.tar.xz monzero-core-6d29ee6c525dd1aa677e6a2a610f3aeb74fd23b2.zip | |
Merge pull request #6493
921dd8dde Use domain-separated ChaCha20 for in-memory key encryption (Sarang Noether)
Diffstat (limited to 'tests/unit_tests/serialization.cpp')
| -rw-r--r-- | tests/unit_tests/serialization.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/unit_tests/serialization.cpp b/tests/unit_tests/serialization.cpp index ee205e666..b460559ff 100644 --- a/tests/unit_tests/serialization.cpp +++ b/tests/unit_tests/serialization.cpp @@ -616,6 +616,46 @@ TEST(Serialization, serializes_ringct_types) ASSERT_EQ(bp0, bp1); } +TEST(Serialization, key_encryption_transition) +{ + const cryptonote::network_type nettype = cryptonote::TESTNET; + tools::wallet2 w(nettype); + const boost::filesystem::path wallet_file = unit_test::data_dir / "wallet_9svHk1"; + const boost::filesystem::path key_file = unit_test::data_dir / "wallet_9svHk1.keys"; + const boost::filesystem::path temp_wallet_file = unit_test::data_dir / "wallet_9svHk1_temp"; + const boost::filesystem::path temp_key_file = unit_test::data_dir / "wallet_9svHk1_temp.keys"; + string password = "test"; + bool r = false; + + // Copy the original files for this test + boost::filesystem::copy(wallet_file,temp_wallet_file); + boost::filesystem::copy(key_file,temp_key_file); + + try + { + // Key transition + w.load(temp_wallet_file.string(), password); // legacy decryption method + ASSERT_TRUE(w.get_load_info().is_legacy_key_encryption); + const crypto::secret_key view_secret_key = w.get_account().get_keys().m_view_secret_key; + + w.rewrite(temp_wallet_file.string(), password); // transition to new key format + + w.load(temp_wallet_file.string(), password); // new decryption method + ASSERT_FALSE(w.get_load_info().is_legacy_key_encryption); + ASSERT_EQ(w.get_account().get_keys().m_view_secret_key,view_secret_key); + + r = true; + } + catch (const exception& e) + {} + + // Remove the temporary files + boost::filesystem::remove(temp_wallet_file); + boost::filesystem::remove(temp_key_file); + + ASSERT_TRUE(r); +} + TEST(Serialization, portability_wallet) { const cryptonote::network_type nettype = cryptonote::TESTNET; |
