When full disk encryption had a significant impact on performance, I used to store only my most important files encrypted with EncFS in Dropbox. Unfortunately this made it impossible to access the files on the go from foreign computers.

Therefore, I created a standalone browser app which is able to load the encrypted EncFS volumes via the Dropbox API and decrypt them. This happens completely in the browser without any backend, no unencrypted file, key, whatsoever is transferred anywhere or leaves the browser.

As there has been an EncFS implementation in Java, GWT was a nice fit for this project as this allowed me to cross-compile the EncFS implementation to JavaScript. As EncFS is assuming the files to be lying around on a filesystem and not in Dropbox, I needed to reimplement some parts of the EncFS Java Lib. Another challenge was that JDK's IO- and crypto-libs are missing in GWT, so I had to reimplement these as well to be working in the browser. As crypto replacement I forked the Stanford JavaScript Crypto Library and added CBC and CFB operation modes, as they were missing but needed by EncFS.

Currently, the app cannot be used anymore, as it is using Dropbox API version 1 which is not existing anymore. Nevertheless, it should be fairly straightforward to adapt to their new API or use different cloud storage providers, if anyone wants to use it again.

The source code can be found here: