Make error case with unverified master key more descriptive

This commit is contained in:
Nicolas Werner 2021-09-03 15:08:16 +02:00
parent bf9601018d
commit 99f3296a64
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
1 changed files with 13 additions and 7 deletions

View File

@ -4442,13 +4442,19 @@ Cache::verificationStatus_(const std::string &user_id, lmdb::txn &txn)
// Update verified devices count to count without cross-signing
updateUnverifiedDevices(theirKeys->device_keys);
if (!mtx::crypto::ed25519_verify_signature(
olm::client()->identity_keys().ed25519,
json(ourKeys->master_keys),
ourKeys->master_keys.signatures.at(local_user)
.at("ed25519:" + http::client()->device_id()))) {
verification_storage.status[user_id] = status;
return status;
{
auto &mk = ourKeys->master_keys;
std::string dev_id = "ed25519:" + http::client()->device_id();
if (!mk.signatures.count(local_user) ||
!mk.signatures.at(local_user).count(dev_id) ||
!mtx::crypto::ed25519_verify_signature(
olm::client()->identity_keys().ed25519,
json(mk),
mk.signatures.at(local_user).at(dev_id))) {
nhlog::crypto()->debug("We have not verified our own master key");
verification_storage.status[user_id] = status;
return status;
}
}
auto master_keys = ourKeys->master_keys.keys;