Add Protocol::SignedMessage::serialize

This commit is contained in:
2026-08-05 06:22:51 +03:00
parent 11d207d58f
commit d046cb3412
3 changed files with 23 additions and 29 deletions
+4 -15
View File
@@ -11,22 +11,11 @@ TEST_CASE("SignedMessage", "[protocol]") {
crypto_sign_keypair(pub_key, priv_key);
auto msg = Protocol::SignedMessage(pub_key, priv_key, "Hello, world!");
std::vector<uint8_t> toBeSigned;
toBeSigned.reserve(sizeof(msg.sender_key_fingerprint) +
msg.plaintext.size() + sizeof(msg.timestamp));
toBeSigned.insert(toBeSigned.cend(), msg.sender_key_fingerprint,
msg.sender_key_fingerprint +
sizeof(msg.sender_key_fingerprint));
toBeSigned.insert(toBeSigned.cend(), msg.plaintext.data(),
msg.plaintext.data() + msg.plaintext.length());
auto timestamp_bytes = reinterpret_cast<const uint8_t *>(&msg.timestamp);
toBeSigned.insert(toBeSigned.cend(), timestamp_bytes,
timestamp_bytes + sizeof(msg.timestamp));
auto to_be_signed = msg.serialize();
SECTION("signed message") {
REQUIRE(crypto_sign_verify_detached(
msg.sender_key_signature, toBeSigned.data(),
toBeSigned.size(), pub_key) == 0);
REQUIRE(
crypto_sign_verify_detached(msg.signature, to_be_signed.data(),
to_be_signed.size(), pub_key) == 0);
}
}