diff --git a/services/identity/src/client_service.rs b/services/identity/src/client_service.rs --- a/services/identity/src/client_service.rs +++ b/services/identity/src/client_service.rs @@ -100,6 +100,8 @@ pub notif_prekey_signature: String, pub notif_one_time_keys: Vec<String>, pub device_type: DeviceType, + /// not stored directly, used only for prekey verification + pub notif_signing_public_key: String, } #[derive(derive_more::Constructor)] @@ -1480,6 +1482,9 @@ notif_prekey_signature: message.notif_prekey_signature()?, notif_one_time_keys: message.one_time_notif_prekeys()?, device_type: DeviceType::try_from(DBDeviceTypeInt(message.device_type()?))?, + notif_signing_public_key: key_info + .notification_identity_public_keys + .ed25519, }; Ok(flattened_device_key_upload) diff --git a/services/identity/src/database/device_list.rs b/services/identity/src/database/device_list.rs --- a/services/identity/src/database/device_list.rs +++ b/services/identity/src/database/device_list.rs @@ -202,7 +202,7 @@ "Content prekey verification failed: {err}" ); } - if let Err(err) = notif_prekey.verify(&upload.device_id_key) { + if let Err(err) = notif_prekey.verify(&upload.notif_signing_public_key) { error!( errorType = error_types::GENERIC_DB_LOG, "Notif prekey verification failed: {err}"