github PentHertz/LUKSbox v0.7.1-rc.1

pre-release18 minutes 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-aarch64.AppImage ae01d1d05b40b95232842e32659c94b5579ed7e9de2cb7b06a8a017bbee3b243
LUKSbox-x86_64.AppImage a6af090cd7f1d04220f453cfbabcff4bb2c18739b0f55c188ed7c2bd033a30eb
luksbox-0.7.1-rc.1-1.aarch64.rpm 5f3ef9e1c313868050fd7035827966979bb3d9df51ccf2a547ac8d94974798ee
luksbox-0.7.1-rc.1-1.x86_64.rpm c380e089dc639ac0692696901bbf916b8e4fc8f2eb82af90843bbd8e45d469de
luksbox-aarch64-linux-jammy.tar.gz a8447d6b39d915c68963248d8b83ebe048a75484ba3007d2130c202b2670b0e9
luksbox-aarch64-linux-noble.tar.gz 4dd4c4b59c96ba80dab7948185657b8dd16c67beb53294428fca9f251bc40cc0
luksbox-aarch64-linux-resolute.tar.gz 17e04fcfc01ffb6fbad3152742c3c2607fb2e0bb2cb104a87c2f22541ad91993
luksbox-aarch64-linux-trixie.tar.gz e451807f61d68139ad82f65ca418fafb28b055ce67c960c3618ea5f9739dd6cc
luksbox-aarch64-macos-fuset-portable.tar.gz 6464a0c782f871e45640165d985b53253824b2c6892cd8970979e6310d2601cd
luksbox-aarch64-macos-fuset.dmg c85a50fda103cde19556a74ed8a9d645114ae52eeeb87f79409b40913cdabc83
luksbox-aarch64-macos-macfuse-portable.tar.gz ebc5592ed1d2291754101f70ff0efd15963426061a64fef45f1079f3431ac0f7
luksbox-aarch64-macos-macfuse.dmg befd7aeb3a685f9e3bd474c0a20f49a627ea0410f5b256202ededc328435fd83
luksbox-aarch64-unknown-linux-musl.tar.gz c5c8504c7eb6eb975cf60ac397d9e6ec906c3ad534533ed5692d5843264182f9
luksbox-v0.7.1-rc.1-aarch64-linux-jammy.tar.gz a8447d6b39d915c68963248d8b83ebe048a75484ba3007d2130c202b2670b0e9
luksbox-v0.7.1-rc.1-aarch64-linux-musl-static.tar.gz c5c8504c7eb6eb975cf60ac397d9e6ec906c3ad534533ed5692d5843264182f9
luksbox-v0.7.1-rc.1-aarch64-linux-noble.tar.gz 4dd4c4b59c96ba80dab7948185657b8dd16c67beb53294428fca9f251bc40cc0
luksbox-v0.7.1-rc.1-aarch64-linux-resolute.tar.gz 17e04fcfc01ffb6fbad3152742c3c2607fb2e0bb2cb104a87c2f22541ad91993
luksbox-v0.7.1-rc.1-aarch64-linux-trixie.tar.gz e451807f61d68139ad82f65ca418fafb28b055ce67c960c3618ea5f9739dd6cc
luksbox-v0.7.1-rc.1-aarch64-macos-fuset-portable.tar.gz 6464a0c782f871e45640165d985b53253824b2c6892cd8970979e6310d2601cd
luksbox-v0.7.1-rc.1-aarch64-macos-fuset.dmg c85a50fda103cde19556a74ed8a9d645114ae52eeeb87f79409b40913cdabc83
luksbox-v0.7.1-rc.1-aarch64-macos-macfuse-portable.tar.gz ebc5592ed1d2291754101f70ff0efd15963426061a64fef45f1079f3431ac0f7
luksbox-v0.7.1-rc.1-aarch64-macos-macfuse.dmg befd7aeb3a685f9e3bd474c0a20f49a627ea0410f5b256202ededc328435fd83
luksbox-v0.7.1-rc.1-aarch64.AppImage ae01d1d05b40b95232842e32659c94b5579ed7e9de2cb7b06a8a017bbee3b243
luksbox-v0.7.1-rc.1-x86_64-linux-jammy.tar.gz d8d2ab530d3fe463d7f1afd646977617504d2668b57fb4f838780f37ca4fd9bc
luksbox-v0.7.1-rc.1-x86_64-linux-musl-static.tar.gz da53aadbff66062e3c5aae498e68ffa7755b922d4a10d312dcb6ec69afa149d3
luksbox-v0.7.1-rc.1-x86_64-linux-noble.tar.gz e8ad00c93cdb7a33cbc90fbe388d5b3d7493b4de5e205ee5e13140a8c4233737
luksbox-v0.7.1-rc.1-x86_64-linux-resolute.tar.gz 1f70bbc5dcc4f40c1911a68fd091a1c540f44018ce9d1132700e7042336bee01
luksbox-v0.7.1-rc.1-x86_64-linux-trixie.tar.gz 4af7f64c5309fd992961a29766cccbc53d52b936a7ee4a174c11e08b6d222739
luksbox-v0.7.1-rc.1-x86_64-windows-setup.exe 92c6ad10fd183afcc5029fdd05c0053922b8f217c3b0417f4e1d924b6e797d59
luksbox-v0.7.1-rc.1-x86_64-windows.msi b207dadd602f7f1af78e1e27e83e63396aaed27e018ec05d2f8cc346784e4ec8
luksbox-v0.7.1-rc.1-x86_64-windows.zip d92aa3f4aa512095afb1387581d65bba57feaffd937ef5215316fc956de98210
luksbox-v0.7.1-rc.1-x86_64.AppImage a6af090cd7f1d04220f453cfbabcff4bb2c18739b0f55c188ed7c2bd033a30eb
luksbox-x86_64-linux-jammy.tar.gz d8d2ab530d3fe463d7f1afd646977617504d2668b57fb4f838780f37ca4fd9bc
luksbox-x86_64-linux-noble.tar.gz e8ad00c93cdb7a33cbc90fbe388d5b3d7493b4de5e205ee5e13140a8c4233737
luksbox-x86_64-linux-resolute.tar.gz 1f70bbc5dcc4f40c1911a68fd091a1c540f44018ce9d1132700e7042336bee01
luksbox-x86_64-linux-trixie.tar.gz 4af7f64c5309fd992961a29766cccbc53d52b936a7ee4a174c11e08b6d222739
luksbox-x86_64-unknown-linux-musl.tar.gz da53aadbff66062e3c5aae498e68ffa7755b922d4a10d312dcb6ec69afa149d3
luksbox-x86_64-windows-setup.exe 92c6ad10fd183afcc5029fdd05c0053922b8f217c3b0417f4e1d924b6e797d59
luksbox-x86_64-windows.msi b207dadd602f7f1af78e1e27e83e63396aaed27e018ec05d2f8cc346784e4ec8
luksbox-x86_64-windows.zip d92aa3f4aa512095afb1387581d65bba57feaffd937ef5215316fc956de98210
luksbox.aarch64.rpm 5f3ef9e1c313868050fd7035827966979bb3d9df51ccf2a547ac8d94974798ee
luksbox.x86_64.rpm c380e089dc639ac0692696901bbf916b8e4fc8f2eb82af90843bbd8e45d469de
luksbox_0.7.1~rc.1-1_jammy_amd64.deb bd507c94257c66a961231554ebe09a15ad9954c8258da8c021385f8ed0660ef6
luksbox_0.7.1~rc.1-1_jammy_arm64.deb c7a8c6d46277c39e27118d16c18250fd208d619ebe6f1f0c64340c017c752eed
luksbox_0.7.1~rc.1-1_noble_amd64.deb dc100cb1c88ba35eab051ff86b5319924b3a9c3cff048568af14249022928dfe
luksbox_0.7.1~rc.1-1_noble_arm64.deb 39f4b612e1303045bfd8222c251e751fb60b0856862bfe0185a1d6a982a7aed3
luksbox_0.7.1~rc.1-1_resolute_amd64.deb f8847a0264e8cbe74b047c7010be0f017cba996ae9d64da74dbab0153ef26b66
luksbox_0.7.1~rc.1-1_resolute_arm64.deb 89a5632a3e29f2ff20bb6532819f41ae838ea96f49d171882c983200879cc8de
luksbox_0.7.1~rc.1-1_trixie_amd64.deb 5e7123e9a89879b17caa6d008b35e527482754bab079c0657eb5f892a6095180
luksbox_0.7.1~rc.1-1_trixie_arm64.deb d695adb6876a6b2716adfd3e8f97c8cff85322fcf5874b2b450f07ab035efecb
luksbox_jammy_amd64.deb bd507c94257c66a961231554ebe09a15ad9954c8258da8c021385f8ed0660ef6
luksbox_jammy_arm64.deb c7a8c6d46277c39e27118d16c18250fd208d619ebe6f1f0c64340c017c752eed
luksbox_noble_amd64.deb dc100cb1c88ba35eab051ff86b5319924b3a9c3cff048568af14249022928dfe
luksbox_noble_arm64.deb 39f4b612e1303045bfd8222c251e751fb60b0856862bfe0185a1d6a982a7aed3
luksbox_resolute_amd64.deb f8847a0264e8cbe74b047c7010be0f017cba996ae9d64da74dbab0153ef26b66
luksbox_resolute_arm64.deb 89a5632a3e29f2ff20bb6532819f41ae838ea96f49d171882c983200879cc8de
luksbox_trixie_amd64.deb 5e7123e9a89879b17caa6d008b35e527482754bab079c0657eb5f892a6095180
luksbox_trixie_arm64.deb d695adb6876a6b2716adfd3e8f97c8cff85322fcf5874b2b450f07ab035efecb

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): mkdir luksbox && tar xzf luksbox-v0.7.1-rc.1-x86_64-linux-jammy.tar.gz -C luksbox && cd luksbox && ./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): mkdir luksbox && tar xzf luksbox-v0.7.1-rc.1-aarch64-linux-jammy.tar.gz -C luksbox && cd luksbox && ./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.

