From f58f9e2838827c4f45e7fa2cbff8028011fdb33b Mon Sep 17 00:00:00 2001 From: orignal Date: Sun, 30 Aug 2026 13:24:40 -0400 Subject: [PATCH] correct signature for datagram2 --- libi2pd/Datagram.cpp | 8 ++++---- libi2pd/Datagram.h | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/libi2pd/Datagram.cpp b/libi2pd/Datagram.cpp index 9e3362a2..dbc950f2 100644 --- a/libi2pd/Datagram.cpp +++ b/libi2pd/Datagram.cpp @@ -98,10 +98,10 @@ namespace datagram { constexpr uint8_t flags[] = { 0x00, 0x02 }; // datagram2, no options // signature - std::vector signedData (len + m_From.size () + 2); - memcpy (signedData.data (), m_From.data (), m_From.size ()); - memcpy (signedData.data () + m_From.size (), flags, 2); - memcpy (signedData.data () + m_From.size () + 2, payload, len); + std::vector signedData (len + 32 + 2); + memcpy (signedData.data (), session->GetRemoteIdent (), 32); + memcpy (signedData.data () + 32, flags, 2); + memcpy (signedData.data () + 32 + 2, payload, len); m_Owner->Sign (signedData.data (), signedData.size (), m_Signature.data ()); // TODO: offline signatures and options msg = CreateDataMessage ({{m_From.data (), m_From.size ()}, {flags, 2}, {payload, len}, diff --git a/libi2pd/Datagram.h b/libi2pd/Datagram.h index 22011153..478ec51d 100644 --- a/libi2pd/Datagram.h +++ b/libi2pd/Datagram.h @@ -80,6 +80,7 @@ namespace datagram bool IsRatchets () const { return m_RoutingSession && m_RoutingSession->IsRatchets (); } void SetRemoteLeaseSet (std::shared_ptr ls) { m_RemoteLeaseSet = ls; } std::shared_ptr GetRemoteLeaseSet () const { return m_RemoteLeaseSet; } + const i2p::data::IdentHash& GetRemoteIdent () const { return m_RemoteIdent; } DatagramVersion GetVersion () const { return m_Version; } void SetVersion (DatagramVersion version) { m_Version = version; }