Skip to content
Snippets Groups Projects
Commit 408530ad authored by Mark Haines's avatar Mark Haines
Browse files

Add API for removing used one time keys

parent fb980849
No related branches found
No related tags found
No related merge requests found
......@@ -41,6 +41,10 @@ struct Account {
LocalKey const * lookup_key(
std::uint32_t id
);
std::size_t remove_key(
std::uint32_t id
);
};
......
......@@ -121,6 +121,11 @@ size_t axolotl_matches_inbound_session(
void * one_time_key_message, size_t message_length
);
size_t axolotl_remove_one_time_keys(
AxolotlAccount * account,
AxolotlSession * session
);
size_t axolotl_encrypt_message_type(
AxolotlSession * session
);
......
......@@ -11,6 +11,18 @@ axolotl::LocalKey const * axolotl::Account::lookup_key(
return 0;
}
std::size_t axolotl::Account::remove_key(
std::uint32_t id
) {
LocalKey * i;
for (i = one_time_keys.begin(); i != one_time_keys.end(); ++i) {
if (i->id == id) {
one_time_keys.erase(i);
return id;
}
}
return std::size_t(-1);
}
std::size_t axolotl::Account::new_account_random_length() {
return 103 * 32;
......@@ -21,6 +33,7 @@ std::size_t axolotl::Account::new_account(
) {
if (random_length < new_account_random_length()) {
last_error = axolotl::ErrorCode::NOT_ENOUGH_RANDOM;
return std::size_t(-1);
}
unsigned id = 0;
......@@ -46,8 +59,6 @@ std::size_t axolotl::Account::new_account(
}
namespace axolotl {
......
......@@ -468,6 +468,20 @@ size_t axolotl_matches_inbound_session(
}
size_t axolotl_remove_one_time_keys(
AxolotlAccount * account,
AxolotlSession * session
) {
size_t result = from_c(account)->remove_key(
from_c(session)->bob_one_time_key_id
);
if (result == std::size_t(-1)) {
from_c(account)->last_error = axolotl::ErrorCode::BAD_MESSAGE_KEY_ID;
}
return result;
}
size_t axolotl_encrypt_message_type(
AxolotlSession * session
) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment