Open NghiaTranUIT opened 3 years ago
It's done with this BETA build: https://proxyman.s3.us-east-2.amazonaws.com/beta/Proxyman_2.15.0_Support_Crypto_Addon.dmg
// Addons List: https://docs.proxyman.io/scripting/addons
const { sayHello } = require("@addons/HelloWorld.js");
const { decryptAES } = require("@addons/CryptoJS.js")
function onRequest(context, url, request) {
// Decrypt AES var ciphertext = 'U2FsdGVkX1+sCIKOY6nMXWAJtkZn9jSUA+/3g+HXuAdcyqKFHLlXkgPAR+lK5Xw4'; var password = 'secret key 123'; var originalText = decryptAES(ciphertext, password); console.log(originalText);
// Done return request; }
function onResponse(context, url, request, response) {
// Done return response; }
- How the CryptJS.js (~/Library/Application Support/com.proxyman.NSProxy/addons/CryptoJS.js) looks like
```js
/**
{
"name":"Crypto-js Wrapper. JavaScript library of crypto standards.",
"description":"https://www.npmjs.com/package/crypto-js",
"version": "3.3.0",
"tags":"security, crypto, Hash, MD5, SHA1, SHA-1, SHA256, SHA-256, RC4, Rabbit, AES, DES, PBKDF2, HMAC, OFB, CFB, CTR, CBC, Base64"
}
**/
// It's 3.3.0, not 4.0.0 since it doesn't work
// https://github.com/brix/crypto-js/issues/256
const CryptoJS = require('@libs/crypto-js.min.js');
const encryptAES = (input, password) => {
return CryptoJS.AES.encrypt(input, password).toString();
}
const decryptAES = (ciphertext, password) => {
var bytes = CryptoJS.AES.decrypt(ciphertext, password);
var originalText = bytes.toString(CryptoJS.enc.Utf8);
return originalText;
}
const encryptDES = (input, password) => {
return CryptoJS.DES.encrypt(input, password).toString();
}
const decryptDES = (ciphertext, password) => {
var bytes = CryptoJS.DES.decrypt(ciphertext, password);
var originalText = bytes.toString(CryptoJS.enc.Utf8);
return originalText;
}
const encryptRabbit = (input, password) => {
return CryptoJS.Rabbit.encrypt(input, password).toString();
}
const decryptRabbit = (ciphertext, password) => {
var bytes = CryptoJS.Rabbit.decrypt(ciphertext, password);
var originalText = bytes.toString(CryptoJS.enc.Utf8);
return originalText;
}
exports.encryptAES = encryptAES;
exports.decryptAES = decryptAES;
exports.encryptDES = encryptDES;
exports.decryptDES = decryptDES;
exports.encryptRabbit = encryptRabbit;
exports.decryptRabbit = decryptRabbit;
Description
Some users would like to decrypt their response with AES-128 by using the Scripting Tool. We should support it 👍
Acceptance Criteria