Sending and reciving base64 strings

This commit is contained in:
Dan Seripap 2016-02-19 13:12:30 -05:00
parent 0762bbd15c
commit e75f48ef88
4 changed files with 24 additions and 26 deletions

View File

@ -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,

View File

@ -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

View File

@ -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);

View File

@ -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);