浏览代码

Pass array buffer to libsignal decrypt

JC Brand 6 年之前
父节点
当前提交
c2f1b2543f
共有 2 个文件被更改,包括 4 次插入4 次删除
  1. 2 2
      dist/converse.js
  2. 2 2
      src/converse-omemo.js

+ 2 - 2
dist/converse.js

@@ -71815,7 +71815,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
 
           if (attrs.encrypted.prekey === 'true') {
             let plaintext;
-            return session_cipher.decryptPreKeyWhisperMessage(atob(attrs.encrypted.key), 'binary').then(key_and_tag => {
+            return session_cipher.decryptPreKeyWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary').then(key_and_tag => {
               if (attrs.encrypted.payload) {
                 const aes_data = this.getKeyAndTag(u.arrayBufferToString(key_and_tag));
                 return this.decryptMessage(_.extend(attrs.encrypted, {
@@ -71843,7 +71843,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
               return attrs;
             });
           } else {
-            return session_cipher.decryptWhisperMessage(atob(attrs.encrypted.key), 'binary').then(key_and_tag => {
+            return session_cipher.decryptWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary').then(key_and_tag => {
               const aes_data = this.getKeyAndTag(u.arrayBufferToString(key_and_tag));
               return this.decryptMessage(_.extend(attrs.encrypted, {
                 'key': aes_data.key,

+ 2 - 2
src/converse-omemo.js

@@ -246,7 +246,7 @@
                     // https://xmpp.org/extensions/xep-0384.html#usecases-receiving
                     if (attrs.encrypted.prekey === 'true') {
                         let plaintext;
-                        return session_cipher.decryptPreKeyWhisperMessage(atob(attrs.encrypted.key), 'binary')
+                        return session_cipher.decryptPreKeyWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary')
                             .then(key_and_tag => {
                                 if (attrs.encrypted.payload) {
                                     const aes_data = this.getKeyAndTag(u.arrayBufferToString(key_and_tag));
@@ -268,7 +268,7 @@
                                 return attrs;
                             });
                     } else {
-                        return session_cipher.decryptWhisperMessage(atob(attrs.encrypted.key), 'binary')
+                        return session_cipher.decryptWhisperMessage(u.base64ToArrayBuffer(attrs.encrypted.key), 'binary')
                             .then(key_and_tag => {
                                 const aes_data = this.getKeyAndTag(u.arrayBufferToString(key_and_tag));
                                 return this.decryptMessage(_.extend(attrs.encrypted, {'key': aes_data.key, 'tag': aes_data.tag}));