forked from External/ergo
first draft of atheme migration code
This commit is contained in:
parent
c060113c74
commit
7a6413ea2c
25 changed files with 1423 additions and 63 deletions
20
irc/migrations/legacy.go
Normal file
20
irc/migrations/legacy.go
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
package migrations
|
||||
|
||||
import (
|
||||
"golang.org/x/crypto/bcrypt"
|
||||
)
|
||||
|
||||
// See the v12-to-v13 schema change. The format of this hash is:
|
||||
// 30 bytes of global salt, 30 bytes of per-passphrase salt, then the bcrypt hash
|
||||
func CheckOragonoPassphraseV0(hash, passphrase []byte) error {
|
||||
globalSalt := hash[:30]
|
||||
passphraseSalt := hash[30:60]
|
||||
bcryptHash := hash[60:]
|
||||
assembledPasswordBytes := make([]byte, 0, 60+len(passphrase)+2)
|
||||
assembledPasswordBytes = append(assembledPasswordBytes, globalSalt...)
|
||||
assembledPasswordBytes = append(assembledPasswordBytes, '-')
|
||||
assembledPasswordBytes = append(assembledPasswordBytes, passphraseSalt...)
|
||||
assembledPasswordBytes = append(assembledPasswordBytes, '-')
|
||||
assembledPasswordBytes = append(assembledPasswordBytes, passphrase...)
|
||||
return bcrypt.CompareHashAndPassword(bcryptHash, assembledPasswordBytes)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue