mirror of https://github.com/xwiki-labs/cryptpad
add encrypted thumbnails to metadata for images.
correct decryption logic
This commit is contained in:
parent
b8e913c95a
commit
b1a1f4ba13
|
@ -1,12 +1,13 @@
|
|||
define([
|
||||
'jquery',
|
||||
'/file/file-crypto.js',
|
||||
'/common/common-thumbnail.js',
|
||||
'/bower_components/tweetnacl/nacl-fast.min.js',
|
||||
], function ($, FileCrypto) {
|
||||
], function ($, FileCrypto, Thumb) {
|
||||
var Nacl = window.nacl;
|
||||
var module = {};
|
||||
|
||||
var blobToArrayBuffer = function (blob, cb) {
|
||||
var blobToArrayBuffer = module.blobToArrayBuffer = function (blob, cb) {
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function () {
|
||||
cb(void 0, this.result);
|
||||
|
@ -263,30 +264,46 @@ define([
|
|||
|
||||
var handleFile = File.handleFile = function (file, e, thumbnail) {
|
||||
var thumb;
|
||||
var finish = function (arrayBuffer) {
|
||||
var file_arraybuffer;
|
||||
var finish = function () {
|
||||
var metadata = {
|
||||
name: file.name,
|
||||
type: file.type,
|
||||
};
|
||||
if (thumb) { metadata.thumbnail = thumb; }
|
||||
queue.push({
|
||||
blob: arrayBuffer,
|
||||
blob: file_arraybuffer,
|
||||
metadata: metadata,
|
||||
dropEvent: e
|
||||
});
|
||||
};
|
||||
|
||||
var processFile = function () {
|
||||
blobToArrayBuffer(file, function (e, buffer) {
|
||||
finish(buffer);
|
||||
});
|
||||
};
|
||||
|
||||
if (!thumbnail) { return void processFile(); }
|
||||
blobToArrayBuffer(thumbnail, function (e, buffer) {
|
||||
blobToArrayBuffer(file, function (e, buffer) {
|
||||
if (e) { console.error(e); }
|
||||
thumb = arrayBufferToString(buffer);
|
||||
processFile();
|
||||
file_arraybuffer = buffer;
|
||||
if (thumbnail) { // there is already a thumbnail
|
||||
return blobToArrayBuffer(thumbnail, function (e, buffer) {
|
||||
if (e) { console.error(e); }
|
||||
thumb = arrayBufferToString(buffer);
|
||||
finish();
|
||||
});
|
||||
}
|
||||
|
||||
if (!Thumb.isSupportedType(file.type)) { return finish(); }
|
||||
// make a resized thumbnail from the image..
|
||||
Thumb.fromImageBlob(file, function (e, thumb_blob) {
|
||||
if (e) { console.error(e); }
|
||||
if (!thumb_blob) { return finish(); }
|
||||
|
||||
blobToArrayBuffer(thumb_blob, function (e, buffer) {
|
||||
if (e) {
|
||||
console.error(e);
|
||||
return finish();
|
||||
}
|
||||
thumb = arrayBufferToString(buffer);
|
||||
finish();
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ define([
|
|||
});
|
||||
}
|
||||
if (plaintext) {
|
||||
if (i * cypherChunkLength < u8.length) { // not done
|
||||
if ((2 + metadataLength + i * cypherChunkLength) < u8.length) { // not done
|
||||
chunks.push(plaintext);
|
||||
return setTimeout(again);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue