encfs-java/README.md

74 lines
2.9 KiB
Markdown

encfs-java
==========
encfs-java is a Java library for accessing data in
[EncFS](http://www.arg0.net/encfs) volumes. It is able to derive the volume key
from a user password, decode encrypted filenames (IV chaining is implemented),
decrypt file contents, create new volumes, move/copy/rename files and
directories within the volume as well as encrypt file contents into the
volume
We do support all encfs volume configuration options, and are interoperable
with the official encfs implementation (http://www.arg0.net/encfs). Currently
we only support volume created with the latest version (1.7.4), but we target
to be able to support volumes created with legacy versions as well.
## Building
encfs-java uses [Maven](http://maven.apache.org) for building. Assuming you
have a working installation, simply run the following to build the code:
$ mvn compile
To create a JAR file for using encfs-java from another application, do:
$ mvn package
Which will create a JAR file in the {$PROJECT_ROOT}/target/ directory.
## Usage
This library comes with a demo/example application called EncFSShell. It is a
simple shell supporting a few commands such as 'ls', 'cd', 'cat', 'mv' and 'cp'
on an EncFS volume. After building the library, add the
{$PROJECT_ROOT}/target/classes/ directory to your CLASSPATH, and run like so:
$ java -classpath ${PROJECT_ROOT}/target/classes EncFSShell /path/to/an/encfs/volume
For using the library from another project, include the .JAR file in your
classpath and import the org.mrpdaemon.encfs.sec package.s
## API Documentation
For API documentation, see:
http://mrpdaemon.github.com/encfs-java/apidocs/index.html
To test your own comment changes, generate up-to-date docs using Maven:
$ mvn javadoc:javadoc
Which will place your documentation in ${PROJECT_ROOT}/target/site/apidocs/
## Common issues
If you are getting an exception due to "Illegal key size" and you are using Sun's JDK,
you need to install the Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction
Policy Files. See the following link for more information:
Java 6 JCE Link http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html
Java 7 JCE Link http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html
Java 8 JCE Link http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
Extract files into JDK/JRE/lib/security folder (To whichever version of JRE/JDK x64/x86 you are using)
Thanks to aormerod for pointing this out!
## Licensing
encfs-java is licensed under the Lesser GNU Public License, which allows non-GPL
applications to make use of the library with the restriction that the source code
for any modifications to the library itself need to be made available to be able
to legally redistribute the modified library. For more information, please see the
LICENSE file and the Free Software Foundation
[website](http://www.gnu.org/licenses/lgpl.html).