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 @@ -1221,11 +1221,17 @@ promise->reject(error); return; } - promise->resolve(jsi::String::createFromUtf8( + auto encryptedDataJSI = jsi::Object(innerRt); + auto message = std::string{ + encryptedMessage.message.begin(), + encryptedMessage.message.end()}; + auto messageJSI = jsi::String::createFromUtf8(innerRt, message); + encryptedDataJSI.setProperty(innerRt, "message", messageJSI); + encryptedDataJSI.setProperty( innerRt, - std::string{ - encryptedMessage.message.begin(), - encryptedMessage.message.end()})); + "messageType", + static_cast(encryptedMessage.messageType)); + promise->resolve(std::move(encryptedDataJSI)); }); }; this->cryptoThread->scheduleTask(job); 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 @@ -6,8 +6,6 @@ type OneTimeKeysResultValues, type OlmAPI, type OLMIdentityKeys, - type EncryptedData, - olmEncryptedMessageTypes, } from 'lib/types/crypto-types.js'; import type { OlmSessionInitializationInfo } from 'lib/types/request-types.js'; @@ -18,13 +16,7 @@ await commCoreModule.initializeCryptoAccount(); }, getUserPublicKey: commCoreModule.getUserPublicKey, - async encrypt(content: string, deviceID: string): Promise { - const encryptedContent = await commCoreModule.encrypt(content, deviceID); - return { - message: encryptedContent, - messageType: olmEncryptedMessageTypes.TEXT, - }; - }, + encrypt: commCoreModule.encrypt, decrypt: commCoreModule.decrypt, async contentInboundSessionCreator( contentIdentityKeys: OLMIdentityKeys, diff --git a/native/schema/CommCoreModuleSchema.js b/native/schema/CommCoreModuleSchema.js --- a/native/schema/CommCoreModuleSchema.js +++ b/native/schema/CommCoreModuleSchema.js @@ -16,7 +16,8 @@ OneTimeKeysResult, SignedPrekeys, ClientPublicKeys, -} from 'lib/types/crypto-types'; + EncryptedData, +} from 'lib/types/crypto-types.js'; import type { ClientDBDraftStoreOperation } from 'lib/types/draft-types.js'; import type { ClientDBMessageInfo } from 'lib/types/message-types.js'; import type { ClientDBStore } from 'lib/types/store-ops-types'; @@ -107,7 +108,7 @@ encryptedMessage: string, deviceID: string, ) => Promise; - +encrypt: (message: string, deviceID: string) => Promise; + +encrypt: (message: string, deviceID: string) => Promise; +decrypt: (message: string, deviceID: string) => Promise; +signMessage: (message: string) => Promise; +getCodeVersion: () => number;