fix downloading document

This commit is contained in:
Julien Fastré 2021-12-15 22:14:13 +01:00
parent 44d38bcef5
commit 6501a0148e

View File

@ -34,9 +34,6 @@ var download = (button) => {
key, url key, url
; ;
console.log('keyData', keyData);
console.log('ivData', ivData);
button.textContent = labelPreparing; button.textContent = labelPreparing;
window.fetch(urlGenerator) window.fetch(urlGenerator)
@ -48,36 +45,25 @@ var download = (button) => {
} }
}) })
.then(data => { .then(data => {
url = data.url; return window.fetch(data.url);
if (keyData.length > 0) {
return window.crypto.subtle.importKey('jwk', keyData, { name: algo, iv: iv}, false, ['decrypt']);
}
return Promise.resolve(undefined);
}) })
.then(nKey => { .then(response => {
key = nKey; if (response.ok) {
return response.arrayBuffer();
return window.fetch(url);
})
.then(r => {
console.log('r', r);
if (r.ok) {
return r.arrayBuffer();
} else {
throw new Error(r.status + r.statusText);
} }
throw new Error(response.status + response.statusText);
}) })
.then(buffer => { .then(buffer => {
console.log('buffer', buffer); if (keyData.alg !== undefined) {
if (keyData.length > 0) { return window.crypto.subtle
.importKey('jwk', keyData, { name: algo, iv: iv}, false, ['decrypt'])
.then(key => {
return window.crypto.subtle.decrypt({ name: algo, iv: iv }, key, buffer); return window.crypto.subtle.decrypt({ name: algo, iv: iv }, key, buffer);
});
} }
return Promise.resolve(buffer); return Promise.resolve(buffer);
}) })
.then(decrypted => { .then(decrypted => {
console.log('decrypted', decrypted);
var var
blob = new Blob([decrypted], { type: mimeType }), blob = new Blob([decrypted], { type: mimeType }),
url = window.URL.createObjectURL(blob) url = window.URL.createObjectURL(blob)
@ -96,7 +82,6 @@ var download = (button) => {
button.click(); button.click();
}) })
.catch(error => { .catch(error => {
console.log(error);
button.textContent = ""; button.textContent = "";
button.appendChild(document.createTextNode("error while handling decrypted file")); button.appendChild(document.createTextNode("error while handling decrypted file"));
}) })