From f04beab99fd763c4c8db9417185bc2ac4df470b9 Mon Sep 17 00:00:00 2001 From: David Baker Date: Mon, 23 Oct 2023 12:10:25 +0100 Subject: [PATCH] Make e2ee type clearer hopefully --- src/home/RegisteredView.tsx | 7 ++++++- src/home/UnauthenticatedView.tsx | 7 ++++++- src/matrix-utils.ts | 15 +++++++++++++-- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/home/RegisteredView.tsx b/src/home/RegisteredView.tsx index c5ff8cfa..4da46696 100644 --- a/src/home/RegisteredView.tsx +++ b/src/home/RegisteredView.tsx @@ -40,6 +40,7 @@ import { Caption } from "../typography/Typography"; import { Form } from "../form/Form"; import { useOptInAnalytics } from "../settings/useSetting"; import { AnalyticsNotice } from "../analytics/AnalyticsNotice"; +import { E2eeType } from "../e2ee/e2eeType"; interface Props { client: MatrixClient; @@ -72,7 +73,11 @@ export const RegisteredView: FC = ({ client }) => { setError(undefined); setLoading(true); - const createRoomResult = await createRoom(client, roomName, true); + const createRoomResult = await createRoom( + client, + roomName, + E2eeType.SHARED_KEY, + ); history.push( getRelativeRoomUrl( diff --git a/src/home/UnauthenticatedView.tsx b/src/home/UnauthenticatedView.tsx index 91e8b56e..732f0633 100644 --- a/src/home/UnauthenticatedView.tsx +++ b/src/home/UnauthenticatedView.tsx @@ -43,6 +43,7 @@ import { generateRandomName } from "../auth/generateRandomName"; import { AnalyticsNotice } from "../analytics/AnalyticsNotice"; import { useOptInAnalytics } from "../settings/useSetting"; import { Config } from "../config/Config"; +import { E2eeType } from "../e2ee/e2eeType"; export const UnauthenticatedView: FC = () => { const { setClient } = useClient(); @@ -84,7 +85,11 @@ export const UnauthenticatedView: FC = () => { let createRoomResult; try { - createRoomResult = await createRoom(client, roomName, true); + createRoomResult = await createRoom( + client, + roomName, + E2eeType.SHARED_KEY, + ); } catch (error) { if (!setClient) { throw error; diff --git a/src/matrix-utils.ts b/src/matrix-utils.ts index 7c0966fb..6a1ea37d 100644 --- a/src/matrix-utils.ts +++ b/src/matrix-utils.ts @@ -38,6 +38,7 @@ import { loadOlm } from "./olm"; import { Config } from "./config/Config"; import { setLocalStorageItem } from "./useLocalStorage"; import { getRoomSharedKeyLocalStorageKey } from "./e2ee/sharedKeyManagement"; +import { E2eeType } from "./e2ee/e2eeType"; export const fallbackICEServerAllowed = import.meta.env.VITE_FALLBACK_STUN_ALLOWED === "true"; @@ -278,10 +279,20 @@ interface CreateRoomResult { password?: string; } +/** + * Create a new room ready for calls + * + * @param client Matrix client to use + * @param name The name of the room + * @param e2ee The type of e2ee call to create. Note that we would currently never + * create a room for per-participant e2ee calls: since it's used in + * embedded mode, we use the existing room. + * @returns Object holding information about the new room + */ export async function createRoom( client: MatrixClient, name: string, - e2ee: boolean, + e2ee: E2eeType, ): Promise { logger.log(`Creating room for group call`); const createPromise = client.createRoom({ @@ -346,7 +357,7 @@ export async function createRoom( ); let password; - if (e2ee) { + if (e2ee == E2eeType.SHARED_KEY) { password = secureRandomBase64(16); setLocalStorageItem( getRoomSharedKeyLocalStorageKey(result.room_id),