From d92820280df354ec8411e6282e5ee5c8fc727cb8 Mon Sep 17 00:00:00 2001 From: chesspro13 Date: Sat, 14 Sep 2024 10:04:39 -0700 Subject: [PATCH] Fixed problem with using existing databases. --- src/services/encryption/open_id_encryption.ts | 30 ++++--------------- src/services/sql_init.ts | 15 ++++++++++ 2 files changed, 20 insertions(+), 25 deletions(-) diff --git a/src/services/encryption/open_id_encryption.ts b/src/services/encryption/open_id_encryption.ts index 85711c90fc..27c1818871 100644 --- a/src/services/encryption/open_id_encryption.ts +++ b/src/services/encryption/open_id_encryption.ts @@ -4,26 +4,11 @@ import utils from "../utils.js"; import dataEncryptionService from "./data_encryption.js"; import sql from "../sql.js"; import sqlInit from "../sql_init.js"; +import OpenIDError from "../../errors/open_id_error.js"; function saveUser(subjectIdentifier: string, name: string, email: string) { if (isUserSaved()) return false; - // Allows setup with existing instances of trilium - sql.execute(` - CREATE TABLE IF NOT EXISTS "user_data" - ( - tmpID INT, - username TEXT, - email TEXT, - userIDEcnryptedDataKey TEXT, - userIDVerificationHash TEXT, - salt TEXT, - derivedKey TEXT, - isSetup TEXT DEFAULT "false", - UNIQUE (tmpID), - PRIMARY KEY (tmpID) - );`); - const verificationSalt = utils.randomSecureToken(32); const derivedKeySalt = utils.randomSecureToken(32); @@ -32,8 +17,7 @@ function saveUser(subjectIdentifier: string, name: string, email: string) { verificationSalt ); if (verificationHash === undefined) { - console.log("Verification hash undefined!"); - return undefined; + throw new OpenIDError("Verification hash undefined!") } const userIDEncryptedDataKey = setDataKey( @@ -75,13 +59,11 @@ function isUserSaved() { function verifyOpenIDSubjectIdentifier(subjectIdentifier: string) { if (!sqlInit.isDbInitialized()) { - console.log("Database not initialized!"); - return undefined; + throw new OpenIDError("Database not initialized!"); } - if (!isUserSaved()) { - console.log("DATABASE NOT SETUP"); - return undefined; + if (isUserSaved()) { + return false; } const salt = sql.getValue("SELECT salt FROM user_data;"); @@ -115,7 +97,6 @@ function setDataKey( plainTextDataKey: string | Buffer, salt: string ) { - console.log("Subject Identifier: " + subjectIdentifier); const subjectIdentifierDerivedKey = myScryptService.getSubjectIdentifierDerivedKey(subjectIdentifier, salt); @@ -132,7 +113,6 @@ function setDataKey( } function getDataKey(subjectIdentifier: string) { - console.log("Subject Identifier: " + subjectIdentifier); const subjectIdentifierDerivedKey = myScryptService.getSubjectIdentifierDerivedKey(subjectIdentifier); diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index 7155147462..601ad9738f 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -48,6 +48,21 @@ async function initDbConnection() { sql.execute('CREATE TEMP TABLE "param_list" (`paramId` TEXT NOT NULL PRIMARY KEY)'); + sql.execute(` + CREATE TABLE IF NOT EXISTS "user_data" + ( + tmpID INT, + username TEXT, + email TEXT, + userIDEcnryptedDataKey TEXT, + userIDVerificationHash TEXT, + salt TEXT, + derivedKey TEXT, + isSetup TEXT DEFAULT "false", + UNIQUE (tmpID), + PRIMARY KEY (tmpID) + );`) + dbReady.resolve(); }