Socket
Socket
Sign inDemoInstall

@aws-crypto/decrypt-node

Package Overview
Dependencies
Maintainers
8
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@aws-crypto/decrypt-node - npm Package Compare versions

Comparing version 2.1.0 to 2.2.0

build/main/types.d.ts

10

build/main/decipher_stream.d.ts

@@ -36,3 +36,3 @@ /// <reference types="node" />

_final(callback: (error?: Error | null | undefined) => void): void;
write(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;
write(chunk: any, encoding?: BufferEncoding | undefined, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;
write(chunk: any, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;

@@ -42,7 +42,7 @@ setDefaultEncoding(encoding: BufferEncoding): any;

end(chunk: any, cb?: (() => void) | undefined): void;
end(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined, cb?: (() => void) | undefined): void;
end(chunk: any, encoding?: BufferEncoding | undefined, cb?: (() => void) | undefined): void;
cork(): void;
uncork(): void;
readable: boolean;
readonly readableEncoding: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | null;
readonly readableEncoding: BufferEncoding | null;
readonly readableEnded: boolean;

@@ -60,5 +60,5 @@ readonly readableFlowing: boolean | null;

unpipe(destination?: NodeJS.WritableStream | undefined): any;
unshift(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined): void;
unshift(chunk: any, encoding?: BufferEncoding | undefined): void;
wrap(oldStream: NodeJS.ReadableStream): any;
push(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined): boolean;
push(chunk: any, encoding?: BufferEncoding | undefined): boolean;
destroy(error?: Error | undefined): void;

@@ -65,0 +65,0 @@ addListener(event: "close", listener: () => void): any;

@@ -119,3 +119,3 @@ "use strict";

* The BodyHeader and AuthTag are striped in the VerifyStream and passed in
* through events. This means that if I receive a chunk without havening reset
* through events. This means that if I receive a chunk without having reset
* the content accumulation events are out of order. Panic.

@@ -122,0 +122,0 @@ */

import { _decryptStream } from './decrypt_stream';
import { _decrypt } from './decrypt';
import { CommitmentPolicy } from '@aws-crypto/material-management-node';
import { CommitmentPolicy, ClientOptions } from '@aws-crypto/material-management-node';
declare type CurryFirst<fn extends (...a: any[]) => any> = fn extends (_: any, ...tail: infer TAIL) => any ? TAIL : never;
export declare function buildDecrypt(commitmentPolicy?: CommitmentPolicy): {
export declare function buildDecrypt(options?: CommitmentPolicy | Partial<ClientOptions>): {
decryptUnsignedMessageStream: (...args: CurryFirst<typeof _decryptStream>) => ReturnType<typeof _decryptStream>;
decryptStream: (...args: CurryFirst<typeof _decryptStream>) => ReturnType<typeof _decryptStream>;

@@ -7,0 +8,0 @@ decrypt: (...args: CurryFirst<typeof _decrypt>) => ReturnType<typeof _decrypt>;

@@ -9,11 +9,31 @@ "use strict";

const material_management_node_1 = require("@aws-crypto/material-management-node");
function buildDecrypt(commitmentPolicy = material_management_node_1.CommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT) {
function buildDecrypt(options = {}) {
const { commitmentPolicy = material_management_node_1.CommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT, maxEncryptedDataKeys = false, } = typeof options === 'string' ? { commitmentPolicy: options } : options;
/* Precondition: node buildDecrypt needs a valid commitmentPolicy. */
material_management_node_1.needs(material_management_node_1.CommitmentPolicy[commitmentPolicy], 'Invalid commitment policy.');
/* Precondition: node buildDecrypt needs a valid maxEncryptedDataKeys. */
material_management_node_1.needs(maxEncryptedDataKeys === false || maxEncryptedDataKeys >= 1, 'Invalid maxEncryptedDataKeys value.');
const clientOptions = {
commitmentPolicy,
maxEncryptedDataKeys,
};
return {
decryptStream: decrypt_stream_1._decryptStream.bind({}, commitmentPolicy),
decrypt: decrypt_1._decrypt.bind({}, commitmentPolicy),
decryptUnsignedMessageStream: decrypt_stream_1._decryptStream.bind({}, {
signaturePolicy: material_management_node_1.SignaturePolicy.ALLOW_ENCRYPT_FORBID_DECRYPT,
clientOptions,
}),
decryptStream: decrypt_stream_1._decryptStream.bind({}, {
signaturePolicy: material_management_node_1.SignaturePolicy.ALLOW_ENCRYPT_ALLOW_DECRYPT,
clientOptions,
}),
decrypt: decrypt_1._decrypt.bind({}, {
signaturePolicy: material_management_node_1.SignaturePolicy.ALLOW_ENCRYPT_ALLOW_DECRYPT,
clientOptions,
}),
};
}
exports.buildDecrypt = buildDecrypt;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUV0QyxxREFBaUQ7QUFDakQsdUNBQW9DO0FBQ3BDLG1GQUE4RTtBQVM5RSxTQUFnQixZQUFZLENBQzFCLG1CQUFxQywyQ0FBZ0IsQ0FBQywrQkFBK0I7SUFPckYscUVBQXFFO0lBQ3JFLGdDQUFLLENBQUMsMkNBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFBO0lBQ3ZFLE9BQU87UUFDTCxhQUFhLEVBQUUsK0JBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGdCQUFnQixDQUFDO1FBQ3hELE9BQU8sRUFBRSxrQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsZ0JBQWdCLENBQUM7S0FDN0MsQ0FBQTtBQUNILENBQUM7QUFkRCxvQ0FjQyJ9
// @ts-ignore
const { decryptUnsignedMessageStream, decryptStream, decrypt } = buildDecrypt();
decryptUnsignedMessageStream({});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7OztBQUV0QyxxREFBaUQ7QUFDakQsdUNBQW9DO0FBQ3BDLG1GQUs2QztBQVM3QyxTQUFnQixZQUFZLENBQzFCLFVBQXFELEVBQUU7SUFVdkQsTUFBTSxFQUNKLGdCQUFnQixHQUFHLDJDQUFnQixDQUFDLCtCQUErQixFQUNuRSxvQkFBb0IsR0FBRyxLQUFLLEdBQzdCLEdBQUcsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUE7SUFFekUscUVBQXFFO0lBQ3JFLGdDQUFLLENBQUMsMkNBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFBO0lBQ3ZFLHlFQUF5RTtJQUN6RSxnQ0FBSyxDQUNILG9CQUFvQixLQUFLLEtBQUssSUFBSSxvQkFBb0IsSUFBSSxDQUFDLEVBQzNELHFDQUFxQyxDQUN0QyxDQUFBO0lBRUQsTUFBTSxhQUFhLEdBQWtCO1FBQ25DLGdCQUFnQjtRQUNoQixvQkFBb0I7S0FDckIsQ0FBQTtJQUNELE9BQU87UUFDTCw0QkFBNEIsRUFBRSwrQkFBYyxDQUFDLElBQUksQ0FDL0MsRUFBRSxFQUNGO1lBQ0UsZUFBZSxFQUFFLDBDQUFlLENBQUMsNEJBQTRCO1lBQzdELGFBQWE7U0FDZCxDQUNGO1FBQ0QsYUFBYSxFQUFFLCtCQUFjLENBQUMsSUFBSSxDQUNoQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsMENBQWUsQ0FBQywyQkFBMkI7WUFDNUQsYUFBYTtTQUNkLENBQ0Y7UUFDRCxPQUFPLEVBQUUsa0JBQVEsQ0FBQyxJQUFJLENBQ3BCLEVBQUUsRUFDRjtZQUNFLGVBQWUsRUFBRSwwQ0FBZSxDQUFDLDJCQUEyQjtZQUM1RCxhQUFhO1NBQ2QsQ0FDRjtLQUNGLENBQUE7QUFDSCxDQUFDO0FBbkRELG9DQW1EQztBQUVELGFBQWE7QUFDYixNQUFNLEVBQUUsNEJBQTRCLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxHQUFHLFlBQVksRUFBRSxDQUFBO0FBQy9FLDRCQUE0QixDQUFDLEVBQVMsQ0FBQyxDQUFBIn0=
/// <reference types="node" />
import { KeyringNode, NodeMaterialsManager, CommitmentPolicy } from '@aws-crypto/material-management-node';
import { KeyringNode, NodeMaterialsManager } from '@aws-crypto/material-management-node';
import { DecryptParameters, DecryptStreamOptions } from './types';
import { Duplex } from 'stream';
export interface DecryptStreamOptions {
maxBodySize?: number;
}
export declare function _decryptStream(commitmentPolicy: CommitmentPolicy, cmm: KeyringNode | NodeMaterialsManager, { maxBodySize }?: DecryptStreamOptions): Duplex;
export declare function _decryptStream(decryptParameters: DecryptParameters, cmm: KeyringNode | NodeMaterialsManager, { maxBodySize }?: DecryptStreamOptions): Duplex;
//# sourceMappingURL=decrypt_stream.d.ts.map

@@ -16,3 +16,3 @@ "use strict";

const readable_stream_1 = require("readable-stream");
function _decryptStream(commitmentPolicy, cmm, { maxBodySize } = {}) {
function _decryptStream(decryptParameters, cmm, { maxBodySize } = {}) {
/* If the cmm is a Keyring, wrap it with NodeDefaultCMM. */

@@ -23,3 +23,3 @@ cmm =

: cmm;
const parseHeaderStream = new parse_header_stream_1.ParseHeaderStream(commitmentPolicy, cmm);
const parseHeaderStream = new parse_header_stream_1.ParseHeaderStream(decryptParameters.signaturePolicy, decryptParameters.clientOptions, cmm);
const verifyStream = new verify_stream_1.VerifyStream({ maxBodySize });

@@ -41,2 +41,2 @@ const decipherStream = decipher_stream_1.getDecipherStream();

exports._decryptStream = _decryptStream;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7Ozs7OztBQUV0QyxtRkFLNkM7QUFDN0MsK0RBQXlEO0FBQ3pELG1EQUE4QztBQUM5Qyx1REFBcUQ7QUFDckQsMERBQWlDO0FBR2pDLGFBQWE7QUFDYixxREFBdUQ7QUFNdkQsU0FBZ0IsY0FBYyxDQUM1QixnQkFBa0MsRUFDbEMsR0FBdUMsRUFDdkMsRUFBRSxXQUFXLEtBQTJCLEVBQUU7SUFFMUMsMkRBQTJEO0lBQzNELEdBQUc7UUFDRCxHQUFHLFlBQVksc0NBQVc7WUFDeEIsQ0FBQyxDQUFDLElBQUksbUVBQXdDLENBQUMsR0FBRyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUE7SUFFVCxNQUFNLGlCQUFpQixHQUFHLElBQUksdUNBQWlCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDdEUsTUFBTSxZQUFZLEdBQUcsSUFBSSw0QkFBWSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUN0RCxNQUFNLGNBQWMsR0FBRyxtQ0FBaUIsRUFBRSxDQUFBO0lBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksbUJBQVMsQ0FBQyxpQkFBaUIsRUFBRSxjQUFjLENBQUMsQ0FBQTtJQUUvRDs7O09BR0c7SUFDSCwwQkFBUSxDQUNOLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osY0FBYyxFQUNkLElBQUksNkJBQVcsRUFBRSxFQUNqQixDQUFDLEdBQVUsRUFBRSxFQUFFO1FBQ2IsSUFBSSxHQUFHO1lBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQyxDQUNGLENBQUE7SUFFRCx3QkFBd0I7SUFDeEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUNyQyxDQUFBO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBcENELHdDQW9DQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7Ozs7OztBQUV0QyxtRkFJNkM7QUFDN0MsK0RBQXlEO0FBQ3pELG1EQUE4QztBQUM5Qyx1REFBcUQ7QUFFckQsMERBQWlDO0FBR2pDLGFBQWE7QUFDYixxREFBdUQ7QUFFdkQsU0FBZ0IsY0FBYyxDQUM1QixpQkFBb0MsRUFDcEMsR0FBdUMsRUFDdkMsRUFBRSxXQUFXLEtBQTJCLEVBQUU7SUFFMUMsMkRBQTJEO0lBQzNELEdBQUc7UUFDRCxHQUFHLFlBQVksc0NBQVc7WUFDeEIsQ0FBQyxDQUFDLElBQUksbUVBQXdDLENBQUMsR0FBRyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUE7SUFFVCxNQUFNLGlCQUFpQixHQUFHLElBQUksdUNBQWlCLENBQzdDLGlCQUFpQixDQUFDLGVBQWUsRUFDakMsaUJBQWlCLENBQUMsYUFBYSxFQUMvQixHQUFHLENBQ0osQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHLElBQUksNEJBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDdEQsTUFBTSxjQUFjLEdBQUcsbUNBQWlCLEVBQUUsQ0FBQTtJQUMxQyxNQUFNLE1BQU0sR0FBRyxJQUFJLG1CQUFTLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFL0Q7OztPQUdHO0lBQ0gsMEJBQVEsQ0FDTixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGNBQWMsRUFDZCxJQUFJLDZCQUFXLEVBQUUsRUFDakIsQ0FBQyxHQUFVLEVBQUUsRUFBRTtRQUNiLElBQUksR0FBRztZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3BDLENBQUMsQ0FDRixDQUFBO0lBRUQsd0JBQXdCO0lBQ3hCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNqRCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FDckMsQ0FBQTtJQUVELE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQXhDRCx3Q0F3Q0MifQ==
/// <reference types="node" />
import { NodeMaterialsManager, KeyringNode, CommitmentPolicy } from '@aws-crypto/material-management-node';
import { NodeMaterialsManager, KeyringNode } from '@aws-crypto/material-management-node';
import { DecryptParameters } from './types';
import { Readable } from 'stream';

@@ -13,3 +14,3 @@ import { MessageHeader } from '@aws-crypto/serialize';

}
export declare function _decrypt(commitmentPolicy: CommitmentPolicy, cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string | NodeJS.ReadableStream, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>;
export declare function _decrypt(decryptParameters: DecryptParameters, cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string | NodeJS.ReadableStream, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>;
//# sourceMappingURL=decrypt.d.ts.map

@@ -9,4 +9,6 @@ "use strict";

const readable_stream_1 = require("readable-stream");
async function _decrypt(commitmentPolicy, cmm, ciphertext, { encoding, maxBodySize } = {}) {
const stream = decrypt_stream_1._decryptStream(commitmentPolicy, cmm, { maxBodySize });
async function _decrypt(decryptParameters, cmm, ciphertext, { encoding, maxBodySize } = {}) {
const stream = decrypt_stream_1._decryptStream(decryptParameters, cmm, {
maxBodySize,
});
const plaintext = [];

@@ -46,2 +48,2 @@ let messageHeader = false;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFPdEMscURBQWlEO0FBRWpELGFBQWE7QUFDYixxREFBMEM7QUFjbkMsS0FBSyxVQUFVLFFBQVEsQ0FDNUIsZ0JBQWtDLEVBQ2xDLEdBQXVDLEVBQ3ZDLFVBQTJFLEVBQzNFLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBcUIsRUFBRTtJQUU5QyxNQUFNLE1BQU0sR0FBRywrQkFBYyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFFckUsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFBO0lBQzlCLElBQUksYUFBYSxHQUEwQixLQUFLLENBQUE7SUFDaEQsTUFBTTtTQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDL0MsYUFBYSxHQUFHLE1BQU0sQ0FBQTtJQUN4QixDQUFDLENBQUM7U0FDRCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFdkQseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO0tBQzlDO1NBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7S0FDeEI7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtLQUNqRDtJQUVELE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLElBQUksQ0FBQyxhQUFhO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXJELE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBbENELDRCQWtDQztBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBYztJQUN6QyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzNDLDBCQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFNdEMscURBQWlEO0FBR2pELGFBQWE7QUFDYixxREFBMEM7QUFjbkMsS0FBSyxVQUFVLFFBQVEsQ0FDNUIsaUJBQW9DLEVBQ3BDLEdBQXVDLEVBQ3ZDLFVBQTJFLEVBQzNFLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBcUIsRUFBRTtJQUU5QyxNQUFNLE1BQU0sR0FBRywrQkFBYyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtRQUNwRCxXQUFXO0tBQ1osQ0FBQyxDQUFBO0lBRUYsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFBO0lBQzlCLElBQUksYUFBYSxHQUEwQixLQUFLLENBQUE7SUFDaEQsTUFBTTtTQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDL0MsYUFBYSxHQUFHLE1BQU0sQ0FBQTtJQUN4QixDQUFDLENBQUM7U0FDRCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFdkQseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO0tBQzlDO1NBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7S0FDeEI7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtLQUNqRDtJQUVELE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLElBQUksQ0FBQyxhQUFhO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXJELE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBcENELDRCQW9DQztBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBYztJQUN6QyxPQUFPLElBQUksT0FBTyxDQUFPLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzNDLDBCQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDbkUsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
export { buildDecrypt } from './decrypt_client';
export { DecryptOutput } from './decrypt';
export { MessageHeader } from '@aws-crypto/serialize';
//# sourceMappingURL=index.d.ts.map
import { Transform } from 'stream';
import { NodeMaterialsManager, CommitmentPolicy } from '@aws-crypto/material-management-node';
import { NodeMaterialsManager, SignaturePolicy, ClientOptions } from '@aws-crypto/material-management-node';
declare const PortableTransformWithType: new (...args: any[]) => Transform;

@@ -7,4 +7,6 @@ export declare class ParseHeaderStream extends PortableTransformWithType {

private commitmentPolicy;
private signaturePolicy;
private maxEncryptedDataKeys;
private _headerState;
constructor(commitmentPolicy: CommitmentPolicy, cmm: NodeMaterialsManager);
constructor(signaturePolicy: SignaturePolicy, { commitmentPolicy, maxEncryptedDataKeys }: ClientOptions, cmm: NodeMaterialsManager);
_transform(chunk: any, encoding: string, callback: (err?: Error | null, data?: Uint8Array) => void): void;

@@ -11,0 +13,0 @@ _flush(callback: (err?: Error) => void): void;

@@ -14,6 +14,11 @@ "use strict";

class ParseHeaderStream extends PortableTransformWithType {
constructor(commitmentPolicy, cmm) {
constructor(signaturePolicy, { commitmentPolicy, maxEncryptedDataKeys }, cmm) {
super();
/* Precondition: ParseHeaderStream needs a valid commitmentPolicy. */
material_management_node_1.needs(material_management_node_1.CommitmentPolicy[commitmentPolicy], 'Invalid commitment policy.');
/* Precondition: ParseHeaderStream needs a valid signaturePolicy. */
material_management_node_1.needs(material_management_node_1.SignaturePolicy[signaturePolicy], 'Invalid signature policy.');
// buildDecrypt defaults this to false for backwards compatibility, so this is satisfied
/* Precondition: ParseHeaderStream needs a valid maxEncryptedDataKeys. */
material_management_node_1.needs(maxEncryptedDataKeys === false || maxEncryptedDataKeys >= 1, 'Invalid maxEncryptedDataKeys value.');
Object.defineProperty(this, 'materialsManager', {

@@ -27,2 +32,6 @@ value: cmm,

});
Object.defineProperty(this, 'maxEncryptedDataKeys', {
value: maxEncryptedDataKeys,
enumerable: true,
});
this._headerState = {

@@ -32,70 +41,88 @@ buffer: Buffer.alloc(0),

};
Object.defineProperty(this, 'signaturePolicy', {
value: signaturePolicy,
enumerable: true,
});
}
_transform(chunk, encoding, callback) {
const { _headerState, commitmentPolicy, materialsManager } = this;
const { buffer } = _headerState;
const headerBuffer = Buffer.concat([buffer, chunk]);
const headerInfo = deserialize.deserializeMessageHeader(headerBuffer);
if (!headerInfo) {
_headerState.buffer = headerBuffer;
return callback();
_transform(
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
chunk, encoding, callback) {
try {
const { _headerState, commitmentPolicy, materialsManager, signaturePolicy, maxEncryptedDataKeys, } = this;
const { buffer } = _headerState;
const headerBuffer = Buffer.concat([buffer, chunk]);
const headerInfo = deserialize.deserializeMessageHeader(headerBuffer, {
maxEncryptedDataKeys,
});
if (!headerInfo) {
_headerState.buffer = headerBuffer;
return callback();
}
const { messageHeader, algorithmSuite } = headerInfo;
const messageIDStr = Buffer.from(messageHeader.messageId).toString('hex');
/* Precondition: The parsed header algorithmSuite from ParseHeaderStream must be supported by the commitmentPolicy. */
material_management_node_1.CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, algorithmSuite, messageIDStr);
/* Precondition: The parsed header algorithmSuite from ParseHeaderStream must be supported by the signaturePolicy. */
material_management_node_1.SignaturePolicySuites.isDecryptEnabled(signaturePolicy, algorithmSuite, messageIDStr);
const { rawHeader, headerAuth } = headerInfo;
const { headerIv, headerAuthTag, headerAuthLength } = headerAuth;
const suite = new material_management_node_1.NodeAlgorithmSuite(algorithmSuite.id);
const { messageId, encryptionContext, encryptedDataKeys } = messageHeader;
materialsManager
.decryptMaterials({ suite, encryptionContext, encryptedDataKeys })
.then((material) => {
/* Precondition: The material algorithmSuite returned to ParseHeaderStream must be supported by the commitmentPolicy. */
material_management_node_1.CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, material.suite, messageIDStr);
/* Precondition: The material algorithmSuite returned to ParseHeaderStream must be supported by the signaturePolicy. */
material_management_node_1.SignaturePolicySuites.isDecryptEnabled(signaturePolicy, material.suite, messageIDStr);
_headerState.buffer = Buffer.alloc(0); // clear the Buffer...
const { getDecipherInfo, getVerify, dispose } = material_management_node_1.getDecryptionHelper(material);
const getDecipher = getDecipherInfo(messageId,
/* This is sub-optimal.
* Ideally I could pluck the `suiteData`
* right off the header
* and in such a way that may be undefined.
* But that has other consequences
* that are beyond the scope of this course.
*/
messageHeader.suiteData);
const headerAuth = getDecipher(headerIv);
headerAuth.setAAD(Buffer.from(rawHeader.buffer, rawHeader.byteOffset, rawHeader.byteLength));
headerAuth.setAuthTag(Buffer.from(headerAuthTag.buffer, headerAuthTag.byteOffset, headerAuthTag.byteLength));
headerAuth.update(Buffer.alloc(0));
headerAuth.final(); // will throw if invalid
const verify = getVerify ? getVerify() : void 0;
const verifyInfo = {
headerInfo,
getDecipher,
verify,
dispose,
};
this.emit('VerifyInfo', verifyInfo);
this.emit('MessageHeader', headerInfo.messageHeader);
_headerState.headerParsed = true;
// The header is parsed, pass control
const readPos = rawHeader.byteLength + headerAuthLength;
const tail = headerBuffer.slice(readPos);
/* needs calls in downstream _transform streams will throw.
* But streams are async.
* So this error should be turned into an `.emit('error', ex)`.
*/
this._transform = (chunk, _enc, cb) => {
try {
cb(null, chunk);
}
catch (ex) {
this.emit('error', ex);
}
};
// flush the tail. Stream control is now in the verify and decrypt streams
return setImmediate(() => this._transform(tail, encoding, callback));
})
.catch((err) => callback(err));
}
const { messageHeader, algorithmSuite } = headerInfo;
const messageIDStr = Buffer.from(messageHeader.messageId).toString('hex');
/* Precondition: The parsed header algorithmSuite from ParseHeaderStream must be supported by the commitmentPolicy. */
material_management_node_1.CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, algorithmSuite, messageIDStr);
const { rawHeader, headerAuth } = headerInfo;
const { headerIv, headerAuthTag, headerAuthLength } = headerAuth;
const suite = new material_management_node_1.NodeAlgorithmSuite(algorithmSuite.id);
const { messageId, encryptionContext, encryptedDataKeys } = messageHeader;
materialsManager
.decryptMaterials({ suite, encryptionContext, encryptedDataKeys })
.then((material) => {
/* Precondition: The material algorithmSuite returned to ParseHeaderStream must be supported by the commitmentPolicy. */
material_management_node_1.CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, material.suite, messageIDStr);
_headerState.buffer = Buffer.alloc(0); // clear the Buffer...
const { getDecipherInfo, getVerify, dispose } = material_management_node_1.getDecryptionHelper(material);
const getDecipher = getDecipherInfo(messageId,
/* This is sub-optimal.
* Ideally I could pluck the `suiteData`
* right off the header
* and in such a way that may be undefined.
* But that has other consequences
* that are beyond the scope of this course.
*/
messageHeader.suiteData);
const headerAuth = getDecipher(headerIv);
headerAuth.setAAD(Buffer.from(rawHeader.buffer, rawHeader.byteOffset, rawHeader.byteLength));
headerAuth.setAuthTag(Buffer.from(headerAuthTag.buffer, headerAuthTag.byteOffset, headerAuthTag.byteLength));
headerAuth.update(Buffer.alloc(0));
headerAuth.final(); // will throw if invalid
const verify = getVerify ? getVerify() : void 0;
const verifyInfo = {
headerInfo,
getDecipher,
verify,
dispose,
};
this.emit('VerifyInfo', verifyInfo);
this.emit('MessageHeader', headerInfo.messageHeader);
_headerState.headerParsed = true;
// The header is parsed, pass control
const readPos = rawHeader.byteLength + headerAuthLength;
const tail = headerBuffer.slice(readPos);
/* needs calls in downstream _transform streams will throw.
* But streams are async.
* So this error should be turned into an `.emit('error', ex)`.
*/
this._transform = (chunk, _enc, cb) => {
try {
cb(null, chunk);
}
catch (ex) {
this.emit('error', ex);
}
};
// flush the tail. Stream control is now in the verify and decrypt streams
return setImmediate(() => this._transform(tail, encoding, callback));
})
.catch((err) => callback(err));
catch (ex) {
/* Exceptional Postcondition: An error MUST be emitted or this would be an unhandled exception. */
this.emit('error', ex);
}
}

@@ -113,2 +140,2 @@ _flush(callback) {

exports.ParseHeaderStream = ParseHeaderStream;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFFdEMsYUFBYTtBQUNiLHFEQUFnRTtBQUVoRSxtRkFPNkM7QUFDN0MscURBQTJFO0FBRzNFLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDaEYsTUFBTSxXQUFXLEdBQUcsOEJBQWtCLENBQUMsTUFBTSxFQUFFLDZDQUFrQixDQUFDLENBQUE7QUFDbEUsTUFBTSx5QkFBeUIsR0FBRywyQkFFcEIsQ0FBQTtBQU9kLE1BQWEsaUJBQWtCLFNBQVEseUJBQXlCO0lBSTlELFlBQVksZ0JBQWtDLEVBQUUsR0FBeUI7UUFDdkUsS0FBSyxFQUFFLENBQUE7UUFFUCxxRUFBcUU7UUFDckUsZ0NBQUssQ0FBQywyQ0FBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLENBQUE7UUFFdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDOUMsS0FBSyxFQUFFLEdBQUc7WUFDVixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUM5QyxLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDOzs7QUFFdEMsYUFBYTtBQUNiLHFEQUFnRTtBQUVoRSxtRkFVNkM7QUFDN0MscURBQTJFO0FBRzNFLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDaEYsTUFBTSxXQUFXLEdBQUcsOEJBQWtCLENBQUMsTUFBTSxFQUFFLDZDQUFrQixDQUFDLENBQUE7QUFDbEUsTUFBTSx5QkFBeUIsR0FBRywyQkFFcEIsQ0FBQTtBQU9kLE1BQWEsaUJBQWtCLFNBQVEseUJBQXlCO0lBTTlELFlBQ0UsZUFBZ0MsRUFDaEMsRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBaUIsRUFDekQsR0FBeUI7UUFFekIsS0FBSyxFQUFFLENBQUE7UUFFUCxxRUFBcUU7UUFDckUsZ0NBQUssQ0FBQywyQ0FBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLDRCQUE0QixDQUFDLENBQUE7UUFFdkUsb0VBQW9FO1FBQ3BFLGdDQUFLLENBQUMsMENBQWUsQ0FBQyxlQUFlLENBQUMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFBO1FBRXBFLHdGQUF3RjtRQUN4Rix5RUFBeUU7UUFDekUsZ0NBQUssQ0FDSCxvQkFBb0IsS0FBSyxLQUFLLElBQUksb0JBQW9CLElBQUksQ0FBQyxFQUMzRCxxQ0FBcUMsQ0FDdEMsQ0FBQTtRQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzlDLEtBQUssRUFBRSxHQUFHO1lBQ1YsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7WUFDOUMsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUNsRCxLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLFlBQVksRUFBRSxLQUFLO1NBQ3BCLENBQUE7UUFDRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUM3QyxLQUFLLEVBQUUsZUFBZTtZQUN0QixVQUFVLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsVUFBVTtJQUNSLDZFQUE2RTtJQUM3RSxLQUFVLEVBQ1YsUUFBZ0IsRUFDaEIsUUFBeUQ7UUFFekQsSUFBSTtZQUNGLE1BQU0sRUFDSixZQUFZLEVBQ1osZ0JBQWdCLEVBQ2hCLGdCQUFnQixFQUNoQixlQUFlLEVBQ2Ysb0JBQW9CLEdBQ3JCLEdBQUcsSUFBSSxDQUFBO1lBQ1IsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQTtZQUMvQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7WUFDbkQsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLHdCQUF3QixDQUFDLFlBQVksRUFBRTtnQkFDcEUsb0JBQW9CO2FBQ3JCLENBQUMsQ0FBQTtZQUNGLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ2YsWUFBWSxDQUFDLE1BQU0sR0FBRyxZQUFZLENBQUE7Z0JBQ2xDLE9BQU8sUUFBUSxFQUFFLENBQUE7YUFDbEI7WUFFRCxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxHQUFHLFVBQVUsQ0FBQTtZQUNwRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7WUFDekUsc0hBQXNIO1lBQ3RILGlEQUFzQixDQUFDLGdCQUFnQixDQUNyQyxnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLFlBQVksQ0FDYixDQUFBO1lBQ0QscUhBQXFIO1lBQ3JILGdEQUFxQixDQUFDLGdCQUFnQixDQUNwQyxlQUFlLEVBQ2YsY0FBYyxFQUNkLFlBQVksQ0FDYixDQUFBO1lBRUQsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUE7WUFDNUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxVQUFVLENBQUE7WUFFaEUsTUFBTSxLQUFLLEdBQUcsSUFBSSw2Q0FBa0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDdkQsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLGFBQWEsQ0FBQTtZQUV6RSxnQkFBZ0I7aUJBQ2IsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztpQkFDakUsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ2pCLHdIQUF3SDtnQkFDeEgsaURBQXNCLENBQUMsZ0JBQWdCLENBQ3JDLGdCQUFnQixFQUNoQixRQUFRLENBQUMsS0FBSyxFQUNkLFlBQVksQ0FDYixDQUFBO2dCQUNELHVIQUF1SDtnQkFDdkgsZ0RBQXFCLENBQUMsZ0JBQWdCLENBQ3BDLGVBQWUsRUFDZixRQUFRLENBQUMsS0FBSyxFQUNkLFlBQVksQ0FDYixDQUFBO2dCQUVELFlBQVksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQSxDQUFDLHNCQUFzQjtnQkFFNUQsTUFBTSxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsOENBQW1CLENBQ2pFLFFBQVEsQ0FDVCxDQUFBO2dCQUVELE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FDakMsU0FBUztnQkFDVDs7Ozs7O21CQU1HO2dCQUNGLGFBQWlDLENBQUMsU0FBUyxDQUM3QyxDQUFBO2dCQUNELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFFeEMsVUFBVSxDQUFDLE1BQU0sQ0FDZixNQUFNLENBQUMsSUFBSSxDQUNULFNBQVMsQ0FBQyxNQUFNLEVBQ2hCLFNBQVMsQ0FBQyxVQUFVLEVBQ3BCLFNBQVMsQ0FBQyxVQUFVLENBQ3JCLENBQ0YsQ0FBQTtnQkFDRCxVQUFVLENBQUMsVUFBVSxDQUNuQixNQUFNLENBQUMsSUFBSSxDQUNULGFBQWEsQ0FBQyxNQUFNLEVBQ3BCLGFBQWEsQ0FBQyxVQUFVLEVBQ3hCLGFBQWEsQ0FBQyxVQUFVLENBQ3pCLENBQ0YsQ0FBQTtnQkFDRCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDbEMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFBLENBQUMsd0JBQXdCO2dCQUUzQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDL0MsTUFBTSxVQUFVLEdBQWU7b0JBQzdCLFVBQVU7b0JBQ1YsV0FBVztvQkFDWCxNQUFNO29CQUNOLE9BQU87aUJBQ1IsQ0FBQTtnQkFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQTtnQkFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFBO2dCQUVwRCxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQTtnQkFFaEMscUNBQXFDO2dCQUNyQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFBO2dCQUN2RCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUN4Qzs7O21CQUdHO2dCQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FDaEIsS0FBVSxFQUNWLElBQVksRUFDWixFQUFtRCxFQUNuRCxFQUFFO29CQUNGLElBQUk7d0JBQ0YsRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtxQkFDaEI7b0JBQUMsT0FBTyxFQUFFLEVBQUU7d0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7cUJBQ3ZCO2dCQUNILENBQUMsQ0FBQTtnQkFDRCwyRUFBMkU7Z0JBQzNFLE9BQU8sWUFBWSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO1lBQ3RFLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFBO1NBQ2pDO1FBQUMsT0FBTyxFQUFFLEVBQUU7WUFDWCxrR0FBa0c7WUFDbEcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUE7U0FDdkI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQStCO1FBQ3BDOzs7V0FHRztRQUNILFFBQVEsQ0FDTixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVk7WUFDNUIsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FDbkMsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQXBNRCw4Q0FvTUMifQ==

@@ -36,3 +36,3 @@ /// <reference types="node" />

_final(callback: (error?: Error | null | undefined) => void): void;
write(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;
write(chunk: any, encoding?: BufferEncoding | undefined, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;
write(chunk: any, cb?: ((error: Error | null | undefined) => void) | undefined): boolean;

@@ -42,7 +42,7 @@ setDefaultEncoding(encoding: BufferEncoding): any;

end(chunk: any, cb?: (() => void) | undefined): void;
end(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined, cb?: (() => void) | undefined): void;
end(chunk: any, encoding?: BufferEncoding | undefined, cb?: (() => void) | undefined): void;
cork(): void;
uncork(): void;
readable: boolean;
readonly readableEncoding: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | null;
readonly readableEncoding: BufferEncoding | null;
readonly readableEnded: boolean;

@@ -60,5 +60,5 @@ readonly readableFlowing: boolean | null;

unpipe(destination?: NodeJS.WritableStream | undefined): any;
unshift(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined): void;
unshift(chunk: any, encoding?: BufferEncoding | undefined): void;
wrap(oldStream: NodeJS.ReadableStream): any;
push(chunk: any, encoding?: "ascii" | "utf8" | "utf-8" | "utf16le" | "ucs2" | "ucs-2" | "base64" | "latin1" | "binary" | "hex" | undefined): boolean;
push(chunk: any, encoding?: BufferEncoding | undefined): boolean;
destroy(error?: Error | undefined): void;

@@ -65,0 +65,0 @@ addListener(event: "close", listener: () => void): any;

@@ -116,3 +116,3 @@ // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.

* The BodyHeader and AuthTag are striped in the VerifyStream and passed in
* through events. This means that if I receive a chunk without havening reset
* through events. This means that if I receive a chunk without having reset
* the content accumulation events are out of order. Panic.

@@ -119,0 +119,0 @@ */

import { _decryptStream } from './decrypt_stream';
import { _decrypt } from './decrypt';
import { CommitmentPolicy } from '@aws-crypto/material-management-node';
import { CommitmentPolicy, ClientOptions } from '@aws-crypto/material-management-node';
declare type CurryFirst<fn extends (...a: any[]) => any> = fn extends (_: any, ...tail: infer TAIL) => any ? TAIL : never;
export declare function buildDecrypt(commitmentPolicy?: CommitmentPolicy): {
export declare function buildDecrypt(options?: CommitmentPolicy | Partial<ClientOptions>): {
decryptUnsignedMessageStream: (...args: CurryFirst<typeof _decryptStream>) => ReturnType<typeof _decryptStream>;
decryptStream: (...args: CurryFirst<typeof _decryptStream>) => ReturnType<typeof _decryptStream>;

@@ -7,0 +8,0 @@ decrypt: (...args: CurryFirst<typeof _decrypt>) => ReturnType<typeof _decrypt>;

@@ -5,11 +5,31 @@ // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.

import { _decrypt } from './decrypt';
import { CommitmentPolicy, needs } from '@aws-crypto/material-management-node';
export function buildDecrypt(commitmentPolicy = CommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT) {
import { CommitmentPolicy, needs, SignaturePolicy, } from '@aws-crypto/material-management-node';
export function buildDecrypt(options = {}) {
const { commitmentPolicy = CommitmentPolicy.REQUIRE_ENCRYPT_REQUIRE_DECRYPT, maxEncryptedDataKeys = false, } = typeof options === 'string' ? { commitmentPolicy: options } : options;
/* Precondition: node buildDecrypt needs a valid commitmentPolicy. */
needs(CommitmentPolicy[commitmentPolicy], 'Invalid commitment policy.');
/* Precondition: node buildDecrypt needs a valid maxEncryptedDataKeys. */
needs(maxEncryptedDataKeys === false || maxEncryptedDataKeys >= 1, 'Invalid maxEncryptedDataKeys value.');
const clientOptions = {
commitmentPolicy,
maxEncryptedDataKeys,
};
return {
decryptStream: _decryptStream.bind({}, commitmentPolicy),
decrypt: _decrypt.bind({}, commitmentPolicy),
decryptUnsignedMessageStream: _decryptStream.bind({}, {
signaturePolicy: SignaturePolicy.ALLOW_ENCRYPT_FORBID_DECRYPT,
clientOptions,
}),
decryptStream: _decryptStream.bind({}, {
signaturePolicy: SignaturePolicy.ALLOW_ENCRYPT_ALLOW_DECRYPT,
clientOptions,
}),
decrypt: _decrypt.bind({}, {
signaturePolicy: SignaturePolicy.ALLOW_ENCRYPT_ALLOW_DECRYPT,
clientOptions,
}),
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNwQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFTOUUsTUFBTSxVQUFVLFlBQVksQ0FDMUIsbUJBQXFDLGdCQUFnQixDQUFDLCtCQUErQjtJQU9yRixxRUFBcUU7SUFDckUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQTtJQUN2RSxPQUFPO1FBQ0wsYUFBYSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLGdCQUFnQixDQUFDO1FBQ3hELE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxnQkFBZ0IsQ0FBQztLQUM3QyxDQUFBO0FBQ0gsQ0FBQyJ9
// @ts-ignore
const { decryptUnsignedMessageStream, decryptStream, decrypt } = buildDecrypt();
decryptUnsignedMessageStream({});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNwQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLEtBQUssRUFDTCxlQUFlLEdBRWhCLE1BQU0sc0NBQXNDLENBQUE7QUFTN0MsTUFBTSxVQUFVLFlBQVksQ0FDMUIsVUFBcUQsRUFBRTtJQVV2RCxNQUFNLEVBQ0osZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsK0JBQStCLEVBQ25FLG9CQUFvQixHQUFHLEtBQUssR0FDN0IsR0FBRyxPQUFPLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQTtJQUV6RSxxRUFBcUU7SUFDckUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQTtJQUN2RSx5RUFBeUU7SUFDekUsS0FBSyxDQUNILG9CQUFvQixLQUFLLEtBQUssSUFBSSxvQkFBb0IsSUFBSSxDQUFDLEVBQzNELHFDQUFxQyxDQUN0QyxDQUFBO0lBRUQsTUFBTSxhQUFhLEdBQWtCO1FBQ25DLGdCQUFnQjtRQUNoQixvQkFBb0I7S0FDckIsQ0FBQTtJQUNELE9BQU87UUFDTCw0QkFBNEIsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUMvQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsZUFBZSxDQUFDLDRCQUE0QjtZQUM3RCxhQUFhO1NBQ2QsQ0FDRjtRQUNELGFBQWEsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUNoQyxFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsZUFBZSxDQUFDLDJCQUEyQjtZQUM1RCxhQUFhO1NBQ2QsQ0FDRjtRQUNELE9BQU8sRUFBRSxRQUFRLENBQUMsSUFBSSxDQUNwQixFQUFFLEVBQ0Y7WUFDRSxlQUFlLEVBQUUsZUFBZSxDQUFDLDJCQUEyQjtZQUM1RCxhQUFhO1NBQ2QsQ0FDRjtLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsYUFBYTtBQUNiLE1BQU0sRUFBRSw0QkFBNEIsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUE7QUFDL0UsNEJBQTRCLENBQUMsRUFBUyxDQUFDLENBQUEifQ==
/// <reference types="node" />
import { KeyringNode, NodeMaterialsManager, CommitmentPolicy } from '@aws-crypto/material-management-node';
import { KeyringNode, NodeMaterialsManager } from '@aws-crypto/material-management-node';
import { DecryptParameters, DecryptStreamOptions } from './types';
import { Duplex } from 'stream';
export interface DecryptStreamOptions {
maxBodySize?: number;
}
export declare function _decryptStream(commitmentPolicy: CommitmentPolicy, cmm: KeyringNode | NodeMaterialsManager, { maxBodySize }?: DecryptStreamOptions): Duplex;
export declare function _decryptStream(decryptParameters: DecryptParameters, cmm: KeyringNode | NodeMaterialsManager, { maxBodySize }?: DecryptStreamOptions): Duplex;
//# sourceMappingURL=decrypt_stream.d.ts.map

@@ -10,3 +10,3 @@ // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.

import { pipeline, PassThrough } from 'readable-stream';
export function _decryptStream(commitmentPolicy, cmm, { maxBodySize } = {}) {
export function _decryptStream(decryptParameters, cmm, { maxBodySize } = {}) {
/* If the cmm is a Keyring, wrap it with NodeDefaultCMM. */

@@ -17,3 +17,3 @@ cmm =

: cmm;
const parseHeaderStream = new ParseHeaderStream(commitmentPolicy, cmm);
const parseHeaderStream = new ParseHeaderStream(decryptParameters.signaturePolicy, decryptParameters.clientOptions, cmm);
const verifyStream = new VerifyStream({ maxBodySize });

@@ -34,2 +34,2 @@ const decipherStream = getDecipherStream();

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUV0QyxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLFdBQVcsR0FHWixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUNyRCxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUE7QUFHakMsYUFBYTtBQUNiLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFNdkQsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsZ0JBQWtDLEVBQ2xDLEdBQXVDLEVBQ3ZDLEVBQUUsV0FBVyxLQUEyQixFQUFFO0lBRTFDLDJEQUEyRDtJQUMzRCxHQUFHO1FBQ0QsR0FBRyxZQUFZLFdBQVc7WUFDeEIsQ0FBQyxDQUFDLElBQUksd0NBQXdDLENBQUMsR0FBRyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUE7SUFFVCxNQUFNLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDdEUsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixFQUFFLENBQUE7SUFDMUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFL0Q7OztPQUdHO0lBQ0gsUUFBUSxDQUNOLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osY0FBYyxFQUNkLElBQUksV0FBVyxFQUFFLEVBQ2pCLENBQUMsR0FBVSxFQUFFLEVBQUU7UUFDYixJQUFJLEdBQUc7WUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUNwQyxDQUFDLENBQ0YsQ0FBQTtJQUVELHdCQUF3QjtJQUN4QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDakQsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQ3JDLENBQUE7SUFFRCxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMifQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUV0QyxPQUFPLEVBQ0wsd0NBQXdDLEVBQ3hDLFdBQVcsR0FFWixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUVyRCxPQUFPLFNBQVMsTUFBTSxXQUFXLENBQUE7QUFHakMsYUFBYTtBQUNiLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFFdkQsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsaUJBQW9DLEVBQ3BDLEdBQXVDLEVBQ3ZDLEVBQUUsV0FBVyxLQUEyQixFQUFFO0lBRTFDLDJEQUEyRDtJQUMzRCxHQUFHO1FBQ0QsR0FBRyxZQUFZLFdBQVc7WUFDeEIsQ0FBQyxDQUFDLElBQUksd0NBQXdDLENBQUMsR0FBRyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUE7SUFFVCxNQUFNLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLENBQzdDLGlCQUFpQixDQUFDLGVBQWUsRUFDakMsaUJBQWlCLENBQUMsYUFBYSxFQUMvQixHQUFHLENBQ0osQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHLElBQUksWUFBWSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUN0RCxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsRUFBRSxDQUFBO0lBQzFDLE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBRS9EOzs7T0FHRztJQUNILFFBQVEsQ0FDTixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLGNBQWMsRUFDZCxJQUFJLFdBQVcsRUFBRSxFQUNqQixDQUFDLEdBQVUsRUFBRSxFQUFFO1FBQ2IsSUFBSSxHQUFHO1lBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQyxDQUNGLENBQUE7SUFFRCx3QkFBd0I7SUFDeEIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUNyQyxDQUFBO0lBRUQsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDIn0=
/// <reference types="node" />
import { NodeMaterialsManager, KeyringNode, CommitmentPolicy } from '@aws-crypto/material-management-node';
import { NodeMaterialsManager, KeyringNode } from '@aws-crypto/material-management-node';
import { DecryptParameters } from './types';
import { Readable } from 'stream';

@@ -13,3 +14,3 @@ import { MessageHeader } from '@aws-crypto/serialize';

}
export declare function _decrypt(commitmentPolicy: CommitmentPolicy, cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string | NodeJS.ReadableStream, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>;
export declare function _decrypt(decryptParameters: DecryptParameters, cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string | NodeJS.ReadableStream, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>;
//# sourceMappingURL=decrypt.d.ts.map

@@ -6,4 +6,6 @@ // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.

import { finished } from 'readable-stream';
export async function _decrypt(commitmentPolicy, cmm, ciphertext, { encoding, maxBodySize } = {}) {
const stream = _decryptStream(commitmentPolicy, cmm, { maxBodySize });
export async function _decrypt(decryptParameters, cmm, ciphertext, { encoding, maxBodySize } = {}) {
const stream = _decryptStream(decryptParameters, cmm, {
maxBodySize,
});
const plaintext = [];

@@ -42,2 +44,2 @@ let messageHeader = false;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFPdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBRWpELGFBQWE7QUFDYixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFjMUMsTUFBTSxDQUFDLEtBQUssVUFBVSxRQUFRLENBQzVCLGdCQUFrQyxFQUNsQyxHQUF1QyxFQUN2QyxVQUEyRSxFQUMzRSxFQUFFLFFBQVEsRUFBRSxXQUFXLEtBQXFCLEVBQUU7SUFFOUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFFckUsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFBO0lBQzlCLElBQUksYUFBYSxHQUEwQixLQUFLLENBQUE7SUFDaEQsTUFBTTtTQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDL0MsYUFBYSxHQUFHLE1BQU0sQ0FBQTtJQUN4QixDQUFDLENBQUM7U0FDRCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFdkQseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO0tBQzlDO1NBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7S0FDeEI7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtLQUNqRDtJQUVELE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLElBQUksQ0FBQyxhQUFhO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXJELE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBQyxNQUFjO0lBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDM0MsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ25FLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFNdEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBR2pELGFBQWE7QUFDYixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFjMUMsTUFBTSxDQUFDLEtBQUssVUFBVSxRQUFRLENBQzVCLGlCQUFvQyxFQUNwQyxHQUF1QyxFQUN2QyxVQUEyRSxFQUMzRSxFQUFFLFFBQVEsRUFBRSxXQUFXLEtBQXFCLEVBQUU7SUFFOUMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsRUFBRTtRQUNwRCxXQUFXO0tBQ1osQ0FBQyxDQUFBO0lBRUYsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFBO0lBQzlCLElBQUksYUFBYSxHQUEwQixLQUFLLENBQUE7SUFDaEQsTUFBTTtTQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDL0MsYUFBYSxHQUFHLE1BQU0sQ0FBQTtJQUN4QixDQUFDLENBQUM7U0FDRCxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFdkQseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO0tBQzlDO1NBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7S0FDeEI7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtLQUNqRDtJQUVELE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLElBQUksQ0FBQyxhQUFhO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXJELE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBRUQsS0FBSyxVQUFVLGFBQWEsQ0FBQyxNQUFjO0lBQ3pDLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDM0MsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ25FLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
export { buildDecrypt } from './decrypt_client';
export { DecryptOutput } from './decrypt';
export { MessageHeader } from '@aws-crypto/serialize';
//# sourceMappingURL=index.d.ts.map
import { Transform } from 'stream';
import { NodeMaterialsManager, CommitmentPolicy } from '@aws-crypto/material-management-node';
import { NodeMaterialsManager, SignaturePolicy, ClientOptions } from '@aws-crypto/material-management-node';
declare const PortableTransformWithType: new (...args: any[]) => Transform;

@@ -7,4 +7,6 @@ export declare class ParseHeaderStream extends PortableTransformWithType {

private commitmentPolicy;
private signaturePolicy;
private maxEncryptedDataKeys;
private _headerState;
constructor(commitmentPolicy: CommitmentPolicy, cmm: NodeMaterialsManager);
constructor(signaturePolicy: SignaturePolicy, { commitmentPolicy, maxEncryptedDataKeys }: ClientOptions, cmm: NodeMaterialsManager);
_transform(chunk: any, encoding: string, callback: (err?: Error | null, data?: Uint8Array) => void): void;

@@ -11,0 +13,0 @@ _flush(callback: (err?: Error) => void): void;

@@ -5,3 +5,3 @@ // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.

import { Transform as PortableTransform } from 'readable-stream';
import { NodeAlgorithmSuite, getDecryptionHelper, CommitmentPolicy, CommitmentPolicySuites, needs, } from '@aws-crypto/material-management-node';
import { NodeAlgorithmSuite, getDecryptionHelper, CommitmentPolicy, CommitmentPolicySuites, SignaturePolicy, SignaturePolicySuites, needs, } from '@aws-crypto/material-management-node';
import { deserializeFactory } from '@aws-crypto/serialize';

@@ -12,6 +12,11 @@ const toUtf8 = (input) => Buffer.from(input.buffer, input.byteOffset, input.byteLength).toString('utf8');

export class ParseHeaderStream extends PortableTransformWithType {
constructor(commitmentPolicy, cmm) {
constructor(signaturePolicy, { commitmentPolicy, maxEncryptedDataKeys }, cmm) {
super();
/* Precondition: ParseHeaderStream needs a valid commitmentPolicy. */
needs(CommitmentPolicy[commitmentPolicy], 'Invalid commitment policy.');
/* Precondition: ParseHeaderStream needs a valid signaturePolicy. */
needs(SignaturePolicy[signaturePolicy], 'Invalid signature policy.');
// buildDecrypt defaults this to false for backwards compatibility, so this is satisfied
/* Precondition: ParseHeaderStream needs a valid maxEncryptedDataKeys. */
needs(maxEncryptedDataKeys === false || maxEncryptedDataKeys >= 1, 'Invalid maxEncryptedDataKeys value.');
Object.defineProperty(this, 'materialsManager', {

@@ -25,2 +30,6 @@ value: cmm,

});
Object.defineProperty(this, 'maxEncryptedDataKeys', {
value: maxEncryptedDataKeys,
enumerable: true,
});
this._headerState = {

@@ -30,70 +39,88 @@ buffer: Buffer.alloc(0),

};
Object.defineProperty(this, 'signaturePolicy', {
value: signaturePolicy,
enumerable: true,
});
}
_transform(chunk, encoding, callback) {
const { _headerState, commitmentPolicy, materialsManager } = this;
const { buffer } = _headerState;
const headerBuffer = Buffer.concat([buffer, chunk]);
const headerInfo = deserialize.deserializeMessageHeader(headerBuffer);
if (!headerInfo) {
_headerState.buffer = headerBuffer;
return callback();
_transform(
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types
chunk, encoding, callback) {
try {
const { _headerState, commitmentPolicy, materialsManager, signaturePolicy, maxEncryptedDataKeys, } = this;
const { buffer } = _headerState;
const headerBuffer = Buffer.concat([buffer, chunk]);
const headerInfo = deserialize.deserializeMessageHeader(headerBuffer, {
maxEncryptedDataKeys,
});
if (!headerInfo) {
_headerState.buffer = headerBuffer;
return callback();
}
const { messageHeader, algorithmSuite } = headerInfo;
const messageIDStr = Buffer.from(messageHeader.messageId).toString('hex');
/* Precondition: The parsed header algorithmSuite from ParseHeaderStream must be supported by the commitmentPolicy. */
CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, algorithmSuite, messageIDStr);
/* Precondition: The parsed header algorithmSuite from ParseHeaderStream must be supported by the signaturePolicy. */
SignaturePolicySuites.isDecryptEnabled(signaturePolicy, algorithmSuite, messageIDStr);
const { rawHeader, headerAuth } = headerInfo;
const { headerIv, headerAuthTag, headerAuthLength } = headerAuth;
const suite = new NodeAlgorithmSuite(algorithmSuite.id);
const { messageId, encryptionContext, encryptedDataKeys } = messageHeader;
materialsManager
.decryptMaterials({ suite, encryptionContext, encryptedDataKeys })
.then((material) => {
/* Precondition: The material algorithmSuite returned to ParseHeaderStream must be supported by the commitmentPolicy. */
CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, material.suite, messageIDStr);
/* Precondition: The material algorithmSuite returned to ParseHeaderStream must be supported by the signaturePolicy. */
SignaturePolicySuites.isDecryptEnabled(signaturePolicy, material.suite, messageIDStr);
_headerState.buffer = Buffer.alloc(0); // clear the Buffer...
const { getDecipherInfo, getVerify, dispose } = getDecryptionHelper(material);
const getDecipher = getDecipherInfo(messageId,
/* This is sub-optimal.
* Ideally I could pluck the `suiteData`
* right off the header
* and in such a way that may be undefined.
* But that has other consequences
* that are beyond the scope of this course.
*/
messageHeader.suiteData);
const headerAuth = getDecipher(headerIv);
headerAuth.setAAD(Buffer.from(rawHeader.buffer, rawHeader.byteOffset, rawHeader.byteLength));
headerAuth.setAuthTag(Buffer.from(headerAuthTag.buffer, headerAuthTag.byteOffset, headerAuthTag.byteLength));
headerAuth.update(Buffer.alloc(0));
headerAuth.final(); // will throw if invalid
const verify = getVerify ? getVerify() : void 0;
const verifyInfo = {
headerInfo,
getDecipher,
verify,
dispose,
};
this.emit('VerifyInfo', verifyInfo);
this.emit('MessageHeader', headerInfo.messageHeader);
_headerState.headerParsed = true;
// The header is parsed, pass control
const readPos = rawHeader.byteLength + headerAuthLength;
const tail = headerBuffer.slice(readPos);
/* needs calls in downstream _transform streams will throw.
* But streams are async.
* So this error should be turned into an `.emit('error', ex)`.
*/
this._transform = (chunk, _enc, cb) => {
try {
cb(null, chunk);
}
catch (ex) {
this.emit('error', ex);
}
};
// flush the tail. Stream control is now in the verify and decrypt streams
return setImmediate(() => this._transform(tail, encoding, callback));
})
.catch((err) => callback(err));
}
const { messageHeader, algorithmSuite } = headerInfo;
const messageIDStr = Buffer.from(messageHeader.messageId).toString('hex');
/* Precondition: The parsed header algorithmSuite from ParseHeaderStream must be supported by the commitmentPolicy. */
CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, algorithmSuite, messageIDStr);
const { rawHeader, headerAuth } = headerInfo;
const { headerIv, headerAuthTag, headerAuthLength } = headerAuth;
const suite = new NodeAlgorithmSuite(algorithmSuite.id);
const { messageId, encryptionContext, encryptedDataKeys } = messageHeader;
materialsManager
.decryptMaterials({ suite, encryptionContext, encryptedDataKeys })
.then((material) => {
/* Precondition: The material algorithmSuite returned to ParseHeaderStream must be supported by the commitmentPolicy. */
CommitmentPolicySuites.isDecryptEnabled(commitmentPolicy, material.suite, messageIDStr);
_headerState.buffer = Buffer.alloc(0); // clear the Buffer...
const { getDecipherInfo, getVerify, dispose } = getDecryptionHelper(material);
const getDecipher = getDecipherInfo(messageId,
/* This is sub-optimal.
* Ideally I could pluck the `suiteData`
* right off the header
* and in such a way that may be undefined.
* But that has other consequences
* that are beyond the scope of this course.
*/
messageHeader.suiteData);
const headerAuth = getDecipher(headerIv);
headerAuth.setAAD(Buffer.from(rawHeader.buffer, rawHeader.byteOffset, rawHeader.byteLength));
headerAuth.setAuthTag(Buffer.from(headerAuthTag.buffer, headerAuthTag.byteOffset, headerAuthTag.byteLength));
headerAuth.update(Buffer.alloc(0));
headerAuth.final(); // will throw if invalid
const verify = getVerify ? getVerify() : void 0;
const verifyInfo = {
headerInfo,
getDecipher,
verify,
dispose,
};
this.emit('VerifyInfo', verifyInfo);
this.emit('MessageHeader', headerInfo.messageHeader);
_headerState.headerParsed = true;
// The header is parsed, pass control
const readPos = rawHeader.byteLength + headerAuthLength;
const tail = headerBuffer.slice(readPos);
/* needs calls in downstream _transform streams will throw.
* But streams are async.
* So this error should be turned into an `.emit('error', ex)`.
*/
this._transform = (chunk, _enc, cb) => {
try {
cb(null, chunk);
}
catch (ex) {
this.emit('error', ex);
}
};
// flush the tail. Stream control is now in the verify and decrypt streams
return setImmediate(() => this._transform(tail, encoding, callback));
})
.catch((err) => callback(err));
catch (ex) {
/* Exceptional Postcondition: An error MUST be emitted or this would be an unhandled exception. */
this.emit('error', ex);
}
}

@@ -110,2 +137,2 @@ _flush(callback) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFFdEMsYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLElBQUksaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUVoRSxPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLEtBQUssR0FDTixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBbUIsTUFBTSx1QkFBdUIsQ0FBQTtBQUczRSxNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0FBQ2hGLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0FBQ2xFLE1BQU0seUJBQXlCLEdBQUcsaUJBRXBCLENBQUE7QUFPZCxNQUFNLE9BQU8saUJBQWtCLFNBQVEseUJBQXlCO0lBSTlELFlBQVksZ0JBQWtDLEVBQUUsR0FBeUI7UUFDdkUsS0FBSyxFQUFFLENBQUE7UUFFUCxxRUFBcUU7UUFDckUsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsNEJBQTRCLENBQUMsQ0FBQTtRQUV2RSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUM5QyxLQUFLLEVBQUUsR0FBRztZQUNWLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQTtRQUNGLE1BQU0sQ0FBQyxjQUFjLENB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
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFFdEMsYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLElBQUksaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUVoRSxPQUFPLEVBQ0wsa0JBQWtCLEVBRWxCLG1CQUFtQixFQUNuQixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBQ3RCLGVBQWUsRUFDZixxQkFBcUIsRUFFckIsS0FBSyxHQUNOLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFtQixNQUFNLHVCQUF1QixDQUFBO0FBRzNFLE1BQU0sTUFBTSxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDaEYsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEUsTUFBTSx5QkFBeUIsR0FBRyxpQkFFcEIsQ0FBQTtBQU9kLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSx5QkFBeUI7SUFNOUQsWUFDRSxlQUFnQyxFQUNoQyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFpQixFQUN6RCxHQUF5QjtRQUV6QixLQUFLLEVBQUUsQ0FBQTtRQUVQLHFFQUFxRTtRQUNyRSxLQUFLLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSw0QkFBNEIsQ0FBQyxDQUFBO1FBRXZFLG9FQUFvRTtRQUNwRSxLQUFLLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENB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

@@ -6,2 +6,10 @@ # Change Log

# [2.2.0](https://github.com/aws/private-aws-encryption-sdk-javascript-staging/compare/@aws-crypto/decrypt-node@2.1.0...@aws-crypto/decrypt-node@2.2.0) (2021-05-27)
**Note:** Version bump only for package @aws-crypto/decrypt-node
# [2.1.0](https://github.com/aws/aws-encryption-sdk-javascript/compare/@aws-crypto/decrypt-node@2.0.0...@aws-crypto/decrypt-node@2.1.0) (2021-02-04)

@@ -8,0 +16,0 @@

{
"name": "@aws-crypto/decrypt-node",
"version": "2.1.0",
"version": "2.2.0",
"scripts": {

@@ -21,8 +21,8 @@ "prepublishOnly": "npm run build",

"dependencies": {
"@aws-crypto/material-management-node": "^2.1.0",
"@aws-crypto/serialize": "^2.1.0",
"@aws-crypto/material-management-node": "^2.2.0",
"@aws-crypto/serialize": "^2.2.0",
"@types/duplexify": "^3.6.0",
"duplexify": "^4.1.1",
"readable-stream": "^3.6.0",
"tslib": "^1.11.1"
"tslib": "^2.2.0"
},

@@ -36,3 +36,3 @@ "sideEffects": false,

],
"gitHead": "c6ef12119e60d8527375c600155ff3437c70b44e"
"gitHead": "35a8888596e935beabb99f872da26abc61d20a3e"
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc