// Test -init with -reverse func TestInitReverse(t *testing.T) { dir := test_helpers.InitFS(t, "-reverse") _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfReverseName, "test") if err != nil { t.Fatal(err) } if !c.IsFeatureFlagSet(configfile.FlagAESSIV) { t.Error("AESSIV flag should be set but is not") } }
// Test -init flag func TestInit(t *testing.T) { dir := test_helpers.InitFS(t) _, c, err := configfile.LoadConfFile(dir+"/"+configfile.ConfDefaultName, "test") if err != nil { t.Fatal(err) } if c.IsFeatureFlagSet(configfile.FlagAESSIV) { t.Error("AESSIV flag should not be set") } }
// Only the PlaintextNames feature flag should be set func TestFlags(t *testing.T) { _, cf, err := configfile.LoadConfFile(cDir+"/gocryptfs.conf", "test") if err != nil { t.Fatal(err) } if !cf.IsFeatureFlagSet(configfile.FlagPlaintextNames) { t.Error("PlaintextNames flag should be set but isn't") } if cf.IsFeatureFlagSet(configfile.FlagEMENames) || cf.IsFeatureFlagSet(configfile.FlagDirIV) { t.Error("FlagEMENames and FlagDirIV should be not set") } }
// loadConfig loads the config file "args.config", prompting the user for the password func loadConfig(args *argContainer) (masterkey []byte, confFile *configfile.ConfFile) { // Check if the file can be opened at all before prompting for a password fd, err := os.Open(args.config) if err != nil { tlog.Fatal.Printf("Cannot open config file: %v", err) os.Exit(ErrExitLoadConf) } fd.Close() if args.masterkey != "" { masterkey = parseMasterKey(args.masterkey) _, confFile, err = configfile.LoadConfFile(args.config, "") } else { pw := readpassword.Once(args.extpass) tlog.Info.Println("Decrypting master key") masterkey, confFile, err = configfile.LoadConfFile(args.config, pw) } if err != nil { tlog.Fatal.Println(err) os.Exit(ErrExitLoadConf) } return masterkey, confFile }