UNPKG

@confluentinc/schemaregistry

Version:
38 lines (37 loc) 1.14 kB
"use strict"; /** * Copyright 2020 Google LLC * SPDX-License-Identifier: Apache-2.0 */ Object.defineProperty(exports, "__esModule", { value: true }); exports.AesSiv = void 0; exports.fromRawKey = fromRawKey; const aead_1 = require("./aead"); // @ts-expect-error miscreant does not have types const miscreant_esm_1 = require("@hackbg/miscreant-esm"); /** * Implementation of AES-SIV. * */ class AesSiv extends aead_1.Aead { constructor(key) { super(); this.key = key; } /** */ async encrypt(plaintext, associatedData) { let key = await miscreant_esm_1.SIV.importKey(this.key, "AES-CMAC-SIV", new miscreant_esm_1.SoftCryptoProvider()); return key.seal(plaintext, associatedData != null ? [associatedData] : []); } /** */ async decrypt(ciphertext, associatedData) { let key = await miscreant_esm_1.SIV.importKey(this.key, "AES-CMAC-SIV", new miscreant_esm_1.SoftCryptoProvider()); return key.open(ciphertext, associatedData != null ? [associatedData] : []); } } exports.AesSiv = AesSiv; async function fromRawKey(key) { return new AesSiv(key); }