github PentHertz/LUKSbox v0.5.0

latest releases: v0.6.1, v0.6.0-rc.1, v0.5.2...
3 months ago

Verify your download

Cryptographic provenance (GitHub / Sigstore attestation)

Every artifact below is signed via GitHub Artifact
Attestations
,
which uses Sigstore under the hood. The signature proves
the artifact was produced by this exact workflow run on
this exact commit SHA, no human had a chance to swap it
after the fact.

Verify with the GitHub CLI (one-liner):

# Install gh once if you don't have it:
#   sudo apt install gh   |   sudo dnf install gh   |   brew install gh
gh attestation verify <downloaded-file> --owner penthertz
# Prints "Loaded digest ..." then "PASS" with the
# workflow run + commit SHA the artifact came from.

Offline check (no gh needed)

Every artifact also has a SHA-256 in SHA256SUMS.txt
(attached to this release):

# Linux / macOS:
sha256sum -c SHA256SUMS.txt   # Linux
shasum -a 256 -c SHA256SUMS.txt   # macOS
# Windows (PowerShell):
Get-FileHash luksbox-*.msi -Algorithm SHA256
# then compare to the `*.msi` row in SHA256SUMS.txt

Trust chain summary

Artifacts on this release page are uploaded only by the
GitHub Actions release workflow that ran on this tagged
commit (.github/workflows/release.yml in the repo).
The commit itself is GPG-signed by the maintainer, the
upload uses GitHub's OIDC release token, and the
Sigstore attestation above pins the signature to that
workflow run. GPG-signed release tarballs
(SHA256SUMS.txt.asc) and full SLSA L3 provenance are
on the roadmap.

For at-a-glance SHA-256 checking against the published
values:

File SHA-256
luksbox-0.5.0-1.aarch64.rpm cf3c3c8569e0a342bbfef9c1e3d56881277f9d848d6e7bfc2a768c75ff97468f
luksbox-0.5.0-1.x86_64.rpm 61536a79c7c56406a1412c8cbc78c8c5da0705e1877432fe1d7e45c626c2c45d
luksbox-v0.5.0-aarch64-linux-jammy.tar.gz 14d157b6fef5a003ec4bc835472943e2acb84ea1104ff28aa280fee670b6a701
luksbox-v0.5.0-aarch64-linux-noble.tar.gz b8ed91c4b42477405a81b641167f390593e4c253d3fc37f26d2103f532ed06da
luksbox-v0.5.0-aarch64-linux-resolute.tar.gz 578e8139f21a5b3ea55043e86c539cd84bf6633632a099d8997f94e6011d6f45
luksbox-v0.5.0-aarch64-linux-trixie.tar.gz 1cf75279ee58ac908744e45c212c919679fcc628d18727a34c92c1c28678c260
luksbox-v0.5.0-aarch64-macos-fuset-portable.tar.gz d35a24316f65bfba741e4b5e6ba1fc66a748537e5fa6b54f5826dfa840cddbfe
luksbox-v0.5.0-aarch64-macos-fuset.dmg 7bb2f593d28dbb95f30b7de79a224b623b6c24335ad16469dbdc6a21bcdc8d0e
luksbox-v0.5.0-aarch64-macos-macfuse-portable.tar.gz 072750c4e593b94f2a3bab37d15914287a8c12df772f702648617ccef60578e9
luksbox-v0.5.0-aarch64-macos-macfuse.dmg 1f7ccaeda78cae51f7f304109aa4222f65cd1fa3a3d0292d60ed7211e2e51256
luksbox-v0.5.0-x86_64-linux-jammy.tar.gz 6dd5acaa724c740d03c41ca48405d67ba77149c175b03683c1a3c4cf46f5d1c6
luksbox-v0.5.0-x86_64-linux-noble.tar.gz c525ad7f08057159395f958f79f81d3032a49f0e4d94304f8cf6d66aed8b6383
luksbox-v0.5.0-x86_64-linux-resolute.tar.gz c0dd20ebe0068b94fa4d67b79d2a740298272c3e8bfe7a89ed3e5e7c882a228d
luksbox-v0.5.0-x86_64-linux-trixie.tar.gz b8f0940dae15ff41f8304b95aab3dbbcda0e3807f4fa67ed1be421a9589d9e58
luksbox-v0.5.0-x86_64-windows-setup.exe ec948643106e39289951d56434133a33f75f3206f4337bbeba68e03b86af522d
luksbox-v0.5.0-x86_64-windows.msi 0c8f191bd6138b61fac6b39e6397dd803812a63c33b5a1461eca8c2d50994a44
luksbox-v0.5.0-x86_64-windows.zip f22a10a3a2fedc8ca97f8055c42c80d5aee50859f38877b5d0345ed70b0aa86c
luksbox_0.5.0-1_jammy_amd64.deb 3a892e5aa87394ce54a61b9882639f286a3240c068df6f7d4ea104f6bccac17a
luksbox_0.5.0-1_jammy_arm64.deb 7248ed6a7d78bb443578e1695329d5b4f73892a38e9df8f6ae79559b17029885
luksbox_0.5.0-1_noble_amd64.deb 84c6e7d92ca0eb84ed66e6c02585f5e96122a21bcc5c60def429f011e92c8251
luksbox_0.5.0-1_noble_arm64.deb ee9014011a4f4bd5e8ac5673d32192e0253c970612b1846376c22d1e44820546
luksbox_0.5.0-1_resolute_amd64.deb 443dad1ae099041e358c37b948919591cded71c6a5bd613476567b3e14c54098
luksbox_0.5.0-1_resolute_arm64.deb 9142ebca5777992204f370e825d633b8a1c7bffdf7608fed9b2faac11ec28c7a
luksbox_0.5.0-1_trixie_amd64.deb e22231f7784274944a7937ed368245d874fc41acd19d4d4b27fe57812555004e
luksbox_0.5.0-1_trixie_arm64.deb c97abd9bc525308c7e68692c3c6d9d464e1dbc8df6c7d8da37de99d807d15315

