always return a promise
better error conditions for file decryption