/usr/share/doc/cryptsetup
NameSizeModeActions
examples/-0755rm
AUTHORS1370644editdlrm
changelog.Debian.gz22510644editdlrm
copyright92920644editdlrm
FAQ.gz489900644editdlrm
Keyring.txt27240644editdlrm
LUKS2-locking.txt27110644editdlrm
NEWS.Debian.gz10570644editdlrm
README.Debian.gz56800644editdlrm
README.debug27310644editdlrm
README.gnupg18480644editdlrm
README.gnupg-sc23540644editdlrm
README.keyctl35830644editdlrm
README.md.gz22230644editdlrm
README.opensc.gz22190644editdlrm
v1.0.7-ReleaseNotes29210644editdlrm
v1.1.0-ReleaseNotes.gz22750644editdlrm
v1.1.1-ReleaseNotes17960644editdlrm
v1.1.2-ReleaseNotes15940644editdlrm
v1.1.3-ReleaseNotes4820644editdlrm
v1.2.0-ReleaseNotes.gz21240644editdlrm
v1.3.0-ReleaseNotes.gz21340644editdlrm
v1.3.1-ReleaseNotes4210644editdlrm
v1.4.0-ReleaseNotes.gz22530644editdlrm
v1.4.1-ReleaseNotes8890644editdlrm
v1.4.2-ReleaseNotes16300644editdlrm
v1.4.3-ReleaseNotes23590644editdlrm
v1.5.0-ReleaseNotes.gz33200644editdlrm
v1.5.1-ReleaseNotes12950644editdlrm
v1.6.0-ReleaseNotes.gz38180644editdlrm
v1.6.1-ReleaseNotes10410644editdlrm
v1.6.2-ReleaseNotes9850644editdlrm
v1.6.3-ReleaseNotes18590644editdlrm
v1.6.4-ReleaseNotes20360644editdlrm
v1.6.5-ReleaseNotes24790644editdlrm
v1.6.6-ReleaseNotes10930644editdlrm
v1.6.7-ReleaseNotes33330644editdlrm
v1.6.8-ReleaseNotes20610644editdlrm
v1.7.0-ReleaseNotes31010644editdlrm
v1.7.1-ReleaseNotes13710644editdlrm
v1.7.2-ReleaseNotes14870644editdlrm
v1.7.3-ReleaseNotes8110644editdlrm
v1.7.4-ReleaseNotes6570644editdlrm
v1.7.5-ReleaseNotes8330644editdlrm
v2.0.0-ReleaseNotes.gz97280644editdlrm
v2.0.1-ReleaseNotes.gz22260644editdlrm
v2.0.2-ReleaseNotes.gz19920644editdlrm
v2.0.3-ReleaseNotes.gz24480644editdlrm
v2.0.4-ReleaseNotes.gz23250644editdlrm
v2.0.5-ReleaseNotes.gz20680644editdlrm
v2.0.6-ReleaseNotes.gz19600644editdlrm
v2.1.0-ReleaseNotes.gz34840644editdlrm
v2.2.0-ReleaseNotes.gz45820644editdlrm
v2.2.1-ReleaseNotes14130644editdlrm
v2.2.2-ReleaseNotes21510644editdlrm
v2.3.0-ReleaseNotes.gz32500644editdlrm
v2.3.1-ReleaseNotes17700644editdlrm
v2.3.2-ReleaseNotes14990644editdlrm
v2.3.3-ReleaseNotes13960644editdlrm
v2.3.4-ReleaseNotes.gz20010644editdlrm
v2.3.5-ReleaseNotes.gz31290644editdlrm
v2.3.6-ReleaseNotes23160644editdlrm
v2.4.0-ReleaseNotes.gz47660644editdlrm
v2.4.1-ReleaseNotes19420644editdlrm
v2.4.2-ReleaseNotes13750644editdlrm
v2.4.3-ReleaseNotes.gz19960644editdlrm
Edit: /usr/share/doc/cryptsetup/Keyring.txt (2724B)
Integration with kernel keyring service --------------------------------------- We have two different use cases for kernel keyring service: I) Volume keys Since upstream kernel 4.10 dm-crypt device mapper target allows loading volume key (VK) in kernel keyring service. The key offloaded in kernel keyring service is only referenced (by key description) in dm-crypt target and the VK is therefore no longer stored directly in dm-crypt target. Starting with cryptsetup 2.0 we load VK in kernel keyring by default for LUKSv2 devices (when dm-crypt with the feature is available). Currently cryptsetup loads VK in 'logon' type kernel key so that VK is passed in the kernel and can't be read from userspace afterward. Also cryptsetup loads VK in thread keyring (before passing the reference to dm-crypt target) so that the key lifetime is directly bound to the process that performs the dm-crypt setup. When cryptsetup process exits (for whatever reason) the key gets unlinked in kernel automatically. In summary, the key description visible in dm-crypt table line is a reference to VK that usually no longer exists in kernel keyring service if you used cryptsetup to for device activation. Using this feature dm-crypt no longer maintains a direct key copy (but there's always at least one copy in kernel crypto layer). II) Keyslot passphrase The second use case for kernel keyring is to allow cryptsetup reading the keyslot passphrase stored in kernel keyring instead. The user may load passphrase in kernel keyring and notify cryptsetup to read it from there later. Currently, cryptsetup cli supports kernel keyring for passphrase only via LUKS2 internal token (luks2-keyring). Library also provides a general method for device activation by reading passphrase from keyring: crypt_activate_by_keyring(). The key type for use case II) must always be 'user' since we need to read the actual key data from userspace unlike with VK in I). Ability to read keyslot passphrase from kernel keyring also allows easily auto-activate LUKS2 devices. Simple example how to use kernel keyring for keyslot passphrase: 1) create LUKS2 keyring token for keyslot 0 (in LUKS2 device/image) cryptsetup token add --key-description my:key -S 0 /dev/device 2) Load keyslot passphrase in user keyring read -s -p "Keyslot passphrase: "; echo -n $REPLY | keyctl padd user my:key @u 3) Activate device using passphrase stored in kernel keyring cryptsetup open /dev/device my_unlocked_device 4a) unlink the key when no longer needed by keyctl unlink %user:my:key @u 4b) or revoke it immediately by keyctl revoke %user:my:key If cryptsetup asks for passphrase in step 3) something went wrong with keyring activation. See --debug output then.