diff --git a/lib/components/qr-auth-provider.react.js b/lib/components/qr-auth-provider.react.js --- a/lib/components/qr-auth-provider.react.js +++ b/lib/components/qr-auth-provider.react.js @@ -7,7 +7,6 @@ import { uintArrayToHexString } from '../media/data-utils.js'; import { IdentityClientContext } from '../shared/identity-client-context.js'; import { useTunnelbroker } from '../tunnelbroker/tunnelbroker-context.js'; -import type { BackupKeys } from '../types/backup-types.js'; import { tunnelbrokerToDeviceMessageTypes, type TunnelbrokerToDeviceMessage, @@ -20,6 +19,7 @@ import { qrCodeAuthMessageTypes, type QRCodeAuthMessagePayload, + type QRAuthBackupData, } from '../types/tunnelbroker/qr-code-auth-message-types.js'; import { getContentSigningKey } from '../utils/crypto-utils.js'; @@ -35,7 +35,7 @@ encryptionKey: string, message: QRCodeAuthMessage, ) => Promise, - +performBackupRestore?: (backupKeys: BackupKeys) => Promise, + +performBackupRestore?: (qrAuthBackupData: QRAuthBackupData) => Promise, }; type QRData = ?{ +deviceID: string, +aesKey: string }; diff --git a/lib/types/backup-types.js b/lib/types/backup-types.js --- a/lib/types/backup-types.js +++ b/lib/types/backup-types.js @@ -5,19 +5,6 @@ import { tShape } from '../utils/validation-utils.js'; -// This type should match `BackupKeysResult` in -// `native/native_rust_library/src/backup.rs` -export type BackupKeys = { - +backupID: string, - +backupDataKey: string, - +backupLogDataKey: string, -}; -export const backupKeysValidator: TInterface = tShape({ - backupID: t.String, - backupDataKey: t.String, - backupLogDataKey: t.String, -}); - // This type should match `SIWEBackupData` in // `native/native_rust_library/src/backup.rs` export type SIWEBackupData = { diff --git a/lib/types/tunnelbroker/qr-code-auth-message-types.js b/lib/types/tunnelbroker/qr-code-auth-message-types.js --- a/lib/types/tunnelbroker/qr-code-auth-message-types.js +++ b/lib/types/tunnelbroker/qr-code-auth-message-types.js @@ -12,7 +12,7 @@ SECONDARY_DEVICE_REGISTRATION_SUCCESS: 'SecondaryDeviceRegistrationSuccess', }); -type QRAuthBackupData = { +export type QRAuthBackupData = { +backupID: string, +backupDataKey: string, +backupLogDataKey: string, diff --git a/native/cpp/CommonCpp/NativeModules/CommCoreModule.h b/native/cpp/CommonCpp/NativeModules/CommCoreModule.h --- a/native/cpp/CommonCpp/NativeModules/CommCoreModule.h +++ b/native/cpp/CommonCpp/NativeModules/CommCoreModule.h @@ -229,7 +229,7 @@ jsi::String backupDataKey, jsi::String backupLogDataKey, jsi::String maxVersion) override; - virtual jsi::Value retrieveBackupKeys(jsi::Runtime &rt) override; + virtual jsi::Value getQRAuthBackupData(jsi::Runtime &rt) override; virtual jsi::Value retrieveLatestBackupInfo( jsi::Runtime &rt, jsi::String userIdentifier) override; diff --git a/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp b/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp --- a/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp +++ b/native/cpp/CommonCpp/NativeModules/CommCoreModule.cpp @@ -2686,7 +2686,7 @@ }); } -jsi::Value CommCoreModule::retrieveBackupKeys(jsi::Runtime &rt) { +jsi::Value CommCoreModule::getQRAuthBackupData(jsi::Runtime &rt) { return createPromiseAsJSIValue( rt, [this](jsi::Runtime &innerRt, std::shared_ptr promise) { taskType job = [this, &innerRt, promise]() { diff --git a/native/cpp/CommonCpp/_generated/commJSI-generated.cpp b/native/cpp/CommonCpp/_generated/commJSI-generated.cpp --- a/native/cpp/CommonCpp/_generated/commJSI-generated.cpp +++ b/native/cpp/CommonCpp/_generated/commJSI-generated.cpp @@ -193,8 +193,8 @@ static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_restoreBackupData(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { return static_cast(&turboModule)->restoreBackupData(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt), args[3].asString(rt)); } -static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_retrieveBackupKeys(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { - return static_cast(&turboModule)->retrieveBackupKeys(rt); +static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getQRAuthBackupData(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { + return static_cast(&turboModule)->getQRAuthBackupData(rt); } static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_retrieveLatestBackupInfo(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) { return static_cast(&turboModule)->retrieveLatestBackupInfo(rt, args[0].asString(rt)); @@ -305,7 +305,7 @@ methodMap_["createFullBackup"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_createFullBackup}; methodMap_["restoreBackup"] = MethodMetadata {3, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_restoreBackup}; methodMap_["restoreBackupData"] = MethodMetadata {4, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_restoreBackupData}; - methodMap_["retrieveBackupKeys"] = MethodMetadata {0, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_retrieveBackupKeys}; + methodMap_["getQRAuthBackupData"] = MethodMetadata {0, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getQRAuthBackupData}; methodMap_["retrieveLatestBackupInfo"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_retrieveLatestBackupInfo}; methodMap_["setSIWEBackupSecrets"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_setSIWEBackupSecrets}; methodMap_["getSIWEBackupSecrets"] = MethodMetadata {0, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getSIWEBackupSecrets}; diff --git a/native/cpp/CommonCpp/_generated/commJSI.h b/native/cpp/CommonCpp/_generated/commJSI.h --- a/native/cpp/CommonCpp/_generated/commJSI.h +++ b/native/cpp/CommonCpp/_generated/commJSI.h @@ -78,7 +78,7 @@ virtual jsi::Value createFullBackup(jsi::Runtime &rt, jsi::String backupSecret) = 0; virtual jsi::Value restoreBackup(jsi::Runtime &rt, jsi::String backupSecret, jsi::String maxVersion, jsi::String backupID) = 0; virtual jsi::Value restoreBackupData(jsi::Runtime &rt, jsi::String backupID, jsi::String backupDataKey, jsi::String backupLogDataKey, jsi::String maxVersion) = 0; - virtual jsi::Value retrieveBackupKeys(jsi::Runtime &rt) = 0; + virtual jsi::Value getQRAuthBackupData(jsi::Runtime &rt) = 0; virtual jsi::Value retrieveLatestBackupInfo(jsi::Runtime &rt, jsi::String userIdentifier) = 0; virtual jsi::Value setSIWEBackupSecrets(jsi::Runtime &rt, jsi::Object siweBackupSecrets) = 0; virtual jsi::Value getSIWEBackupSecrets(jsi::Runtime &rt) = 0; @@ -580,13 +580,13 @@ return bridging::callFromJs( rt, &T::restoreBackupData, jsInvoker_, instance_, std::move(backupID), std::move(backupDataKey), std::move(backupLogDataKey), std::move(maxVersion)); } - jsi::Value retrieveBackupKeys(jsi::Runtime &rt) override { + jsi::Value getQRAuthBackupData(jsi::Runtime &rt) override { static_assert( - bridging::getParameterCount(&T::retrieveBackupKeys) == 1, - "Expected retrieveBackupKeys(...) to have 1 parameters"); + bridging::getParameterCount(&T::getQRAuthBackupData) == 1, + "Expected getQRAuthBackupData(...) to have 1 parameters"); return bridging::callFromJs( - rt, &T::retrieveBackupKeys, jsInvoker_, instance_); + rt, &T::getQRAuthBackupData, jsInvoker_, instance_); } jsi::Value retrieveLatestBackupInfo(jsi::Runtime &rt, jsi::String userIdentifier) override { static_assert( diff --git a/native/native_rust_library/src/backup.rs b/native/native_rust_library/src/backup.rs --- a/native/native_rust_library/src/backup.rs +++ b/native/native_rust_library/src/backup.rs @@ -494,7 +494,6 @@ }) } -// This struct should match `BackupKeys` in `lib/types/backup-types.js` #[derive(Debug, Serialize)] #[serde(rename_all = "camelCase")] struct BackupKeysResult { diff --git a/native/profile/secondary-device-qr-code-scanner.react.js b/native/profile/secondary-device-qr-code-scanner.react.js --- a/native/profile/secondary-device-qr-code-scanner.react.js +++ b/native/profile/secondary-device-qr-code-scanner.react.js @@ -160,7 +160,7 @@ const sendDeviceListUpdateSuccessMessage = async () => { let backupData = null; if (deviceType !== identityDeviceTypes.KEYSERVER) { - backupData = await commCoreModule.retrieveBackupKeys(); + backupData = await commCoreModule.getQRAuthBackupData(); } const message = await composeTunnelbrokerQRAuthMessage(encryptionKey, { type: qrCodeAuthMessageTypes.DEVICE_LIST_UPDATE_SUCCESS, diff --git a/native/schema/CommCoreModuleSchema.js b/native/schema/CommCoreModuleSchema.js --- a/native/schema/CommCoreModuleSchema.js +++ b/native/schema/CommCoreModuleSchema.js @@ -8,7 +8,6 @@ import type { ClientDBMessageStoreOperation } from 'lib/ops/message-store-ops.js'; import type { ClientDBReportStoreOperation } from 'lib/ops/report-store-ops.js'; import type { ClientDBThreadStoreOperation } from 'lib/ops/thread-store-ops.js'; -import type { BackupKeys } from 'lib/types/backup-types.js'; import type { OneTimeKeysResult, SignedPrekeys, @@ -27,6 +26,7 @@ ClientDBStoreOperations, } from 'lib/types/store-ops-types'; import type { ClientDBThreadInfo } from 'lib/types/thread-types.js'; +import type { QRAuthBackupData } from 'lib/types/tunnelbroker/qr-code-auth-message-types.js'; type CommServicesAuthMetadata = { +userID?: ?string, @@ -170,7 +170,7 @@ backupLogDataKey: string, maxVersion: string, ) => Promise; - +retrieveBackupKeys: () => Promise; + +getQRAuthBackupData: () => Promise; +retrieveLatestBackupInfo: (userIdentifier: string) => Promise; +setSIWEBackupSecrets: (siweBackupSecrets: Object) => Promise; +getSIWEBackupSecrets: () => Promise; @@ -238,7 +238,7 @@ +processDBStoreOperations: ( operations: ClientDBStoreOperations, ) => Promise; - +retrieveBackupKeys: () => Promise; + +getQRAuthBackupData: () => Promise; } export default (TurboModuleRegistry.getEnforcing( diff --git a/native/utils/qr-code-utils.js b/native/utils/qr-code-utils.js --- a/native/utils/qr-code-utils.js +++ b/native/utils/qr-code-utils.js @@ -1,7 +1,6 @@ // @flow import { hexToUintArray } from 'lib/media/data-utils.js'; -import type { BackupKeys } from 'lib/types/backup-types.js'; import { peerToPeerMessageTypes, type QRCodeAuthMessage, @@ -9,6 +8,7 @@ import { qrCodeAuthMessagePayloadValidator, type QRCodeAuthMessagePayload, + type QRAuthBackupData, } from 'lib/types/tunnelbroker/qr-code-auth-message-types.js'; import { getMessageForException } from 'lib/utils/errors.js'; @@ -79,8 +79,10 @@ } } -function performBackupRestore(backupKeys: BackupKeys): Promise { - const { backupID, backupDataKey, backupLogDataKey } = backupKeys; +function performBackupRestore( + qrAuthBackupData: QRAuthBackupData, +): Promise { + const { backupID, backupDataKey, backupLogDataKey } = qrAuthBackupData; return commCoreModule.restoreBackupData( backupID, backupDataKey,