← Back to archive

Repo of the Day

cryptomator/cryptomator

Published: Jul 10, 2023

Open repository ↗

Multi-platform transparent client-side encryption of your files in the cloud

Summary

Cryptomator is a Java desktop application for Windows, macOS, and Linux that adds transparent, client-side encryption to cloud-synced folders. Licensed under GPL-3.0 with a commercial option, it creates encrypted "vaults" inside any local-sync directory, so files are encrypted on your machine before they reach the cloud.

What it is useful for

Cryptomator addresses the fact that most cloud sync providers can read the files you upload, since encryption (if any) typically happens on their servers. The README lists compatibility with Dropbox, Google Drive, OneDrive, MEGA, pCloud, ownCloud, Nextcloud, and any service that mirrors a local directory.

It is useful when an engineer or team needs to:

  • Store files in consumer cloud sync without exposing contents or filenames to the provider. The README states that file names get encrypted and folder structure gets obfuscated.
  • Keep a transparent daily workflow: the mounted vault behaves like a regular drive, so existing tools and editors work without a manual encrypt/decrypt step.
  • Isolate access by creating multiple vaults with individual passwords, which is useful when sharing folders with different colleagues.

The project is intentionally lightweight. Documented primitives include AES with 256-bit keys, scrypt for key derivation, cryptographically secure random numbers for salts, IVs, and the masterkey, and authenticated encryption so tampered ciphertext is detected before decryption. Each encrypted file is self-contained for decryption, avoiding a single point of failure in shared metadata.

Documented scope: the repository is the desktop application itself, not a programmatic library. The supplied README does not cover mobile platforms or integration APIs.

How engineers can use it

For end users, the README points to native binaries on cryptomator.org rather than documenting an installer.

For developers building from source, the README documents:

  1. Install JDK 26 (temurin or zulu are listed as examples).
  2. Build everything and bundle OS-specific dependencies under target:
    ./mvnw clean install
    
  3. Run the app with the defaults from pom.xml:
    ./mvnw -Prun compile exec:exec
    
  4. For a development run that uses a separate Cryptomator-Dev settings, log, and mount directory so it does not interfere with an installed copy:
    ./mvnw -Prun,dev compile exec:exec
    

The build uses the Maven wrapper, so any Maven-aware IDE can import the project and run the same goals. For security architecture details beyond what the README provides, the project points to docs.cryptomator.org/security/architecture, which is not included in the supplied source.