UNPKG

signify-ts

Version:

Signing at the edge for KERI, ACDC, and KERIA

26 lines (25 loc) 1 kB
import { Matter, MtrDex } from "./matter.js"; import { Decrypter } from "./decrypter.js"; export class Cipher extends Matter { constructor({ raw, code, qb64, qb64b, qb2 }) { if (raw != undefined && code == undefined) { if (raw.length == Matter._rawSize(MtrDex.X25519_Cipher_Salt)) { code = MtrDex.X25519_Cipher_Salt; } else if (raw.length == Matter._rawSize(MtrDex.X25519_Cipher_Seed)) { code = MtrDex.X25519_Cipher_Salt; } } super({ raw: raw, code: code, qb64b: qb64b, qb64: qb64, qb2: qb2 }); if (!Array.from([ MtrDex.X25519_Cipher_Salt, MtrDex.X25519_Cipher_Seed, ]).includes(this.code)) { throw new Error(`Unsupported Cipher code == ${this.code}`); } } decrypt(prikey = undefined, seed = undefined) { const decrypter = new Decrypter({ qb64b: prikey }, seed); return decrypter.decrypt(this.qb64b); } }