From e3b00e08f3b2f633a1ed6d3ccaf7421f46a948a6 Mon Sep 17 00:00:00 2001 From: lilia Date: Tue, 13 May 2014 20:07:31 -0700 Subject: [PATCH] Generate and submit registrationId, fixes #25 If we're expecting to get registrationIds from others, it's only fair that we also supply our own. --- js/api.js | 7 ++++--- js/options.js | 4 +++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/js/api.js b/js/api.js index ca9497f58..2d2ec5ce2 100644 --- a/js/api.js +++ b/js/api.js @@ -103,7 +103,7 @@ var API = new function() { }; this.confirmCode = function(code, number, password, - signaling_key, single_device, + signaling_key, registrationId, single_device, success_callback, error_callback) { var call = single_device ? 'accounts' : 'devices'; var urlPrefix = single_device ? '/code/' : '/'; @@ -115,8 +115,9 @@ var API = new function() { user : number, password : password, jsonData : { signalingKey : btoa(getString(signaling_key)), - supportsSms : false, - fetchesMessages : true }, + supportsSms : false, + fetchesMessages : true, + registrationId: registrationId}, }).then(function(response) { if (success_callback !== undefined) success_callback(response); diff --git a/js/options.js b/js/options.js index 4017ac8f6..04865e01d 100644 --- a/js/options.js +++ b/js/options.js @@ -41,6 +41,8 @@ var single_device = false; var signaling_key = window.crypto.getRandomBytes(32 + 20); var password = btoa(getString(window.crypto.getRandomBytes(16))); password = password.substring(0, password.length - 2); +var registrationId = new Uint16Array(window.crypto.getRandomBytes(2))[0]; +registrationId = registrationId & 0x3fff; $('#init-go-single-client').click(function() { if (numberMatches()) { @@ -73,7 +75,7 @@ $('#init-go').click(function() { $('#verify4done').html(''); $('#verify').show(); - API.confirmCode($('#code').val(), number, password, signaling_key, single_device, + API.confirmCode($('#code').val(), number, password, signaling_key, registrationId, single_device, function(response) { if (single_device) response = 1;