Skip to content

Commit

Permalink
Reinput password if wrong
Browse files Browse the repository at this point in the history
  • Loading branch information
samuelemusiani committed Apr 2, 2024
1 parent 4bb12b1 commit 7c4335b
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 32 deletions.
30 changes: 18 additions & 12 deletions cmd/macpass/input/input.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,29 @@ import (
"golang.org/x/term"
)

func Credential() (string, string) {
func Mail() string {
reader := bufio.NewReader(os.Stdin)

fmt.Print("Enter Email: ")
username, err := reader.ReadString('\n')
if err != nil {
log.Fatal(err)
}
for {
fmt.Print("Enter Email: ")
username, err := reader.ReadString('\n')
if err != nil {
log.Fatal(err)
}

username = strings.TrimSpace(username)
username = strings.TrimSpace(username)

// Check if the email is valid
_, err = mail.ParseAddress(username)
if err != nil {
log.Fatal(err)
// Check if the email is valid
_, err = mail.ParseAddress(username)
if err != nil {
fmt.Print("Error: ", err)
continue
}
return username
}
}

func Password() string {
fmt.Print("Enter Password: ")
bytePassword, err := term.ReadPassword(int(syscall.Stdin))
if err != nil {
Expand All @@ -46,7 +52,7 @@ func Credential() (string, string) {
fmt.Println()

password := string(bytePassword)
return username, strings.TrimSpace(password)
return strings.TrimSpace(password)
}

func Mac(user string) string {
Expand Down
48 changes: 28 additions & 20 deletions cmd/macpass/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,35 +36,43 @@ func main() {
func login() string {
conf := config.Get()

mail, passwd := input.Credential()
mail := input.Mail()
user := strings.Split(mail, "@")[0]

if conf.DummyLogin {
log.Println("WARNING: Dummy login is on")
if user != passwd {
log.Fatal("User and Password are incorrect")
}
return mail
} else {
const krb5Conf = `[libdefaults]
for range 3 {
passwd := input.Password()

if conf.DummyLogin {
fmt.Println("WARNING: Dummy login is on")
if user != passwd {
fmt.Println("ERROR: User or password are incorrect")
continue
}
return mail
} else {
const krb5Conf = `[libdefaults]
dns_lookup_realm = true
dns_lookup_kdc = true
`
krbconf, err := krbconfig.NewFromString(krb5Conf)
if err != nil {
log.Fatal(err)
}
krbconf, err := krbconfig.NewFromString(krb5Conf)
if err != nil {
log.Fatal(err)
}

cl := krbclient.NewWithPassword(user, conf.Kerberos.Realm, passwd, krbconf,
krbclient.DisablePAFXFAST(conf.Kerberos.DisablePAFXFAST))
cl := krbclient.NewWithPassword(user, conf.Kerberos.Realm, passwd, krbconf,
krbclient.DisablePAFXFAST(conf.Kerberos.DisablePAFXFAST))

if err := cl.Login(); err != nil {
log.Fatal(err)
}
if err := cl.Login(); err != nil {
fmt.Println("Error: ", err)
continue
}

// If login is succesful we return the user to bind the MAC address
return mail
// If login is succesful we return the user to bind the MAC address
return mail
}
}
log.Fatal("Could not authenticate")
return ""
}

func send(r comunication.Request) {
Expand Down

0 comments on commit 7c4335b

Please sign in to comment.