From f1cd5613f68beee08ab479edf2a5ae50c91a63fe Mon Sep 17 00:00:00 2001
From: Mark Haines <mark.haines@matrix.org>
Date: Tue, 7 Jul 2015 09:01:38 +0100
Subject: [PATCH] Remove the last resort one time key

---
 include/olm/account.hh | 2 +-
 src/account.cpp        | 7 -------
 src/olm.cpp            | 5 +++--
 3 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/include/olm/account.hh b/include/olm/account.hh
index 2d1c17c..d3bde0d 100644
--- a/include/olm/account.hh
+++ b/include/olm/account.hh
@@ -32,9 +32,9 @@ struct LocalKey {
 
 static std::size_t const MAX_ONE_TIME_KEYS = 100;
 
+
 struct Account {
     LocalKey identity_key;
-    LocalKey last_resort_one_time_key;
     List<LocalKey, MAX_ONE_TIME_KEYS> one_time_keys;
     ErrorCode last_error;
 
diff --git a/src/account.cpp b/src/account.cpp
index 5fa3873..2323856 100644
--- a/src/account.cpp
+++ b/src/account.cpp
@@ -58,10 +58,6 @@ std::size_t olm::Account::new_account(
 
     random += 32;
 
-    last_resort_one_time_key.id = ++id;
-    olm::generate_key(random, last_resort_one_time_key.key);
-    random += 32;
-
     for (unsigned i = 0; i < 10; ++i) {
         LocalKey & key = *one_time_keys.insert(one_time_keys.end());
         key.id = ++id;
@@ -110,7 +106,6 @@ std::size_t olm::pickle_length(
 ) {
     std::size_t length = 0;
     length += olm::pickle_length(value.identity_key);
-    length += olm::pickle_length(value.last_resort_one_time_key);
     length += olm::pickle_length(value.one_time_keys);
     return length;
 }
@@ -121,7 +116,6 @@ std::uint8_t * olm::pickle(
     olm::Account const & value
 ) {
     pos = olm::pickle(pos, value.identity_key);
-    pos = olm::pickle(pos, value.last_resort_one_time_key);
     pos = olm::pickle(pos, value.one_time_keys);
     return pos;
 }
@@ -132,7 +126,6 @@ std::uint8_t const * olm::unpickle(
     olm::Account & value
 ) {
     pos = olm::unpickle(pos, end, value.identity_key);
-    pos = olm::unpickle(pos, end, value.last_resort_one_time_key);
     pos = olm::unpickle(pos, end, value.one_time_keys);
     return pos;
 }
diff --git a/src/olm.cpp b/src/olm.cpp
index f5425fa..3aab4e2 100644
--- a/src/olm.cpp
+++ b/src/olm.cpp
@@ -396,11 +396,12 @@ size_t olm_account_one_time_keys(
         return size_t(-1);
     }
     std::uint8_t * output = from_c(identity_keys);
-    output_key(from_c(account)->last_resort_one_time_key, '[', output);
+    std::uint8_t sep = '[';
     output += OUTPUT_KEY_LENGTH;
     for (auto const & key : from_c(account)->one_time_keys) {
-        output_key(key, ',', output);
+        output_key(key, sep, output);
         output += OUTPUT_KEY_LENGTH;
+        sep = ',';
     }
     output[0] = ']';
     return length;
-- 
GitLab