mirror of
https://github.com/kairos-io/kcrypt.git
synced 2025-07-16 16:33:21 +00:00
Fix issue when closing the device (#34)
This commit is contained in:
parent
e86d8e5595
commit
554e350fb7
@ -2,7 +2,6 @@ package lib
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/anatol/luks.go"
|
|
||||||
"github.com/gofrs/uuid"
|
"github.com/gofrs/uuid"
|
||||||
"github.com/jaypipes/ghw"
|
"github.com/jaypipes/ghw"
|
||||||
"github.com/jaypipes/ghw/pkg/block"
|
"github.com/jaypipes/ghw/pkg/block"
|
||||||
@ -75,7 +74,7 @@ func Luksify(label, version string, tpm bool) (string, error) {
|
|||||||
// Enroll PCR values as an unlock method
|
// Enroll PCR values as an unlock method
|
||||||
args := []string{"--tpm2-device=auto", "--tpm2-pcrs=7+8+9", part}
|
args := []string{"--tpm2-device=auto", "--tpm2-pcrs=7+8+9", part}
|
||||||
cmd := exec.Command("systemd-cryptenroll", args...)
|
cmd := exec.Command("systemd-cryptenroll", args...)
|
||||||
cmd.Stdin = strings.NewReader(pass)
|
cmd.Env = append(cmd.Env, fmt.Sprintf("PASSWORD=%s", pass)) // cannot pass it via stdin
|
||||||
cmd.Stdout = os.Stdout
|
cmd.Stdout = os.Stdout
|
||||||
cmd.Stderr = os.Stderr
|
cmd.Stderr = os.Stderr
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
@ -85,22 +84,22 @@ func Luksify(label, version string, tpm bool) (string, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err := LuksUnlock(part, b.Name, pass); err != nil {
|
if err := LuksUnlock(part, b.Name, pass); err != nil {
|
||||||
return "", err
|
return "", fmt.Errorf("unlock err: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := Waitdevice(devMapper, 10); err != nil {
|
if err := Waitdevice(devMapper, 10); err != nil {
|
||||||
return "", err
|
return "", fmt.Errorf("waitdevice err: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd := fmt.Sprintf("mkfs.ext4 -L %s %s", label, devMapper)
|
cmd := fmt.Sprintf("mkfs.ext4 -L %s %s", label, devMapper)
|
||||||
out, err := SH(cmd)
|
out, err := SH(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("err: %w, out: %s", err, out)
|
return "", fmt.Errorf("mkfs err: %w, out: %s", err, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
err = luks.Lock(b.Name)
|
out, err = SH(fmt.Sprintf("cryptsetup close %s", b.Name))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", fmt.Errorf("err: %w", err)
|
return "", fmt.Errorf("lock err: %w, out: %s", err, out)
|
||||||
}
|
}
|
||||||
|
|
||||||
if tpm {
|
if tpm {
|
||||||
|
Loading…
Reference in New Issue
Block a user