Support optional keyfile for luks encrypted partitions

If the keyfile attribute is not present it will omit any keyfile luks
configuration and instead will make the user be prompted for any
passphrases.
This commit is contained in:
Baitinq 2022-08-24 16:48:31 +02:00
parent 9bca66ca7d
commit e1927693e3
No known key found for this signature in database
GPG Key ID: FD14C4672CA7D2C5

View File

@ -76,8 +76,8 @@ let {
'';
create.luks = q: x: ''
cryptsetup -q luksFormat ${q.device} ${x.keyfile} ${toString (x.extraArgs or [])}
cryptsetup luksOpen ${q.device} ${x.name} --key-file ${x.keyfile}
cryptsetup -q luksFormat ${q.device} ${if builtins.hasAttr "keyfile" x then x.keyfile else ""} ${toString (x.extraArgs or [])}
cryptsetup luksOpen ${q.device} ${x.name} ${if builtins.hasAttr "keyfile" x then "--key-file " + x.keyfile else ""}
${create-f { device = "/dev/mapper/${x.name}"; } x.content}
'';
@ -141,7 +141,7 @@ let {
recursiveUpdate
(mount-f { device = "/dev/mapper/${x.name}"; } x.content)
{luks.${q.device} = ''
cryptsetup luksOpen ${q.device} ${x.name} --key-file ${x.keyfile}
cryptsetup luksOpen ${q.device} ${x.name} ${if builtins.hasAttr "keyfile" x then "--key-file " + x.keyfile else ""}
'';}
);