prefer to use functions from common

pull/1/head
ansuz 8 years ago
parent a338b23f40
commit 299a53ded7

@ -7,6 +7,18 @@ define([
var plainChunkLength = 128 * 1024; var plainChunkLength = 128 * 1024;
var cypherChunkLength = 131088; var cypherChunkLength = 131088;
var encodePrefix = function (p) {
return [
65280, // 255 << 8
255,
].map(function (n, i) {
return (p & n) >> ((1 - i) * 8);
});
};
var decodePrefix = function (A) {
return (A[0] << 8) | A[1];
};
var slice = function (A) { var slice = function (A) {
return Array.prototype.slice.call(A); return Array.prototype.slice.call(A);
}; };
@ -64,6 +76,7 @@ define([
var nonce = createNonce(); var nonce = createNonce();
var i = 0; var i = 0;
decodePrefix([]); // TODO
var takeChunk = function () { var takeChunk = function () {
var start = i * cypherChunkLength; var start = i * cypherChunkLength;
var end = start + cypherChunkLength; var end = start + cypherChunkLength;
@ -126,6 +139,8 @@ define([
var encrypt = function (u8, metadata, key) { var encrypt = function (u8, metadata, key) {
var nonce = createNonce(); var nonce = createNonce();
encodePrefix(); // TODO
// encode metadata // encode metadata
var metaBuffer = Array.prototype.slice var metaBuffer = Array.prototype.slice
.call(Nacl.util.decodeUTF8(JSON.stringify(metadata))); .call(Nacl.util.decodeUTF8(JSON.stringify(metadata)));

@ -24,16 +24,6 @@ define([
Cryptpad.addLoadingScreen(); Cryptpad.addLoadingScreen();
var fetch = function (src, cb) {
var xhr = new XMLHttpRequest();
xhr.open("GET", src, true);
xhr.responseType = "arraybuffer";
xhr.onload = function () {
return void cb(void 0, new Uint8Array(xhr.response));
};
xhr.send(null);
};
var myFile; var myFile;
var myDataType; var myDataType;
@ -78,6 +68,7 @@ define([
var uri = ['', 'blob', id.slice(0,2), id].join('/'); var uri = ['', 'blob', id.slice(0,2), id].join('/');
console.log("encrypted blob is now available as %s", uri); console.log("encrypted blob is now available as %s", uri);
// TODO use cryptpad-common utilities
window.location.hash = [ window.location.hash = [
'', '',
2, 2,
@ -88,6 +79,7 @@ define([
$form.hide(); $form.hide();
// check if the uploaded file can be decrypted
var newU8 = FileCrypto.joinChunks(chunks); var newU8 = FileCrypto.joinChunks(chunks);
FileCrypto.decrypt(newU8, key, function (e, res) { FileCrypto.decrypt(newU8, key, function (e, res) {
if (e) { return console.error(e); } if (e) { return console.error(e); }
@ -97,7 +89,7 @@ define([
var defaultName = Cryptpad.getDefaultName(Cryptpad.parsePadUrl(window.location.href)); var defaultName = Cryptpad.getDefaultName(Cryptpad.parsePadUrl(window.location.href));
APP.updateTitle(title || defaultName); APP.updateTitle(title || defaultName);
Cryptpad.alert("successfully uploaded: " + title);
}); });
}); });
}); });
@ -212,7 +204,7 @@ define([
if (!uploadMode) { if (!uploadMode) {
var src = Cryptpad.getBlobPathFromHex(hexFileName); var src = Cryptpad.getBlobPathFromHex(hexFileName);
return fetch(src, function (e, u8) { return Cryptpad.fetch(src, function (e, u8) {
// now decrypt the u8 // now decrypt the u8
if (e) { return window.alert('error'); } if (e) { return window.alert('error'); }
var cryptKey = secret.keys && secret.keys.fileKeyStr; var cryptKey = secret.keys && secret.keys.fileKeyStr;

Loading…
Cancel
Save