2015-09-03 19:09:23 +02:00
|
|
|
package frontend
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/rfjakob/gocryptfs/cryptfs"
|
2015-09-04 20:31:06 +02:00
|
|
|
"github.com/rfjakob/cluefs/lib/cluefs"
|
2015-09-03 19:09:23 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
type FS struct {
|
2015-09-04 20:31:06 +02:00
|
|
|
*cryptfs.CryptFS
|
|
|
|
*cluefs.ClueFS
|
2015-09-03 19:27:07 +02:00
|
|
|
}
|
|
|
|
|
2015-09-04 20:31:06 +02:00
|
|
|
type nullTracer struct {}
|
2015-09-03 19:27:07 +02:00
|
|
|
|
2015-09-04 20:31:06 +02:00
|
|
|
func (nullTracer) Trace(op cluefs.FsOperTracer) {}
|
|
|
|
|
|
|
|
func NewFS(key [16]byte, backing string) *FS {
|
|
|
|
var nt nullTracer
|
|
|
|
clfs, err := cluefs.NewClueFS(backing, nt)
|
|
|
|
if err != nil {
|
|
|
|
panic(err)
|
|
|
|
}
|
|
|
|
return &FS {
|
|
|
|
CryptFS: cryptfs.NewCryptFS(key),
|
|
|
|
ClueFS: clfs,
|
2015-09-03 23:54:12 +02:00
|
|
|
}
|
2015-09-03 19:09:23 +02:00
|
|
|
}
|