Skip to content
rfjakob edited this page Jan 20, 2018 · 23 revisions

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.

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

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 W RO -
v0.5 D - Y Y Y Y W RO -
v0.6 DE - - Y Y Y W RO -
v0.7 and higher:
can be mounted on ▶ v0.7, v0.8 v0.9, v0.10, v0.11,
v1.0, v1.1, v1.2
v1.1, v1.2 v1.3, v1.4
created by feature flags
v0.7, v0.8 DEG Y Y Y Y
v0.9, v0.10, v0.11,
v1.0, v1.1, v1.2
DEGL - Y Y Y
v1.1, v1.2
(reverse mode)
DEGLA - - Y Y
v1.3, v.14 DEGLH - - - Y

Feature flags:

  • D = DirIV
  • E = EMENames
  • G = GCMIV128
  • L = LongNames
  • A = AESSIV
  • H = HKDF

Support flags:

  • 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" page for more information.