2017-09-11 23:59:21 +02:00
# CryFS [![CircleCI](https://circleci.com/gh/cryfs/cryfs/tree/next.svg?style=svg)](https://circleci.com/gh/cryfs/cryfs/tree/next)
**TODO:** Update CI link to correct branch when merging next->develop or develop->master
2015-12-17 20:36:15 +01:00
CryFS encrypts your files, so you can safely store them anywhere. It works well together with cloud services like Dropbox, iCloud, OneDrive and others.
2016-01-31 21:44:32 +01:00
See [https://www.cryfs.org ](https://www.cryfs.org ).
2015-09-12 20:49:42 +02:00
2015-12-17 19:53:57 +01:00
Install latest release
2015-12-17 19:49:06 +01:00
======================
Easy install (Ubuntu and Debian)
--------------------------------
2015-12-18 04:27:12 +01:00
wget -O - https://www.cryfs.org/install.sh | sudo bash
2015-12-17 19:49:06 +01:00
Manual install (Ubuntu)
-----------------------
# Add apt key
2015-12-18 04:27:12 +01:00
wget -O - https://www.cryfs.org/apt.key | sudo apt-key add -
2015-12-17 19:49:06 +01:00
# Add apt repository
2015-12-17 20:03:41 +01:00
sudo sh -c "echo \"deb http://apt.cryfs.org/ubuntu `lsb_release -s -c` main\" > /etc/apt/sources.list.d/cryfs.list"
2016-03-15 14:31:52 +01:00
# Install cryfs
2015-12-17 19:49:06 +01:00
sudo apt-get update
sudo apt-get install cryfs
Manual install (Debian)
-----------------------
# Add apt key
2015-12-18 04:27:12 +01:00
wget -O - https://www.cryfs.org/apt.key | sudo apt-key add -
2015-12-17 19:49:06 +01:00
# Add apt repository
2015-12-17 20:03:41 +01:00
sudo sh -c "echo \"deb http://apt.cryfs.org/debian `lsb_release -s -c` main\" > /etc/apt/sources.list.d/cryfs.list"
2016-03-15 14:31:52 +01:00
# Install cryfs
2015-12-17 19:49:06 +01:00
sudo apt-get update
sudo apt-get install cryfs
2016-03-15 14:31:52 +01:00
2016-02-12 23:29:44 +01:00
GUI
===
2016-09-01 09:59:55 +02:00
If you want to use a GUI to mount your CryFS volumes, take a look at the [SiriKali project ](https://mhogomchungu.github.io/sirikali/ ). You have to install the GUI **and** also CryFS itself for it to work.
2015-09-29 15:47:05 +02:00
Building from source
====================
Requirements
------------
2016-02-15 02:40:56 +01:00
- Git (for getting the source code)
2016-03-04 01:35:31 +01:00
- GCC version >= 4.8 or Clang >= 3.7
2016-02-12 10:16:38 +01:00
- CMake version >= 2.8
2016-03-15 14:31:52 +01:00
- libcurl4 (including development headers)
2016-02-11 17:34:08 +01:00
- Boost libraries version >= 1.56 (including development headers)
- filesystem
- system
- chrono
- program_options
- thread
2016-10-26 01:24:09 +02:00
- Crypto++ version >= 5.6.3 (including development headers)
2016-02-12 13:27:06 +01:00
- SSL development libraries (including development headers, e.g. libssl-dev)
2016-02-15 18:07:24 +01:00
- libFUSE version >= 2.8.6 (including development headers), on Mac OS X instead install osxfuse from https://osxfuse.github.io/
2016-02-11 20:20:57 +01:00
- Python >= 2.7
2016-02-11 17:34:08 +01:00
You can use the following commands to install these requirements
2015-09-29 15:47:05 +02:00
2015-09-29 15:51:09 +02:00
# Ubuntu
2016-09-22 20:17:05 +02:00
$ sudo apt-get install git g++ cmake make 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
2016-03-15 14:31:52 +01:00
2015-09-29 15:51:09 +02:00
# Fedora
2016-09-22 20:17:05 +02:00
sudo dnf install git gcc-c++ cmake make libcurl-devel boost-devel boost-static cryptopp-devel openssl-devel fuse-devel python
2016-03-15 14:31:52 +01:00
2015-09-29 15:51:09 +02:00
# Macintosh
2016-02-15 18:07:24 +01:00
brew install cmake boost cryptopp openssl
2015-09-29 15:51:09 +02:00
2016-02-12 10:16:38 +01:00
Build & Install
---------------
2016-03-15 14:31:52 +01:00
2015-09-29 15:47:05 +02:00
1. Clone repository
2016-02-11 19:58:55 +01:00
$ git clone https://github.com/cryfs/cryfs.git cryfs
2015-09-29 15:47:05 +02:00
$ cd cryfs
2. Build
2016-02-11 15:28:34 +01:00
$ mkdir cmake & & cd cmake
2016-02-14 17:06:06 +01:00
$ cmake ..
2016-02-11 15:28:34 +01:00
$ make
2016-03-15 14:31:52 +01:00
2016-02-11 15:28:34 +01:00
3. Install
2015-10-26 20:44:00 +01:00
$ sudo make install
2016-03-15 14:31:52 +01:00
2016-02-15 20:01:13 +01:00
You can pass the following variables to the *cmake* command (using *-Dvariablename=value* ):
2016-10-20 10:08:08 +02:00
- **-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
- **-DCRYFS_UPDATE_CHECKS**=off: Build a CryFS that doesn't check online for updates and security vulnerabilities.
2016-03-15 14:31:52 +01:00
2016-02-15 20:01:13 +01:00
Troubleshooting
---------------
2016-02-12 10:16:38 +01:00
2016-02-17 01:18:38 +01:00
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:
2016-02-17 01:19:20 +01:00
cmake .. -DBoost_USE_STATIC_LIBS=off
2016-02-17 01:18:38 +01:00
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
2016-02-15 18:12:23 +01:00
2016-02-17 01:18:38 +01:00
cmake .. -DCMAKE_C_FLAGS="-I/path/to/openssl/include"
2016-02-15 18:07:24 +01:00
2016-02-12 10:16:38 +01:00
2017-09-02 11:04:20 +02:00
Creating .deb and .rpm packages
-------------------------------
2016-02-12 10:16:38 +01:00
2017-09-02 11:04:20 +02:00
There are additional requirements if you want to create packages. They are:
2016-02-12 10:16:38 +01:00
- CMake version >= 3.3
2017-09-02 11:04:20 +02:00
- rpmbuild for creating .rpm package
2016-02-12 10:16:38 +01:00
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
2016-09-19 23:48:05 +02:00
Disclaimer
----------------------
2016-09-22 20:17:05 +02:00
On the event of a password leak, you are strongly advised to create a new filesystem and copy all the data over from the previous one. Done this, all copies of the compromised filesystem and config file must be removed (e.g, from the "previous versions" feature of your cloud system) to prevent access to the key (and, as a result, your data) using the leaked password.