|  |  |  | /* | 
					
						
							|  |  |  |  * vim: ts=4:sw=4:expandtab | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 'use strict'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('Protocol Wrapper', function() { | 
					
						
							|  |  |  |     var store = textsecure.storage.protocol; | 
					
						
							|  |  |  |     var identifier = '+5558675309'; | 
					
						
							|  |  |  |     var another_identifier = '+5555590210'; | 
					
						
							|  |  |  |     var prekeys, identityKey, testKey; | 
					
						
							|  |  |  |     this.timeout(5000); | 
					
						
							|  |  |  |     before(function(done) { | 
					
						
							|  |  |  |         localStorage.clear(); | 
					
						
							|  |  |  |         libsignal.KeyHelper.generateIdentityKeyPair().then(function(identityKey) { | 
					
						
							|  |  |  |             return textsecure.storage.protocol.saveIdentity(identifier, identityKey); | 
					
						
							|  |  |  |             }).then(function() { | 
					
						
							|  |  |  |               done(); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  |     describe('processPreKey', function() { | 
					
						
							|  |  |  |         it('rejects if the identity key changes', function(done) { | 
					
						
							|  |  |  |             var address = new libsignal.SignalProtocolAddress(identifier, 1); | 
					
						
							|  |  |  |             var builder = new libsignal.SessionBuilder(store, address); | 
					
						
							|  |  |  |             return builder.processPreKey({ | 
					
						
							|  |  |  |                 identityKey: textsecure.crypto.getRandomBytes(33), | 
					
						
							|  |  |  |                 encodedNumber: address.toString() | 
					
						
							|  |  |  |             }).then(function() { | 
					
						
							|  |  |  |                 done(new Error('Allowed to overwrite identity key')); | 
					
						
							|  |  |  |             }).catch(function(e) { | 
					
						
							|  |  |  |                 assert.strictEqual(e.message, 'Identity key changed'); | 
					
						
							|  |  |  |                 done(); | 
					
						
							|  |  |  |             }); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     }); | 
					
						
							|  |  |  | }); |