mirror of
https://github.com/darkwire/darkwire.io.git
synced 2025-09-03 18:54:56 +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) {
|
if (message && this._connected) {
|
||||||
let vector = this._cryptoUtil.crypto.getRandomValues(new Uint8Array(16));
|
let vector = this._cryptoUtil.crypto.getRandomValues(new Uint8Array(16));
|
||||||
|
|
||||||
let secretKey;
|
let secretKey = null;
|
||||||
let secretKeys;
|
let secretKeys = null;
|
||||||
let messageData;
|
let messageData = null;
|
||||||
let signature;
|
let signature = null;
|
||||||
let signingKey;
|
let signingKey = null;
|
||||||
let encryptedMessageData;
|
let encryptedMessageData = null;
|
||||||
|
|
||||||
// Generate new secret key and vector for each message
|
// Generate new secret key and vector for each message
|
||||||
this._cryptoUtil.createSecretKey()
|
this._cryptoUtil.createSecretKey()
|
||||||
.then((key) => {
|
.then((key) => {
|
||||||
@ -154,9 +155,10 @@ export default class Darkwire {
|
|||||||
})
|
})
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
encryptedMessageData = data;
|
encryptedMessageData = data;
|
||||||
let msg = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(encryptedMessageData));
|
|
||||||
let vct = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(vector));
|
let vct = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(vector));
|
||||||
let sig = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(signature));
|
let sig = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(signature));
|
||||||
|
let msg = this._cryptoUtil.convertArrayBufferViewToString(new Uint8Array(encryptedMessageData));
|
||||||
|
|
||||||
resolve({
|
resolve({
|
||||||
message: msg,
|
message: msg,
|
||||||
vector: vct,
|
vector: vct,
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
export default class FileHandler {
|
export default class FileHandler {
|
||||||
constructor() {
|
constructor(darkwire, socket) {
|
||||||
if (window.File && window.FileReader && window.FileList && window.Blob && window.btoa) {
|
if (window.File && window.FileReader && window.FileList && window.Blob && window.btoa) {
|
||||||
this._isSupported = true;
|
this._isSupported = true;
|
||||||
|
this.darkwire = darkwire;
|
||||||
|
this.socket = socket;
|
||||||
this.listen();
|
this.listen();
|
||||||
} else {
|
} else {
|
||||||
this._isSupported = false;
|
this._isSupported = false;
|
||||||
@ -17,11 +19,11 @@ export default class FileHandler {
|
|||||||
|
|
||||||
if (file) {
|
if (file) {
|
||||||
|
|
||||||
let encodedFile = {
|
// let encodedFile = {
|
||||||
fileName: file.name,
|
// fileName: file.name,
|
||||||
fileSize: file.fileSize,
|
// fileSize: file.fileSize,
|
||||||
base64: null
|
// base64: null
|
||||||
};
|
// };
|
||||||
|
|
||||||
// Support for only 1MB
|
// Support for only 1MB
|
||||||
if (file.size > 1000000) {
|
if (file.size > 1000000) {
|
||||||
@ -34,12 +36,12 @@ export default class FileHandler {
|
|||||||
|
|
||||||
reader.onload = (readerEvent) => {
|
reader.onload = (readerEvent) => {
|
||||||
const base64 = window.btoa(readerEvent.target.result);
|
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);
|
reader.readAsBinaryString(file);
|
||||||
|
|
||||||
return encodedFile;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -47,7 +49,7 @@ export default class FileHandler {
|
|||||||
|
|
||||||
listen() {
|
listen() {
|
||||||
// browser API
|
// browser API
|
||||||
document.getElementById('fileInput').addEventListener('change', this.encodeFile, false);
|
document.getElementById('fileInput').addEventListener('change', jQuery.proxy(this.encodeFile, this), false);
|
||||||
|
|
||||||
// darkwire
|
// darkwire
|
||||||
|
|
||||||
|
@ -7,7 +7,6 @@ let fs = window.RequestFileSystem || window.webkitRequestFileSystem;
|
|||||||
$(function() {
|
$(function() {
|
||||||
const darkwire = new Darkwire();
|
const darkwire = new Darkwire();
|
||||||
const cryptoUtil = new CryptoUtil();
|
const cryptoUtil = new CryptoUtil();
|
||||||
const windowHandler = new WindowHandler();
|
|
||||||
|
|
||||||
let FADE_TIME = 150; // ms
|
let FADE_TIME = 150; // ms
|
||||||
let TYPING_TIMER_LENGTH = 400; // ms
|
let TYPING_TIMER_LENGTH = 400; // ms
|
||||||
@ -44,7 +43,7 @@ $(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
let socket = io(roomId);
|
let socket = io(roomId);
|
||||||
windowHandler.socket = socket;
|
const windowHandler = new WindowHandler(darkwire, socket);
|
||||||
|
|
||||||
FastClick.attach(document.body);
|
FastClick.attach(document.body);
|
||||||
|
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
import FileHandler from './fileHandler';
|
import FileHandler from './fileHandler';
|
||||||
|
|
||||||
export default class WindowHandler {
|
export default class WindowHandler {
|
||||||
constructor() {
|
constructor(darkwire, socket) {
|
||||||
this._socket = null;
|
|
||||||
this._isActive = false;
|
this._isActive = false;
|
||||||
this.fileHandler = new FileHandler();
|
this.fileHandler = new FileHandler(darkwire, socket);
|
||||||
|
|
||||||
this.newMessages = 0;
|
this.newMessages = 0;
|
||||||
this.favicon = new Favico({
|
this.favicon = new Favico({
|
||||||
@ -25,10 +24,6 @@ export default class WindowHandler {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
set socket(socket) {
|
|
||||||
this._socket = socket;
|
|
||||||
}
|
|
||||||
|
|
||||||
notifyFavicon() {
|
notifyFavicon() {
|
||||||
this.newMessages++;
|
this.newMessages++;
|
||||||
this.favicon.badge(this.newMessages);
|
this.favicon.badge(this.newMessages);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user