@aws-crypto/decrypt-node
Advanced tools
Comparing version 0.1.0-preview.1 to 0.1.0-preview.2
/// <reference types="node" /> | ||
import { DecipherGCM } from 'crypto'; | ||
import { GetDecipher } from '@aws-crypto/material-management-node'; | ||
import { ContentType } from '@aws-crypto/serialize'; | ||
@@ -7,3 +7,3 @@ export interface DecipherInfo { | ||
contentType: ContentType; | ||
getDecipher: (iv: Uint8Array) => DecipherGCM; | ||
getDecipher: GetDecipher; | ||
dispose: () => void; | ||
@@ -21,3 +21,3 @@ } | ||
_read(size: number): void; | ||
_onAuthTag: (authTag: Buffer) => Promise<void>; | ||
_onAuthTag: (authTag: Buffer, next: Function) => Promise<void>; | ||
_destroy(): void; | ||
@@ -24,0 +24,0 @@ _flush(callback: import("stream").TransformCallback): void; |
@@ -48,3 +48,3 @@ "use strict"; | ||
}; | ||
this._onAuthTag = async (authTag) => { | ||
this._onAuthTag = async (authTag, next) => { | ||
const { decipher, content, contentLength } = decipherState; | ||
@@ -78,2 +78,12 @@ /* Precondition: _onAuthTag must be called only after a frame has been accumulated. | ||
} | ||
/* This frame is complete. | ||
* Need to notify the VerifyStream continue. | ||
* See the note in `AuthTag` for details. | ||
* The short answer is that for small frame sizes, | ||
* the "next" frame associated auth tag may be | ||
* parsed and send before the "current" is processed. | ||
* This will cause the auth tag event to fire before | ||
* any _transform events fire and a 'Lengths do not match' precondition to fail. | ||
*/ | ||
next(); | ||
// This frame is complete. Notify _transform to continue, see needs above for more details | ||
@@ -93,5 +103,5 @@ if (frameComplete) | ||
.on('BodyInfo', this._onBodyHeader) | ||
.on('AuthTag', async (authTag) => { | ||
.on('AuthTag', async (authTag, next) => { | ||
try { | ||
await this._onAuthTag(authTag); | ||
await this._onAuthTag(authTag, next); | ||
} | ||
@@ -151,2 +161,2 @@ catch (e) { | ||
exports.getDecipherStream = getDecipherStream; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXBoZXJfc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY2lwaGVyX3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRzs7QUFFSCxhQUFhO0FBQ2IscURBQWdFO0FBR2hFLG1GQUE0RDtBQUM1RCxxREFHOEI7QUFDOUIsbURBQThDO0FBRTlDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUM5RCxNQUFNLFVBQVUsR0FBRyxzQkFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ3ZDLE1BQU0seUJBQXlCLEdBQXVDLDJCQUFrQixDQUFBO0FBc0J4RixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBQ2xFLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtBQUVyQixTQUFnQixpQkFBaUI7SUFDL0IsSUFBSSxZQUEwQixDQUFBO0lBQzlCLElBQUksYUFBYSxHQUFrQixFQUFTLENBQUE7SUFDNUMsSUFBSSxpQkFBaUIsR0FBYSxJQUFJLENBQUE7SUFDdEMsSUFBSSxhQUFhLEdBQW1CLEtBQUssQ0FBQTtJQUV6QyxPQUFPLElBQUksQ0FBQyxNQUFNLGNBQWUsU0FBUSx5QkFBeUI7UUFDaEU7WUFDRSxLQUFLLEVBQUUsQ0FBQTtZQW1CVCxrQkFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQVksRUFBRSxFQUFFO2dCQUNoRixxRUFBcUU7Z0JBQ3JFLGdDQUFLLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLENBQUE7Z0JBQ3ZDLG9GQUFvRjtnQkFDcEYsZ0NBQUss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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXBoZXJfc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY2lwaGVyX3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRzs7QUFFSCxhQUFhO0FBQ2IscURBQWdFO0FBRWhFLG1GQUk2QztBQUM3QyxxREFHOEI7QUFDOUIsbURBQThDO0FBRTlDLE1BQU0sUUFBUSxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUM5RCxNQUFNLFVBQVUsR0FBRyxzQkFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ3ZDLE1BQU0seUJBQXlCLEdBQXVDLDJCQUFrQixDQUFBO0FBc0J4RixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBQ2xFLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtBQUVyQixTQUFnQixpQkFBaUI7SUFDL0IsSUFBSSxZQUEwQixDQUFBO0lBQzlCLElBQUksYUFBYSxHQUFrQixFQUFTLENBQUE7SUFDNUMsSUFBSSxpQkFBaUIsR0FBYSxJQUFJLENBQUE7SUFDdEMsSUFBSSxhQUFhLEdBQW1CLEtBQUssQ0FBQTtJQUV6QyxPQUFPLElBQUksQ0FBQyxNQUFNLGNBQWUsU0FBUSx5QkFBeUI7UUFDaEU7WUFDRSxLQUFLLEVBQUUsQ0FBQTtZQW1CVCxrQkFBYSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQVksRUFBRSxFQUFFO2dCQUNoRixxRUFBcUU7Z0JBQ3JFLGdDQUFLLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLENBQUE7Z0JBQ3ZDLG9GQUFvRjtnQkFDcEYsZ0NBQUss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 |
@@ -35,3 +35,10 @@ "use strict"; | ||
const decipherStream = decipher_stream_1.getDecipherStream(); | ||
readable_stream_1.pipeline(parseHeaderStream, verifyStream, decipherStream); | ||
/* pipeline will _either_ stream.destroy or the callback. | ||
* decipherStream uses destroy to dispose the material. | ||
* So I tack a pass though stream onto the end. | ||
*/ | ||
readable_stream_1.pipeline(parseHeaderStream, verifyStream, decipherStream, new readable_stream_1.PassThrough(), (err) => { | ||
if (err) | ||
stream.emit('error', err); | ||
}); | ||
const stream = new duplexify_1.default(parseHeaderStream, decipherStream); | ||
@@ -44,2 +51,2 @@ // Forward header events | ||
exports.decryptStream = decryptStream; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7Ozs7O0FBRUgsbUZBSTZDO0FBQzdDLCtEQUF5RDtBQUN6RCxtREFBOEM7QUFDOUMsdURBQXFEO0FBQ3JELDBEQUFpQztBQUdqQyxhQUFhO0FBQ2IscURBQTBDO0FBTTFDLFNBQWdCLGFBQWEsQ0FDM0IsR0FBcUMsRUFDckMsRUFBRSxXQUFXLEtBQTRCLEVBQUU7SUFFM0MscUZBQXFGO0lBQ3JGLEdBQUcsR0FBRyxHQUFHLFlBQVksc0NBQVc7UUFDOUIsQ0FBQyxDQUFDLElBQUksbUVBQXdDLENBQUMsR0FBRyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUE7SUFFUCxNQUFNLGlCQUFpQixHQUFHLElBQUksdUNBQWlCLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFlBQVksR0FBRyxJQUFJLDRCQUFZLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sY0FBYyxHQUFHLG1DQUFpQixFQUFFLENBQUE7SUFFMUMsMEJBQVEsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFekQsTUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBUyxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBRS9ELHdCQUF3QjtJQUN4QixpQkFBaUI7U0FDZCxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUV4RSxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUF0QkQsc0NBc0JDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7Ozs7O0FBRUgsbUZBSTZDO0FBQzdDLCtEQUF5RDtBQUN6RCxtREFBOEM7QUFDOUMsdURBQXFEO0FBQ3JELDBEQUFpQztBQUdqQyxhQUFhO0FBQ2IscURBQXVEO0FBTXZELFNBQWdCLGFBQWEsQ0FDM0IsR0FBcUMsRUFDckMsRUFBRSxXQUFXLEtBQTRCLEVBQUU7SUFFM0MscUZBQXFGO0lBQ3JGLEdBQUcsR0FBRyxHQUFHLFlBQVksc0NBQVc7UUFDOUIsQ0FBQyxDQUFDLElBQUksbUVBQXdDLENBQUMsR0FBRyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUE7SUFFUCxNQUFNLGlCQUFpQixHQUFHLElBQUksdUNBQWlCLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFlBQVksR0FBRyxJQUFJLDRCQUFZLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sY0FBYyxHQUFHLG1DQUFpQixFQUFFLENBQUE7SUFFMUM7OztPQUdHO0lBQ0gsMEJBQVEsQ0FBQyxpQkFBaUIsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLElBQUksNkJBQVcsRUFBRSxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQUU7UUFDMUYsSUFBSSxHQUFHO1lBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDcEMsQ0FBQyxDQUFDLENBQUE7SUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLG1CQUFTLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFL0Qsd0JBQXdCO0lBQ3hCLGlCQUFpQjtTQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBRXhFLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQztBQTVCRCxzQ0E0QkMifQ== |
@@ -14,3 +14,3 @@ /// <reference types="node" /> | ||
} | ||
export declare function decrypt(cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>; | ||
export declare function decrypt(cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string | NodeJS.ReadableStream, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>; | ||
//# sourceMappingURL=decrypt.d.ts.map |
@@ -54,2 +54,2 @@ "use strict"; | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQU1ILHFEQUFnRDtBQUVoRCxhQUFhO0FBQ2IscURBQTBDO0FBY25DLEtBQUssVUFBVSxPQUFPLENBQzNCLEdBQXFDLEVBQ3JDLFVBQTZDLEVBQzdDLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBc0IsRUFBRTtJQUUvQyxNQUFNLE1BQU0sR0FBRyw4QkFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFFbEQsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFBO0lBQzlCLElBQUksYUFBYSxHQUF3QixLQUFLLENBQUE7SUFDOUMsTUFBTTtTQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUUsR0FBRyxhQUFhLEdBQUcsTUFBTSxDQUFBLENBQUMsQ0FBQyxDQUFDO1NBQzVFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUV2RCx5Q0FBeUM7SUFDekMsSUFBSSxVQUFVLFlBQVksVUFBVSxFQUFFO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7S0FDdkI7U0FBTSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtRQUN6QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7S0FDOUM7U0FBTSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDOUIsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtLQUN4QjtTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0tBQ2pEO0lBRUQsTUFBTSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0IsSUFBSSxDQUFDLGFBQWE7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFckQsT0FBTztRQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxhQUFhO0tBQ2QsQ0FBQTtBQUNILENBQUM7QUEvQkQsMEJBK0JDO0FBRUQsU0FBUyxhQUFhLENBQUUsTUFBYztJQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLDBCQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQU1ILHFEQUFnRDtBQUVoRCxhQUFhO0FBQ2IscURBQTBDO0FBY25DLEtBQUssVUFBVSxPQUFPLENBQzNCLEdBQXFDLEVBQ3JDLFVBQW1FLEVBQ25FLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBc0IsRUFBRTtJQUUvQyxNQUFNLE1BQU0sR0FBRyw4QkFBYSxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFFbEQsTUFBTSxTQUFTLEdBQWEsRUFBRSxDQUFBO0lBQzlCLElBQUksYUFBYSxHQUF3QixLQUFLLENBQUE7SUFDOUMsTUFBTTtTQUNILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUUsR0FBRyxhQUFhLEdBQUcsTUFBTSxDQUFBLENBQUMsQ0FBQyxDQUFDO1NBQzVFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFhLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUV2RCx5Q0FBeUM7SUFDekMsSUFBSSxVQUFVLFlBQVksVUFBVSxFQUFFO1FBQ3BDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUE7S0FDdkI7U0FBTSxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVEsRUFBRTtRQUN6QyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7S0FDOUM7U0FBTSxJQUFJLFVBQVUsQ0FBQyxRQUFRLEVBQUU7UUFDOUIsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtLQUN4QjtTQUFNO1FBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsQ0FBQyxDQUFBO0tBQ2pEO0lBRUQsTUFBTSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDM0IsSUFBSSxDQUFDLGFBQWE7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFFckQsT0FBTztRQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUNuQyxhQUFhO0tBQ2QsQ0FBQTtBQUNILENBQUM7QUEvQkQsMEJBK0JDO0FBRUQsU0FBUyxhQUFhLENBQUUsTUFBYztJQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLDBCQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBVSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQTtJQUNqRSxDQUFDLENBQUMsQ0FBQTtBQUNKLENBQUMifQ== |
@@ -82,3 +82,14 @@ "use strict"; | ||
const tail = headerBuffer.slice(readPos); | ||
this._transform = (chunk, _enc, cb) => cb(null, chunk); | ||
/* 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 | ||
@@ -91,2 +102,2 @@ return setImmediate(() => this._transform(tail, encoding, callback)); | ||
exports.ParseHeaderStream = ParseHeaderStream; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQUVILGFBQWE7QUFDYixxREFBZ0U7QUFFaEUsbUZBSzZDO0FBQzdDLHFEQUFnRjtBQUdoRixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLE1BQU07S0FDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDO0tBQ3RELFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNuQixNQUFNLFdBQVcsR0FBRyw4QkFBa0IsQ0FBQyxNQUFNLEVBQUUsNkNBQWtCLENBQUMsQ0FBQTtBQUNsRSxNQUFNLHlCQUF5QixHQUF1QywyQkFBa0IsQ0FBQTtBQVV4RixNQUFhLGlCQUFrQixTQUFRLHlCQUF5QjtJQUk5RCxZQUFhLEdBQXlCLEVBQUUsRUFBRSxXQUFXLEtBQXlCLEVBQUU7UUFDOUUsMkRBQTJEO1FBQzNELGdDQUFLLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLDBCQUEwQixDQUFDLENBQUE7UUFDbEYsS0FBSyxFQUFFLENBQUE7UUFDUCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDakYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNyRixJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxD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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQUVILGFBQWE7QUFDYixxREFBZ0U7QUFFaEUsbUZBSzZDO0FBQzdDLHFEQUFnRjtBQUdoRixNQUFNLE1BQU0sR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRSxDQUFDLE1BQU07S0FDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDO0tBQ3RELFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNuQixNQUFNLFdBQVcsR0FBRyw4QkFBa0IsQ0FBQyxNQUFNLEVBQUUsNkNBQWtCLENBQUMsQ0FBQTtBQUNsRSxNQUFNLHlCQUF5QixHQUF1QywyQkFBa0IsQ0FBQTtBQVV4RixNQUFhLGlCQUFrQixTQUFRLHlCQUF5QjtJQUk5RCxZQUFhLEdBQXlCLEVBQUUsRUFBRSxXQUFXLEtBQXlCLEVBQUU7UUFDOUUsMkRBQTJEO1FBQzNELGdDQUFLLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFLDBCQUEwQixDQUFDLENBQUE7UUFDbEYsS0FBSyxFQUFFLENBQUE7UUFDUCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDakYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtRQUNyRixJQUFJLENBQUMsWUFBWSxHQUFHO1lBQ2xCLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxD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 |
/// <reference types="node" /> | ||
import { Transform } from 'stream'; | ||
import { DecipherGCM } from 'crypto'; | ||
import { GetVerify } from '@aws-crypto/material-management-node'; | ||
import { GetVerify, // eslint-disable-line no-unused-vars | ||
GetDecipher } from '@aws-crypto/material-management-node'; | ||
import { // eslint-disable-line no-unused-vars | ||
@@ -11,3 +11,3 @@ HeaderInfo } from '@aws-crypto/serialize'; | ||
headerInfo: HeaderInfo; | ||
getDecipher: (iv: Uint8Array) => DecipherGCM; | ||
getDecipher: GetDecipher; | ||
dispose: () => void; | ||
@@ -14,0 +14,0 @@ verify?: AWSVerify; |
@@ -29,3 +29,4 @@ "use strict"; | ||
authTagBuffer: Buffer.alloc(0), | ||
signatureInfo: Buffer.alloc(0) | ||
signatureInfo: Buffer.alloc(0), | ||
sequenceNumber: 0 | ||
}; | ||
@@ -82,7 +83,14 @@ /* Precondition: MaxBodySize must be falsey or a number. */ | ||
material_management_node_1.needs(!this._maxBodySize || this._maxBodySize >= frameHeader.contentLength, 'maxBodySize exceeded.'); | ||
/* Keeping track of the sequence number myself. */ | ||
state.sequenceNumber += 1; | ||
/* Precondition: The sequence number is required to monotonically increase, starting from 1. | ||
* This is to avoid a bad actor from abusing the sequence number on un-signed algorithm suites. | ||
* If the frame size matched the data format (say NDJSON), | ||
* then the data could be significantly altered just by rearranging the frames. | ||
* Non-framed data returns a sequenceNumber of 1. | ||
*/ | ||
material_management_node_1.needs(frameHeader.sequenceNumber === state.sequenceNumber, 'Encrypted body sequence out of order.'); | ||
if (this._verify) { | ||
this._verify.update(frameBuffer.slice(0, frameHeader.readPos)); | ||
} | ||
// clear the buffer. It _could_ have cipher text... | ||
state.buffer = Buffer.alloc(0); | ||
const tail = chunk.slice(frameHeader.readPos); | ||
@@ -120,19 +128,44 @@ this.emit('BodyInfo', frameHeader); | ||
else { | ||
state.authTagBuffer = Buffer.concat([authTagBuffer, chunk], tagLengthBytes); | ||
const finalAuthTagBuffer = Buffer.concat([authTagBuffer, chunk], tagLengthBytes); | ||
if (this._verify) { | ||
this._verify.update(state.authTagBuffer); | ||
this._verify.update(finalAuthTagBuffer); | ||
} | ||
this.emit('AuthTag', state.authTagBuffer); | ||
/* Reset state. | ||
* Ciphertext buffers and authTag buffers need to be cleared. | ||
*/ | ||
state.buffer = Buffer.alloc(0); | ||
state.currentFrame = undefined; | ||
state.authTagBuffer = Buffer.alloc(0); | ||
/* After the final frame the file format is _much_ simpler. | ||
* Making sure the cascading if blocks fall to the signature can be tricky and brittle. | ||
* After the final frame, just moving on to concatenate the signature is much simpler. | ||
*/ | ||
if (currentFrame.isFinalFrame) { | ||
/* Overwriting the _transform function. | ||
* Data flow control is not handled here. | ||
*/ | ||
this._transform = (chunk, _enc, callback) => { | ||
if (chunk.length) { | ||
state.signatureInfo = Buffer.concat([state.signatureInfo, chunk]); | ||
} | ||
callback(); | ||
}; | ||
} | ||
const tail = chunk.slice(left); | ||
if (!currentFrame.isFinalFrame) { | ||
state.buffer = Buffer.alloc(0); | ||
state.currentFrame = undefined; | ||
state.authTagBuffer = Buffer.alloc(0); | ||
} | ||
return setImmediate(() => this._transform(tail, enc, callback)); | ||
/* The decipher_stream uses the `AuthTag` event to flush the accumulated frame. | ||
* This is because ciphertext should never be returned until it is verified. | ||
* i.e. the auth tag checked. | ||
* This can create an issue if the chucks and frame size are small. | ||
* If the verify stream continues processing and sends the next auth tag, | ||
* before the current auth tag has been completed. | ||
* This is basically a back pressure issue. | ||
* Since the frame size, and consequently the high water mark, | ||
* can not be know when the stream is created, | ||
* the internal stream state would need to be modified. | ||
* I assert that a simple callback is a simpler way to handle this. | ||
*/ | ||
const next = () => this._transform(tail, enc, callback); | ||
return this.emit('AuthTag', finalAuthTagBuffer, next); | ||
} | ||
} | ||
if (chunk.length) { | ||
state.signatureInfo = Buffer.concat([state.signatureInfo, chunk]); | ||
} | ||
callback(); | ||
@@ -161,2 +194,2 @@ } | ||
exports.VerifyStream = VerifyStream; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5X3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnlfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQUVILGFBQWE7QUFDYixxREFBZ0U7QUFHaEUsbUZBRzZDO0FBQzdDLHFEQUs4QjtBQUM5QiwrREFBeUQ7QUFJekQsTUFBTSx5QkFBeUIsR0FBdUMsMkJBQWtCLENBQUE7QUFvQnhGLE1BQWEsWUFBYSxTQUFRLHlCQUF5QjtJQVN6RCxZQUFhLEVBQUUsV0FBVyxFQUF1QjtRQUMvQyxLQUFLLEVBQUUsQ0FBQTtRQVJELGlCQUFZLEdBQWdCO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2QixhQUFhLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQy9CLENBQUE7UUFLQywyREFBMkQ7UUFDM0QsZ0NBQUssQ0FBQyxDQUFDLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtRQUNsRixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBRXJGLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBeUIsRUFBRSxFQUFFO1lBQzVDLGlGQUFpRjtZQUNqRixnQ0FBSyxDQUFDLE1BQU0sWUFBWSx1Q0FBaUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO1lBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBc0IsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUs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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5X3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnlfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHOztBQUVILGFBQWE7QUFDYixxREFBZ0U7QUFFaEUsbUZBSTZDO0FBQzdDLHFEQUs4QjtBQUM5QiwrREFBeUQ7QUFJekQsTUFBTSx5QkFBeUIsR0FBdUMsMkJBQWtCLENBQUE7QUFxQnhGLE1BQWEsWUFBYSxTQUFRLHlCQUF5QjtJQVV6RCxZQUFhLEVBQUUsV0FBVyxFQUF1QjtRQUMvQyxLQUFLLEVBQUUsQ0FBQTtRQVRELGlCQUFZLEdBQWdCO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2QixhQUFhLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlCLGNBQWMsRUFBRSxDQUFDO1NBQ2xCLENBQUE7UUFLQywyREFBMkQ7UUFDM0QsZ0NBQUssQ0FBQyxDQUFDLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtRQUNsRixNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO1FBRXJGLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBeUIsRUFBRSxFQUFFO1lBQzVDLGlGQUFpRjtZQUNqRixnQ0FBSyxDQUFDLE1BQU0sWUFBWSx1Q0FBaUIsRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO1lBQ2hFLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsVUFBc0IsRUFBRSxFQUFFO2dCQUNuRCxNQUFNLEVBQUUsV0FBVyxFQUFF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 |
/// <reference types="node" /> | ||
import { DecipherGCM } from 'crypto'; | ||
import { GetDecipher } from '@aws-crypto/material-management-node'; | ||
import { ContentType } from '@aws-crypto/serialize'; | ||
@@ -7,3 +7,3 @@ export interface DecipherInfo { | ||
contentType: ContentType; | ||
getDecipher: (iv: Uint8Array) => DecipherGCM; | ||
getDecipher: GetDecipher; | ||
dispose: () => void; | ||
@@ -21,3 +21,3 @@ } | ||
_read(size: number): void; | ||
_onAuthTag: (authTag: Buffer) => Promise<void>; | ||
_onAuthTag: (authTag: Buffer, next: Function) => Promise<void>; | ||
_destroy(): void; | ||
@@ -24,0 +24,0 @@ _flush(callback: import("stream").TransformCallback): void; |
@@ -46,3 +46,3 @@ /* | ||
}; | ||
this._onAuthTag = async (authTag) => { | ||
this._onAuthTag = async (authTag, next) => { | ||
const { decipher, content, contentLength } = decipherState; | ||
@@ -76,2 +76,12 @@ /* Precondition: _onAuthTag must be called only after a frame has been accumulated. | ||
} | ||
/* This frame is complete. | ||
* Need to notify the VerifyStream continue. | ||
* See the note in `AuthTag` for details. | ||
* The short answer is that for small frame sizes, | ||
* the "next" frame associated auth tag may be | ||
* parsed and send before the "current" is processed. | ||
* This will cause the auth tag event to fire before | ||
* any _transform events fire and a 'Lengths do not match' precondition to fail. | ||
*/ | ||
next(); | ||
// This frame is complete. Notify _transform to continue, see needs above for more details | ||
@@ -91,5 +101,5 @@ if (frameComplete) | ||
.on('BodyInfo', this._onBodyHeader) | ||
.on('AuthTag', async (authTag) => { | ||
.on('AuthTag', async (authTag, next) => { | ||
try { | ||
await this._onAuthTag(authTag); | ||
await this._onAuthTag(authTag, next); | ||
} | ||
@@ -148,2 +158,2 @@ catch (e) { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXBoZXJfc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY2lwaGVyX3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLElBQUksaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUdoRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDNUQsT0FBTyxFQUNMLFVBQVUsRUFFWCxNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFDOUQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ3ZDLE1BQU0seUJBQXlCLEdBQXVDLGlCQUFrQixDQUFBO0FBc0J4RixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBQ2xFLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtBQUVyQixNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLElBQUksWUFBMEIsQ0FBQTtJQUM5QixJQUFJLGFBQWEsR0FBa0IsRUFBUyxDQUFBO0lBQzVDLElBQUksaUJBQWlCLEdBQWEsSUFBSSxDQUFBO0lBQ3RDLElBQUksYUFBYSxHQUFtQixLQUFLLENBQUE7SUFFekMsT0FBTyxJQUFJLENBQUMsTUFBTSxjQUFlLFNBQVEseUJBQXlCO1FBQ2hFO1lBQ0UsS0FBSyxFQUFFLENBQUE7WUFtQlQsa0JBQWEsR0FBRyxDQUFDLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFZLEVBQUUsRUFBRTtnQkFDaEYscUVBQXFFO2dCQUNyRSxLQUFLLENBQUMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLENBQUE7Z0JBQ3ZDLG9GQUFvRjtnQkFDcEYsS0FBSyxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO2dCQUVsRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsR0FBRyxZQUFZLENBQUE7Z0JBQzVELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO2dCQUNuRixNQUFNLFVBQVUsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFBO2dCQUM3RixNQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDO3FCQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUE7Z0JBQ3ZGLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQTtnQkFDNUIsYUFBYSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQTtZQUN0RCxDQUFDLENBQUE7WUEyQ0QsZUFBVSxHQUFHLEtBQUssRUFBRSxPQUFlLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsYUFBYSxDQUFBO2dCQUMxRDs7O21CQUdHO2dCQUNILEtBQUssQ0FBQyxhQUFhLElBQUksYUFBYSxLQUFLLENBQUMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFBO2dCQUNwRSxvRUFBb0U7Z0JBQ3BFLEtBQUssQ0FBQyxhQUFhLEtBQUssQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUE7Z0JBRWxELDRCQUE0QjtnQkFDNUIsYUFBYSxHQUFHLEVBQVMsQ0FBQTtnQkFFekIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtnQkFFNUIsTUFBTSxLQUFLLEdBQWEsRUFBRSxDQUFBO2dCQUMxQixLQUFLLE1BQU0sV0FBVyxJQUFJLE9BQU8sRUFBRTtvQkFDakMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtvQkFDL0MsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtvQkFDdEIsTUFBTSxNQUFNLEVBQUUsQ0FBQTtpQkFDZjtnQkFFRCw4Q0FBOEM7Z0JBQzlDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtnQkFDN0IsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFFaEIsS0FBSyxNQUFNLFVBQVUsSUFBSSxLQUFLLEVBQUU7b0JBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUMxQjs7MkJBRUc7d0JBQ0gsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLGlCQUFpQixHQUFHLE9BQU8sQ0FBQSxDQUFDLENBQUMsQ0FBQyxDQUFBO3FCQUM5RDtpQkFDRjtnQkFFRCwwRkFBMEY7Z0JBQzFGLElBQUksYUFBYTtvQkFBRSxhQUFhLEVBQUUsQ0FBQTtnQkFDbEMsd0JBQXdCO2dCQUN4QixhQUFhLEdBQUcsS0FBSyxDQUFBO1lBQ3ZCLENBQUMsQ0FBQTtZQWpIQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQW9CLEVBQUUsRUFBRTtnQkFDdkMsa0ZBQWtGO2dCQUNsRixLQUFLLENBQUMsTUFBTSxZQUFZLFlBQVksRUFBRSxvQkFBb0IsQ0FBQyxDQUFBO2dCQUMzRCxNQUFNO3FCQUNILElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFrQixFQUFFLEVBQUU7b0JBQzNDLFlBQVksR0FBRyxJQUFJLENBQUE7Z0JBQ3JCLENBQUMsQ0FBQztxQkFDRCxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUM7cUJBQ2xDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQWUsRUFBRSxFQUFFO29CQUN2QyxJQUFJO3dCQUNGLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtxQkFDL0I7b0JBQUMsT0FBTyxDQUFDLEVBQUU7d0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUE7cUJBQ3RCO2dCQUNILENBQUMsQ0FBQyxDQUFBO1lBQ04sQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBaUJELFVBQVUsQ0FBRSxLQUFVLEVBQUUsU0FBaUIsRUFBRSxRQUFrQjtZQUMzRCxnRUFBZ0U7WUFDaEUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtZQUVqRCxhQUFhLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUE7WUFDM0M7Ozs7ZUFJRztZQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxJQUFJLENBQUMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFBO1lBQy9ELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxhQUFhLENBQUE7WUFDakMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUNuQixJQUFJLGFBQWEsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQywwQkFBMEI7Z0JBQzFCLFFBQVEsRUFBRSxDQUFBO2FBQ1g7aUJBQU07Z0JBQ0wsMkNBQTJDO2dCQUMzQywrQ0FBK0M7Z0JBQy9DLGFBQWEsR0FBRyxRQUFRLENBQUE7YUFDekI7UUFDSCxDQUFDO1FBRUQsS0FBSyxDQUFFLElBQVk7WUFDakI7Ozs7Ozs7Ozs7ZUFVRztZQUNILGlCQUFpQixFQUFFLENBQUE7WUFDbkIsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO1lBRXhCLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDbkIsQ0FBQztRQTJDRCxRQUFRO1lBQ04sc0RBQXNEO1lBQ3RELHFEQUFxRDtZQUNyRCxnQkFBZ0I7WUFDaEIsWUFBWSxJQUFJLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUN4QyxDQUFDO0tBQ0YsQ0FBQyxFQUFFLENBQUE7QUFDTixDQUFDIn0= | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaXBoZXJfc3RyZWFtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RlY2lwaGVyX3N0cmVhbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsYUFBYTtBQUNiLE9BQU8sRUFBRSxTQUFTLElBQUksaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUVoRSxPQUFPLEVBQ0wsS0FBSyxFQUdOLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUNMLFVBQVUsRUFFWCxNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5QyxNQUFNLFFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7QUFDOUQsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBQ3ZDLE1BQU0seUJBQXlCLEdBQXVDLGlCQUFrQixDQUFBO0FBc0J4RixNQUFNLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO0FBQ2xFLE1BQU0sSUFBSSxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQTtBQUVyQixNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLElBQUksWUFBMEIsQ0FBQTtJQUM5QixJQUFJLGFBQWEsR0FBa0IsRUFBUyxDQUFBO0lBQzVDLElBQUksaUJBQWlCLEdBQWEsSUFBSSxDQUFBO0lBQ3RDLElBQUksYUFBYSxHQUFtQixLQUFLLENBQUE7SUFFekMsT0FBTyxJQUFJLENBQUMsTUFBTSxjQUFlLFNBQVEseUJBQXlCO1FBQ2hFO1lBQ0UsS0FBSyxFQUFFLENBQUE7WUFtQlQsa0JBQWEsR0FBRyxDQUFDLEVBQUUsRUFB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 |
@@ -21,3 +21,3 @@ /* | ||
// @ts-ignore | ||
import { pipeline } from 'readable-stream'; | ||
import { pipeline, PassThrough } from 'readable-stream'; | ||
export function decryptStream(cmm, { maxBodySize } = {}) { | ||
@@ -31,3 +31,10 @@ /* If the cmm is a Keyring, wrap it with NodeDefaultCryptographicMaterialsManager. */ | ||
const decipherStream = getDecipherStream(); | ||
pipeline(parseHeaderStream, verifyStream, decipherStream); | ||
/* pipeline will _either_ stream.destroy or the callback. | ||
* decipherStream uses destroy to dispose the material. | ||
* So I tack a pass though stream onto the end. | ||
*/ | ||
pipeline(parseHeaderStream, verifyStream, decipherStream, new PassThrough(), (err) => { | ||
if (err) | ||
stream.emit('error', err); | ||
}); | ||
const stream = new Duplexify(parseHeaderStream, decipherStream); | ||
@@ -39,2 +46,2 @@ // Forward header events | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE9BQU8sRUFDTCx3Q0FBd0MsRUFDeEMsV0FBVyxFQUVaLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQTtBQUdqQyxhQUFhO0FBQ2IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBTTFDLE1BQU0sVUFBVSxhQUFhLENBQzNCLEdBQXFDLEVBQ3JDLEVBQUUsV0FBVyxLQUE0QixFQUFFO0lBRTNDLHFGQUFxRjtJQUNyRixHQUFHLEdBQUcsR0FBRyxZQUFZLFdBQVc7UUFDOUIsQ0FBQyxDQUFDLElBQUksd0NBQXdDLENBQUMsR0FBRyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxHQUFHLENBQUE7SUFFUCxNQUFNLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQTtJQUNyRSxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDdEQsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLEVBQUUsQ0FBQTtJQUUxQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLGlCQUFpQixFQUFFLGNBQWMsQ0FBQyxDQUFBO0lBRS9ELHdCQUF3QjtJQUN4QixpQkFBaUI7U0FDZCxJQUFJLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUV4RSxPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUMifQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdF9zdHJlYW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZGVjcnlwdF9zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUVILE9BQU8sRUFDTCx3Q0FBd0MsRUFDeEMsV0FBVyxFQUVaLE1BQU0sc0NBQXNDLENBQUE7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sU0FBUyxNQUFNLFdBQVcsQ0FBQTtBQUdqQyxhQUFhO0FBQ2IsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQU12RCxNQUFNLFVBQVUsYUFBYSxDQUMzQixHQUFxQyxFQUNyQyxFQUFFLFdBQVcsS0FBNEIsRUFBRTtJQUUzQyxxRkFBcUY7SUFDckYsR0FBRyxHQUFHLEdBQUcsWUFBWSxXQUFXO1FBQzlCLENBQUMsQ0FBQyxJQUFJLHdDQUF3QyxDQUFDLEdBQUcsQ0FBQztRQUNuRCxDQUFDLENBQUMsR0FBRyxDQUFBO0lBRVAsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUE7SUFDckUsTUFBTSxZQUFZLEdBQUcsSUFBSSxZQUFZLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixFQUFFLENBQUE7SUFFMUM7OztPQUdHO0lBQ0gsUUFBUSxDQUFDLGlCQUFpQixFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsSUFBSSxXQUFXLEVBQUUsRUFBRSxDQUFDLEdBQVUsRUFBRSxFQUFFO1FBQzFGLElBQUksR0FBRztZQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3BDLENBQUMsQ0FBQyxDQUFBO0lBRUYsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFFL0Qsd0JBQXdCO0lBQ3hCLGlCQUFpQjtTQUNkLElBQUksQ0FBQyxlQUFlLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBRXhFLE9BQU8sTUFBTSxDQUFBO0FBQ2YsQ0FBQyJ9 |
@@ -14,3 +14,3 @@ /// <reference types="node" /> | ||
} | ||
export declare function decrypt(cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>; | ||
export declare function decrypt(cmm: NodeMaterialsManager | KeyringNode, ciphertext: Buffer | Uint8Array | Readable | string | NodeJS.ReadableStream, { encoding, maxBodySize }?: DecryptOptions): Promise<DecryptOutput>; | ||
//# sourceMappingURL=decrypt.d.ts.map |
@@ -51,2 +51,2 @@ /* | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFNSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFaEQsYUFBYTtBQUNiLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQWMxQyxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FDM0IsR0FBcUMsRUFDckMsVUFBNkMsRUFDN0MsRUFBRSxRQUFRLEVBQUUsV0FBVyxLQUFzQixFQUFFO0lBRS9DLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBRWxELE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQTtJQUM5QixJQUFJLGFBQWEsR0FBd0IsS0FBSyxDQUFBO0lBQzlDLE1BQU07U0FDSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBcUIsRUFBRSxFQUFFLEdBQUcsYUFBYSxHQUFHLE1BQU0sQ0FBQSxDQUFDLENBQUMsQ0FBQztTQUM1RSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFdkQseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO0tBQzlDO1NBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7S0FDeEI7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtLQUNqRDtJQUVELE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLElBQUksQ0FBQyxhQUFhO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXJELE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUUsTUFBYztJQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNyeXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFNSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFFaEQsYUFBYTtBQUNiLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQWMxQyxNQUFNLENBQUMsS0FBSyxVQUFVLE9BQU8sQ0FDM0IsR0FBcUMsRUFDckMsVUFBbUUsRUFDbkUsRUFBRSxRQUFRLEVBQUUsV0FBVyxLQUFzQixFQUFFO0lBRS9DLE1BQU0sTUFBTSxHQUFHLGFBQWEsQ0FBQyxHQUFHLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFBO0lBRWxELE1BQU0sU0FBUyxHQUFhLEVBQUUsQ0FBQTtJQUM5QixJQUFJLGFBQWEsR0FBd0IsS0FBSyxDQUFBO0lBQzlDLE1BQU07U0FDSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBcUIsRUFBRSxFQUFFLEdBQUcsYUFBYSxHQUFHLE1BQU0sQ0FBQSxDQUFDLENBQUMsQ0FBQztTQUM1RSxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFFdkQseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxZQUFZLFVBQVUsRUFBRTtRQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFBO0tBQ3ZCO1NBQU0sSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7UUFDekMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFBO0tBQzlDO1NBQU0sSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFO1FBQzlCLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7S0FDeEI7U0FBTTtRQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQTtLQUNqRDtJQUVELE1BQU0sYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFBO0lBQzNCLElBQUksQ0FBQyxhQUFhO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBRXJELE9BQU87UUFDTCxTQUFTLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDbkMsYUFBYTtLQUNkLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUUsTUFBYztJQUNwQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3JDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFBO0lBQ2pFLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9 |
@@ -81,3 +81,14 @@ /* | ||
const tail = headerBuffer.slice(readPos); | ||
this._transform = (chunk, _enc, cb) => cb(null, chunk); | ||
/* 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 | ||
@@ -89,2 +100,2 @@ return setImmediate(() => this._transform(tail, encoding, callback)); | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxhQUFhO0FBQ2IsT0FBTyxFQUFFLFNBQVMsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFDTCxrQkFBa0IsRUFDSSxxQ0FBcUM7QUFDM0QsbUJBQW1CLEVBQ25CLEtBQUssRUFDTixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHaEYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNO0tBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQztLQUN0RCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDbkIsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEUsTUFBTSx5QkFBeUIsR0FBdUMsaUJBQWtCLENBQUE7QUFVeEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUF5QjtJQUk5RCxZQUFhLEdBQXlCLEVBQUUsRUFBRSxXQUFXLEtBQXlCLEVBQUU7UUFDOUUsMkRBQTJEO1FBQzNELEtBQUssQ0FBQyxDQUFDLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtRQUNsRixLQUFLLEVBQUUsQ0FBQTtRQUNQLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMs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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VfaGVhZGVyX3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXJzZV9oZWFkZXJfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxhQUFhO0FBQ2IsT0FBTyxFQUFFLFNBQVMsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFDTCxrQkFBa0IsRUFDSSxxQ0FBcUM7QUFDM0QsbUJBQW1CLEVBQ25CLEtBQUssRUFDTixNQUFNLHNDQUFzQyxDQUFBO0FBQzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFHaEYsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUUsQ0FBQyxNQUFNO0tBQ3pDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQztLQUN0RCxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDbkIsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUE7QUFDbEUsTUFBTSx5QkFBeUIsR0FBdUMsaUJBQWtCLENBQUE7QUFVeEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHlCQUF5QjtJQUk5RCxZQUFhLEdBQXlCLEVBQUUsRUFBRSxXQUFXLEtBQXlCLEVBQUU7UUFDOUUsMkRBQTJEO1FBQzNELEtBQUssQ0FBQyxDQUFDLFdBQVcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsMEJBQTBCLENBQUMsQ0FBQTtRQUNsRixLQUFLLEVBQUUsQ0FBQTtRQUNQLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMs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 |
/// <reference types="node" /> | ||
import { Transform } from 'stream'; | ||
import { DecipherGCM } from 'crypto'; | ||
import { GetVerify } from '@aws-crypto/material-management-node'; | ||
import { GetVerify, // eslint-disable-line no-unused-vars | ||
GetDecipher } from '@aws-crypto/material-management-node'; | ||
import { // eslint-disable-line no-unused-vars | ||
@@ -11,3 +11,3 @@ HeaderInfo } from '@aws-crypto/serialize'; | ||
headerInfo: HeaderInfo; | ||
getDecipher: (iv: Uint8Array) => DecipherGCM; | ||
getDecipher: GetDecipher; | ||
dispose: () => void; | ||
@@ -14,0 +14,0 @@ verify?: AWSVerify; |
@@ -27,3 +27,4 @@ /* | ||
authTagBuffer: Buffer.alloc(0), | ||
signatureInfo: Buffer.alloc(0) | ||
signatureInfo: Buffer.alloc(0), | ||
sequenceNumber: 0 | ||
}; | ||
@@ -80,7 +81,14 @@ /* Precondition: MaxBodySize must be falsey or a number. */ | ||
needs(!this._maxBodySize || this._maxBodySize >= frameHeader.contentLength, 'maxBodySize exceeded.'); | ||
/* Keeping track of the sequence number myself. */ | ||
state.sequenceNumber += 1; | ||
/* Precondition: The sequence number is required to monotonically increase, starting from 1. | ||
* This is to avoid a bad actor from abusing the sequence number on un-signed algorithm suites. | ||
* If the frame size matched the data format (say NDJSON), | ||
* then the data could be significantly altered just by rearranging the frames. | ||
* Non-framed data returns a sequenceNumber of 1. | ||
*/ | ||
needs(frameHeader.sequenceNumber === state.sequenceNumber, 'Encrypted body sequence out of order.'); | ||
if (this._verify) { | ||
this._verify.update(frameBuffer.slice(0, frameHeader.readPos)); | ||
} | ||
// clear the buffer. It _could_ have cipher text... | ||
state.buffer = Buffer.alloc(0); | ||
const tail = chunk.slice(frameHeader.readPos); | ||
@@ -118,19 +126,44 @@ this.emit('BodyInfo', frameHeader); | ||
else { | ||
state.authTagBuffer = Buffer.concat([authTagBuffer, chunk], tagLengthBytes); | ||
const finalAuthTagBuffer = Buffer.concat([authTagBuffer, chunk], tagLengthBytes); | ||
if (this._verify) { | ||
this._verify.update(state.authTagBuffer); | ||
this._verify.update(finalAuthTagBuffer); | ||
} | ||
this.emit('AuthTag', state.authTagBuffer); | ||
/* Reset state. | ||
* Ciphertext buffers and authTag buffers need to be cleared. | ||
*/ | ||
state.buffer = Buffer.alloc(0); | ||
state.currentFrame = undefined; | ||
state.authTagBuffer = Buffer.alloc(0); | ||
/* After the final frame the file format is _much_ simpler. | ||
* Making sure the cascading if blocks fall to the signature can be tricky and brittle. | ||
* After the final frame, just moving on to concatenate the signature is much simpler. | ||
*/ | ||
if (currentFrame.isFinalFrame) { | ||
/* Overwriting the _transform function. | ||
* Data flow control is not handled here. | ||
*/ | ||
this._transform = (chunk, _enc, callback) => { | ||
if (chunk.length) { | ||
state.signatureInfo = Buffer.concat([state.signatureInfo, chunk]); | ||
} | ||
callback(); | ||
}; | ||
} | ||
const tail = chunk.slice(left); | ||
if (!currentFrame.isFinalFrame) { | ||
state.buffer = Buffer.alloc(0); | ||
state.currentFrame = undefined; | ||
state.authTagBuffer = Buffer.alloc(0); | ||
} | ||
return setImmediate(() => this._transform(tail, enc, callback)); | ||
/* The decipher_stream uses the `AuthTag` event to flush the accumulated frame. | ||
* This is because ciphertext should never be returned until it is verified. | ||
* i.e. the auth tag checked. | ||
* This can create an issue if the chucks and frame size are small. | ||
* If the verify stream continues processing and sends the next auth tag, | ||
* before the current auth tag has been completed. | ||
* This is basically a back pressure issue. | ||
* Since the frame size, and consequently the high water mark, | ||
* can not be know when the stream is created, | ||
* the internal stream state would need to be modified. | ||
* I assert that a simple callback is a simpler way to handle this. | ||
*/ | ||
const next = () => this._transform(tail, enc, callback); | ||
return this.emit('AuthTag', finalAuthTagBuffer, next); | ||
} | ||
} | ||
if (chunk.length) { | ||
state.signatureInfo = Buffer.concat([state.signatureInfo, chunk]); | ||
} | ||
callback(); | ||
@@ -158,2 +191,2 @@ } | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5X3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnlfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxhQUFhO0FBQ2IsT0FBTyxFQUFFLFNBQVMsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBR2hFLE9BQU8sRUFDTCxLQUFLLEVBRU4sTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUdqQixNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBSXpELE1BQU0seUJBQXlCLEdBQXVDLGlCQUFrQixDQUFBO0FBb0J4RixNQUFNLE9BQU8sWUFBYSxTQUFRLHlCQUF5QjtJQVN6RCxZQUFhLEVBQUUsV0FBVyxFQUF1QjtRQUMvQyxLQUFLLEVBQUUsQ0FBQTtRQVJELGlCQUFZLEdBQWdCO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2QixhQUFhLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQy9CLENBQUE7UUFLQywyREFBMkQ7UUFDM0QsS0FBSyxDQUFDLENBQUMsV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO1FBQ2xGLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFFckYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUF5QixFQUFFLEVBQUU7WUFDNUMsaUZBQWlGO1lBQ2pGLEtB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 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5X3N0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJpZnlfc3RyZWFtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFFSCxhQUFhO0FBQ2IsT0FBTyxFQUFFLFNBQVMsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBRWhFLE9BQU8sRUFDTCxLQUFLLEVBR04sTUFBTSxzQ0FBc0MsQ0FBQTtBQUM3QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUdqQixNQUFNLHVCQUF1QixDQUFBO0FBQzlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBSXpELE1BQU0seUJBQXlCLEdBQXVDLGlCQUFrQixDQUFBO0FBcUJ4RixNQUFNLE9BQU8sWUFBYSxTQUFRLHlCQUF5QjtJQVV6RCxZQUFhLEVBQUUsV0FBVyxFQUF1QjtRQUMvQyxLQUFLLEVBQUUsQ0FBQTtRQVRELGlCQUFZLEdBQWdCO1lBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2QixhQUFhLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDOUIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlCLGNBQWMsRUFBRSxDQUFDO1NBQ2xCLENBQUE7UUFLQywyREFBMkQ7UUFDM0QsS0FBSyxDQUFDLENBQUMsV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSwwQkFBMEIsQ0FBQyxDQUFBO1FBQ2xGLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFFckYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUF5QixFQUFFLEVBQUU7WUFDNUMsaUZBQWlGO1lBQ2pGLEtBQUssQ0FBQyxNQUFNLFlBQVksaUJBQWlCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQTtZQUNoRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLFVBQXNCLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxHQUFHLFVBQVUsQ0FBQTtnQkFDL0QsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUMsYUFBYSxDQUFBO2dCQUMzRDs7O21CQUdHO2dCQUNILElBQUksTUFBTSxFQUFFO29CQUNWLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxHQUFHLFVBQVUsQ0FDeEQ7b0JBQUEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtpQkFDckU7Z0JBQ0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFDbkYsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtnQkFFM0UsTUFBTSxZQUFZLEdBQWlCO29CQUNqQyxhQUFhO29CQUNiLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVSxDQUFDO29CQUNwRixXQUFXO29CQUNYLFdBQVc7b0JBQ1gsT0FBTztpQkFDUixDQUFBO2dCQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFBO1lBQ3pDLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsVUFBVSxDQUFFLEtBQWEsRUFBRSxHQUFXLEVBQUUsUUFBa0I7UUFDeEQsZ0VBQWdFO1FBQ2hFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGlFQUFpRSxDQUFDLENBQUE7UUFFMUYsYUFBYTtRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDL0IsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEtBQUssQ0FBQTtRQUM5QixJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUE7WUFDeEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1lBQ2xELE1BQU0sV0FBVyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQ3RFLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ2hCLGlCQUFpQjtnQkFDakIsS0FBSyxDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUE7Z0JBQzFCLE9BQU8sUUFBUSxFQUFFLENBQUE7YUFDbEI7WUFFRDs7O2VBR0c7WUFDSCxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSx1QkFBdUIsQ0FBQyxDQUFBO1lBRXBHLGtEQUFrRDtZQUNsRCxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQTtZQUV6Qjs7Ozs7ZUFLRztZQUNILEtBQUssQ0FBQyxXQUFXLENBQUMsY0FBYyxLQUFLLEtBQUssQ0FBQyxjQUFjLEVBQUUsdUNBQXVDLENBQUMsQ0FBQTtZQUVuRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO2FBQy9EO1lBQ0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDN0MsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUE7WUFDbEMsS0FBSyxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUE7WUFDaEMsT0FBTyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7U0FDaEU7UUFFRCxVQUFVO1FBQ1YsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLFlBQVksQ0FBQTtRQUN0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksYUFBYSxHQUFHLENBQUMsRUFBRTtZQUNyQyxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNoQyxZQUFZLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUE7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ2hCLE9BQU8sUUFBUSxFQUFFLENBQUE7YUFDbEI7aUJBQU07Z0JBQ0wsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUE7Z0JBQzdDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO2dCQUNsQixZQUFZLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQTtnQkFDOUIsT0FBTyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUE7YUFDaEU7U0FDRjtRQUVELFVBQVU7UUFDVixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsWUFBWSxDQUFBO1FBQ2xDLE1BQU0sY0FBYyxHQUFHLFNBQVMsR0FBRyxDQUFDLENBQUE7UUFDcEMsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQTtRQUMvQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksY0FBYyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUU7WUFDekQsTUFBTSxJQUFJLEdBQUcsY0FBYyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUE7WUFDbEQsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsS0FBSyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUE7Z0JBQzNELE9BQU8sUUFBUSxFQUFFLENBQUE7YUFDbEI7aUJBQU07Z0JBQ0wsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxFQUFFLGNBQWMsQ0FBQyxDQUFBO2dCQUNoRixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUE7aUJBQ3hDO2dCQUNEOzttQkFFRztnQkFDSCxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQzlCLEtBQUssQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFBO2dCQUM5QixLQUFLLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7Z0JBQ3JDOzs7bUJBR0c7Z0JBQ0gsSUFBSSxZQUFZLENBQUMsWUFBWSxFQUFFO29CQUM3Qjs7dUJBRUc7b0JBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEtBQWEsRUFBRSxJQUFZLEVBQUUsUUFBa0IsRUFBRSxFQUFFO3dCQUNwRSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7NEJBQ2hCLEtBQUssQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQTt5QkFDbEU7d0JBRUQsUUFBUSxFQUFFLENBQUE7b0JBQ1osQ0FBQyxDQUFBO2lCQUNGO2dCQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQzlCOzs7Ozs7Ozs7OzttQkFXRztnQkFDSCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUE7Z0JBQ3ZELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUE7YUFDdEQ7U0FDRjtRQUVELFFBQVEsRUFBRSxDQUFBO0lBQ1osQ0FBQztJQUVELElBQUksQ0FBRSxLQUFVLEVBQUUsUUFBNkI7UUFDN0MsOERBQThEO1FBQzlELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUU7WUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDM0I7UUFDRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxNQUFNLENBQUUsUUFBa0I7UUFDeEIsb0dBQW9HO1FBQ3BHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sUUFBUSxFQUFFLENBQUE7UUFDcEMsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUE7UUFDM0MsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEdBQUcsb0JBQW9CLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDOUUsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFBO1FBQzdELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1FBQzFELGlEQUFpRDtRQUNqRCxLQUFLLENBQUMsVUFBVSxFQUFFLG1CQUFtQixDQUFDLENBQUE7UUFDdEMsUUFBUSxFQUFFLENBQUE7SUFDWixDQUFDO0NBQ0YifQ== |
@@ -6,2 +6,19 @@ # Change Log | ||
# [0.1.0-preview.2](/compare/@aws-crypto/decrypt-node@0.1.0-preview.1...@aws-crypto/decrypt-node@0.1.0-preview.2) (2019-07-24) | ||
### Bug Fixes | ||
* encrypt/decrypt node (#133) 896883a, closes #133 | ||
* sequence number order (#158) b7dc81e, closes #158 | ||
### Features | ||
* Node.js Typescript version dependency (#146) 9dfa857, closes #146 #135 #74 | ||
# [0.1.0-preview.1](/compare/@aws-crypto/decrypt-node@0.1.0-preview.0...@aws-crypto/decrypt-node@0.1.0-preview.1) (2019-06-21) | ||
@@ -8,0 +25,0 @@ |
{ | ||
"name": "@aws-crypto/decrypt-node", | ||
"version": "0.1.0-preview.1", | ||
"version": "0.1.0-preview.2", | ||
"scripts": { | ||
@@ -19,4 +19,4 @@ "prepublishOnly": "npm run build", | ||
"dependencies": { | ||
"@aws-crypto/material-management-node": "^0.1.0-preview.1", | ||
"@aws-crypto/serialize": "^0.1.0-preview.1", | ||
"@aws-crypto/material-management-node": "^0.1.0-preview.2", | ||
"@aws-crypto/serialize": "^0.1.0-preview.2", | ||
"@types/duplexify": "^3.6.0", | ||
@@ -28,4 +28,4 @@ "duplexify": "^4.0.0", | ||
"devDependencies": { | ||
"@aws-crypto/encrypt-node": "^0.1.0-preview.1", | ||
"@types/chai": "^4.1.4", | ||
"@types/from2": "^2.3.0", | ||
"@types/mocha": "^5.2.5", | ||
@@ -36,2 +36,3 @@ "@types/node": "^11.11.4", | ||
"chai": "^4.1.2", | ||
"from2": "^2.3.0", | ||
"mocha": "^5.2.0", | ||
@@ -55,3 +56,4 @@ "nyc": "^14.0.0", | ||
] | ||
} | ||
}, | ||
"gitHead": "970dbfad262186db90bd9ad2eba7a36d8a54ca18" | ||
} |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
452493
1458
13