Install

Linux (Ubuntu 22.04, Debian 11/12, Mint 21.x, .deb):
download luksbox_*_jammy_amd64.deb (or _arm64) and
install with sudo apt install ./luksbox_*_jammy_amd64.deb.
Pulls in libfido2-1, libfuse3-3, and libtss2-*
automatically. Registers a luksbox-gui desktop
launcher and a MIME type for .lbx files.

Linux (Ubuntu 24.04 noble, .deb):
download luksbox_*_noble_amd64.deb (or _arm64) and
install with sudo apt install ./luksbox_*_noble_amd64.deb.
Same package layout as the jammy build, but with
t64-transitioned dependency names (libssl3t64,
libfido2-1t64, libtss2-mu-4.0.1-0t64, etc.). The
jammy and noble .deb files cannot be installed
interchangeably, the dependency names differ.

Linux (Debian 13 trixie / Ubuntu 26.04 resolute, .deb):
these distros bump shared-library sonames again past
noble, so they get their own builds. Download
luksbox_*_trixie_amd64.deb on Debian 13 or
luksbox_*_resolute_amd64.deb on Ubuntu 26.04 (or the
matching _arm64) and install with sudo apt install ./<file>. Each .deb's dependency names are resolved
against its own distro, so install the one matching your
release rather than the noble build.

Linux (Fedora / RHEL / Rocky / Alma, .rpm): download
luksbox-*.x86_64.rpm (or aarch64.rpm) and install
with sudo dnf install ./luksbox-*.x86_64.rpm (or
sudo rpm -i). One .rpm covers every rpm-based
distro, RPM uses SONAMEs for shared-library
dependencies which are stable across releases.
Pulls in libfido2 and fuse3-libs automatically.

Linux (x86_64, generic tarball): tar xzf luksbox-v0.5.0-x86_64-linux-jammy.tar.gz && cd luksbox-v0.5.0-x86_64-linux-jammy && ./install.sh
For Arch / NixOS / Alpine / any non-deb non-rpm distro.
The jammy variant has the broadest glibc compatibility;
if you are on a very recent distro and prefer the noble
build, swap -jammy for -noble in the filename.
Installs to ~/.local/bin and registers a desktop launcher.
Use ./install.sh --system for system-wide install, or
./install.sh --uninstall to remove. Requires
libfido2-1 (and libfuse3-3 for mount):
sudo apt install libfido2-1 libfuse3-3 (Debian/Ubuntu)
or sudo dnf install libfido2 fuse3-libs (Fedora/RHEL).

Linux (aarch64): tar xzf luksbox-v0.5.0-aarch64-linux-jammy.tar.gz && cd luksbox-v0.5.0-aarch64-linux-jammy && ./install.sh
Same runtime deps and installer as x86_64. Built natively
on a GitHub ARM64 runner, no QEMU emulation. Same
jammy/noble distinction applies as for the .deb above.

macOS (Apple Silicon): two .dmg variants, one per
FUSE backend. Pick one based on which FUSE provider you
want to install. Both .dmgs are otherwise identical
(same crypto, same on-disk format, same UI); the
difference is what luksbox mount calls under the hood
and whether you need a kernel extension.

FUSE-T variant (recommended for personal laptops):

  download: luksbox-v0.5.0-aarch64-macos-fuset.dmg
  install FUSE-T first:
      brew tap macos-fuse-t/homebrew-cask
      brew install --cask fuse-t
  then drag LUKSbox.app onto Applications.

No kernel extension, no Privacy & Security prompt, no
Apple-Silicon Reduced-Security dance. The .app launches
cleanly even if FUSE-T isn't installed yet (you just
can't use mount until you install it). Uses an NFS-
over-loopback transport with NO authentication on the
loopback port
- on a multi-user Mac, any other local
process can connect to the mount via NFSv4 and bypass
LUKSbox's permission model. Documented in
docs/MACOS_FUSE_T.md.
Fine for the common single-user-laptop case.

