func TestValidPassword(t *testing.T) { pass := "******" hash := "{SSHA}JFZFs0oHzxbMwkSJmYVeI8MnTDy/276a" if res, err := ssha.Validate(pass, hash); err != nil || res != true { t.Errorf("Valid password fails validation: %s", err) } }
func TestInValidPassword(t *testing.T) { pass := "******" hash := "{SSHA}JFZFs0oHzxbMwkSJmYVeI8MnTDy/276a" if res, err := ssha.Validate(pass, hash); res != false { t.Errorf("Invalid password passes validation: %s", err) } }
// Run runs the command and returns the exit status. func (c *UserCheckPwCommand) Run(args []string) int { if len(args) != 1 && len(args) != 2 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 } address := args[0] words := strings.Split(address, "@") if len(words) != 2 { fmt.Fprintf(c.UI.ErrorWriter, "%v\n", c.Help()) return 1 } userName := words[0] domainName := words[1] rawPassword := "" if len(args) == 2 { rawPassword = args[1] } repo, err := mailfull.OpenRepository(".") if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) return 1 } user, err := repo.User(domainName, userName) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) return 1 } if user == nil { fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", mailfull.ErrUserNotExist) return 1 } if len(args) != 2 { input, err := c.UI.AskSecret(fmt.Sprintf("Enter password for %s:", address)) if err != nil { fmt.Fprintf(c.UI.ErrorWriter, "[ERR] %v\n", err) return 1 } rawPassword = input } if ok, _ := ssha.Validate(rawPassword, user.HashedPassword()); !ok { fmt.Fprintf(c.UI.Writer, "The password you entered is incorrect.\n") return 1 } fmt.Fprintf(c.UI.Writer, "The password you entered is correct.\n") return 0 }
func TestGenerate8(t *testing.T) { pass := "******" var hash string var err error var res bool if hash, err = ssha.Generate(pass, 8); err != nil { t.Errorf("Generate password fails: %s", err) return } if res, err = ssha.Validate(pass, hash); err != nil || res != true { t.Errorf("Generated hash can not be validated: %s", err) } }