INNER CODE UNIT · TypeScript
loadEncryptionKey
backbone-hq/minibone · src/core.ts:47
export const loadEncryptionKey = async (keyData: Uint8Array): Promise<CryptoKey> => {
return await crypto.subtle.importKey('raw', keyData, ENCRYPTION_ALGORITHM, false, ['encrypt'])
}
export const loadDecryptionKey = async (keyData: Uint8Array): Promise<CryptoKey> => {
return await crypto.subtle.importKey('raw', keyData, ENCRYPTION_ALGORITHM, false, ['decrypt'])
}
export const encryptData = async (
data: Uint8Array,
key: CryptoKey,
associatedData?: Uint8Array
): Promise<[Uint8Array, Uint8Array]> => {
const iv = crypto.getRandomValues(new Uint8Array(12))
const buffer = await crypto.subtle.encrypt({ ...ENCRYPTION_ALGORITHM, iv, additionalData: associatedData }, key, data)
return [iv, new Uint8Array(buffer)]
}