Page MenuHomePhorge

D15561.1769032311.diff
No OneTemporary

Size
32 KB
Referenced Files
None
Subscribers
None

D15561.1769032311.diff

diff --git a/lib/components/peer-olm-session-creator-provider.react.js b/lib/components/peer-olm-session-creator-provider.react.js
--- a/lib/components/peer-olm-session-creator-provider.react.js
+++ b/lib/components/peer-olm-session-creator-provider.react.js
@@ -45,7 +45,6 @@
const deadDevices = useSelector(getPeersDeadDeviceIDs);
const refetchDeviceList = useGetAndUpdateDeviceListsForUsers();
- const auxUserInfos = useSelector(state => state.auxUserStore.auxUserInfos);
const createOlmSessionsWithUserCallback = React.useCallback(
async (
@@ -57,20 +56,11 @@
runningPromises.current[userID] = {};
}
- const filteredDevices = devices
- .filter(
- request =>
- !runningPromises.current[userID][request.deviceID] &&
- !deadDevices.has(request.deviceID),
- )
- .map(request => ({
- ...request,
- // `devicesPlatformDetails` is defined because otherwise, this device
- // is going to be included in dead devices and filtered out, see
- // `getPeersDeadDeviceIDs`.
- platformDetails:
- auxUserInfos[userID]?.devicesPlatformDetails?.[request.deviceID],
- }));
+ const filteredDevices = devices.filter(
+ request =>
+ !runningPromises.current[userID][request.deviceID] &&
+ !deadDevices.has(request.deviceID),
+ );
const promise = (async () => {
const authMetadata = await getAuthMetadata();
@@ -115,11 +105,10 @@
},
[
deadDevices,
- auxUserInfos,
getAuthMetadata,
identityClient,
- sendMessageToDevice,
olmDebugLog,
+ sendMessageToDevice,
refetchDeviceList,
],
);
diff --git a/lib/keyserver-conn/keyserver-auth.js b/lib/keyserver-conn/keyserver-auth.js
--- a/lib/keyserver-conn/keyserver-auth.js
+++ b/lib/keyserver-conn/keyserver-auth.js
@@ -103,18 +103,10 @@
keyserverKeys.identityKeysBlob.notificationIdentityPublicKeys,
keyserverKeys.notifInitializationInfo,
keyserverID,
- // Assuming the keyserver is always running on the newest
- // version, Olm compatibility is not required unlike for other
- // clients that might not be updated yet.
- false,
),
olmAPI.contentOutboundSessionCreator(
keyserverKeys.identityKeysBlob.primaryIdentityPublicKeys,
keyserverKeys.contentInitializationInfo,
- // Assuming the keyserver is always running on the newest
- // version, Olm compatibility is not required unlike for other
- // clients that might not be updated yet.
- false,
),
getAuthMetadata(),
]);
diff --git a/lib/shared/crypto-utils.js b/lib/shared/crypto-utils.js
--- a/lib/shared/crypto-utils.js
+++ b/lib/shared/crypto-utils.js
@@ -72,10 +72,6 @@
notificationIdentityPublicKeys,
notifInitializationInfo,
keyserverID,
- // Assuming the keyserver is always running on the newest
- // version, Olm compatibility is not required unlike for other
- // clients that might not be updated yet.
- false,
);
},
[
diff --git a/lib/types/crypto-types.js b/lib/types/crypto-types.js
--- a/lib/types/crypto-types.js
+++ b/lib/types/crypto-types.js
@@ -173,7 +173,6 @@
+contentOutboundSessionCreator: (
contentIdentityKeys: OLMIdentityKeys,
contentInitializationInfo: OlmSessionInitializationInfo,
- olmCompatibilityMode: boolean,
) => Promise<OutboundSessionCreationResult>,
+isContentSessionInitialized: (deviceID: string) => Promise<boolean>,
+keyserverNotificationsSessionCreator: (
@@ -181,13 +180,11 @@
notificationsIdentityKeys: OLMIdentityKeys,
notificationsInitializationInfo: OlmSessionInitializationInfo,
keyserverID: string,
- olmCompatibilityMode: boolean,
) => Promise<string>,
+notificationsOutboundSessionCreator: (
deviceID: string,
notificationsIdentityKeys: OLMIdentityKeys,
notificationsInitializationInfo: OlmSessionInitializationInfo,
- olmCompatibilityMode: boolean,
) => Promise<EncryptedData>,
+isDeviceNotificationsSessionInitialized: (
deviceID: string,
diff --git a/lib/utils/crypto-utils.js b/lib/utils/crypto-utils.js
--- a/lib/utils/crypto-utils.js
+++ b/lib/utils/crypto-utils.js
@@ -5,7 +5,6 @@
import { getConfig } from './config.js';
import { getMessageForException } from './errors.js';
-import { olmSupportRequired } from './olm-support-required.js';
import { primaryIdentityPublicKeyRegex } from './siwe-utils.js';
import { tRegex, tShape } from './validation-utils.js';
import type { OlmDebugLog } from '../components/debug-logs-context.js';
@@ -17,10 +16,7 @@
OutboundSessionCreationResult,
SignedIdentityKeysBlob,
} from '../types/crypto-types.js';
-import type {
- IdentityPlatformDetails,
- IdentityServiceClient,
-} from '../types/identity-service-types';
+import type { IdentityServiceClient } from '../types/identity-service-types';
import {
type OutboundSessionCreation,
peerToPeerMessageTypes,
@@ -81,13 +77,10 @@
const recipientDeviceID = primaryIdentityPublicKeys.ed25519;
try {
- // This function is used for testing purposes only, available to staff
- // users, so Olm support is hardcoded to false.
const { sessionVersion, encryptedData } =
await olmAPI.contentOutboundSessionCreator(
primaryIdentityPublicKeys,
keys.contentInitializationInfo,
- false,
);
const sessionCreationMessage: OutboundSessionCreation = {
@@ -124,10 +117,6 @@
+deviceID: string,
+sessionCreationOptions?: SessionCreationOptions,
};
-type DeviceSessionCreationRequestWithPlatformDetails = {
- ...DeviceSessionCreationRequest,
- platformDetails: ?IdentityPlatformDetails,
-};
export type SessionCreationResult = {
+deviceKeysMissing: boolean,
};
@@ -136,7 +125,7 @@
identityClient: IdentityServiceClient,
sendMessage: (message: TunnelbrokerClientMessageToDevice) => Promise<void>,
userID: string,
- devices: $ReadOnlyArray<DeviceSessionCreationRequestWithPlatformDetails>,
+ devices: $ReadOnlyArray<DeviceSessionCreationRequest>,
source: 'session_reset' | 'session_not_exists',
olmDebugLog: (olmLog: OlmDebugLog) => mixed,
): Promise<SessionCreationResult> {
@@ -158,7 +147,6 @@
+deviceID: string,
+hasContentSession: boolean,
+hasNotifsSession: boolean,
- +olmSupport: boolean,
}> = await Promise.all(
devices.map(request =>
(async () => {
@@ -182,7 +170,6 @@
deviceID: request.deviceID,
hasContentSession,
hasNotifsSession,
- olmSupport: olmSupportRequired(request.platformDetails),
};
})(),
),
@@ -206,8 +193,7 @@
success = false,
sessionVersionResult = -1;
try {
- const { deviceID, hasContentSession, hasNotifsSession, olmSupport } =
- sessionRequest;
+ const { deviceID, hasContentSession, hasNotifsSession } = sessionRequest;
const deviceKeysResponse = keysResponse.find(
keys => keys.deviceID === deviceID,
);
@@ -229,7 +215,6 @@
recipientDeviceID,
notificationIdentityPublicKeys,
keys.notifInitializationInfo,
- olmSupport,
);
success = true;
return;
@@ -242,7 +227,6 @@
await olmAPI.contentOutboundSessionCreator(
primaryIdentityPublicKeys,
keys.contentInitializationInfo,
- olmSupport,
);
} else {
resultDescription = 'creating content and notif session';
@@ -250,13 +234,11 @@
await olmAPI.contentOutboundSessionCreator(
primaryIdentityPublicKeys,
keys.contentInitializationInfo,
- olmSupport,
),
olmAPI.notificationsOutboundSessionCreator(
recipientDeviceID,
notificationIdentityPublicKeys,
keys.notifInitializationInfo,
- olmSupport,
),
]);
}
diff --git a/native/cpp/CommonCpp/CryptoTools/CryptoModule.h b/native/cpp/CommonCpp/CryptoTools/CryptoModule.h
--- a/native/cpp/CommonCpp/CryptoTools/CryptoModule.h
+++ b/native/cpp/CommonCpp/CryptoTools/CryptoModule.h
@@ -64,8 +64,7 @@
const std::string &idKeys,
const std::string &preKeys,
const std::string &preKeySignature,
- const std::optional<std::string> &oneTimeKey,
- bool olmCompatibilityMode);
+ const std::optional<std::string> &oneTimeKey);
bool hasSessionFor(const std::string &targetDeviceId);
std::shared_ptr<Session> getSessionByDeviceId(const std::string &deviceId);
void removeSessionByDeviceId(const std::string &deviceId);
diff --git a/native/cpp/CommonCpp/CryptoTools/CryptoModule.cpp b/native/cpp/CommonCpp/CryptoTools/CryptoModule.cpp
--- a/native/cpp/CommonCpp/CryptoTools/CryptoModule.cpp
+++ b/native/cpp/CommonCpp/CryptoTools/CryptoModule.cpp
@@ -238,8 +238,7 @@
const std::string &idKeys,
const std::string &preKeys,
const std::string &preKeySignature,
- const std::optional<std::string> &oneTimeKey,
- bool olmCompatibilityMode) {
+ const std::optional<std::string> &oneTimeKey) {
int newSessionVersion = 1;
if (this->hasSessionFor(targetDeviceId)) {
std::shared_ptr<Session> existingSession =
@@ -257,7 +256,7 @@
preKeys,
preKeySignature,
oneTimeKey,
- olmCompatibilityMode);
+ true); // olmCompatibilityMode = true
newSession->setVersion(newSessionVersion);
this->sessions.insert(make_pair(targetDeviceId, std::move(newSession)));
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
@@ -107,8 +107,7 @@
jsi::String prekey,
jsi::String prekeySignature,
std::optional<jsi::String> oneTimeKey,
- jsi::String keyserverID,
- bool olmCompatibilityMode) override;
+ jsi::String keyserverID) override;
virtual jsi::Value
isNotificationsSessionInitialized(jsi::Runtime &rt) override;
virtual jsi::Value isDeviceNotificationsSessionInitialized(
@@ -134,8 +133,7 @@
jsi::String prekey,
jsi::String prekeySignature,
std::optional<jsi::String> oneTimeKey,
- jsi::String deviceID,
- bool olmCompatibilityMode) override;
+ jsi::String deviceID) override;
virtual jsi::Value initializeContentInboundSession(
jsi::Runtime &rt,
jsi::String identityKeys,
@@ -151,8 +149,7 @@
jsi::String prekey,
jsi::String prekeySignature,
std::optional<jsi::String> oneTimeKey,
- jsi::String deviceID,
- bool olmCompatibilityMode) override;
+ jsi::String deviceID) override;
virtual jsi::Value
encrypt(jsi::Runtime &rt, jsi::String message, jsi::String deviceID) override;
virtual jsi::Value encryptNotification(
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
@@ -1152,8 +1152,7 @@
jsi::String prekey,
jsi::String prekeySignature,
std::optional<jsi::String> oneTimeKey,
- jsi::String keyserverID,
- bool olmCompatibilityMode) {
+ jsi::String keyserverID) {
auto identityKeysCpp{identityKeys.utf8(rt)};
auto prekeyCpp{prekey.utf8(rt)};
auto prekeySignatureCpp{prekeySignature.utf8(rt)};
@@ -1182,8 +1181,7 @@
identityKeysCpp,
prekeyCpp,
prekeySignatureCpp,
- oneTimeKeyCpp,
- olmCompatibilityMode);
+ oneTimeKeyCpp);
result = notifsCryptoModuleWithPicklingKey.value().first->encrypt(
keyserverIDCpp,
@@ -1528,8 +1526,7 @@
jsi::String prekey,
jsi::String prekeySignature,
std::optional<jsi::String> oneTimeKey,
- jsi::String deviceID,
- bool olmCompatibilityMode) {
+ jsi::String deviceID) {
auto identityKeysCpp{identityKeys.utf8(rt)};
auto prekeyCpp{prekey.utf8(rt)};
auto prekeySignatureCpp{prekeySignature.utf8(rt)};
@@ -1553,8 +1550,7 @@
identityKeysCpp,
prekeyCpp,
prekeySignatureCpp,
- oneTimeKeyCpp,
- olmCompatibilityMode);
+ oneTimeKeyCpp);
const std::string initMessage = "{\"type\": \"init\"}";
initialEncryptedData =
@@ -1671,8 +1667,7 @@
jsi::String prekey,
jsi::String prekeySignature,
std::optional<jsi::String> oneTimeKey,
- jsi::String deviceID,
- bool olmCompatibilityMode) {
+ jsi::String deviceID) {
auto identityKeysCpp{identityKeys.utf8(rt)};
auto prekeyCpp{prekey.utf8(rt)};
auto prekeySignatureCpp{prekeySignature.utf8(rt)};
@@ -1700,8 +1695,7 @@
identityKeysCpp,
prekeyCpp,
prekeySignatureCpp,
- oneTimeKeyCpp,
- olmCompatibilityMode);
+ oneTimeKeyCpp);
result = notifsCryptoModuleWithPicklingKey.value().first->encrypt(
deviceIDCpp,
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
@@ -55,7 +55,7 @@
return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->validateAndUploadPrekeys(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt));
}
static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeNotificationsSession(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
- return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->initializeNotificationsSession(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt), args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asString(rt)), args[4].asString(rt), args[5].asBool());
+ return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->initializeNotificationsSession(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt), args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asString(rt)), args[4].asString(rt));
}
static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_isNotificationsSessionInitialized(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->isNotificationsSessionInitialized(rt);
@@ -82,7 +82,7 @@
return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->getUnreadThickThreadIDsFromNotifsStorage(rt);
}
static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeContentOutboundSession(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
- return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->initializeContentOutboundSession(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt), args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asString(rt)), args[4].asString(rt), args[5].asBool());
+ return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->initializeContentOutboundSession(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt), args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asString(rt)), args[4].asString(rt));
}
static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeContentInboundSession(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->initializeContentInboundSession(rt, args[0].asString(rt), args[1].asObject(rt), args[2].asString(rt), args[3].asNumber(), args[4].asBool());
@@ -91,7 +91,7 @@
return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->isContentSessionInitialized(rt, args[0].asString(rt));
}
static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeNotificationsOutboundSession(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
- return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->initializeNotificationsOutboundSession(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt), args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asString(rt)), args[4].asString(rt), args[5].asBool());
+ return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->initializeNotificationsOutboundSession(rt, args[0].asString(rt), args[1].asString(rt), args[2].asString(rt), args[3].isNull() || args[3].isUndefined() ? std::nullopt : std::make_optional(args[3].asString(rt)), args[4].asString(rt));
}
static jsi::Value __hostFunction_CommCoreModuleSchemaCxxSpecJSI_encrypt(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
return static_cast<CommCoreModuleSchemaCxxSpecJSI *>(&turboModule)->encrypt(rt, args[0].asString(rt), args[1].asString(rt));
@@ -266,7 +266,7 @@
methodMap_["getOneTimeKeys"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getOneTimeKeys};
methodMap_["validateAndGetPrekeys"] = MethodMetadata {0, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_validateAndGetPrekeys};
methodMap_["validateAndUploadPrekeys"] = MethodMetadata {3, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_validateAndUploadPrekeys};
- methodMap_["initializeNotificationsSession"] = MethodMetadata {6, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeNotificationsSession};
+ methodMap_["initializeNotificationsSession"] = MethodMetadata {5, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeNotificationsSession};
methodMap_["isNotificationsSessionInitialized"] = MethodMetadata {0, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_isNotificationsSessionInitialized};
methodMap_["isDeviceNotificationsSessionInitialized"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_isDeviceNotificationsSessionInitialized};
methodMap_["isNotificationsSessionInitializedWithDevices"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_isNotificationsSessionInitializedWithDevices};
@@ -275,10 +275,10 @@
methodMap_["getDataFromNotifStorage"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getDataFromNotifStorage};
methodMap_["updateUnreadThickThreadsInNotifsStorage"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_updateUnreadThickThreadsInNotifsStorage};
methodMap_["getUnreadThickThreadIDsFromNotifsStorage"] = MethodMetadata {0, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_getUnreadThickThreadIDsFromNotifsStorage};
- methodMap_["initializeContentOutboundSession"] = MethodMetadata {6, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeContentOutboundSession};
+ methodMap_["initializeContentOutboundSession"] = MethodMetadata {5, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeContentOutboundSession};
methodMap_["initializeContentInboundSession"] = MethodMetadata {5, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeContentInboundSession};
methodMap_["isContentSessionInitialized"] = MethodMetadata {1, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_isContentSessionInitialized};
- methodMap_["initializeNotificationsOutboundSession"] = MethodMetadata {6, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeNotificationsOutboundSession};
+ methodMap_["initializeNotificationsOutboundSession"] = MethodMetadata {5, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_initializeNotificationsOutboundSession};
methodMap_["encrypt"] = MethodMetadata {2, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_encrypt};
methodMap_["encryptNotification"] = MethodMetadata {2, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_encryptNotification};
methodMap_["encryptAndPersist"] = MethodMetadata {3, __hostFunction_CommCoreModuleSchemaCxxSpecJSI_encryptAndPersist};
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
@@ -33,7 +33,7 @@
virtual jsi::Value getOneTimeKeys(jsi::Runtime &rt, double oneTimeKeysAmount) = 0;
virtual jsi::Value validateAndGetPrekeys(jsi::Runtime &rt) = 0;
virtual jsi::Value validateAndUploadPrekeys(jsi::Runtime &rt, jsi::String authUserID, jsi::String authDeviceID, jsi::String authAccessToken) = 0;
- virtual jsi::Value initializeNotificationsSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String keyserverID, bool olmCompatibilityMode) = 0;
+ virtual jsi::Value initializeNotificationsSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String keyserverID) = 0;
virtual jsi::Value isNotificationsSessionInitialized(jsi::Runtime &rt) = 0;
virtual jsi::Value isDeviceNotificationsSessionInitialized(jsi::Runtime &rt, jsi::String deviceID) = 0;
virtual jsi::Value isNotificationsSessionInitializedWithDevices(jsi::Runtime &rt, jsi::Array deviceIDs) = 0;
@@ -42,10 +42,10 @@
virtual jsi::Value getDataFromNotifStorage(jsi::Runtime &rt, jsi::Array ids) = 0;
virtual jsi::Value updateUnreadThickThreadsInNotifsStorage(jsi::Runtime &rt, jsi::Array unreadThickThreadIDs) = 0;
virtual jsi::Value getUnreadThickThreadIDsFromNotifsStorage(jsi::Runtime &rt) = 0;
- virtual jsi::Value initializeContentOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID, bool olmCompatibilityMode) = 0;
+ virtual jsi::Value initializeContentOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID) = 0;
virtual jsi::Value initializeContentInboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::Object encryptedContent, jsi::String deviceID, double sessionVersion, bool overwrite) = 0;
virtual jsi::Value isContentSessionInitialized(jsi::Runtime &rt, jsi::String deviceID) = 0;
- virtual jsi::Value initializeNotificationsOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID, bool olmCompatibilityMode) = 0;
+ virtual jsi::Value initializeNotificationsOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID) = 0;
virtual jsi::Value encrypt(jsi::Runtime &rt, jsi::String message, jsi::String deviceID) = 0;
virtual jsi::Value encryptNotification(jsi::Runtime &rt, jsi::String payload, jsi::String deviceID) = 0;
virtual jsi::Value encryptAndPersist(jsi::Runtime &rt, jsi::String message, jsi::String deviceID, jsi::String messageID) = 0;
@@ -222,13 +222,13 @@
return bridging::callFromJs<jsi::Value>(
rt, &T::validateAndUploadPrekeys, jsInvoker_, instance_, std::move(authUserID), std::move(authDeviceID), std::move(authAccessToken));
}
- jsi::Value initializeNotificationsSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String keyserverID, bool olmCompatibilityMode) override {
+ jsi::Value initializeNotificationsSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String keyserverID) override {
static_assert(
- bridging::getParameterCount(&T::initializeNotificationsSession) == 7,
- "Expected initializeNotificationsSession(...) to have 7 parameters");
+ bridging::getParameterCount(&T::initializeNotificationsSession) == 6,
+ "Expected initializeNotificationsSession(...) to have 6 parameters");
return bridging::callFromJs<jsi::Value>(
- rt, &T::initializeNotificationsSession, jsInvoker_, instance_, std::move(identityKeys), std::move(prekey), std::move(prekeySignature), std::move(oneTimeKey), std::move(keyserverID), std::move(olmCompatibilityMode));
+ rt, &T::initializeNotificationsSession, jsInvoker_, instance_, std::move(identityKeys), std::move(prekey), std::move(prekeySignature), std::move(oneTimeKey), std::move(keyserverID));
}
jsi::Value isNotificationsSessionInitialized(jsi::Runtime &rt) override {
static_assert(
@@ -294,13 +294,13 @@
return bridging::callFromJs<jsi::Value>(
rt, &T::getUnreadThickThreadIDsFromNotifsStorage, jsInvoker_, instance_);
}
- jsi::Value initializeContentOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID, bool olmCompatibilityMode) override {
+ jsi::Value initializeContentOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID) override {
static_assert(
- bridging::getParameterCount(&T::initializeContentOutboundSession) == 7,
- "Expected initializeContentOutboundSession(...) to have 7 parameters");
+ bridging::getParameterCount(&T::initializeContentOutboundSession) == 6,
+ "Expected initializeContentOutboundSession(...) to have 6 parameters");
return bridging::callFromJs<jsi::Value>(
- rt, &T::initializeContentOutboundSession, jsInvoker_, instance_, std::move(identityKeys), std::move(prekey), std::move(prekeySignature), std::move(oneTimeKey), std::move(deviceID), std::move(olmCompatibilityMode));
+ rt, &T::initializeContentOutboundSession, jsInvoker_, instance_, std::move(identityKeys), std::move(prekey), std::move(prekeySignature), std::move(oneTimeKey), std::move(deviceID));
}
jsi::Value initializeContentInboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::Object encryptedContent, jsi::String deviceID, double sessionVersion, bool overwrite) override {
static_assert(
@@ -318,13 +318,13 @@
return bridging::callFromJs<jsi::Value>(
rt, &T::isContentSessionInitialized, jsInvoker_, instance_, std::move(deviceID));
}
- jsi::Value initializeNotificationsOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID, bool olmCompatibilityMode) override {
+ jsi::Value initializeNotificationsOutboundSession(jsi::Runtime &rt, jsi::String identityKeys, jsi::String prekey, jsi::String prekeySignature, std::optional<jsi::String> oneTimeKey, jsi::String deviceID) override {
static_assert(
- bridging::getParameterCount(&T::initializeNotificationsOutboundSession) == 7,
- "Expected initializeNotificationsOutboundSession(...) to have 7 parameters");
+ bridging::getParameterCount(&T::initializeNotificationsOutboundSession) == 6,
+ "Expected initializeNotificationsOutboundSession(...) to have 6 parameters");
return bridging::callFromJs<jsi::Value>(
- rt, &T::initializeNotificationsOutboundSession, jsInvoker_, instance_, std::move(identityKeys), std::move(prekey), std::move(prekeySignature), std::move(oneTimeKey), std::move(deviceID), std::move(olmCompatibilityMode));
+ rt, &T::initializeNotificationsOutboundSession, jsInvoker_, instance_, std::move(identityKeys), std::move(prekey), std::move(prekeySignature), std::move(oneTimeKey), std::move(deviceID));
}
jsi::Value encrypt(jsi::Runtime &rt, jsi::String message, jsi::String deviceID) override {
static_assert(
diff --git a/native/crypto/olm-api.js b/native/crypto/olm-api.js
--- a/native/crypto/olm-api.js
+++ b/native/crypto/olm-api.js
@@ -58,7 +58,6 @@
async contentOutboundSessionCreator(
contentIdentityKeys: OLMIdentityKeys,
contentInitializationInfo: OlmSessionInitializationInfo,
- olmCompatibilityMode: boolean,
): Promise<OutboundSessionCreationResult> {
const { prekey, prekeySignature, oneTimeKey } = contentInitializationInfo;
const identityKeys = JSON.stringify({
@@ -72,7 +71,6 @@
prekeySignature,
oneTimeKey,
contentIdentityKeys.ed25519,
- olmCompatibilityMode,
);
},
keyserverNotificationsSessionCreator(
@@ -80,7 +78,6 @@
notificationsIdentityKeys: OLMIdentityKeys,
notificationsInitializationInfo: OlmSessionInitializationInfo,
keyserverID: string,
- olmCompatibilityMode: boolean,
): Promise<string> {
const { prekey, prekeySignature, oneTimeKey } =
notificationsInitializationInfo;
@@ -90,14 +87,12 @@
prekeySignature,
oneTimeKey,
keyserverID,
- olmCompatibilityMode,
);
},
async notificationsOutboundSessionCreator(
deviceID: string,
notificationsIdentityKeys: OLMIdentityKeys,
notificationsInitializationInfo: OlmSessionInitializationInfo,
- olmCompatibilityMode: boolean,
): Promise<EncryptedData> {
const { prekey, prekeySignature, oneTimeKey } =
notificationsInitializationInfo;
@@ -111,7 +106,6 @@
prekeySignature,
oneTimeKey,
deviceID,
- olmCompatibilityMode,
);
},
isDeviceNotificationsSessionInitialized:
diff --git a/native/schema/CommCoreModuleSchema.js b/native/schema/CommCoreModuleSchema.js
--- a/native/schema/CommCoreModuleSchema.js
+++ b/native/schema/CommCoreModuleSchema.js
@@ -73,7 +73,6 @@
prekeySignature: string,
oneTimeKey: ?string,
keyserverID: string,
- olmCompatibilityMode: boolean,
) => Promise<string>;
+isNotificationsSessionInitialized: () => Promise<boolean>;
+isDeviceNotificationsSessionInitialized: (
@@ -103,7 +102,6 @@
prekeySignature: string,
oneTimeKey: ?string,
deviceID: string,
- olmCompatibilityMode: boolean,
) => Promise<OutboundSessionCreationResult>;
+initializeContentInboundSession: (
identityKeys: string,
@@ -119,7 +117,6 @@
prekeySignature: string,
oneTimeKey: ?string,
deviceID: string,
- olmCompatibilityMode: boolean,
) => Promise<EncryptedData>;
+encrypt: (message: string, deviceID: string) => Promise<EncryptedData>;
+encryptNotification: (
diff --git a/web/shared-worker/worker/worker-crypto.js b/web/shared-worker/worker/worker-crypto.js
--- a/web/shared-worker/worker/worker-crypto.js
+++ b/web/shared-worker/worker/worker-crypto.js
@@ -185,7 +185,6 @@
notificationsInitializationInfo: OlmSessionInitializationInfo,
dataPersistenceKey: string,
dataEncryptionKeyDBLabel: string,
- olmCompatibilityMode: boolean,
): Promise<EncryptedData> {
if (!cryptoStore) {
throw new Error('Crypto account not initialized');
@@ -209,7 +208,7 @@
notificationsInitializationInfo.oneTimeKey || '',
notificationsPrekey,
notificationsInitializationInfo.prekeySignature,
- olmCompatibilityMode,
+ true, // olmCompatibilityMode
);
const encryptedMessage = session.encrypt(
@@ -842,7 +841,6 @@
async contentOutboundSessionCreator(
contentIdentityKeys: OLMIdentityKeys,
contentInitializationInfo: OlmSessionInitializationInfo,
- olmCompatibilityMode: boolean,
): Promise<OutboundSessionCreationResult> {
if (!cryptoStore) {
throw new Error('Crypto account not initialized');
@@ -858,7 +856,7 @@
contentInitializationInfo.oneTimeKey || '',
contentInitializationInfo.prekey,
contentInitializationInfo.prekeySignature,
- olmCompatibilityMode,
+ true, // olmCompatibilityMode
);
const olmMessage = session.encrypt(
@@ -898,7 +896,6 @@
deviceID: string,
notificationsIdentityKeys: OLMIdentityKeys,
notificationsInitializationInfo: OlmSessionInitializationInfo,
- olmCompatibilityMode: boolean,
): Promise<EncryptedData> {
const dataPersistenceKey = getOlmDataKeyForDeviceID(deviceID);
const dataEncryptionKeyDBLabel =
@@ -909,7 +906,6 @@
notificationsInitializationInfo,
dataPersistenceKey,
dataEncryptionKeyDBLabel,
- olmCompatibilityMode,
);
},
async isDeviceNotificationsSessionInitialized(deviceID: string) {
@@ -948,7 +944,6 @@
notificationsIdentityKeys: OLMIdentityKeys,
notificationsInitializationInfo: OlmSessionInitializationInfo,
keyserverID: string,
- olmCompatibilityMode: boolean,
): Promise<string> {
const platformDetails = getPlatformDetails();
if (!platformDetails) {
@@ -963,7 +958,6 @@
notificationsInitializationInfo,
notifsOlmDataContentKey,
notifsOlmDataEncryptionKeyDBLabel,
- olmCompatibilityMode,
);
return message;

File Metadata

Mime Type
text/plain
Expires
Wed, Jan 21, 9:51 PM (57 m, 48 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5971796
Default Alt Text
D15561.1769032311.diff (32 KB)

Event Timeline