@confluentinc/schemaregistry
Version:
Node.js client for Confluent Schema Registry
38 lines (37 loc) • 1.14 kB
JavaScript
;
/**
* 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);
}