From e0fd188d42e537ef6f95e11c1618e816e155ac5a Mon Sep 17 00:00:00 2001 From: lilia Date: Wed, 15 Feb 2017 18:16:33 -0800 Subject: [PATCH] Add loadSignedPreKeys to SignalProtocolStore --- js/signal_protocol_store.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/js/signal_protocol_store.js b/js/signal_protocol_store.js index 2bf658c52..9359d3fa4 100644 --- a/js/signal_protocol_store.js +++ b/js/signal_protocol_store.js @@ -70,6 +70,11 @@ var Model = Backbone.Model.extend({ database: Whisper.Database }); var PreKey = Model.extend({ storeName: 'preKeys' }); var SignedPreKey = Model.extend({ storeName: 'signedPreKeys' }); + var SignedPreKeyCollection = Backbone.Collection.extend({ + storeName: 'signedPreKeys', + database: Whisper.Database, + model: SignedPreKey + }); var Session = Model.extend({ storeName: 'sessions' }); var SessionCollection = Backbone.Collection.extend({ storeName: 'sessions', @@ -156,6 +161,24 @@ }).fail(resolve); }); }, + loadSignedPreKeys: function() { + if (arguments.length > 0) { + return Promise.reject(new Error("loadSignedPreKeys takes no arguments")); + } + var signedPreKeys = new SignedPreKeyCollection(); + return new Promise(function(resolve) { + signedPreKeys.fetch().then(function() { + resolve(signedPreKeys.map(function(prekey) { + return { + pubKey : prekey.get('publicKey'), + privKey : prekey.get('privateKey'), + created_at : prekey.get('created_at'), + keyId : prekey.get('id') + }; + })); + }); + }); + }, storeSignedPreKey: function(keyId, keyPair) { var prekey = new SignedPreKey({ id : keyId,