You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.0 KiB
JavaScript
77 lines
2.0 KiB
JavaScript
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 = {};
|
|
|
|
(function () {
|
|
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);
|
|
});
|
|
});
|