Re-design of the original CryFS code to work as a library.
Go to file
Sebastian Messmer df041ac845 Fix a bug where deleting a directory could leave over some blocks.
Details: Before, we allowed removing non-empty directories. Seems 'rm -rf' is trying to do that. Now, we return the correct error code ENOTEMPTY in this case, which causes that 'rm -rf' deletes the entries first.
2016-02-17 12:52:01 +01:00
cpack Fix cmake warning 2016-02-14 01:57:34 +01:00
src Fix a bug where deleting a directory could leave over some blocks. 2016-02-17 12:52:01 +01:00
test Fix test cases 2016-02-15 18:47:45 +01:00
vendor Don't pass CXXFLAGS to scrypt compilation process 2016-02-16 23:26:04 +01:00
.gitignore Fix gitignore 2016-02-11 17:38:35 +01:00
.travis.yml Require Mac OS X build to succeed in travis 2016-02-17 10:53:23 +01:00
ChangeLog.txt Fix a bug where deleting a directory could leave over some blocks. 2016-02-17 12:52:01 +01:00
CMakeLists.txt Build in release mode by default. This way, users only have to specify the CMAKE_BUILD_TYPE parameter if they actually want Debug mode. 2016-02-14 17:06:06 +01:00
LICENSE Update LICENCE to LGPL 2015-03-12 16:21:53 +01:00
README.md Remove superfluous space 2016-02-17 01:19:20 +01:00
travis.install_boost.sh Install dependencies on Mac OS X Travis CI 2016-02-17 09:56:42 +01:00
utils.cmake Make Boost_INCLUDE_DIRS available to dependent builds 2016-02-16 23:59:38 +01:00

CryFS Build Status

CryFS encrypts your files, so you can safely store them anywhere. It works well together with cloud services like Dropbox, iCloud, OneDrive and others. See https://www.cryfs.org.

Install latest release

Easy install (Ubuntu and Debian)

wget -O - https://www.cryfs.org/install.sh | sudo bash

Manual install (Ubuntu)

# Add apt key
wget -O - https://www.cryfs.org/apt.key | sudo apt-key add -

# Add apt repository
sudo sh -c "echo \"deb http://apt.cryfs.org/ubuntu `lsb_release -s -c` main\" > /etc/apt/sources.list.d/cryfs.list"

# Install cryfs 
sudo apt-get update
sudo apt-get install cryfs

Manual install (Debian)

# Add apt key
wget -O - https://www.cryfs.org/apt.key | sudo apt-key add -

# Add apt repository
sudo sh -c "echo \"deb http://apt.cryfs.org/debian `lsb_release -s -c` main\" > /etc/apt/sources.list.d/cryfs.list"

# Install cryfs 
sudo apt-get update
sudo apt-get install cryfs

GUI

If you want to use a GUI to mount your CryFS volumes, take a look at zuluCrypt. You can simply drag&drop your CryFS encrypted directory into the zuluMount application to mount it.

Building from source

Requirements

  • Git (for getting the source code)
  • GCC version >= 4.8 or Clang >= 3.5
  • CMake version >= 2.8
  • libcurl4 (including development headers)
  • Boost libraries version >= 1.56 (including development headers)
    • filesystem
    • system
    • chrono
    • program_options
    • thread
  • Crypto++ version >= 5.6.3 (including development headers)
  • SSL development libraries (including development headers, e.g. libssl-dev)
  • libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install osxfuse from https://osxfuse.github.io/
  • Python >= 2.7

You can use the following commands to install these requirements

    # Ubuntu
    $ sudo apt-get install git g++ cmake libcurl4-openssl-dev libboost-filesystem-dev libboost-system-dev libboost-chrono-dev libboost-program-options-dev libboost-thread-dev libcrypto++-dev libssl-dev libfuse-dev python
    
    # Fedora
    TODO
    
    # Macintosh
    brew install cmake boost cryptopp openssl

Build & Install

  1. Clone repository

    $ git clone https://github.com/cryfs/cryfs.git cryfs
    $ cd cryfs
    
  2. Build

    $ mkdir cmake && cd cmake
    $ cmake ..
    $ make
    
  3. Install

    $ sudo make install
    

You can pass the following variables to the cmake command (using -Dvariablename=value):

  • -DCMAKE_BUILD_TYPE=[Release|Debug]: Whether to run code optimization or add debug symbols. Default: Release
  • -DBUILD_TESTING=[on|off]: Whether to build the test cases (can take a long time). Default: off

Troubleshooting

On most systems, CMake should find the libraries automatically. However, that doesn't always work.

  1. Boost headers not found

    Pass in the boost include path with

     cmake .. -DBoost_INCLUDE_DIRS=/path/to/boost/headers
    

    If you want to link boost dynamically (e.g. you don't have the static libraries), use the following:

     cmake .. -DBoost_USE_STATIC_LIBS=off
    
  2. Fuse/Osxfuse library not found

    Pass in the library path with

     cmake .. -DFUSE_LIB_PATH=/path/to/fuse/or/osxfuse
    
  3. Fuse/Osxfuse headers not found

    Pass in the include path with

     cmake .. -DCMAKE_CXX_FLAGS="-I/path/to/fuse/or/osxfuse/headers"
    
  4. CryptoPP library not found

    Pass in the library path with

     cmake .. -DCRYPTOPP_LIB_PATH=/path/to/cryptopp
    
  5. Openssl headers not found

    Pass in the include path with

     cmake .. -DCMAKE_C_FLAGS="-I/path/to/openssl/include"
    

Creating .deb packages

There are additional requirements if you want to create .deb packages. They are:

  • CMake version >= 3.3
  • (optional) rpmbuild
  1. Clone repository

    $ git clone https://github.com/cryfs/cryfs.git cryfs
    $ cd cryfs
    
  2. Build

    $ mkdir cmake && cd cmake
    $ cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=off
    $ make package