(encrypted: string, keyData: Uint8Array, iv: string, keyVersion: number)
| 34 | } |
| 35 | |
| 36 | export async function decrypt(encrypted: string, keyData: Uint8Array, iv: string, keyVersion: number): Promise<string> { |
| 37 | const algorithm = keyVersion === 1 ? "AES-CBC" : "AES-GCM"; |
| 38 | |
| 39 | const key = await crypto.subtle.importKey("raw", keyData, { name: algorithm, length: 128 }, false, ["decrypt"]); |
| 40 | |
| 41 | const decrypted = await crypto.subtle.decrypt( |
| 42 | { |
| 43 | name: algorithm, |
| 44 | iv: fromBase58(iv), |
| 45 | }, |
| 46 | key, |
| 47 | fromBase58(encrypted), |
| 48 | ); |
| 49 | |
| 50 | return new TextDecoder().decode(decrypted); |
| 51 | } |
no test coverage detected