Switch to Rust crypto stack for all logins (#12630)
* Use Rust crypto stack universally Ignore the `feature_rust_crypto` and `RustCrypto.staged_rollout_percent` settings, and just use RustCrypto everywhere. * Remove labs setting for rust crypto * Remove support for legacy crypto stack in `StorageManager` We're not going to use the legacy stack any more. * Update docs on `Features.RustCrypto` * Remove now-unreachable `tryToUnlockSecretStorageWithDehydrationKey` * Comment out test which doesn't work * fix typo
This commit is contained in:
parent
2843545d1e
commit
9c862907f9
11 changed files with 96 additions and 931 deletions
|
@ -42,11 +42,9 @@ import { MetaSpace } from "../stores/spaces";
|
|||
import SdkConfig from "../SdkConfig";
|
||||
import SlidingSyncController from "./controllers/SlidingSyncController";
|
||||
import { FontWatcher } from "./watchers/FontWatcher";
|
||||
import RustCryptoSdkController from "./controllers/RustCryptoSdkController";
|
||||
import ServerSupportUnstableFeatureController from "./controllers/ServerSupportUnstableFeatureController";
|
||||
import { WatchManager } from "./WatchManager";
|
||||
import { CustomTheme } from "../theme";
|
||||
import SettingsStore from "./SettingsStore";
|
||||
import AnalyticsController from "./controllers/AnalyticsController";
|
||||
|
||||
export const defaultWatchManager = new WatchManager();
|
||||
|
@ -99,9 +97,14 @@ export enum Features {
|
|||
VoiceBroadcastForceSmallChunks = "feature_voice_broadcast_force_small_chunks",
|
||||
NotificationSettings2 = "feature_notification_settings2",
|
||||
OidcNativeFlow = "feature_oidc_native_flow",
|
||||
// If true, every new login will use the new rust crypto implementation
|
||||
RustCrypto = "feature_rust_crypto",
|
||||
ReleaseAnnouncement = "feature_release_announcement",
|
||||
|
||||
/** If true, use the Rust crypto implementation.
|
||||
*
|
||||
* This is no longer read, but we continue to populate it on all devices, to guard against people rolling back to
|
||||
* old versions of EW that do not use rust crypto by default.
|
||||
*/
|
||||
RustCrypto = "feature_rust_crypto",
|
||||
}
|
||||
|
||||
export const labGroupNames: Record<LabGroup, TranslationKey> = {
|
||||
|
@ -480,29 +483,8 @@ export const SETTINGS: { [setting: string]: ISetting } = {
|
|||
default: false,
|
||||
},
|
||||
[Features.RustCrypto]: {
|
||||
// use the rust matrix-sdk-crypto-wasm for crypto.
|
||||
isFeature: true,
|
||||
labsGroup: LabGroup.Developer,
|
||||
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
|
||||
displayName: _td("labs|rust_crypto"),
|
||||
description: () => {
|
||||
if (SettingsStore.getValueAt(SettingLevel.CONFIG, Features.RustCrypto)) {
|
||||
// It's enabled in the config, so you can't get rid of it even by logging out.
|
||||
return _t("labs|rust_crypto_in_config_description");
|
||||
} else {
|
||||
return _t("labs|rust_crypto_optin_warning");
|
||||
}
|
||||
},
|
||||
shouldWarn: true,
|
||||
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
|
||||
default: true,
|
||||
controller: new RustCryptoSdkController(),
|
||||
},
|
||||
// Must be set under `setting_defaults` in config.json.
|
||||
// If set to 100 in conjunction with `feature_rust_crypto`, all existing users will migrate to the new crypto.
|
||||
// Default is 0, meaning no existing users on legacy crypto will migrate.
|
||||
"RustCrypto.staged_rollout_percent": {
|
||||
supportedLevels: [SettingLevel.CONFIG],
|
||||
default: 0,
|
||||
},
|
||||
/**
|
||||
* @deprecated in favor of {@link fontSizeDelta}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue