add encrypted thumbnails to metadata for images.

correct decryption logic
pull/1/head
ansuz 8 years ago
parent b8e913c95a
commit b1a1f4ba13

@ -1,12 +1,13 @@
define([ define([
'jquery', 'jquery',
'/file/file-crypto.js', '/file/file-crypto.js',
'/common/common-thumbnail.js',
'/bower_components/tweetnacl/nacl-fast.min.js', '/bower_components/tweetnacl/nacl-fast.min.js',
], function ($, FileCrypto) { ], function ($, FileCrypto, Thumb) {
var Nacl = window.nacl; var Nacl = window.nacl;
var module = {}; var module = {};
var blobToArrayBuffer = function (blob, cb) { var blobToArrayBuffer = module.blobToArrayBuffer = function (blob, cb) {
var reader = new FileReader(); var reader = new FileReader();
reader.onloadend = function () { reader.onloadend = function () {
cb(void 0, this.result); cb(void 0, this.result);
@ -263,30 +264,46 @@ define([
var handleFile = File.handleFile = function (file, e, thumbnail) { var handleFile = File.handleFile = function (file, e, thumbnail) {
var thumb; var thumb;
var finish = function (arrayBuffer) { var file_arraybuffer;
var finish = function () {
var metadata = { var metadata = {
name: file.name, name: file.name,
type: file.type, type: file.type,
}; };
if (thumb) { metadata.thumbnail = thumb; } if (thumb) { metadata.thumbnail = thumb; }
queue.push({ queue.push({
blob: arrayBuffer, blob: file_arraybuffer,
metadata: metadata, metadata: metadata,
dropEvent: e dropEvent: e
}); });
}; };
var processFile = function () { blobToArrayBuffer(file, function (e, buffer) {
blobToArrayBuffer(file, function (e, buffer) {
finish(buffer);
});
};
if (!thumbnail) { return void processFile(); }
blobToArrayBuffer(thumbnail, function (e, buffer) {
if (e) { console.error(e); } if (e) { console.error(e); }
thumb = arrayBufferToString(buffer); file_arraybuffer = buffer;
processFile(); 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 (plaintext) {
if (i * cypherChunkLength < u8.length) { // not done if ((2 + metadataLength + i * cypherChunkLength) < u8.length) { // not done
chunks.push(plaintext); chunks.push(plaintext);
return setTimeout(again); return setTimeout(again);
} }

Loading…
Cancel
Save