Page MenuHomePhabricator

D8550.diff
No OneTemporary

D8550.diff

diff --git a/native/cpp/CommonCpp/CryptoTools/Tools.h b/native/cpp/CommonCpp/CryptoTools/Tools.h
--- a/native/cpp/CommonCpp/CryptoTools/Tools.h
+++ b/native/cpp/CommonCpp/CryptoTools/Tools.h
@@ -4,7 +4,9 @@
#include <string>
#include <vector>
+#ifndef EMSCRIPTEN
#include "olm/olm.h"
+#endif
// base64-encoded
#define KEYSIZE 43
diff --git a/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h b/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h
--- a/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h
+++ b/native/cpp/CommonCpp/DatabaseManagers/DatabaseQueryExecutor.h
@@ -11,14 +11,18 @@
#include "entities/Report.h"
#include "entities/Thread.h"
+#ifndef EMSCRIPTEN
#include <folly/Optional.h>
-
#include <jsi/jsi.h>
+#endif
+
#include <string>
namespace comm {
+#ifndef EMSCRIPTEN
namespace jsi = facebook::jsi;
+#endif
/**
* if any initialization/cleaning up steps are required for specific
diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h
--- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h
+++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.h
@@ -11,19 +11,21 @@
class SQLiteQueryExecutor : public DatabaseQueryExecutor {
static void migrate();
- static void assign_encryption_key();
static auto &getStorage();
static std::once_flag initialized;
static int sqlcipherEncryptionKeySize;
static std::string secureStoreEncryptionKeyID;
+#ifndef EMSCRIPTEN
+ static void assign_encryption_key();
+#endif
+
public:
static std::string sqliteFilePath;
static std::string encryptionKey;
SQLiteQueryExecutor();
- static void initialize(std::string &databasePath);
std::unique_ptr<Thread> getThread(std::string threadID) const override;
std::string getDraft(std::string key) const override;
void updateDraft(std::string key, std::string text) const override;
@@ -78,7 +80,11 @@
void setMetadata(std::string entry_name, std::string data) const override;
void clearMetadata(std::string entry_name) const override;
std::string getMetadata(std::string entry_name) const override;
+
+#ifndef EMSCRIPTEN
static void clearSensitiveData();
+ static void initialize(std::string &databasePath);
+#endif
};
} // namespace comm
diff --git a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp
--- a/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp
+++ b/native/cpp/CommonCpp/DatabaseManagers/SQLiteQueryExecutor.cpp
@@ -1,5 +1,4 @@
#include "SQLiteQueryExecutor.h"
-#include "CommSecureStore.h"
#include "Logger.h"
#include "sqlite_orm.h"
@@ -8,6 +7,10 @@
#include <iostream>
#include <thread>
+#ifndef EMSCRIPTEN
+#include "CommSecureStore.h"
+#endif
+
#define ACCOUNT_ID 1
namespace comm {
@@ -850,15 +853,6 @@
sqlite3_close(db);
}
-void SQLiteQueryExecutor::assign_encryption_key() {
- CommSecureStore commSecureStore{};
- std::string encryptionKey = comm::crypto::Tools::generateRandomHexString(
- SQLiteQueryExecutor::sqlcipherEncryptionKeySize);
- commSecureStore.set(
- SQLiteQueryExecutor::secureStoreEncryptionKeyID, encryptionKey);
- SQLiteQueryExecutor::encryptionKey = encryptionKey;
-}
-
auto &SQLiteQueryExecutor::getStorage() {
static auto storage = make_storage(
SQLiteQueryExecutor::sqliteFilePath,
@@ -941,21 +935,6 @@
return storage;
}
-void SQLiteQueryExecutor::initialize(std::string &databasePath) {
- std::call_once(SQLiteQueryExecutor::initialized, [&databasePath]() {
- SQLiteQueryExecutor::sqliteFilePath = databasePath;
- CommSecureStore commSecureStore{};
- folly::Optional<std::string> maybeEncryptionKey =
- commSecureStore.get(SQLiteQueryExecutor::secureStoreEncryptionKeyID);
-
- if (file_exists(databasePath) && maybeEncryptionKey) {
- SQLiteQueryExecutor::encryptionKey = maybeEncryptionKey.value();
- return;
- }
- SQLiteQueryExecutor::assign_encryption_key();
- });
-}
-
SQLiteQueryExecutor::SQLiteQueryExecutor() {
SQLiteQueryExecutor::migrate();
}
@@ -1286,6 +1265,7 @@
return (entry == nullptr) ? "" : entry->data;
}
+#ifndef EMSCRIPTEN
void SQLiteQueryExecutor::clearSensitiveData() {
if (file_exists(SQLiteQueryExecutor::sqliteFilePath) &&
std::remove(SQLiteQueryExecutor::sqliteFilePath.c_str())) {
@@ -1298,4 +1278,29 @@
SQLiteQueryExecutor::migrate();
}
+void SQLiteQueryExecutor::initialize(std::string &databasePath) {
+ std::call_once(SQLiteQueryExecutor::initialized, [&databasePath]() {
+ SQLiteQueryExecutor::sqliteFilePath = databasePath;
+ CommSecureStore commSecureStore{};
+ folly::Optional<std::string> maybeEncryptionKey =
+ commSecureStore.get(SQLiteQueryExecutor::secureStoreEncryptionKeyID);
+
+ if (file_exists(databasePath) && maybeEncryptionKey) {
+ SQLiteQueryExecutor::encryptionKey = maybeEncryptionKey.value();
+ return;
+ }
+ SQLiteQueryExecutor::assign_encryption_key();
+ });
+}
+
+void SQLiteQueryExecutor::assign_encryption_key() {
+ CommSecureStore commSecureStore{};
+ std::string encryptionKey = comm::crypto::Tools::generateRandomHexString(
+ SQLiteQueryExecutor::sqlcipherEncryptionKeySize);
+ commSecureStore.set(
+ SQLiteQueryExecutor::secureStoreEncryptionKeyID, encryptionKey);
+ SQLiteQueryExecutor::encryptionKey = encryptionKey;
+}
+#endif
+
} // namespace comm
diff --git a/web/database/_generated/comm_query_executor.wasm b/web/database/_generated/comm_query_executor.wasm
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
GIT binary patch
literal 0
Hc$@<O00001
literal 0
Hc$@<O00001
diff --git a/web/scripts/run_emscripten.sh b/web/scripts/run_emscripten.sh
--- a/web/scripts/run_emscripten.sh
+++ b/web/scripts/run_emscripten.sh
@@ -88,6 +88,7 @@
INPUT_FILES=(
"${INPUT_DIR}CommQueryExecutor.cpp"
+ "${INPUT_DIR}SQLiteQueryExecutor.cpp"
"${WEB_CPP_DIR}Logger.cpp"
"$SQLITE_BITCODE_FILE"
)

File Metadata

Mime Type
text/plain
Expires
Tue, Nov 26, 7:35 PM (21 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2585921
Default Alt Text
D8550.diff (5 KB)

Event Timeline