Linux (any distro, GUI, AppImage): download
luksbox-v0.7.1-rc.1-x86_64.AppImage (or
-aarch64.AppImage), chmod +x it and run it. Nothing to
install; libfido2 / libcbor / libcrypto are bundled, glibc
2.35+ (Ubuntu 22.04, Debian 12, Fedora 36 or newer) and
the desktop's graphics stack come from the host. mount
needs fusermount3 (package fuse3). The same files are
also published as LUKSbox-x86_64.AppImage /
LUKSbox-aarch64.AppImage for stable download links.

Linux (any distro, CLI only, static): tar xzf luksbox-v0.7.1-rc.1-x86_64-linux-musl-static.tar.gz
(or aarch64) and copy the single luksbox binary onto
your PATH. Fully static (musl), no shared-library
dependency at all; includes the TUI wizard and mount
(needs fusermount3), but not FIDO2 or TPM 2.0 keyslots.
Also published as luksbox-x86_64-unknown-linux-musl.tar.gz
/ luksbox-aarch64-unknown-linux-musl.tar.gz.
The -linux-musl-static-fido2-tpm tarballs (also
luksbox-<arch>-unknown-linux-musl-fido2-tpm.tar.gz) are
the same static binary with FIDO2 security keys and TPM
2.0 keyslots built in; nothing to install, only access to
/dev/hidraw* / /dev/tpmrm0 is needed.

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.7.1-rc.1-aarch64-macos-fuset.dmg
  install FUSE-T first:
      brew tap macos-fuse-t/homebrew-cask
      brew trust --cask macos-fuse-t/cask/fuse-t   (if Homebrew asks)
      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.7.1-rc.1-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.7.1-rc.1-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.7.1-rc.1-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.7.1-rc.1-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.

FIDO2 goes through Windows' built-in webauthn.dll; no
runtime install needed for FIDO2.

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

Full Changelog: v0.7.0-rc.1...v0.7.1-rc.1

Don't miss a new LUKSbox release

NewReleases is sending notifications on new releases.