From 8f33419b524fb22ae59bb0b6ab00b74328269120 Mon Sep 17 00:00:00 2001 From: sachaaaaa Date: Tue, 21 Aug 2018 13:02:39 +1000 Subject: [PATCH] Change pubkey representation to hex instead of base64 --- js/models/conversations.js | 2 +- js/views/conversation_search_view.js | 2 +- js/views/inbox_view.js | 2 +- libtextsecure/account_manager.js | 2 +- libtextsecure/stringview.js | 4 ++++ 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/js/models/conversations.js b/js/models/conversations.js index 926807405..b39bbbe0b 100644 --- a/js/models/conversations.js +++ b/js/models/conversations.js @@ -645,7 +645,7 @@ validateNumber() { if (this.isPrivate()) { - if (StringView.base64ToBytes(this.id).byteLength == 33) + if (this.id.length == (33 * 2)) // 33 bytes in hex { this.set({ id: this.id }); return null; diff --git a/js/views/conversation_search_view.js b/js/views/conversation_search_view.js index 25ea36dd3..93ec4bc70 100644 --- a/js/views/conversation_search_view.js +++ b/js/views/conversation_search_view.js @@ -173,7 +173,7 @@ }, maybeNumber(number) { - return number.replace(/[\s]*/g, '').match(/^[0-9a-zA-Z\/+]+$/); + return number.replace(/[\s]*/g, '').match(/^[0-9a-fA-F]+$/); // hex representation }, }); })(); diff --git a/js/views/inbox_view.js b/js/views/inbox_view.js index 7cc65f034..e13dbf508 100644 --- a/js/views/inbox_view.js +++ b/js/views/inbox_view.js @@ -169,7 +169,7 @@ selectAContact: i18n('selectAContact'), searchForPeopleOrGroups: i18n('searchForPeopleOrGroups'), settings: i18n('settings'), - identityKey: StringView.bytesToBase64(new Uint8Array(identityKey)) + identityKey: StringView.arrayBufferToHex(identityKey) }; }, events: { diff --git a/libtextsecure/account_manager.js b/libtextsecure/account_manager.js index a35df91d8..cf48e3dc7 100644 --- a/libtextsecure/account_manager.js +++ b/libtextsecure/account_manager.js @@ -327,7 +327,7 @@ // update our own identity key, which may have changed // if we're relinking after a reinstall on the master device - const pubKeyString = textsecure.MessageReceiver.arrayBufferToStringBase64(identityKeyPair.pubKey); + const pubKeyString = StringView.arrayBufferToHex(identityKeyPair.pubKey); textsecure.storage.protocol.saveIdentityWithAttributes(pubKeyString, { id: pubKeyString, diff --git a/libtextsecure/stringview.js b/libtextsecure/stringview.js index 749b2eafe..9b6a7d266 100644 --- a/libtextsecure/stringview.js +++ b/libtextsecure/stringview.js @@ -98,5 +98,9 @@ } return sB64Enc.replace(/A(?=A$|$)/g, '='); }, + + arrayBufferToHex(aArrayBuffer) { + return Array.prototype.map.call(new Uint8Array(aArrayBuffer), x => ('00' + x.toString(16)).slice(-2)).join(''); + }, }; })();