From d87f1892ff2518372e22ae20549b30515f8a973c Mon Sep 17 00:00:00 2001 From: EgzoT Date: Sun, 23 Jan 2022 22:54:02 +0100 Subject: [PATCH 1/2] Add optional parameter includeLength to decrypt function, to add possibility decrypt non string values --- lib/xxtea.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/xxtea.js b/lib/xxtea.js index 4f95e7a..6641f33 100755 --- a/lib/xxtea.js +++ b/lib/xxtea.js @@ -301,13 +301,13 @@ function encryptToString(data, key) { return new Buffer(encrypt(data, key)).toString('base64'); } -function decrypt(data, key) { +function decrypt(data, key, includeLength = true) { if (typeof data === 'string') data = new Buffer(data, 'base64'); if (typeof key === 'string') key = toBytes(key); if (data === undefined || data === null || data.length === 0) { return data; } - return toUint8Array(decryptUint32Array(toUint32Array(data, false), toUint32Array(fixk(key), false)), true); + return toUint8Array(decryptUint32Array(toUint32Array(data, false), toUint32Array(fixk(key), false)), includeLength); } function decryptToString(data, key) { From 74b3512d302e15a91ba60611c00877a208f8b33d Mon Sep 17 00:00:00 2001 From: EgzoT Date: Mon, 24 Jan 2022 23:03:07 +0100 Subject: [PATCH 2/2] Add optional parameter includeLength to encrypt function, to add possibility decrypt non string values --- lib/xxtea.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/xxtea.js b/lib/xxtea.js index 6641f33..8a331a7 100755 --- a/lib/xxtea.js +++ b/lib/xxtea.js @@ -288,13 +288,13 @@ function toString(bytes) { toLongString(bytes, n)); } -function encrypt(data, key) { +function encrypt(data, key, includeLength = true) { if (typeof data === 'string') data = toBytes(data); if (typeof key === 'string') key = toBytes(key); if (data === undefined || data === null || data.length === 0) { return data; } - return toUint8Array(encryptUint32Array(toUint32Array(data, true), toUint32Array(fixk(key), false)), false); + return toUint8Array(encryptUint32Array(toUint32Array(data, includeLength), toUint32Array(fixk(key), false)), false); } function encryptToString(data, key) {