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