added fs encryption overlay

This commit is contained in:
ston1th 2022-04-06 01:08:19 +02:00
commit fd1e8118a4
28 changed files with 3994 additions and 30 deletions

View file

@ -24,6 +24,8 @@ var (
src string
dst string
srckey string
dstkey string
metadata string
listenHttp string
listenWebdav string
@ -40,7 +42,9 @@ const gib = 1024 * 1024 * 1024
func main() {
klog.InitFlags(nil)
flag.StringVar(&src, "src", "", "url path to source files (example: file:///mnt/nfs)")
flag.StringVar(&srckey, "srckey", "", "hex encoded encryption key for src")
flag.StringVar(&dst, "dst", "", "url path to cache files (example: file:///mnt/cache)")
flag.StringVar(&dstkey, "dstkey", "", "hex encoded encryption key for dst")
flag.StringVar(&metadata, "data", "", "path to metadata file")
flag.StringVar(&listenHttp, "listen", "127.0.0.1:8080", "listen addr:port")
flag.StringVar(&listenWebdav, "webdav", "", "listen addr:port for webdav")
@ -57,7 +61,16 @@ func main() {
log.V(2).Info("changed preload buffer size", "size", bs)
}
filesystem, err := fs.NewFS(quota*gib, max, src, dst, metadata, klogr.New().WithName("fs"))
filesystem, err := fs.NewFS(
quota*gib,
max,
src,
srckey,
dst,
dstkey,
metadata,
klogr.New().WithName("fs"),
)
if err != nil {
klog.Fatalf("init failed: %s", err)
}

View file

@ -3,6 +3,7 @@
package main
import (
"encoding/hex"
"flag"
"fmt"
"os"
@ -15,15 +16,26 @@ var (
version string
dst string
dstkey string
metadata string
)
func main() {
flag.StringVar(&dst, "dst", "", "url path to cache files (example: file:///mnt/cache)")
flag.StringVar(&dstkey, "dstkey", "", "hex encoded encryption key for dst")
flag.StringVar(&metadata, "data", "", "path to metadata file")
flag.Parse()
dstfs, err := parse.FS(dst)
var (
dstk []byte
err error
)
if dstkey != "" {
dstk, err = hex.DecodeString(dstkey)
fmt.Println(err)
os.Exit(1)
}
dstfs, err := parse.FS(dst, dstk)
if err != nil {
fmt.Println(err)
os.Exit(1)