summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/ChatPage.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/ChatPage.cpp b/src/ChatPage.cpp

index 5d2117cc..c5c27964 100644 --- a/src/ChatPage.cpp +++ b/src/ChatPage.cpp
@@ -1001,6 +1001,23 @@ ChatPage::ensureOneTimeKeyCount(const std::map<std::string, uint16_t> &counts) // mark as published anyway, otherwise we may end up in a loop. olm::mark_keys_as_published(); }); + } else if (count->second > 2 * MAX_ONETIME_KEYS) { + nhlog::crypto()->warn("too many one-time keys, deleting 1"); + mtx::requests::ClaimKeys req; + req.one_time_keys[http::client()->user_id().to_string()] + [http::client()->device_id()] = + std::string(mtx::crypto::SIGNED_CURVE25519); + http::client()->claim_keys( + req, [](const mtx::responses::ClaimKeys &, mtx::http::RequestErr err) { + if (err) + nhlog::crypto()->warn( + "failed to clear 1 one-time key: {} {} {}", + err->matrix_error.error, + static_cast<int>(err->status_code), + static_cast<int>(err->error_code)); + else + nhlog::crypto()->info("cleared 1 one-time key"); + }); } } }