From 39a08733094a4dc0870b9a36c182b4009f7811c1 Mon Sep 17 00:00:00 2001
From: Mark Haines <mark.haines@matrix.org>
Date: Tue, 23 Jun 2015 10:03:41 +0100
Subject: [PATCH] This field isn't being used anywhere so don't bother
 including it in the messages

---
 include/axolotl/message.hh |  4 ----
 src/message.cpp            | 10 ----------
 src/session.cpp            |  5 -----
 3 files changed, 19 deletions(-)

diff --git a/include/axolotl/message.hh b/include/axolotl/message.hh
index 5bce277..4d7a1c7 100644
--- a/include/axolotl/message.hh
+++ b/include/axolotl/message.hh
@@ -79,9 +79,7 @@ struct PreKeyMessageWriter {
 
 struct PreKeyMessageReader {
     std::uint8_t version;
-    bool has_registration_id;
     bool has_one_time_key_id;
-    std::uint32_t registration_id;
     std::uint32_t one_time_key_id;
     std::uint8_t const * identity_key; std::size_t identity_key_length;
     std::uint8_t const * base_key; std::size_t base_key_length;
@@ -93,7 +91,6 @@ struct PreKeyMessageReader {
  * The length of the buffer needed to hold a message.
  */
 std::size_t encode_one_time_key_message_length(
-    std::uint32_t registration_id,
     std::uint32_t one_time_key_id,
     std::size_t identity_key_length,
     std::size_t base_key_length,
@@ -108,7 +105,6 @@ std::size_t encode_one_time_key_message_length(
 void encode_one_time_key_message(
     PreKeyMessageWriter & writer,
     std::uint8_t version,
-    std::uint32_t registration_id,
     std::uint32_t one_time_key_id,
     std::size_t identity_key_length,
     std::size_t base_key_length,
diff --git a/src/message.cpp b/src/message.cpp
index d9978cb..6ce8ca6 100644
--- a/src/message.cpp
+++ b/src/message.cpp
@@ -231,7 +231,6 @@ void axolotl::decode_message(
 
 namespace {
 
-static std::uint8_t const REGISTRATION_ID_TAG = 050;
 static std::uint8_t const ONE_TIME_KEY_ID_TAG = 010;
 static std::uint8_t const BASE_KEY_TAG = 022;
 static std::uint8_t const IDENTITY_KEY_TAG = 032;
@@ -241,14 +240,12 @@ static std::uint8_t const MESSAGE_TAG = 042;
 
 
 std::size_t axolotl::encode_one_time_key_message_length(
-    std::uint32_t registration_id,
     std::uint32_t one_time_key_id,
     std::size_t identity_key_length,
     std::size_t base_key_length,
     std::size_t message_length
 ) {
     std::size_t length = VERSION_LENGTH;
-    length += 1 + varint_length(registration_id);
     length += 1 + varint_length(one_time_key_id);
     length += 1 + varstring_length(identity_key_length);
     length += 1 + varstring_length(base_key_length);
@@ -260,7 +257,6 @@ std::size_t axolotl::encode_one_time_key_message_length(
 void axolotl::encode_one_time_key_message(
     axolotl::PreKeyMessageWriter & writer,
     std::uint8_t version,
-    std::uint32_t registration_id,
     std::uint32_t one_time_key_id,
     std::size_t identity_key_length,
     std::size_t base_key_length,
@@ -269,7 +265,6 @@ void axolotl::encode_one_time_key_message(
 ) {
     std::uint8_t * pos = output;
     *(pos++) = version;
-    pos = encode(pos, REGISTRATION_ID_TAG, registration_id);
     pos = encode(pos, ONE_TIME_KEY_ID_TAG, one_time_key_id);
     pos = encode(pos, BASE_KEY_TAG, writer.base_key, base_key_length);
     pos = encode(pos, IDENTITY_KEY_TAG, writer.identity_key, identity_key_length);
@@ -287,17 +282,12 @@ void axolotl::decode_one_time_key_message(
 
     if (pos == end) return;
     reader.version = *(pos++);
-    reader.has_registration_id = false;
     reader.has_one_time_key_id = false;
     reader.identity_key = nullptr;
     reader.base_key = nullptr;
     reader.message = nullptr;
 
     while (pos != end) {
-        pos = decode(
-            pos, end, REGISTRATION_ID_TAG,
-            reader.registration_id, reader.has_registration_id
-        );
         pos = decode(
             pos, end, ONE_TIME_KEY_ID_TAG,
             reader.one_time_key_id, reader.has_one_time_key_id
diff --git a/src/session.cpp b/src/session.cpp
index 7fb07e2..9d0935b 100644
--- a/src/session.cpp
+++ b/src/session.cpp
@@ -112,7 +112,6 @@ bool check_message_fields(
     ok = ok && reader.base_key;
     ok = ok && reader.base_key_length == KEY_LENGTH;
     ok = ok && reader.has_one_time_key_id;
-    ok = ok && reader.has_registration_id;
     return ok;
 }
 
@@ -143,7 +142,6 @@ std::size_t axolotl::Session::new_inbound_session(
         return std::size_t(-1);
     }
 
-    alice_identity_key.id = reader.registration_id;
     std::memcpy(alice_identity_key.key.public_key, reader.identity_key, 32);
     std::memcpy(alice_base_key.public_key, reader.base_key, 32);
     bob_one_time_key_id = reader.one_time_key_id;
@@ -195,7 +193,6 @@ bool axolotl::Session::matches_inbound_session(
         reader.base_key, alice_base_key.public_key, KEY_LENGTH
     );
     same = same && reader.one_time_key_id == bob_one_time_key_id;
-    same = same && reader.registration_id == alice_identity_key.id;
     return same;
 }
 
@@ -221,7 +218,6 @@ std::size_t axolotl::Session::encrypt_message_length(
     }
 
     return encode_one_time_key_message_length(
-        alice_identity_key.id,
         bob_one_time_key_id,
         KEY_LENGTH,
         KEY_LENGTH,
@@ -256,7 +252,6 @@ std::size_t axolotl::Session::encrypt(
         encode_one_time_key_message(
             writer,
             PROTOCOL_VERSION,
-            alice_identity_key.id,
             bob_one_time_key_id,
             KEY_LENGTH,
             KEY_LENGTH,
-- 
GitLab