poka.sh

Docs

LUKS

Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.

LUKS Volume Preview.

At a glance

Purpose A LUKS encrypted-volume header (LUKS1 or LUKS2): cipher, key slots and, for LUKS2, JSON metadata about segments and digests.
Extensions .luks
Poka parser poka-luks
Viewer poka-tree-viewer
Depth tier Parser with a shared viewer (see Depth tiers)
Breadth tier B4 Summary (see Breadth tiers)

How much Poka reads

B4 Summary. The container and metadata are read and summarised (counts, properties, structure), but the main content is not rendered.

Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-luks/src/main.rs (484 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has cryptsetup_valid_header_file.luks, read by no test. Covers .luks and .luks2. For LUKS1 the tree shows version, UUID, cipher and mode, hash, key size, master-key iterations, payload offset and the eight key slots (state, iterations, stripes, key-material offset); for LUKS2 it shows the binary header (label, subsystem, checksum algorithm, header size, sequence ID) and decodes the JSON keyslots (PBKDF, iterations, time, memory, parallelism) and segments. Judgement: B4: the header is decoded in full; the encrypted payload is never decrypted, by design.

What Poka does not read

  • The encrypted payload is not decrypted (by design: no key is asked for or tried)
  • LUKS2 tokens and the digest objects' details are not shown
  • Header checksums are not verified
  • The secondary LUKS2 header is not read or compared

Libraries

Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.

  • serde_json (used; MIT OR Apache-2.0; Rust)
  • luks-core (candidate; Apache-2.0; Rust; https://docs.rs/luks-core) — Pure-Rust LUKS1/LUKS2 header reader and decryptor (repo https://github.com/SecurityRonin/luks-forensic). Young crate (0.1.x); narrow cipher support (aes-xts-plain64) per its own description.
  • cryptsetup / libcryptsetup (reference; GPL-2.0-or-later; unknown; https://gitlab.com/cryptsetup/cryptsetup) — copyleft; Reference LUKS implementation. Project page shows GPL-2.0-or-later; licence of the libcryptsetup library itself and implementation language not confirmed from the page loaded.

Sources

  • parsers/poka-luks/src/main.rs
  • parsers/poka-luks/plugin.json