- Upgraded to rust crypto but old libolm data will not migrate

This commit is contained in:
Skylar Sadlier 2024-09-20 17:57:15 -06:00
parent 512b7320d5
commit db14bd96a7
3 changed files with 5000 additions and 16662 deletions

21625
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -3,6 +3,7 @@
"version": "0.8.0",
"description": "Matrix chat server client for Node-RED",
"dependencies": {
"@matrix-org/matrix-sdk-crypto-nodejs": "^0.2.0-beta.1",
"abort-controller": "^3.0.0",
"fluent-ffmpeg": "^2.1.2",
"fs-extra": "^11.1.0",
@ -14,7 +15,6 @@
"node-fetch": "^3.3.0",
"node-localstorage": "^2.2.1",
"olm": "https://gitlab.matrix.org/matrix-org/olm/-/package_files/2572/download",
"request": "^2.88.2",
"sharp": "^0.33.4",
"tmp": "^0.2.1",
"utf8": "^3.0.0"

View File

@ -2,7 +2,7 @@ global.Olm = require('olm');
const fs = require("fs-extra");
const { resolve } = require('path');
const { LocalStorage } = require('node-localstorage');
const request = require("request");
globalThis.crypto = require('crypto');
require("abort-controller/polyfill"); // polyfill abort-controller if we don't have it
if (!globalThis.fetch) {
@ -21,16 +21,16 @@ module.exports = function(RED) {
const loggerPromise = import('matrix-js-sdk/lib/logger.js');
// disable logging if set to "off"
let loggingSettings = RED.settings.get('logging');
if(
typeof loggingSettings.console !== 'undefined' &&
typeof loggingSettings.console.level !== 'undefined' &&
['info','debug','trace'].indexOf(loggingSettings.console.level.toLowerCase()) >= 0
) {
loggerPromise.then(({ logger }) => {
logger.disableAll();
});
}
// let loggingSettings = RED.settings.get('logging');
// if(
// typeof loggingSettings.console !== 'undefined' &&
// typeof loggingSettings.console.level !== 'undefined' &&
// ['info','debug','trace'].indexOf(loggingSettings.console.level.toLowerCase()) >= 0
// ) {
// loggerPromise.then(({ logger }) => {
// logger.disableAll();
// });
// }
function MatrixFolderNameFromUserId(name) {
return name.replace(/[^a-z0-9]/gi, '_').toLowerCase();
@ -161,8 +161,7 @@ module.exports = function(RED) {
localStorage: localStorage,
}),
userId: this.userId,
deviceId: (this.deviceId || getStoredDeviceId(localStorage)) || undefined,
request
deviceId: (this.deviceId || getStoredDeviceId(localStorage)) || undefined
// verificationMethods: ["m.sas.v1"]
});
@ -373,8 +372,13 @@ module.exports = function(RED) {
async function run() {
try {
if(node.e2ee){
node.log("Initializing crypto...");
await node.matrixClient.initCrypto();
node.matrixClient.on("crypto.legacyCryptoStoreMigrationProgress", function(progress, total){
node.log(`Migrating from legacy crypto to rust crypto. ${progress}/${total}`);
});
await node.matrixClient.initRustCrypto({
useIndexedDB: false
});
console.log(`CRYPTO VERSION: ${node.matrixClient.getCrypto()?.getVersion()}`);
node.matrixClient.getCrypto().globalBlacklistUnverifiedDevices = false; // prevent errors from unverified devices
}
node.log("Connecting to Matrix server...");
@ -382,6 +386,7 @@ module.exports = function(RED) {
initialSyncLimit: node.initialSyncLimit
});
} catch(error) {
node.error(error);
node.error(error, {});
}
}