macFUSE variant (recommended for shared machines or
audit-required deployments):

  download: luksbox-v0.5.0-aarch64-macos-macfuse.dmg
  install macFUSE FIRST (REQUIRED, see warning below):
      brew install --cask macfuse
      # then approve the kext under System Settings
      # -> Privacy & Security and reboot. On Apple
      # Silicon also: Recovery Mode -> Startup Security
      # Utility -> Reduced Security.
  then drag LUKSbox.app onto Applications.

IMPORTANT: this variant transitively links macFUSE's
MFMount.framework. If macFUSE is NOT installed when you
try to launch LUKSbox.app, macOS kills the process
before it can show any UI
(dyld: Library not loaded
error). Install macFUSE first, then the LUKSbox.app.
Uses macFUSE's /dev/macfuse* device-node permissions
for the kernel<->FS channel, which restricts access to
the mounting UID - the better local-attacker model.

Verify which backend a given .app uses:

  /Applications/LUKSbox.app/Contents/MacOS/luksbox --version
  # luksbox X.Y.Z
  # FUSE backend: fuse-t (...)   <- FUSE-T variant
  # FUSE backend: macfuse (...)  <- macFUSE variant

macOS (Apple Silicon), portable .tar.gz: also two
variants, -fuset-portable.tar.gz and -macfuse-portable.tar.gz,
same backend split as the .dmgs. Ships the bare CLI +
GUI binaries (bin/luksbox, bin/luksbox-gui) with
their dylib closure under Frameworks/. Run in place:
./bin/luksbox --help or ./bin/luksbox-gui &. No
.app, no Gatekeeper warning, no quarantine xattr to
clear (when extracted via Terminal). See
README-MACOS.txt inside for the full layout + caveats.

First launch: the .dmg is codesigned with the
Penthertz Apple Developer ID Application certificate
(team 456J2U7HQL) and Apple-notarised
, with the
notarisation ticket stapled to the bundle. macOS shows
the standard "downloaded from internet, are you sure?"
prompt that every Mac shows for any downloaded app -
click Open and you're set. Subsequent launches are
silent. No Gatekeeper override and no
xattr -dr com.apple.quarantine workaround needed.

Verify the signature and notarisation locally:

# Signature: identity + chain trust
codesign --verify --deep --strict --verbose=2 \
    /Applications/LUKSbox.app

# Notarisation: ticket present + valid
spctl --assess --type execute --verbose \
    /Applications/LUKSbox.app
# expects: "accepted, source=Notarized Developer ID"

You can additionally verify the .dmg SHA-256 against
the table at the top of these release notes for an
independent integrity check that doesn't depend on
Apple's PKI.

macOS (Intel): not shipped, build from source with
cargo build --profile release-hardened on an Intel Mac
with brew install libfido2 (the release-hardened
profile matches the hardening flags used for the shipped
Apple-Silicon binary). The CI matrix entry for
x86_64-apple-darwin is commented out in
.github/workflows/release.yml, GitHub's macos-13
runner has been intermittently blocking releases.

Windows (x86_64), recommended: download
luksbox-v0.5.0-x86_64-windows-setup.exe,
double-click. The bootstrapper installs WinFsp 2.0.23075
(if not already present) AND LUKSbox in one wizard.
Unattended deploy: LUKSboxSetup.exe /quiet. To skip
WinFsp (e.g., you manage it via Group Policy):
LUKSboxSetup.exe InstallWinFsp=0. WinFsp is bundled
under its non-GPL-app linking exception; full license
ships as LICENSE-WINFSP.txt in the install dir.

Windows (x86_64), IT-admin / bare MSI: download
luksbox-v0.5.0-x86_64-windows.msi. This
MSI does not include WinFsp; install WinFsp 2.x
separately from https://winfsp.dev/rel/ first
(LUKSbox statically links winfsp-x64.dll and the MSI
refuses to install without it). For unattended deploy
behind Group Policy / SCCM / Intune where WinFsp is
managed as a separate dependency, this is the right
artifact. Otherwise the -setup.exe above is easier.

Windows (x86_64), portable: unzip
luksbox-v0.5.0-x86_64-windows.zip
and run the .exe in place. No installation, no Start
menu entry, no PATH change. Same binaries as the MSI.
Because nothing was added to PATH, you must either
(a) run from a shell where <WinFspInstall>\bin is on
PATH, or (b) drop a copy of winfsp-x64.dll next to
luksbox.exe in the unzipped folder.

libfido2 is statically linked into the .exe; no runtime
install needed for FIDO2.

See the Verify your download section at the top for
checksum verification commands.

What's Changed

Full Changelog: v0.4.0...v0.5.0

Don't miss a new LUKSbox release

NewReleases is sending notifications on new releases.