crypt4ghfs 0.3.0

Fuse layer exposing Crypt4GH-encrypted files, as if they were decrypted
Documentation

Crypt4GH File System (in Rust)

Crates.io Docs.rs GitHub

Crypt4GH FUSE File system in Rust. It allows to encrypt and decrypt crypt4gh files in a directory automatically.

Installation

Requirements: Rust

Supported platforms:

  • Linux (tested on Ubuntu 20.04)
  • macOS (up to Big Sur, Monterey does not support FUSE yet)
cargo install crypt4ghfs

Usage

The usage of the command is the following:

USAGE:
    crypt4ghfs [FLAGS] <MOUNTPOINT> --conf <conf_path>

ARGS:
    <MOUNTPOINT>

FLAGS:
    -h, --help       Prints help information
    -v, --verbose    Sets the level of verbosity
    -V, --version    Prints version information

OPTIONS:
        --conf <conf_path>

Configuration

[DEFAULT]
# Extensions to be detected as encrypted
extensions = ["c4gh"]

[LOGGER]
# Whether to use syslog or to output to stderr
use_syslog = false
# Level of the logger. Should be one of ["TRACE", "DEBUG", "INFO", "WARN", "CRITICAL"]
log_level = "DEBUG"
# Syslog facility
log_facility = "local2"

[FUSE]
# The options that will be sent to fuse. The following are available:
# "allow_other", "allow_root", "allow_unmount", "default_permissions", "dev", "no_dev", "suid", "no_suid", "ro", "rw", "exec", "no_exec", "atime", "no_atime", "dir_sync", "sync", "async"
options= ["ro", "default_permissions", "allow_other", "auto_unmount"]
# Path to the root directory of the filesystem
rootdir="tests/rootdir"

[CRYPT4GH]
# Path to the public keys of the recipients to encrypt to
recipients = ["tests/testfiles/bob.pub"]
# Include log of the crypt4gh encryption / decryption
include_crypt4gh_log = true
# Include my public key to the recipients (so I can decrypt the file too)
include_myself_as_recipient = true
# Path to my private key
seckey = "tests/configs/bob"