Code Monkey home page Code Monkey logo

encfs-java's Introduction

encfs-java

encfs-java is a Java library for accessing data in 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 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.

encfs-java's People

Contributors

mrpdaemon avatar aefo avatar lkwg82 avatar jibijose avatar byf avatar joscha avatar michael1 avatar

Watchers

wskplho avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.