mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-07-07 13:55:19 +01:00
Simplify service id checks in MessageReceiver
This commit is contained in:
@@ -1248,16 +1248,9 @@ export default class MessageReceiver
|
||||
|
||||
const task = async (): Promise<DecryptResult> => {
|
||||
const { destinationServiceId } = envelope;
|
||||
const serviceIdKind =
|
||||
this.#storage.user.getOurServiceIdKind(destinationServiceId);
|
||||
if (serviceIdKind === ServiceIdKind.Unknown) {
|
||||
log.warn(
|
||||
'MessageReceiver.decryptAndCacheBatch: ' +
|
||||
`Rejecting envelope ${getEnvelopeId(envelope)}, ` +
|
||||
`unknown serviceId: ${destinationServiceId}`
|
||||
);
|
||||
return { plaintext: undefined, envelope: undefined };
|
||||
}
|
||||
const serviceIdKind = isPniString(destinationServiceId)
|
||||
? ServiceIdKind.PNI
|
||||
: ServiceIdKind.ACI;
|
||||
|
||||
const unsealedEnvelope = await this.#unsealEnvelope(
|
||||
stores,
|
||||
|
||||
@@ -10,6 +10,15 @@ export async function checkOurPniIdentityKey(): Promise<void> {
|
||||
strictAssert(server, 'WebAPI not ready');
|
||||
|
||||
const ourPni = window.storage.user.getCheckedPni();
|
||||
const { pni: remotePni } = await server.whoami();
|
||||
if (remotePni !== ourPni) {
|
||||
log.warn(
|
||||
`checkOurPniIdentityKey: remote pni mismatch, ${remotePni} != ${ourPni}`
|
||||
);
|
||||
window.Whisper.events.trigger('unlinkAndDisconnect');
|
||||
return;
|
||||
}
|
||||
|
||||
const localKeyPair = await window.storage.protocol.getIdentityKeyPair(ourPni);
|
||||
if (!localKeyPair) {
|
||||
log.warn(
|
||||
@@ -20,7 +29,6 @@ export async function checkOurPniIdentityKey(): Promise<void> {
|
||||
}
|
||||
|
||||
const { identityKey: remoteKey } = await server.getKeysForServiceId(ourPni);
|
||||
|
||||
if (!constantTimeEqual(localKeyPair.publicKey.serialize(), remoteKey)) {
|
||||
log.warn(
|
||||
`checkOurPniIdentityKey: local/remote key mismatch for ${ourPni}, unlinking`
|
||||
|
||||
Reference in New Issue
Block a user