mirror of
https://github.com/drakkan/sftpgo.git
synced 2024-11-21 23:20:24 +00:00
add bcrypt support
This commit is contained in:
parent
88a288ccfe
commit
be9a1fb7c4
2 changed files with 12 additions and 0 deletions
|
@ -22,6 +22,7 @@ const (
|
|||
|
||||
logSender = "dataProvider"
|
||||
argonPwdPrefix = "$argon2id$"
|
||||
bcryptPwdPrefix = "$2a$"
|
||||
manageUsersDisabledError = "please set manage_users to 1 in sftpgo.conf to enable this method"
|
||||
trackQuotaDisabledError = "please enable track_quota in sftpgo.conf to use this method"
|
||||
)
|
||||
|
|
|
@ -10,6 +10,8 @@ import (
|
|||
"golang.org/x/crypto/ssh"
|
||||
|
||||
"github.com/alexedwards/argon2id"
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
|
||||
"github.com/drakkan/sftpgo/logger"
|
||||
"github.com/drakkan/sftpgo/utils"
|
||||
)
|
||||
|
@ -44,6 +46,15 @@ func sqlCommonValidateUserAndPass(username string, password string) (User, error
|
|||
logger.Warn(logSender, "error comparing password with argon hash: %v", err)
|
||||
return user, err
|
||||
}
|
||||
|
||||
} else if strings.HasPrefix(user.Password, bcryptPwdPrefix){
|
||||
err = bcrypt.CompareHashAndPassword([]byte(user.Password), []byte(password))
|
||||
if err != nil {
|
||||
logger.Warn(logSender, "error comparing password with bcrypt hash: %v", err)
|
||||
return user, err
|
||||
}else{
|
||||
match = true
|
||||
}
|
||||
} else {
|
||||
// clear text password match
|
||||
match = (user.Password == password)
|
||||
|
|
Loading…
Reference in a new issue