forked from trent_larson/crowd-funder-for-time-pwa
fix linting
This commit is contained in:
@@ -62,7 +62,7 @@ backup and database export, with platform-specific download instructions. * *
|
||||
|
||||
<script lang="ts">
|
||||
import { Component, Prop, Vue } from "vue-facing-decorator";
|
||||
import { AppString, NotificationIface } from "../constants/app";
|
||||
import { AppString, NotificationIface, USE_DEXIE_DB } from "../constants/app";
|
||||
import { db } from "../db/index";
|
||||
import { logger } from "../utils/logger";
|
||||
import { PlatformServiceFactory } from "../services/PlatformServiceFactory";
|
||||
@@ -131,6 +131,9 @@ export default class DataExportSection extends Vue {
|
||||
*/
|
||||
public async exportDatabase() {
|
||||
try {
|
||||
if (!USE_DEXIE_DB) {
|
||||
throw new Error("Not implemented");
|
||||
}
|
||||
const blob = await db.export({
|
||||
prettyJson: true,
|
||||
transform: (table, value, key) => {
|
||||
|
||||
@@ -319,10 +319,7 @@ export async function simpleEncrypt(
|
||||
const iv = crypto.getRandomValues(new Uint8Array(16));
|
||||
|
||||
// Derive a 256-bit key from the secret using SHA-256
|
||||
const keyData = await crypto.subtle.digest(
|
||||
"SHA-256",
|
||||
secret,
|
||||
);
|
||||
const keyData = await crypto.subtle.digest("SHA-256", secret);
|
||||
const key = await crypto.subtle.importKey(
|
||||
"raw",
|
||||
keyData,
|
||||
@@ -357,10 +354,7 @@ export async function simpleDecrypt(
|
||||
const encrypted = data.slice(16);
|
||||
|
||||
// Derive the same 256-bit key from the secret using SHA-256
|
||||
const keyData = await crypto.subtle.digest(
|
||||
"SHA-256",
|
||||
secret,
|
||||
);
|
||||
const keyData = await crypto.subtle.digest("SHA-256", secret);
|
||||
const key = await crypto.subtle.importKey(
|
||||
"raw",
|
||||
keyData,
|
||||
|
||||
@@ -20,7 +20,15 @@ import { Account, AccountEncrypted } from "../db/tables/accounts";
|
||||
import { Contact } from "../db/tables/contacts";
|
||||
import * as databaseUtil from "../db/databaseUtil";
|
||||
import { DEFAULT_PASSKEY_EXPIRATION_MINUTES } from "../db/tables/settings";
|
||||
import { arrayBufferToBase64, base64ToArrayBuffer, deriveAddress, generateSeed, newIdentifier, simpleDecrypt, simpleEncrypt } from "../libs/crypto";
|
||||
import {
|
||||
arrayBufferToBase64,
|
||||
base64ToArrayBuffer,
|
||||
deriveAddress,
|
||||
generateSeed,
|
||||
newIdentifier,
|
||||
simpleDecrypt,
|
||||
simpleEncrypt,
|
||||
} from "../libs/crypto";
|
||||
import * as serverUtil from "../libs/endorserServer";
|
||||
import {
|
||||
containsHiddenDid,
|
||||
@@ -468,7 +476,9 @@ export interface AccountKeyInfo extends Account, KeyMeta {}
|
||||
export const retrieveAccountCount = async (): Promise<number> => {
|
||||
let result;
|
||||
const platformService = PlatformServiceFactory.getInstance();
|
||||
const dbResult = await platformService.dbQuery(`SELECT COUNT(*) FROM accounts`);
|
||||
const dbResult = await platformService.dbQuery(
|
||||
`SELECT COUNT(*) FROM accounts`,
|
||||
);
|
||||
result = dbResult.values[0][0] as number;
|
||||
|
||||
if (USE_DEXIE_DB) {
|
||||
@@ -523,23 +533,41 @@ export const retrieveFullyDecryptedAccount = async (
|
||||
): Promise<AccountKeyInfo | undefined> => {
|
||||
let result: AccountKeyInfo | undefined = undefined;
|
||||
const platformService = PlatformServiceFactory.getInstance();
|
||||
const dbSecrets = await platformService.dbQuery(`SELECT secretBase64 from secret`);
|
||||
if (!dbSecrets || dbSecrets.values.length === 0 || dbSecrets.values[0].length === 0) {
|
||||
throw new Error("No secret found. We recommend you clear your data and start over.");
|
||||
const dbSecrets = await platformService.dbQuery(
|
||||
`SELECT secretBase64 from secret`,
|
||||
);
|
||||
if (
|
||||
!dbSecrets ||
|
||||
dbSecrets.values.length === 0 ||
|
||||
dbSecrets.values[0].length === 0
|
||||
) {
|
||||
throw new Error(
|
||||
"No secret found. We recommend you clear your data and start over.",
|
||||
);
|
||||
}
|
||||
const secretBase64 = dbSecrets.values[0][0] as string;
|
||||
const secret = base64ToArrayBuffer(secretBase64);
|
||||
const dbAccount = await platformService.dbQuery(`SELECT * FROM accounts WHERE did = ?`, [activeDid]);
|
||||
if (!dbAccount || dbAccount.values.length === 0 || dbAccount.values[0].length === 0) {
|
||||
const dbAccount = await platformService.dbQuery(
|
||||
`SELECT * FROM accounts WHERE did = ?`,
|
||||
[activeDid],
|
||||
);
|
||||
if (
|
||||
!dbAccount ||
|
||||
dbAccount.values.length === 0 ||
|
||||
dbAccount.values[0].length === 0
|
||||
) {
|
||||
throw new Error("Account not found.");
|
||||
}
|
||||
const fullAccountData = databaseUtil.mapColumnsToValues(dbAccount.columns, dbAccount.values)[0] as AccountEncrypted;
|
||||
const fullAccountData = databaseUtil.mapColumnsToValues(
|
||||
dbAccount.columns,
|
||||
dbAccount.values,
|
||||
)[0] as AccountEncrypted;
|
||||
const identityEncr = base64ToArrayBuffer(fullAccountData.identityEncrBase64);
|
||||
const mnemonicEncr = base64ToArrayBuffer(fullAccountData.mnemonicEncrBase64);
|
||||
fullAccountData.identity = await simpleDecrypt(identityEncr, secret);
|
||||
fullAccountData.mnemonic = await simpleDecrypt(mnemonicEncr, secret);
|
||||
result = fullAccountData;
|
||||
|
||||
|
||||
if (USE_DEXIE_DB) {
|
||||
// one of the few times we use accountsDBPromise directly; try to avoid more usage
|
||||
const accountsDB = await accountsDBPromise;
|
||||
@@ -578,9 +606,13 @@ export const generateSaveAndActivateIdentity = async (): Promise<string> => {
|
||||
try {
|
||||
// add to the new sql db
|
||||
const platformService = PlatformServiceFactory.getInstance();
|
||||
const secrets = await platformService.dbQuery(`SELECT secretBase64 FROM secret`);
|
||||
const secrets = await platformService.dbQuery(
|
||||
`SELECT secretBase64 FROM secret`,
|
||||
);
|
||||
if (secrets.values.length === 0 || secrets.values[0].length === 0) {
|
||||
throw new Error("No initial encryption supported. We recommend you clear your data and start over.");
|
||||
throw new Error(
|
||||
"No initial encryption supported. We recommend you clear your data and start over.",
|
||||
);
|
||||
}
|
||||
const secretBase64 = secrets.values[0][0] as string;
|
||||
const secret = base64ToArrayBuffer(secretBase64);
|
||||
|
||||
Reference in New Issue
Block a user