This repository was archived by the owner on Aug 7, 2024. It is now read-only.
> Node-JS code to generate header: #179
Open
Description
Node-JS code to generate header:
You're using an external library. Why? Node has native libraries for this. And all this array magic can be abstracted away using Buffers:
function encrypt({password, publicKey, publicKeyId}) {
const time = Date.now().toString();
const key = crypto.pseudoRandomBytes(32);
const iv = Buffer.alloc(12, 0);
const cipher = crypto.createCipheriv('aes-256-gcm', key, iv).setAAD(Buffer.from(time));
const aesEncrypted = Buffer.concat([cipher.update(Buffer.from(password)), cipher.final()]);
const authTag = cipher.getAuthTag();
const encryptedKey = seal(key, Buffer.from(publicKey, 'hex'));
return {
encrypted: Buffer.concat([
Buffer.from([
1,
Number(publicKeyId),
encryptedKey.byteLength & 255,
(encryptedKey.byteLength >> 8) & 255,
]),
encryptedKey,
authTag,
aesEncrypted,
]).toString('base64'),
time,
};
}
function generateEncPassword({password, publicKey, publicKeyId, encryptionVersion}) {
const { encrypted, time } = encrypt({password, publicKey, publicKeyId});
return `#PWD_INSTAGRAM_BROWSER:${encryptionVersion}:${time}:${encrypted}`;
}
seal()
is a function from tweetnacl-sealed-box
.
Originally posted by @Nerixyz in #140 (comment)
Metadata
Metadata
Assignees
Labels
No labels