From a66e422060b5987a98127254050dbf7a3a57802a Mon Sep 17 00:00:00 2001 From: Pablo Ferreiro Date: Wed, 25 May 2022 17:48:21 +0200 Subject: [PATCH] Changed crypto-js with native NodeJS crypto --- package.json | 3 +-- src/Signer.js | 13 +++++-------- yarn.lock | 11 +++-------- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 5e736f0..e562cf1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "signtok", - "version": "1.1.0", + "version": "1.1.1", "description": "Sign your TikTok requests easily", "repository": "https://github.com/pablouser1/SignTok", "author": "Pablo Ferreiro", @@ -11,7 +11,6 @@ }, "dependencies": { "canvas": "^2.9.1", - "crypto-js": "^4.1.1", "jsdom": "^19.0.0" } } diff --git a/src/Signer.js b/src/Signer.js index dbde82c..1fb113f 100644 --- a/src/Signer.js +++ b/src/Signer.js @@ -1,12 +1,12 @@ const fs = require("fs") const Utils = require("./Utils") const { JSDOM, ResourceLoader } = require("jsdom") -const CryptoJS = require("crypto-js") +const { createCipheriv } = require("crypto") class Signer { static DEFAULT_USERAGENT = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.109 Safari/537.36" - static PASSWORD = CryptoJS.enc.Utf8.parse('webapp1.0+202106') + static PASSWORD = 'webapp1.0+202106' /** * @type Window */ @@ -51,12 +51,9 @@ class Signer { xttparams(params) { params += "&is_encryption=1" - const crypt = CryptoJS.AES.encrypt(params, Signer.PASSWORD, { - iv: Signer.PASSWORD, - mode: CryptoJS.mode.CBC, - padding: CryptoJS.pad.Pkcs7 - }).toString() - return crypt + // Encrypt query string using aes-128-cbc + const cipher = createCipheriv("aes-128-cbc", Signer.PASSWORD, Signer.PASSWORD); + return Buffer.concat([cipher.update(params), cipher.final()]).toString('base64'); } sign(url) { diff --git a/yarn.lock b/yarn.lock index 5ec1a21..8620c87 100644 --- a/yarn.lock +++ b/yarn.lock @@ -139,11 +139,6 @@ console-control-strings@^1.0.0, console-control-strings@^1.1.0: resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -crypto-js@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf" - integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw== - cssom@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36" @@ -465,9 +460,9 @@ ms@2.1.2: integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== nan@^2.15.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" - integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== + version "2.16.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.16.0.tgz#664f43e45460fb98faf00edca0bb0d7b8dce7916" + integrity sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA== node-fetch@^2.6.7: version "2.6.7"