Skip to content

Commit 70b8b5c

Browse files
author
evgeny-nadymov
committed
Fix aes-ctr padding
1 parent 714fb37 commit 70b8b5c

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

‎src/Calls/P2P/P2PEncryptor.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ export default class P2PEncryptor {
6363
const enc = new TextEncoder();
6464
const arr = enc.encode(str);
6565

66+
// const base64 = btoa(str);
67+
// const inputWA = CryptoJS.enc.Base64.parse(base64);
68+
// const input8Arr = wordArrayToUint8Array(inputWA);
69+
70+
// const packet = this.encryptRawPacket(input8Arr);
71+
// console.log('[arr] ', arr, input8Arr);
6672
const packet = this.encryptRawPacket(new Uint8Array(arr));
6773

6874
const { bytes } = packet;
@@ -194,7 +200,7 @@ export default class P2PEncryptor {
194200
const encrypted = CryptoJS.AES.encrypt(str, key, {
195201
mode: CryptoJS.mode.CTR,
196202
iv,
197-
padding: CryptoJS.pad.ZeroPadding
203+
padding: CryptoJS.pad.NoPadding
198204
});
199205

200206
const result = wordArrayToUint8Array(encrypted.ciphertext);
@@ -206,7 +212,7 @@ export default class P2PEncryptor {
206212
const decrypted = CryptoJS.AES.decrypt({ ciphertext: str }, key, {
207213
mode: CryptoJS.mode.CTR,
208214
iv,
209-
padding: CryptoJS.pad.ZeroPadding
215+
padding: CryptoJS.pad.NoPadding
210216
});
211217

212218
const result = wordArrayToUint8Array(decrypted);
@@ -265,6 +271,7 @@ export default class P2PEncryptor {
265271
return null;
266272
}
267273

274+
console.log('[base64] decryptionBuffer', decryptionBuffer);
268275
const resultBuffer = decryptionBuffer.slice(4);
269276

270277
return resultBuffer;

‎src/Stores/CallStore.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -246,11 +246,15 @@ class CallStore extends EventEmitter {
246246
try {
247247
const { currentCall } = this;
248248
if (currentCall) {
249-
const { encryptor } = currentCall;
249+
const { encryptor, decryptor } = currentCall;
250250
if (encryptor) {
251251
const decryptedData = encryptor.decryptFromBase64(data);
252-
LOG_P2P_CALL('[update] updateNewCallSignalingData', update, decryptedData);
252+
253+
const base64 = decryptor.encryptToBase64(data);
254+
LOG_P2P_CALL('[update][base64] updateNewCallSignalingData', update, { key: encryptor.keyBase64, data, base64, decryptedData });
255+
253256
const signalingData = JSON.parse(decryptedData);
257+
254258
// LOG_P2P_CALL('[update] updateNewCallSignalingData', update, signalingData);
255259
// const signalingData = JSON.parse(atob(data));
256260
if (this.p2pCallsEnabled) {
@@ -1804,7 +1808,8 @@ class CallStore extends EventEmitter {
18041808
connection,
18051809
inputStream: null,
18061810
outputStream,
1807-
encryptor: new P2PEncryptor(is_outgoing, encryption_key)
1811+
encryptor: new P2PEncryptor(is_outgoing, encryption_key),
1812+
decryptor: new P2PEncryptor(!is_outgoing, encryption_key)
18081813
};
18091814
LOG_P2P_CALL('p2pJoinCall currentCall', this.currentCall);
18101815

0 commit comments

Comments
 (0)