diff options
| author | Joe Richey joerichey@google.com <joerichey@google.com> | 2017-10-17 02:39:07 -0700 |
|---|---|---|
| committer | Joseph Richey <joerichey94@gmail.com> | 2017-10-19 02:22:26 -0700 |
| commit | bab7dfdf68075b345e4de3ae79ea685ca884668f (patch) | |
| tree | eced4ecdfd37aae1a92f28ba0864837db1205eb0 /ext4 | |
| parent | b5cc60b2b974645f0d09721c292cd243d049cbcf (diff) | |
Move around and fscrypt refactor
Diffstat (limited to 'ext4')
| -rw-r--r-- | ext4/ext4.go | 74 | ||||
| -rw-r--r-- | ext4/feature_flag.go | 84 |
2 files changed, 0 insertions, 158 deletions
diff --git a/ext4/ext4.go b/ext4/ext4.go deleted file mode 100644 index dcf8204..0000000 --- a/ext4/ext4.go +++ /dev/null @@ -1,74 +0,0 @@ -/* - * ext4.go - Handles command line processing for fscrypt-ext4. - * - * Copyright 2017 Google Inc. - * Author: Joe Richey (joerichey@google.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package main - -import ( - "fmt" - - "github.com/google/fscrypt/cmd" -) - -var ( - mountpointArg = &cmd.Argument{ - ArgName: "mountpoint", - Usage: "the path to an ext4 filesystem's mountpoint", - } - deviceArg = &cmd.Argument{ - ArgName: "device", - Usage: "the path to a device containing an ext4 filesystem", - } - ext4Usage = fmt.Sprintf("(%s | %s) [options]", mountpointArg, deviceArg) -) - -func main() { ext4Command.Run() } - -var ext4Command = &cmd.Command{ - Title: "manage ext4 encryption feature flag", - UsageLines: []string{ - fmt.Sprintf("enable %s", ext4Usage), - fmt.Sprintf("disable %s", ext4Usage), - cmd.VersionUsage, - }, - SubCommands: []*cmd.Command{enableCommand, disableCommand, cmd.VersionCommand}, - Arguments: []*cmd.Argument{mountpointArg, deviceArg}, - Flags: []cmd.Flag{cmd.ForceFlag, cmd.VerboseFlag, cmd.HelpFlag}, - ManPage: &cmd.ManPage{Name: "fscrypt-ext4", Section: 8}, -} -var enableCommand = &cmd.Command{ - Name: "enable", - Title: "turn on encryption for an ext4 filesystem", - UsageLines: []string{ext4Usage}, - InheritArguments: true, - InheritFlags: true, - Action: func(c *cmd.Context) error { return toggleState(c, true) }, -} -var disableCommand = &cmd.Command{ - Name: "disable", - Title: "turn off encryption for an ext4 filesystem", - UsageLines: []string{ext4Usage}, - InheritArguments: true, - InheritFlags: true, - Action: func(c *cmd.Context) error { return toggleState(c, false) }, -} - -func toggleState(c *cmd.Context, enable bool) error { - fmt.Fprintf(cmd.Output, "Toggle value = %v", enable) - return nil -} diff --git a/ext4/feature_flag.go b/ext4/feature_flag.go deleted file mode 100644 index 58b3669..0000000 --- a/ext4/feature_flag.go +++ /dev/null @@ -1,84 +0,0 @@ -// +build linux,cgo - -/* - * feature_flag.go - Changes encryption flag for an ext4 filesystem. - * - * Copyright 2017 Google Inc. - * Author: Joe Richey (joerichey@google.com) - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package main - -/* -#cgo LDFLAGS: -lext2fs -#include <ext2fs/ext2_fs.h> -#include <ext2fs/ext2fs.h> - -#include <stdlib.h> -*/ -import "C" -import ( - "fmt" - - "github.com/google/fscrypt/filesystem" -) - -// Ext4Filesystem wraps the C structures returned from libext2fs. -type Ext4Filesystem struct { - ptr C.ext2_filsys - mounted bool - retVal C.errcode_t -} - -// NewExt4Filesystem creates a new Ext4Filesystem from a mountpoint path. Fail -// if the path is not the mountpoint of an ext4 filesystem or cannot be opened. -func NewExt4Filesystem(mount *filesystem.Mount) (*Ext4Filesystem, error) { - if mount.Filesystem != "ext4" { - err := fmt.Errorf("%q is not an ext4 filesystem (type %q)", mount.Path, mount.Filesystem) - return nil, err - } - if mount.Device == "" { - err := fmt.Errorf("underlying device for %q is invalid", mount.Filesystem) - return nil, err - } - return nil, nil -} - -// HasValidBlockSize returns true if the filesystem has the same block size as -// the system's page size. -func (fs *Ext4Filesystem) HasValidBlockSize() bool { - return true -} - -// IsEncryptionEnabled return true if the "encrypt" feature flag is set. -func (fs *Ext4Filesystem) IsEncryptionEnabled() bool { - return C.ext2fs_has_feature_encrypt(fs.ptr.super) != 0 -} - -// EnableEncryption sets the "encrypt" feature flag and writes the appropriate -// information in the superblock to allow filesystem encryption. -func (fs *Ext4Filesystem) EnableEncryption() error { - return nil -} - -// DisableEncryption removes the "encrypt" feature flag. -func (fs *Ext4Filesystem) DisableEncryption() error { - return nil -} - -// Close safely closes, frees, and runs cleanup f9r the filesystem. -func (fs *Ext4Filesystem) Close() error { - return nil -} |