summaryrefslogtreecommitdiff
path: root/Compatibility.md
blob: 28659c46dcb128cc5ca92e2c65a362df06329f9b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
### On-Disk-Format Compatability

gocryptfs uses ext4-style *feature flags* to add new functionality or better security to the on-disk-format. These are stored in `gocryptfs.conf` as `FeatureFlags`. When a new feature flag is added, gocryptfs will continue to support mounting older filesystems that do not have this flag set.

However, from time to time major gocryptfs revisions will drop support for very old filesystems. This keeps the gocryptfs code base clean and maintainable. Users are encouraged to upgrade their filesystems (see below for how) as the new features often improve security. If this is not an option, they can stay on the `v0.x` branch which will continue to be supported for bug fixes.

As seen on the table below, v1.0 will be the first version to drop support for very old filesystems (v0.6 and lower).

|                          | can be mounted on ▶                  | v0.4 | v0.5 | v0.6 | v0.7 | v0.8 | v0.9, v0.10 | v0.11 | v0.12 | v1.0 |
|--------------------------|--------------------------------------|------|------|------|------|------|-------------|-------|-------|------|
| ▼ **created by**         | ▼ **feature flags**                  |      |      |      |      |      |             |       |       |      |
| v0.4                     | -                                    | Y    | Y    | Y    | Y    | Y    | Y           | W     | RO    | -    |
| v0.5                     | DirIV                                | -    | Y    | Y    | Y    | Y    | Y           | W     | RO    | -    |
| v0.6                     | DirIV, EMENames                      | -    | -    | Y    | Y    | Y    | Y           | W     | RO    | -    |
| v0.7, v0.8               | DirIV, EMENames, GCMIV128            | -    | -    | -    | Y    | Y    | Y           | Y     | Y     | Y    |
| v0.9, v0.10, v0.11, v1.0 | DirIV, EMENames, GCMIV128, LongNames | -    | -    | -    | -    | -    | Y           | Y     | Y     | Y    |

* Y = full functionality
* W = a warning is printed on mount, otherwise full functionality
* RO = can only be mounted read-only
* - = can not be mounted

### Upgrading

Upgrading a filesystem simply means creating a new filesystem and copying all the data over. See the "[Upgrading](https://github.com/rfjakob/gocryptfs/wiki/Upgrading)" page for more information.