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