added unsafe and safe events instead of console logging when a checksum is tampered with

This commit is contained in:
Abhinav Adduri 2017-07-13 09:53:59 -07:00
parent 5dd5743871
commit 89bc51c821
2 changed files with 23 additions and 10 deletions

View file

@ -91,12 +91,12 @@ class FileReceiver extends EventEmitter {
this.emit('hashing', false);
const integrity = new Uint8Array(calculatedHash).toString() === proposedHash.toString();
if (!integrity) {
this.emit('unsafe', true)
return new Promise((resolve, reject) => {
console.log('This file has been tampered with.')
reject();
})
}
} else {
this.emit('safe', true);
return Promise.all([
new Promise((resolve, reject) => {
resolve(decrypted);
@ -105,6 +105,7 @@ class FileReceiver extends EventEmitter {
resolve(fname);
})
]);
}
})
})
}

View file

@ -235,6 +235,10 @@ describe('File Receiver', function() {
testDecrypting = isStillDecrypting;
});
fr.on('safe', isSafe => {
assert(isSafe);
})
return fr.download().then(([decrypted, name]) => {
assert(decrypted);
assert(name);
@ -256,6 +260,10 @@ describe('File Receiver', function() {
testHashing = isStillHashing;
});
fr.on('safe', isSafe => {
assert(isSafe);
})
return fr.download().then(([decrypted, name]) => {
assert(decrypted);
assert(name);
@ -305,6 +313,10 @@ describe('File Receiver', function() {
const fr = new FileReceiver();
location.hash = secretKey;
fr.on('unsafe', isUnsafe => {
assert(isUnsafe)
})
fr.download().then(() => {
assert.fail();
done();