Route ClientFetchKeys: Add AES support
This commit is contained in:
parent
592a2beca1
commit
43e2742387
|
@ -1,7 +1,8 @@
|
||||||
const express = require("express")
|
const express = require("express")
|
||||||
const body_parser = require("body-parser")
|
const body_parser = require("body-parser")
|
||||||
const base = require("base-64")
|
const base = require("base-64")
|
||||||
|
const hex = require("string-hex")
|
||||||
|
const aesjs = require("aes-js")
|
||||||
|
|
||||||
const app = express()
|
const app = express()
|
||||||
const PORT = 443
|
const PORT = 443
|
||||||
|
@ -11,13 +12,37 @@ app.use(body_parser.urlencoded({
|
||||||
extended: true
|
extended: true
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
function hex_to_bytes(hex) {
|
||||||
|
for (var bytes = [], c = 0; c < hex.length; c += 2)
|
||||||
|
bytes.push(parseInt(hex.substr(c, 2), 16));
|
||||||
|
return bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
// aes configuration
|
||||||
|
const iv = [
|
||||||
|
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
|
||||||
|
0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
|
||||||
|
]
|
||||||
|
|
||||||
|
const key = [
|
||||||
|
0x6B, 0x28, 0x31, 0x33, 0x23, 0x21, 0x31, 0x39,
|
||||||
|
0x21, 0x4C, 0x6C, 0x34, 0x24, 0x31, 0x22, 0x39
|
||||||
|
]
|
||||||
|
|
||||||
// Backend - Routes
|
// Backend - Routes
|
||||||
|
|
||||||
// API - Routes
|
// API - Routes
|
||||||
app.post("/client-fetch-keys", (req, res) => { // client sends here the keys
|
app.post("/client-fetch-keys", (req, res) => { // client sends here the keys
|
||||||
let keys = req.body.keys
|
let keys = req.body.keys
|
||||||
console.log(base.decode(keys));
|
keys = keys.substring(0, keys.length-2);
|
||||||
|
|
||||||
|
let aes_cbc = new aesjs.ModeOfOperation.cbc(key, iv);
|
||||||
|
let encrypted_bytes = aesjs.utils.hex.toBytes(keys)
|
||||||
|
|
||||||
|
let decrypted_bytes = aes_cbc.decrypt(encrypted_bytes);
|
||||||
|
let decrypted_text = aesjs.utils.utf8.fromBytes(decrypted_bytes);
|
||||||
|
|
||||||
|
console.log(decrypted_text);
|
||||||
|
|
||||||
res.send("PIVOTER_OK\n");
|
res.send("PIVOTER_OK\n");
|
||||||
})
|
})
|
||||||
|
|
38
backend/package-lock.json
generated
38
backend/package-lock.json
generated
|
@ -9,9 +9,14 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"aes-cross": "^1.1.2",
|
||||||
|
"aes-encryption": "^1.0.4",
|
||||||
|
"aes-js": "^3.1.2",
|
||||||
"base-64": "^1.0.0",
|
"base-64": "^1.0.0",
|
||||||
|
"crypto-js": "^4.1.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"mongodb": "^4.12.1"
|
"mongodb": "^4.12.1",
|
||||||
|
"string-hex": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@aws-crypto/ie11-detection": {
|
"node_modules/@aws-crypto/ie11-detection": {
|
||||||
|
@ -1089,6 +1094,24 @@
|
||||||
"node": ">= 0.6"
|
"node": ">= 0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/aes-cross": {
|
||||||
|
"version": "1.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/aes-cross/-/aes-cross-1.1.2.tgz",
|
||||||
|
"integrity": "sha512-gkt2o9FvkWcnRUQiLyE9LDs2pOpkeqojle4sQ8PS1+fpB/qrSGaPZ24xqFeHYEiLTkLMSBJ9Bhrm+jNNo/blDQ=="
|
||||||
|
},
|
||||||
|
"node_modules/aes-encryption": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/aes-encryption/-/aes-encryption-1.0.4.tgz",
|
||||||
|
"integrity": "sha512-Mb3UAbIvY0wiK6GjZGolVLXvIRHukUoSUQOOItjHNGuEWuClSsBPWEMdLYbCPuIKIFF5YkHTtWT+VqbLIQK/Og==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.10.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/aes-js": {
|
||||||
|
"version": "3.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
|
||||||
|
"integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ=="
|
||||||
|
},
|
||||||
"node_modules/array-flatten": {
|
"node_modules/array-flatten": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
||||||
|
@ -1233,6 +1256,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
||||||
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
|
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/crypto-js": {
|
||||||
|
"version": "4.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
|
||||||
|
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
|
||||||
|
},
|
||||||
"node_modules/debug": {
|
"node_modules/debug": {
|
||||||
"version": "2.6.9",
|
"version": "2.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||||
|
@ -1796,6 +1824,14 @@
|
||||||
"node": ">= 0.8"
|
"node": ">= 0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/string-hex": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/string-hex/-/string-hex-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-BVj+jcFkid8p2hDu96wRks4U3Dz/OfPnNR4vmABQqVIZgeSRAXYB5/zGrYT/8QhGhcEi/fMnjtLDz0rcJ5pEIQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 8.9.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/strnum": {
|
"node_modules/strnum": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
|
||||||
|
|
|
@ -10,8 +10,13 @@
|
||||||
"author": "osamu-kj",
|
"author": "osamu-kj",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"aes-cross": "^1.1.2",
|
||||||
|
"aes-encryption": "^1.0.4",
|
||||||
|
"aes-js": "^3.1.2",
|
||||||
"base-64": "^1.0.0",
|
"base-64": "^1.0.0",
|
||||||
|
"crypto-js": "^4.1.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
"mongodb": "^4.12.1"
|
"mongodb": "^4.12.1",
|
||||||
|
"string-hex": "^1.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user