diff --git a/src/matrix-utils.ts b/src/matrix-utils.ts index 471df590..475a85d0 100644 --- a/src/matrix-utils.ts +++ b/src/matrix-utils.ts @@ -28,7 +28,7 @@ import { GroupCallIntent, GroupCallType, } from "matrix-js-sdk/src/webrtc/groupCall"; -import { randomString } from "matrix-js-sdk/src/randomstring"; +import { encodeUnpaddedBase64 } from "matrix-js-sdk/src/common-crypto/base64"; import type { MatrixClient } from "matrix-js-sdk/src/client"; import type { Room } from "matrix-js-sdk/src/models/room"; @@ -74,6 +74,12 @@ function waitForSync(client: MatrixClient) { }); } +function secureRandomString(entropyBytes: number): string { + const key = new Uint8Array(entropyBytes); + crypto.getRandomValues(key); + return encodeUnpaddedBase64(key); +} + /** * Initialises and returns a new standalone Matrix Client. * If true is passed for the 'restore' parameter, a check will be made @@ -347,7 +353,7 @@ export async function createRoom( let password; if (e2ee) { - password = randomString(32); + password = secureRandomString(16); setLocalStorageItem( getRoomSharedKeyLocalStorageKey(result.room_id), password