diff options
Diffstat (limited to 'src/parabola_hackers/nslcd_backend/db_pam.go')
-rw-r--r-- | src/parabola_hackers/nslcd_backend/db_pam.go | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/src/parabola_hackers/nslcd_backend/db_pam.go b/src/parabola_hackers/nslcd_backend/db_pam.go index 6b2a7c7..19d4c79 100644 --- a/src/parabola_hackers/nslcd_backend/db_pam.go +++ b/src/parabola_hackers/nslcd_backend/db_pam.go @@ -17,9 +17,8 @@ package hackers_nslcd_backend import ( - "crypto/rand" p "lukeshu.com/git/go/libnslcd.git/proto" - "math/big" + "parabola_hackers" s "syscall" ) @@ -42,10 +41,10 @@ func (o *Hackers) PAM_Authentication(cred s.Ucred, req p.Request_PAM_Authenticat AuthorizationResult: p.NSLCD_PAM_AUTH_ERR, AuthorizationError: "", } - if check_password(req.Password, user.passwd.PwHash) { + if check_password(req.Password, user.Passwd.PwHash) { obj.AuthenticationResult = p.NSLCD_PAM_SUCCESS obj.AuthorizationResult = obj.AuthenticationResult - obj.UserName = user.passwd.Name + obj.UserName = user.Passwd.Name } ret <- obj }() @@ -73,22 +72,16 @@ func (o *Hackers) PAM_Authorization(cred s.Ucred, req p.Request_PAM_Authorizatio const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" -var alphabet_len = big.NewInt(int64(len(alphabet))) - func (o *Hackers) PAM_SessionOpen(cred s.Ucred, req p.Request_PAM_SessionOpen) <-chan p.PAM_SessionOpen { ret := make(chan p.PAM_SessionOpen) go func() { defer close(ret) - var sessionid [24]byte - for i := 0; i < len(sessionid); i++ { - bigint, err := rand.Int(rand.Reader, alphabet_len) - if err != nil { - return - } - sessionid[i] = alphabet[bigint.Int64()] + sessionid, err := parabola_hackers.RandomString(alphabet, 24) + if err != nil { + return } - ret <- p.PAM_SessionOpen{SessionID: string(sessionid[:])} + ret <- p.PAM_SessionOpen{SessionID: sessionid} }() return ret } |