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"
|
logSender = "dataProvider"
|
||||||
argonPwdPrefix = "$argon2id$"
|
argonPwdPrefix = "$argon2id$"
|
||||||
|
bcryptPwdPrefix = "$2a$"
|
||||||
manageUsersDisabledError = "please set manage_users to 1 in sftpgo.conf to enable this method"
|
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"
|
trackQuotaDisabledError = "please enable track_quota in sftpgo.conf to use this method"
|
||||||
)
|
)
|
||||||
|
|
|
@ -10,6 +10,8 @@ import (
|
||||||
"golang.org/x/crypto/ssh"
|
"golang.org/x/crypto/ssh"
|
||||||
|
|
||||||
"github.com/alexedwards/argon2id"
|
"github.com/alexedwards/argon2id"
|
||||||
|
"golang.org/x/crypto/bcrypt"
|
||||||
|
|
||||||
"github.com/drakkan/sftpgo/logger"
|
"github.com/drakkan/sftpgo/logger"
|
||||||
"github.com/drakkan/sftpgo/utils"
|
"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)
|
logger.Warn(logSender, "error comparing password with argon hash: %v", err)
|
||||||
return user, 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 {
|
} else {
|
||||||
// clear text password match
|
// clear text password match
|
||||||
match = (user.Password == password)
|
match = (user.Password == password)
|
||||||
|
|
Loading…
Reference in a new issue