/* global libsignal, textsecure */ describe('Protocol Wrapper', function thisNeeded() { const store = textsecure.storage.protocol; const identifier = '+5558675309'; this.timeout(5000); before(done => { localStorage.clear(); libsignal.KeyHelper.generateIdentityKeyPair() .then(key => textsecure.storage.protocol.saveIdentity(identifier, key)) .then(() => { done(); }); }); describe('processPreKey', () => { it('rejects if the identity key changes', () => { const address = new libsignal.SignalProtocolAddress(identifier, 1); const builder = new libsignal.SessionBuilder(store, address); return builder .processPreKey({ identityKey: textsecure.crypto.getRandomBytes(33), encodedNumber: address.toString(), }) .then(() => { throw new Error('Allowed to overwrite identity key'); }) .catch(e => { assert.strictEqual(e.message, 'Identity key changed'); }); }); }); });