From 3560f0580f7c9b645ec01760b69948f9ad304e90 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 28 Dec 2016 17:23:57 +0100 Subject: [PATCH] commit prototype upload script --- www/upload/index.html | 34 ++++++++++++++++++++ www/upload/main.js | 75 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 www/upload/index.html create mode 100644 www/upload/main.js diff --git a/www/upload/index.html b/www/upload/index.html new file mode 100644 index 000000000..765634f9f --- /dev/null +++ b/www/upload/index.html @@ -0,0 +1,34 @@ + + + + + + + + + + +

Upload

+ + + diff --git a/www/upload/main.js b/www/upload/main.js new file mode 100644 index 000000000..0cfde2693 --- /dev/null +++ b/www/upload/main.js @@ -0,0 +1,75 @@ +define([ + '/common/cryptget.js', + '/bower_components/chainpad-crypto/crypto.js', + '/bower_components/jquery/dist/jquery.min.js', +], function (Crypt, Crypto) { + var $ = window.jQuery; + var Nacl = window.nacl; + + var key = Nacl.randomBytes(32); + + var handleFile = function (body) { + //console.log("plaintext"); + //console.log(body); + + 0 && Crypt.put(body, function (e, out) { + if (e) { return void console.error(e); } + if (out) { + console.log(out); + } + }); + + var data = {}; + +(_ => { + var cyphertext = data.payload = Crypto.encrypt(body, key); + console.log("encrypted"); + console.log(cyphertext); + + console.log(data); + + var decrypted = Crypto.decrypt(cyphertext, key); + //console.log('decrypted'); + //console.log(decrypted); + + + if (decrypted !== body) { + throw new Error("failed to maintain integrity with round trip"); + } + + // finding... files are entirely too large. + + + console.log(data.payload.length, body.length); // 1491393, 588323 + console.log(body.length / data.payload.length); // 0.3944788529918003 + console.log(data.payload.length / body.length); // 2.534990132971174 + +/* + +http://stackoverflow.com/questions/19959072/sending-binary-data-in-javascript-over-http + + // Since we deal with Firefox and Chrome only + var bytesToSend = [253, 0, 128, 1]; + var bytesArray = new Uint8Array(bytesToSend); + + $.ajax({ + url: '%your_service_url%', + type: 'POST', + contentType: 'application/octet-stream', + data: bytesArray, + processData: false + }); +*/ +})(); + }; + + var $file = $('input[type="file"]'); + $file.on('change', function (e) { + var file = e.target.files[0]; + var reader = new FileReader(); + reader.onload = function (e) { + handleFile(e.target.result); + }; + reader.readAsText(file); + }); +});