From e75f48ef8880a34e5fcd29985e3a1e8d6a004e79 Mon Sep 17 00:00:00 2001 From: Dan Seripap Date: Fri, 19 Feb 2016 13:12:30 -0500 Subject: [PATCH] Sending and reciving base64 strings --- src/js/darkwire.js | 16 +++++++++------- src/js/fileHandler.js | 22 ++++++++++++---------- src/js/main.js | 3 +-- src/js/window.js | 9 ++------- 4 files changed, 24 insertions(+), 26 deletions(-) diff --git a/src/js/darkwire.js b/src/js/darkwire.js index 7188aae..2da5b18 100644 --- a/src/js/darkwire.js +++ b/src/js/darkwire.js @@ -89,12 +89,13 @@ export default class Darkwire { if (message && this._connected) { let vector = this._cryptoUtil.crypto.getRandomValues(new Uint8Array(16)); - let secretKey; - let secretKeys; - let messageData; - let signature; - let signingKey; - let encryptedMessageData; + let secretKey = null; + let secretKeys = null; + let messageData = null; + let signature = null; + let signingKey = null; + let encryptedMessageData = null; + // Generate new secret key and vector for each message this._cryptoUtil.createSecretKey() .then((key) => { @@ -154,9 +155,10 @@ export default class Darkwire { }) .then((data) => { encryptedMessageData = data; - let msg = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(encryptedMessageData)); let vct = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(vector)); let sig = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(signature)); + let msg = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(encryptedMessageData)); + resolve({ message: msg, vector: vct, diff --git a/src/js/fileHandler.js b/src/js/fileHandler.js index 722005c..4936edc 100644 --- a/src/js/fileHandler.js +++ b/src/js/fileHandler.js @@ -1,7 +1,9 @@ export default class FileHandler { - constructor() { + constructor(darkwire, socket) { if (window.File && window.FileReader && window.FileList && window.Blob && window.btoa) { this._isSupported = true; + this.darkwire = darkwire; + this.socket = socket; this.listen(); } else { this._isSupported = false; @@ -17,11 +19,11 @@ export default class FileHandler { if (file) { - let encodedFile = { - fileName: file.name, - fileSize: file.fileSize, - base64: null - }; + // let encodedFile = { + // fileName: file.name, + // fileSize: file.fileSize, + // base64: null + // }; // Support for only 1MB if (file.size > 1000000) { @@ -34,12 +36,12 @@ export default class FileHandler { reader.onload = (readerEvent) => { const base64 = window.btoa(readerEvent.target.result); - encodedFile.base64 = base64; + this.darkwire.encodeMessage(base64, 'file').then( (socketData) => { + this.socket.emit('new message', socketData); + }); } reader.readAsBinaryString(file); - - return encodedFile; } return false; @@ -47,7 +49,7 @@ export default class FileHandler { listen() { // browser API - document.getElementById('fileInput').addEventListener('change', this.encodeFile, false); + document.getElementById('fileInput').addEventListener('change', jQuery.proxy(this.encodeFile, this), false); // darkwire diff --git a/src/js/main.js b/src/js/main.js index 422fc4b..a1028aa 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -7,7 +7,6 @@ let fs = window.RequestFileSystem || window.webkitRequestFileSystem; $(function() { const darkwire = new Darkwire(); const cryptoUtil = new CryptoUtil(); - const windowHandler = new WindowHandler(); let FADE_TIME = 150; // ms let TYPING_TIMER_LENGTH = 400; // ms @@ -44,7 +43,7 @@ $(function() { }); let socket = io(roomId); - windowHandler.socket = socket; + const windowHandler = new WindowHandler(darkwire, socket); FastClick.attach(document.body); diff --git a/src/js/window.js b/src/js/window.js index c165de0..738f6bc 100644 --- a/src/js/window.js +++ b/src/js/window.js @@ -1,10 +1,9 @@ import FileHandler from './fileHandler'; export default class WindowHandler { - constructor() { - this._socket = null; + constructor(darkwire, socket) { this._isActive = false; - this.fileHandler = new FileHandler(); + this.fileHandler = new FileHandler(darkwire, socket); this.newMessages = 0; this.favicon = new Favico({ @@ -25,10 +24,6 @@ export default class WindowHandler { return this; } - set socket(socket) { - this._socket = socket; - } - notifyFavicon() { this.newMessages++; this.favicon.badge(this.newMessages);