UNPKG

@adorsys-gis/web-auth-prf

Version:

A WebAuthn library implementing password-based key derivation functions (PRF) for secure authentication and encryption

37 lines (36 loc) 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LocalDBService = void 0; class LocalDBService { async encryptData(plaintext, key) { try { const encoder = new TextEncoder(); const data = encoder.encode(plaintext); // Generate a unique IV for each encryption. const iv = crypto.getRandomValues(new Uint8Array(12)); const ciphertext = await crypto.subtle.encrypt({ name: "AES-GCM", iv }, key.key, data); // Prepend IV to ciphertext. const combined = new Uint8Array(iv.length + ciphertext.byteLength); combined.set(iv); combined.set(new Uint8Array(ciphertext), iv.length); return combined.buffer; } catch (error) { throw new Error(`Encryption error: ${error.message}`); } } async decryptData(encrypted, key) { try { const combined = new Uint8Array(encrypted); const iv = combined.slice(0, 12); const ciphertext = combined.slice(12); const plaintextBuffer = await crypto.subtle.decrypt({ name: "AES-GCM", iv }, key.key, ciphertext); const decoder = new TextDecoder(); return decoder.decode(plaintextBuffer); } catch (error) { throw new Error(`Decryption error: ${error.message}`); } } } exports.LocalDBService = LocalDBService;