s/textsecure.protocol/axolotl.protocol/
This commit is contained in:
parent
c1907b14eb
commit
bb32a51d66
6 changed files with 21 additions and 20 deletions
|
@ -135,7 +135,7 @@
|
|||
|
||||
$('#multi-device .status').text("Connecting...");
|
||||
$('#setup-qr').html('');
|
||||
textsecure.protocol.prepareTempWebsocket().then(function(cryptoInfo) {
|
||||
axolotl.protocol.createIdentityKeyRecvSocket().then(function(cryptoInfo) {
|
||||
var qrCode = new QRCode(document.getElementById('setup-qr'));
|
||||
|
||||
var socket = textsecure.api.getTempWebsocket();
|
||||
|
|
|
@ -16,9 +16,9 @@
|
|||
;(function() {
|
||||
|
||||
'use strict';
|
||||
window.textsecure = window.textsecure || {};
|
||||
window.axolotl = window.axolotl || {};
|
||||
|
||||
window.textsecure.protocol = function() {
|
||||
window.axolotl.protocol = function() {
|
||||
var self = {};
|
||||
|
||||
/******************************
|
||||
|
@ -677,7 +677,7 @@ window.textsecure.protocol = function() {
|
|||
refreshPreKeys();
|
||||
}, 60 * 1000);
|
||||
|
||||
self.prepareTempWebsocket = function() {
|
||||
self.createIdentityKeyRecvSocket = function() {
|
||||
var socketInfo = {};
|
||||
var keyPair;
|
||||
|
||||
|
@ -697,9 +697,12 @@ window.textsecure.protocol = function() {
|
|||
|
||||
return verifyMAC(ivAndCiphertext, keys[1], mac).then(function() {
|
||||
return window.axolotl.crypto.decrypt(keys[0], ciphertext, iv).then(function(plaintext) {
|
||||
var identityKeyMsg = textsecure.protobuf.ProvisionMessage.decode(plaintext);
|
||||
var identityKeyMsg = axolotl.protobuf.ProvisionMessage.decode(plaintext);
|
||||
|
||||
return axolotl.crypto.createKeyPair(toArrayBuffer(identityKeyMsg.identityKeyPrivate)).then(function(identityKeyPair) {
|
||||
if (crypto_storage.getStoredKeyPair("identityKey") !== undefined)
|
||||
throw new Error("Tried to overwrite identity key");
|
||||
|
||||
crypto_storage.putKeyPair("identityKey", identityKeyPair);
|
||||
identityKeyMsg.identityKeyPrivate = null;
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
//TODO
|
||||
/*if ((finalMessage.flags & textsecure.protobuf.PushMessageContent.Flags.END_SESSION)
|
||||
== textsecure.protobuf.PushMessageContent.Flags.END_SESSION)
|
||||
textsecure.protocol.closeSession(res[1], true);*/
|
||||
axolotl.protocol.closeSession(res[1], true);*/
|
||||
|
||||
return finalMessage;
|
||||
}
|
||||
|
@ -47,31 +47,29 @@
|
|||
window.textsecure = window.textsecure || {};
|
||||
window.textsecure.protocol_wrapper = {
|
||||
handleIncomingPushMessageProto: function(proto) {
|
||||
|
||||
|
||||
switch(proto.type) {
|
||||
case textsecure.protobuf.IncomingPushMessageSignal.Type.PLAINTEXT:
|
||||
return Promise.resolve(textsecure.protobuf.PushMessageContent.decode(proto.message));
|
||||
case textsecure.protobuf.IncomingPushMessageSignal.Type.CIPHERTEXT:
|
||||
var from = proto.source + "." + (proto.sourceDevice == null ? 0 : proto.sourceDevice);
|
||||
return textsecure.protocol.decryptWhisperMessage(from, getString(proto.message)).then(decodeMessageContents);
|
||||
return axolotl.protocol.decryptWhisperMessage(from, getString(proto.message)).then(decodeMessageContents);
|
||||
case textsecure.protobuf.IncomingPushMessageSignal.Type.PREKEY_BUNDLE:
|
||||
if (proto.message.readUint8() != ((3 << 4) | 3))
|
||||
throw new Error("Bad version byte");
|
||||
var from = proto.source + "." + (proto.sourceDevice == null ? 0 : proto.sourceDevice);
|
||||
return textsecure.protocol.handlePreKeyWhisperMessage(from, getString(proto.message)).then(decodeMessageContents);
|
||||
return axolotl.protocol.handlePreKeyWhisperMessage(from, getString(proto.message)).then(decodeMessageContents);
|
||||
case textsecure.protobuf.IncomingPushMessageSignal.Type.RECEIPT:
|
||||
return Promise.resolve(null);
|
||||
case textsecure.protobuf.IncomingPushMessageSignal.Type.PREKEY_BUNDLE_DEVICE_CONTROL:
|
||||
if (proto.message.readUint8() != ((3 << 4) | 3))
|
||||
throw new Error("Bad version byte");
|
||||
var from = proto.source + "." + (proto.sourceDevice == null ? 0 : proto.sourceDevice);
|
||||
return textsecure.protocol.handlePreKeyWhisperMessage(from, getString(proto.message)).then(function(res) {
|
||||
return axolotl.protocol.handlePreKeyWhisperMessage(from, getString(proto.message)).then(function(res) {
|
||||
return textsecure.protobuf.DeviceControl.decode(res[0]);
|
||||
});
|
||||
case textsecure.protobuf.IncomingPushMessageSignal.Type.DEVICE_CONTROL:
|
||||
var from = proto.source + "." + (proto.sourceDevice == null ? 0 : proto.sourceDevice);
|
||||
return textsecure.protocol.decryptWhisperMessage(from, getString(proto.message)).then(function(res) {
|
||||
return axolotl.protocol.decryptWhisperMessage(from, getString(proto.message)).then(function(res) {
|
||||
return textsecure.protobuf.DeviceControl.decode(res[0]);
|
||||
});
|
||||
default:
|
||||
|
@ -85,7 +83,7 @@
|
|||
//TODO: Encapsuate with the rest of textsecure.storage.devices
|
||||
textsecure.storage.removeEncrypted("devices" + from.split('.')[0]);
|
||||
//TODO: Probably breaks with a devicecontrol message
|
||||
return textsecure.protocol.handlePreKeyWhisperMessage(from, encodedMessage).then(decodeMessageContents).then(
|
||||
return axolotl.protocol.handlePreKeyWhisperMessage(from, encodedMessage).then(decodeMessageContents).then(
|
||||
function(pushMessageContent) {
|
||||
extension.trigger('message:decrypted', {
|
||||
message_id : message_id,
|
||||
|
|
|
@ -259,7 +259,7 @@ window.textsecure.registerSingleDevice = function(number, verificationCode, step
|
|||
textsecure.storage.putUnencrypted("regionCode", libphonenumber.util.getRegionCodeForNumber(number));
|
||||
stepDone(1);
|
||||
|
||||
return textsecure.protocol.generateKeys().then(function(keys) {
|
||||
return axolotl.protocol.generateKeys().then(function(keys) {
|
||||
stepDone(2);
|
||||
return textsecure.api.registerKeys(keys).then(function() {
|
||||
stepDone(3);
|
||||
|
@ -290,7 +290,7 @@ window.textsecure.registerSecondDevice = function(encodedProvisionEnvelope, cryp
|
|||
textsecure.storage.putUnencrypted("regionCode", libphonenumber.util.getRegionCodeForNumber(identityKey.number));
|
||||
stepDone(2);
|
||||
|
||||
return textsecure.protocol.generateKeys().then(function(keys) {
|
||||
return axolotl.protocol.generateKeys().then(function(keys) {
|
||||
stepDone(3);
|
||||
return textsecure.api.registerKeys(keys).then(function() {
|
||||
stepDone(4);
|
||||
|
|
|
@ -65,7 +65,7 @@ window.textsecure.messaging = function() {
|
|||
return new Promise(function() { throw new Error("Mismatched relays for number " + number); });
|
||||
}
|
||||
|
||||
return textsecure.protocol.encryptMessageFor(deviceObjectList[i], message).then(function(encryptedMsg) {
|
||||
return axolotl.protocol.encryptMessageFor(deviceObjectList[i], message).then(function(encryptedMsg) {
|
||||
jsonData[i] = {
|
||||
type: encryptedMsg.type,
|
||||
destinationDeviceId: textsecure.utils.unencodeNumber(deviceObjectList[i].encodedNumber)[1],
|
||||
|
@ -289,7 +289,7 @@ window.textsecure.messaging = function() {
|
|||
return sendIndividualProto(number, proto).then(function(res) {
|
||||
var devices = textsecure.storage.devices.getDeviceObjectsForNumber(number);
|
||||
for (var i in devices)
|
||||
textsecure.protocol.closeOpenSessionForDevice(devices[i].encodedNumber);
|
||||
axolotl.protocol.closeOpenSessionForDevice(devices[i].encodedNumber);
|
||||
|
||||
return res;
|
||||
});
|
||||
|
|
|
@ -47,14 +47,14 @@ describe('Protocol', function() {
|
|||
after(function() { localStorage.clear(); });
|
||||
it ('works', function(done) {
|
||||
localStorage.clear();
|
||||
return textsecure.protocol.generateKeys().then(function() {
|
||||
return axolotl.protocol.generateKeys().then(function() {
|
||||
assert.isDefined(textsecure.storage.getEncrypted("25519KeyidentityKey"));
|
||||
assert.isDefined(textsecure.storage.getEncrypted("25519KeysignedKey0"));
|
||||
for (var i = 0; i < 100; i++) {
|
||||
assert.isDefined(textsecure.storage.getEncrypted("25519KeypreKey" + i));
|
||||
}
|
||||
var origIdentityKey = getString(textsecure.storage.getEncrypted("25519KeyidentityKey").privKey);
|
||||
return textsecure.protocol.generateKeys().then(function() {
|
||||
return axolotl.protocol.generateKeys().then(function() {
|
||||
assert.isDefined(textsecure.storage.getEncrypted("25519KeyidentityKey"));
|
||||
assert.equal(getString(textsecure.storage.getEncrypted("25519KeyidentityKey").privKey), origIdentityKey);
|
||||
|
||||
|
@ -65,7 +65,7 @@ describe('Protocol', function() {
|
|||
assert.isDefined(textsecure.storage.getEncrypted("25519KeypreKey" + i));
|
||||
}
|
||||
|
||||
return textsecure.protocol.generateKeys().then(function() {
|
||||
return axolotl.protocol.generateKeys().then(function() {
|
||||
assert.isDefined(textsecure.storage.getEncrypted("25519KeyidentityKey"));
|
||||
assert.equal(getString(textsecure.storage.getEncrypted("25519KeyidentityKey").privKey), origIdentityKey);
|
||||
|
||||
|
|
Loading…
Reference in a new issue