mirror of
https://github.com/darkwire/darkwire.io.git
synced 2025-09-02 17:23:41 +00:00
Sending and reciving base64 strings
This commit is contained in:
parent
0762bbd15c
commit
e75f48ef88
@ -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,
|
||||
|
@ -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
|
||||
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user