mirror of https://github.com/vector-im/riot-web
				
				
				
			Remove `MatrixClient.getDehydratedDevice` call (#28254)
							parent
							
								
									3c8ac6fc49
								
							
						
					
					
						commit
						4a1f86f273
					
				| 
						 | 
				
			
			@ -101,18 +101,14 @@ export class SetupEncryptionStore extends EventEmitter {
 | 
			
		|||
            this.keyInfo = keys[this.keyId];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // do we have any other verified devices which are E2EE which we can verify against?
 | 
			
		||||
        const dehydratedDevice = await cli.getDehydratedDevice();
 | 
			
		||||
        const ownUserId = cli.getUserId()!;
 | 
			
		||||
        const crypto = cli.getCrypto()!;
 | 
			
		||||
        // do we have any other verified devices which are E2EE which we can verify against?
 | 
			
		||||
        const userDevices: Iterable<Device> =
 | 
			
		||||
            (await crypto.getUserDeviceInfo([ownUserId])).get(ownUserId)?.values() ?? [];
 | 
			
		||||
        this.hasDevicesToVerifyAgainst = await asyncSome(userDevices, async (device) => {
 | 
			
		||||
            // Ignore dehydrated devices.  `dehydratedDevice` is set by the
 | 
			
		||||
            // implementation of MSC2697, whereas MSC3814 proposes that devices
 | 
			
		||||
            // should set a `dehydrated` flag in the device key.  We ignore
 | 
			
		||||
            // both types of dehydrated devices.
 | 
			
		||||
            if (dehydratedDevice && device.deviceId == dehydratedDevice?.device_id) return false;
 | 
			
		||||
            // Ignore dehydrated devices. MSC3814 proposes that devices
 | 
			
		||||
            // should set a `dehydrated` flag in the device key.
 | 
			
		||||
            if (device.dehydrated) return false;
 | 
			
		||||
 | 
			
		||||
            // ignore devices without an identity key
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,6 @@ import { mocked, Mocked } from "jest-mock";
 | 
			
		|||
import { IBootstrapCrossSigningOpts } from "matrix-js-sdk/src/crypto";
 | 
			
		||||
import { MatrixClient, Device } from "matrix-js-sdk/src/matrix";
 | 
			
		||||
import { SecretStorageKeyDescriptionAesV1, ServerSideSecretStorage } from "matrix-js-sdk/src/secret-storage";
 | 
			
		||||
import { IDehydratedDevice } from "matrix-js-sdk/src/crypto/dehydration";
 | 
			
		||||
import { CryptoApi, DeviceVerificationStatus } from "matrix-js-sdk/src/crypto-api";
 | 
			
		||||
 | 
			
		||||
import { SdkContextClass } from "../../../src/contexts/SDKContext";
 | 
			
		||||
| 
						 | 
				
			
			@ -97,28 +96,6 @@ describe("SetupEncryptionStore", () => {
 | 
			
		|||
            expect(setupEncryptionStore.hasDevicesToVerifyAgainst).toBe(true);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        it("should ignore the MSC2697 dehydrated device", async () => {
 | 
			
		||||
            mockSecretStorage.isStored.mockResolvedValue({ sskeyid: {} as SecretStorageKeyDescriptionAesV1 });
 | 
			
		||||
 | 
			
		||||
            client.getDehydratedDevice.mockResolvedValue({ device_id: "dehydrated" } as IDehydratedDevice);
 | 
			
		||||
 | 
			
		||||
            const fakeDevice = new Device({
 | 
			
		||||
                deviceId: "dehydrated",
 | 
			
		||||
                userId: "",
 | 
			
		||||
                algorithms: [],
 | 
			
		||||
                keys: new Map([["curve25519:dehydrated", "identityKey"]]),
 | 
			
		||||
            });
 | 
			
		||||
            mockCrypto.getUserDeviceInfo.mockResolvedValue(
 | 
			
		||||
                new Map([[client.getSafeUserId(), new Map([[fakeDevice.deviceId, fakeDevice]])]]),
 | 
			
		||||
            );
 | 
			
		||||
 | 
			
		||||
            setupEncryptionStore.start();
 | 
			
		||||
            await emitPromise(setupEncryptionStore, "update");
 | 
			
		||||
 | 
			
		||||
            expect(setupEncryptionStore.hasDevicesToVerifyAgainst).toBe(false);
 | 
			
		||||
            expect(mockCrypto.getDeviceVerificationStatus).not.toHaveBeenCalled();
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        it("should ignore the MSC3812 dehydrated device", async () => {
 | 
			
		||||
            mockSecretStorage.isStored.mockResolvedValue({ sskeyid: {} as SecretStorageKeyDescriptionAesV1 });
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue