UNPKG

@veramo/did-comm

Version:

Veramo messaging plugin implementing DIDComm v2.

29 lines (25 loc) 732 B
import { AESKW } from '@stablelib/aes-kw' import type { EncryptionResult, KeyWrapper } from 'did-jwt' /** * Creates a wrapper using AES-KW * @param wrappingKey */ export const a256KeyWrapper: KeyWrapper = { from: (wrappingKey: Uint8Array) => { const wrap = async (cek: Uint8Array): Promise<EncryptionResult> => { return { ciphertext: new AESKW(wrappingKey).wrapKey(cek) } } return { wrap } }, alg: 'A256KW', } export function a256KeyUnwrapper(wrappingKey: Uint8Array) { const unwrap = async (wrappedCek: Uint8Array): Promise<Uint8Array | null> => { try { return new AESKW(wrappingKey).unwrapKey(wrappedCek) } catch (e) { return null } } return { unwrap, alg: 'A256KW' } }