From af0ae03db23f845dbcf8a6738057222ce7986bd8 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Mon, 7 Sep 2015 21:10:42 +0200 Subject: Rename frontend to "cluefs_frontend" Enables adding another frontend later --- cluefs_frontend/fe_fs.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 cluefs_frontend/fe_fs.go (limited to 'cluefs_frontend/fe_fs.go') diff --git a/cluefs_frontend/fe_fs.go b/cluefs_frontend/fe_fs.go new file mode 100644 index 0000000..2b12da6 --- /dev/null +++ b/cluefs_frontend/fe_fs.go @@ -0,0 +1,46 @@ +package cluefs_frontend + +// frontend sits between FUSE and ClueFS +// and uses cryptfs for all crypto operations +// +// cryptfs +// ^ +// | +// v +// FUSE <-> frontend <-> ClueFS +// +// This file handles just the root directory + +import ( + "github.com/rfjakob/gocryptfs/cryptfs" + "github.com/rfjakob/cluefs/lib/cluefs" + fusefs "bazil.org/fuse/fs" +) + +type FS struct { + *cryptfs.CryptFS + *cluefs.ClueFS + backing string +} + +type nullTracer struct {} + +func (nullTracer) Trace(op cluefs.FsOperTracer) {} + +func NewFS(key [16]byte, backing string, useOpenssl bool) (*FS, error) { + var tracer nullTracer + clfs, err := cluefs.NewClueFS(backing, tracer) + if err != nil { + return nil, err + } + return &FS { + CryptFS: cryptfs.NewCryptFS(key, useOpenssl), + ClueFS: clfs, + backing: backing, + }, nil +} + +func (fs *FS) Root() (fusefs.Node, error) { + cryptfs.Debug.Printf("Root\n") + return NewDir("", fs.backing, fs), nil +} -- cgit v1.2.3