123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.EncryptJWT = void 0;
- const encrypt_js_1 = require("../jwe/compact/encrypt.js");
- const buffer_utils_js_1 = require("../lib/buffer_utils.js");
- const produce_js_1 = require("./produce.js");
- class EncryptJWT extends produce_js_1.ProduceJWT {
- setProtectedHeader(protectedHeader) {
- if (this._protectedHeader) {
- throw new TypeError('setProtectedHeader can only be called once');
- }
- this._protectedHeader = protectedHeader;
- return this;
- }
- setKeyManagementParameters(parameters) {
- if (this._keyManagementParameters) {
- throw new TypeError('setKeyManagementParameters can only be called once');
- }
- this._keyManagementParameters = parameters;
- return this;
- }
- setContentEncryptionKey(cek) {
- if (this._cek) {
- throw new TypeError('setContentEncryptionKey can only be called once');
- }
- this._cek = cek;
- return this;
- }
- setInitializationVector(iv) {
- if (this._iv) {
- throw new TypeError('setInitializationVector can only be called once');
- }
- this._iv = iv;
- return this;
- }
- replicateIssuerAsHeader() {
- this._replicateIssuerAsHeader = true;
- return this;
- }
- replicateSubjectAsHeader() {
- this._replicateSubjectAsHeader = true;
- return this;
- }
- replicateAudienceAsHeader() {
- this._replicateAudienceAsHeader = true;
- return this;
- }
- async encrypt(key, options) {
- const enc = new encrypt_js_1.CompactEncrypt(buffer_utils_js_1.encoder.encode(JSON.stringify(this._payload)));
- if (this._replicateIssuerAsHeader) {
- this._protectedHeader = { ...this._protectedHeader, iss: this._payload.iss };
- }
- if (this._replicateSubjectAsHeader) {
- this._protectedHeader = { ...this._protectedHeader, sub: this._payload.sub };
- }
- if (this._replicateAudienceAsHeader) {
- this._protectedHeader = { ...this._protectedHeader, aud: this._payload.aud };
- }
- enc.setProtectedHeader(this._protectedHeader);
- if (this._iv) {
- enc.setInitializationVector(this._iv);
- }
- if (this._cek) {
- enc.setContentEncryptionKey(this._cek);
- }
- if (this._keyManagementParameters) {
- enc.setKeyManagementParameters(this._keyManagementParameters);
- }
- return enc.encrypt(key, options);
- }
- }
- exports.EncryptJWT = EncryptJWT;
|