You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			58 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
| /*
 | |
|  * vim: ts=4:sw=4:expandtab
 | |
|  */
 | |
| ;(function() {
 | |
|     'use strict';
 | |
|     window.textsecure = window.textsecure || {};
 | |
|     window.textsecure.storage = window.textsecure.storage || {};
 | |
| 
 | |
|     textsecure.storage.axolotl = new AxolotlStore();
 | |
|     var axolotlInstance = axolotl.protocol(textsecure.storage.axolotl);
 | |
| 
 | |
|     window.textsecure = window.textsecure || {};
 | |
|     window.textsecure.protocol_wrapper = {
 | |
|         decryptWhisperMessage: function(fromAddress, blob) {
 | |
|             return axolotlInstance.decryptWhisperMessage(fromAddress, getString(blob));
 | |
|         },
 | |
|         closeOpenSessionForDevice: function(encodedNumber) {
 | |
|             return axolotlInstance.closeOpenSessionForDevice(encodedNumber)
 | |
|         },
 | |
|         encryptMessageFor: function(deviceObject, pushMessageContent) {
 | |
|             return axolotlInstance.encryptMessageFor(deviceObject, pushMessageContent);
 | |
|         },
 | |
|         startWorker: function() {
 | |
|             axolotlInstance.startWorker('/js/libaxolotl-worker.js');
 | |
|         },
 | |
|         stopWorker: function() {
 | |
|             axolotlInstance.stopWorker();
 | |
|         },
 | |
|         createIdentityKeyRecvSocket: function() {
 | |
|             return axolotlInstance.createIdentityKeyRecvSocket();
 | |
|         },
 | |
|         hasOpenSession: function(encodedNumber) {
 | |
|             return axolotlInstance.hasOpenSession(encodedNumber);
 | |
|         },
 | |
|         getRegistrationId: function(encodedNumber) {
 | |
|             return axolotlInstance.getRegistrationId(encodedNumber);
 | |
|         },
 | |
|         handlePreKeyWhisperMessage: function(from, blob) {
 | |
|             blob.mark();
 | |
|             var version = blob.readUint8();
 | |
|             if ((version & 0xF) > 3 || (version >> 4) < 3) {
 | |
|                 // min version > 3 or max version < 3
 | |
|                 throw new Error("Incompatible version byte");
 | |
|             }
 | |
|             return axolotlInstance.handlePreKeyWhisperMessage(from, blob).catch(function(e) {
 | |
|                 if (e.message === 'Unknown identity key') {
 | |
|                     blob.reset(); // restore the version byte.
 | |
| 
 | |
|                     // create an error that the UI will pick up and ask the
 | |
|                     // user if they want to re-negotiate
 | |
|                     throw new textsecure.IncomingIdentityKeyError(from, blob.toArrayBuffer(), e.identityKey);
 | |
|                 }
 | |
|                 throw e;
 | |
|             });
 | |
|         }
 | |
|     };
 | |
| })();
 |