UNPKG

694 BPlain TextView Raw
1import keystore from 'keystore-idb'
2import RSAKeyStore from 'keystore-idb/rsa/keystore'
3import { CryptoSystem } from 'keystore-idb/types'
4
5const KEYSTORE_CFG = { type: CryptoSystem.RSA }
6
7
8let ks: RSAKeyStore | null = null
9
10
11export const clear = async (): Promise<void> => {
12 ks = await get()
13 await ks.destroy()
14 ks = null
15}
16
17export const create = async (): Promise<RSAKeyStore> => {
18 return (await keystore.init(KEYSTORE_CFG)) as RSAKeyStore
19}
20
21export const set = async (userKeystore: RSAKeyStore): Promise<void> => {
22 ks = userKeystore
23}
24
25export const get = async (): Promise<RSAKeyStore> => {
26 if (ks) return ks
27 ks = (await keystore.init(KEYSTORE_CFG)) as RSAKeyStore
28 return ks
29}