From 17f6442c58444cf196a2ca57f73981331a6fc299 Mon Sep 17 00:00:00 2001 From: Florian Duros <florian.duros@gmail.com> Date: Wed, 25 Oct 2023 16:32:48 +0200 Subject: [PATCH] WIP make rageshake works with rust crypto --- src/rageshake/submit-rageshake.ts | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/rageshake/submit-rageshake.ts b/src/rageshake/submit-rageshake.ts index 5cc8449843ca..aac02ef98000 100644 --- a/src/rageshake/submit-rageshake.ts +++ b/src/rageshake/submit-rageshake.ts @@ -82,8 +82,9 @@ async function collectBugReport(opts: IOpts = {}, gzipLogs = true): Promise<Form body.append("user_id", client.credentials.userId!); body.append("device_id", client.deviceId!); - // TODO: make this work with rust crypto - if (client.isCryptoEnabled() && client.crypto) { + const cryptoApi = client.getCrypto(); + + if (cryptoApi) { const keys = [`ed25519:${client.getDeviceEd25519Key()}`]; if (client.getDeviceCurve25519Key) { keys.push(`curve25519:${client.getDeviceCurve25519Key()}`); @@ -92,16 +93,17 @@ async function collectBugReport(opts: IOpts = {}, gzipLogs = true): Promise<Form body.append("cross_signing_key", (await client.getCrypto()?.getCrossSigningKeyId()) ?? "n/a"); // add cross-signing status information - const crossSigning = client.crypto.crossSigningInfo; - const secretStorage = client.crypto.secretStorage; + const crossSigningStatus = await cryptoApi.getCrossSigningStatus(); + const secretStorage = client.secretStorage; - body.append("cross_signing_ready", String(await client.isCrossSigningReady())); - body.append("cross_signing_key", crossSigning.getId() ?? "n/a"); + body.append("cross_signing_ready", String(await cryptoApi.isCrossSigningReady())); + body.append("cross_signing_key", (await cryptoApi.getCrossSigningKeyId()) ?? "n/a"); body.append( "cross_signing_privkey_in_secret_storage", - String(!!(await crossSigning.isStoredInSecretStorage(secretStorage))), + String(crossSigningStatus.privateKeysInSecretStorage), ); + // TODO const pkCache = client.getCrossSigningCacheCallbacks(); body.append( "cross_signing_master_privkey_cached", @@ -116,11 +118,11 @@ async function collectBugReport(opts: IOpts = {}, gzipLogs = true): Promise<Form String(!!(pkCache && (await pkCache?.getCrossSigningKeyCache?.("user_signing")))), ); - body.append("secret_storage_ready", String(await client.isSecretStorageReady())); + body.append("secret_storage_ready", String(await cryptoApi.isSecretStorageReady())); body.append("secret_storage_key_in_account", String(await secretStorage.hasKey())); body.append("session_backup_key_in_secret_storage", String(!!(await client.isKeyBackupKeyStored()))); - const sessionBackupKeyFromCache = await client.crypto.getSessionBackupPrivateKey(); + const sessionBackupKeyFromCache = await cryptoApi.getSessionBackupPrivateKey(); body.append("session_backup_key_cached", String(!!sessionBackupKeyFromCache)); body.append("session_backup_key_well_formed", String(sessionBackupKeyFromCache instanceof Uint8Array)); }