added fs encryption overlay
This commit is contained in:
parent
2039086696
commit
fd1e8118a4
28 changed files with 3994 additions and 30 deletions
20
pkg/fs/fs.go
20
pkg/fs/fs.go
|
|
@ -6,6 +6,7 @@ import (
|
|||
"cachefs/pkg/provider"
|
||||
"cachefs/pkg/provider/parse"
|
||||
"context"
|
||||
"encoding/hex"
|
||||
"errors"
|
||||
"fmt"
|
||||
stdfs "io/fs"
|
||||
|
|
@ -31,15 +32,28 @@ type FS struct {
|
|||
ph *PreloadHandler
|
||||
}
|
||||
|
||||
func NewFS(quota int64, max int, src, dst, metadata string, log logr.Logger) (fs *FS, err error) {
|
||||
func NewFS(quota int64, max int, src, srckey, dst, dstkey, metadata string, log logr.Logger) (fs *FS, err error) {
|
||||
if src == dst {
|
||||
return nil, errors.New("src and dst path can not be equal")
|
||||
}
|
||||
srcfs, err := parse.FS(src)
|
||||
var srck, dstk []byte
|
||||
if srckey != "" {
|
||||
srck, err = hex.DecodeString(srckey)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("srckey: %w", err)
|
||||
}
|
||||
}
|
||||
if dstkey != "" {
|
||||
dstk, err = hex.DecodeString(dstkey)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("dstkey: %w", err)
|
||||
}
|
||||
}
|
||||
srcfs, err := parse.FS(src, srck)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("srcfs: %w", err)
|
||||
}
|
||||
dstfs, err := parse.FS(dst)
|
||||
dstfs, err := parse.FS(dst, dstk)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("dstfs: %w", err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue