From 77a9481cf914c4602c6c8dc8c5af8c98237b374a Mon Sep 17 00:00:00 2001 From: n1073645 Date: Thu, 7 Nov 2019 09:20:24 +0000 Subject: [PATCH] xz compression --- src/core/lib/FileSignatures.mjs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/core/lib/FileSignatures.mjs b/src/core/lib/FileSignatures.mjs index a6efb320..1c4c4924 100644 --- a/src/core/lib/FileSignatures.mjs +++ b/src/core/lib/FileSignatures.mjs @@ -1485,7 +1485,7 @@ export const FILE_SIGNATURES = { 4: 0x5a, 5: 0x0 }, - extractor: null + extractor: extractXZ }, { name: "Tarball", @@ -2808,6 +2808,21 @@ export function extractZlib(bytes, offset) { } +/** + * XZ extractor + * + * @param {Uint8Array} bytes + * @param {Number} offset + * @returns {string} + */ +export function extractXZ(bytes, offset) { + const stream = new Stream(bytes.slice(offset)); + stream.continueUntil([0x00, 0x00, 0x00, 0x00, 0x04, 0x59, 0x5a]); + stream.moveForwardsBy(7); + return stream.carve(); +} + + /** * ELF extractor. *