2022-03-22 11:03:15 -04:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"flag"
|
|
|
|
"fmt"
|
|
|
|
"log"
|
|
|
|
|
2022-03-24 10:17:57 -04:00
|
|
|
"github.com/edgelesssys/constellation/mount/cryptmapper"
|
|
|
|
"github.com/edgelesssys/constellation/mount/kms"
|
2022-05-04 06:04:31 -04:00
|
|
|
"k8s.io/klog/v2"
|
2022-03-22 11:03:15 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
var (
|
|
|
|
close = flag.Bool("c", false, "close the crypt device")
|
|
|
|
integrity = flag.Bool("integrity", false, "format the device with dm-integrity")
|
|
|
|
source = flag.String("source", "", "source volume")
|
|
|
|
volumeID = flag.String("target", "new_crypt_device", "mapped target")
|
|
|
|
)
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
klog.InitFlags(nil)
|
|
|
|
defer klog.Flush()
|
|
|
|
flag.Parse()
|
|
|
|
|
2022-03-24 10:21:19 -04:00
|
|
|
mapper := cryptmapper.New(kms.NewStaticKMS(), &cryptmapper.CryptDevice{})
|
2022-03-22 11:03:15 -04:00
|
|
|
|
|
|
|
if *close {
|
|
|
|
err := mapper.CloseCryptDevice(*volumeID)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if *source == "" {
|
|
|
|
log.Fatal("missing require flag \"-source\"")
|
|
|
|
}
|
|
|
|
out, err := mapper.OpenCryptDevice(context.Background(), *source, *volumeID, *integrity)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
fmt.Printf("Crypt device activate as: %q\n", out)
|
|
|
|
}
|
|
|
|
}
|