UNPKG

@iexec/dataprotector

Version:

This product enables users to confidentially store data–such as mail address, documents, personal information ...

69 lines 2.5 kB
let db; export async function storeKeyPair(keyPair) { if (typeof window === 'undefined' || !('indexedDB' in window)) { return; } return new Promise((resolve, reject) => { const writeRequest = db .transaction('keyPair', 'readwrite') .objectStore('keyPair') .add({ keyPairName: 'CryptoKeyPair', keyPair, }); writeRequest.onerror = (err) => { console.error('[indexedDB] writeRequest() ERROR', err); reject(err); }; writeRequest.onsuccess = () => { console.log('[indexedDB] keyPair saved'); resolve('Done'); }; }); } export async function getSavedKeyPair() { if (typeof window === 'undefined' || !('indexedDB' in window)) { return; } return new Promise((resolve, reject) => { const openDbRequest = window.indexedDB.open('iexec-dataprotector', 1); openDbRequest.onerror = (event) => { console.log('[indexedDB] openDbRequest() ERROR', event); }; openDbRequest.onsuccess = () => { db = openDbRequest.result; const readRequest = db .transaction('keyPair') .objectStore('keyPair') .get('CryptoKeyPair'); readRequest.onerror = (err) => { console.error('[indexedDB] readRequest() ERROR', err); reject(err); }; readRequest.onsuccess = () => { const keyPair = readRequest.result; resolve(keyPair); }; }; openDbRequest.onupgradeneeded = () => { db = openDbRequest.result; // Create an objectStore for this database const objectStore = db.createObjectStore('keyPair', { keyPath: 'keyPairName', }); objectStore.transaction.oncomplete = () => { const readKeyPairRequest = db .transaction('keyPair', 'readonly') .objectStore('keyPair') .get('CryptoKeyPair'); readKeyPairRequest.onerror = (event) => { console.log('[indexedDB] readKeyPairRequest() ERROR', event); }; readKeyPairRequest.onsuccess = () => { resolve(readKeyPairRequest.result); }; }; }; }); } //# sourceMappingURL=indexedDb.js.map