prefer to use functions from common
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user