mirror of
https://github.com/Ylianst/MeshCentral.git
synced 2024-11-26 16:06:33 +03:00
fix cookieEncoding hex for 2fa #6096
Signed-off-by: si458 <simonsmith5521@gmail.com>
This commit is contained in:
parent
dd249938b3
commit
323ef2d50a
@ -3575,7 +3575,7 @@ function CreateMeshCentralServer(config, args) {
|
|||||||
try {
|
try {
|
||||||
const iv = Buffer.from(obj.crypto.randomBytes(12), 'binary'), cipher = obj.crypto.createCipheriv('aes-256-gcm', key.slice(0, 32), iv);
|
const iv = Buffer.from(obj.crypto.randomBytes(12), 'binary'), cipher = obj.crypto.createCipheriv('aes-256-gcm', key.slice(0, 32), iv);
|
||||||
const crypted = Buffer.concat([cipher.update(JSON.stringify(data), 'utf8'), cipher.final()]);
|
const crypted = Buffer.concat([cipher.update(JSON.stringify(data), 'utf8'), cipher.final()]);
|
||||||
return Buffer.concat([iv, cipher.getAuthTag(), crypted]).toString(obj.args.cookieencoding ? obj.args.cookieencoding : 'base64');
|
return Buffer.concat([iv, cipher.getAuthTag(), crypted]).toString(obj.args.cookieencoding ? obj.args.cookieencoding : 'base64').replace(/\+/g, '@').replace(/\//g, '$');
|
||||||
} catch (ex) { return null; }
|
} catch (ex) { return null; }
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3584,7 +3584,7 @@ function CreateMeshCentralServer(config, args) {
|
|||||||
if ((typeof data != 'string') || (data.length < 13)) return {};
|
if ((typeof data != 'string') || (data.length < 13)) return {};
|
||||||
if (key == null) { key = obj.loginCookieEncryptionKey; }
|
if (key == null) { key = obj.loginCookieEncryptionKey; }
|
||||||
try {
|
try {
|
||||||
const buf = Buffer.from(data, 'base64');
|
const buf = Buffer.from(data.replace(/\@/g, '+').replace(/\$/g, '/'), obj.args.cookieencoding ? obj.args.cookieencoding : 'base64');
|
||||||
const decipher = obj.crypto.createDecipheriv('aes-256-gcm', key.slice(0, 32), buf.slice(0, 12));
|
const decipher = obj.crypto.createDecipheriv('aes-256-gcm', key.slice(0, 32), buf.slice(0, 12));
|
||||||
decipher.setAuthTag(buf.slice(12, 28));
|
decipher.setAuthTag(buf.slice(12, 28));
|
||||||
return JSON.parse(decipher.update(buf.slice(28), 'binary', 'utf8') + decipher.final('utf8'));
|
return JSON.parse(decipher.update(buf.slice(28), 'binary', 'utf8') + decipher.final('utf8'));
|
||||||
|
Loading…
Reference in New Issue
Block a user