Merge pull request #1090 from Mikunj/cpu-fix

Fix CPU usage when using onion requests
pull/1105/head
Mikunj Varsani 5 years ago committed by GitHub
commit 0aa3227bef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -98,10 +98,10 @@ const sendToProxy = async (
payloadObj.body = false; // free memory payloadObj.body = false; // free memory
// make temporary key for this request/response // make temporary key for this request/response
const ephemeralKey = libsignal.Curve.generateKeyPair(); const ephemeralKey = await libsignal.Curve.async.generateKeyPair();
// mix server pub key with our priv key // mix server pub key with our priv key
const symKey = libsignal.Curve.calculateAgreement( const symKey = await libsignal.Curve.async.calculateAgreement(
srvPubKey, // server's pubkey srvPubKey, // server's pubkey
ephemeralKey.privKey // our privkey ephemeralKey.privKey // our privkey
); );

@ -18,11 +18,11 @@ const encryptForNode = async (node, payload) => {
const textEncoder = new TextEncoder(); const textEncoder = new TextEncoder();
const plaintext = textEncoder.encode(payload); const plaintext = textEncoder.encode(payload);
const ephemeral = libloki.crypto.generateEphemeralKeyPair(); const ephemeral = await libloki.crypto.generateEphemeralKeyPair();
const snPubkey = StringView.hexToArrayBuffer(node.pubkey_x25519); const snPubkey = StringView.hexToArrayBuffer(node.pubkey_x25519);
const ephemeralSecret = libsignal.Curve.calculateAgreement( const ephemeralSecret = await libsignal.Curve.async.calculateAgreement(
snPubkey, snPubkey,
ephemeral.privKey ephemeral.privKey
); );
@ -235,9 +235,9 @@ const sendToProxy = async (options = {}, targetNode, retryNumber = 0) => {
const snPubkeyHex = StringView.hexToArrayBuffer(targetNode.pubkey_x25519); const snPubkeyHex = StringView.hexToArrayBuffer(targetNode.pubkey_x25519);
const myKeys = window.libloki.crypto.generateEphemeralKeyPair(); const myKeys = await window.libloki.crypto.generateEphemeralKeyPair();
const symmetricKey = libsignal.Curve.calculateAgreement( const symmetricKey = await libsignal.Curve.async.calculateAgreement(
snPubkeyHex, snPubkeyHex,
myKeys.privKey myKeys.privKey
); );

@ -99,7 +99,7 @@
throw new Error('Failed to get keypair for encryption'); throw new Error('Failed to get keypair for encryption');
} }
const myPrivateKey = myKeyPair.privKey; const myPrivateKey = myKeyPair.privKey;
const symmetricKey = libsignal.Curve.calculateAgreement( const symmetricKey = await libsignal.Curve.async.calculateAgreement(
this.pubKey, this.pubKey,
myPrivateKey myPrivateKey
); );
@ -117,7 +117,7 @@
throw new Error('Failed to get keypair for decryption'); throw new Error('Failed to get keypair for decryption');
} }
const myPrivateKey = myKeyPair.privKey; const myPrivateKey = myKeyPair.privKey;
const symmetricKey = libsignal.Curve.calculateAgreement( const symmetricKey = await libsignal.Curve.async.calculateAgreement(
this.pubKey, this.pubKey,
myPrivateKey myPrivateKey
); );
@ -144,8 +144,8 @@
return Multibase.decode(`${base32zCode}${snodeAddressClean}`); return Multibase.decode(`${base32zCode}${snodeAddressClean}`);
} }
function generateEphemeralKeyPair() { async function generateEphemeralKeyPair() {
const keys = libsignal.Curve.generateKeyPair(); const keys = await libsignal.Curve.async.generateKeyPair();
// Signal protocol prepends with "0x05" // Signal protocol prepends with "0x05"
keys.pubKey = keys.pubKey.slice(1); keys.pubKey = keys.pubKey.slice(1);
return keys; return keys;
@ -290,7 +290,7 @@
throw new Error('Failed to get keypair for token decryption'); throw new Error('Failed to get keypair for token decryption');
} }
const { privKey } = keyPair; const { privKey } = keyPair;
const symmetricKey = libsignal.Curve.calculateAgreement( const symmetricKey = await libsignal.Curve.async.calculateAgreement(
serverPubKey, serverPubKey,
privKey privKey
); );

Loading…
Cancel
Save