Include chain_index in session pickle

Write a different version of the session pickle for the logging_enabled branch
which includes the chain_index.
This commit is contained in:
Richard van der Hoff 2016-06-30 14:14:35 +01:00
parent a8d0ac436e
commit 97c110f24b
2 changed files with 4 additions and 3 deletions

View file

@ -381,6 +381,7 @@ std::size_t olm::pickle_length(
length += olm::pickle_length(value.sender_chain);
length += olm::pickle_length(value.receiver_chains);
length += olm::pickle_length(value.skipped_message_keys);
length += olm::pickle_length(value.chain_index);
return length;
}
@ -392,6 +393,7 @@ std::uint8_t * olm::pickle(
pos = pickle(pos, value.sender_chain);
pos = pickle(pos, value.receiver_chains);
pos = pickle(pos, value.skipped_message_keys);
pos = pickle(pos, value.chain_index);
return pos;
}
@ -408,8 +410,7 @@ std::uint8_t const * olm::unpickle(
// pickle v 0x80000001 includes a chain index; pickle v1 does not.
if (includes_chain_index) {
std::uint32_t dummy;
pos = unpickle(pos, end, dummy);
pos = unpickle(pos, end, value.chain_index);
}
return pos;
}

View file

@ -454,7 +454,7 @@ std::size_t olm::Session::decrypt(
namespace {
// the master branch writes pickle version 1; the logging_enabled branch writes
// 0x80000001.
static const std::uint32_t SESSION_PICKLE_VERSION = 1;
static const std::uint32_t SESSION_PICKLE_VERSION = 0x80000001;
}
std::size_t olm::pickle_length(