mirror of
https://gogs.blitter.com/RLabs/xs
synced 2024-08-14 10:26:42 +00:00
1/3 Updated Makefile to allow VENDOR flag (adds -vendor to version string)
2/3 Added vendor/ dir to lock down dependent pkg versions. The author of git.schwanenlied.me/yawning/{chacha20,newhope,kyber}.git has copied their repos to gitlab.com/yawning/ but some imports of chacha20 from newhope still inconsistently refer to git.schwanenlied.me/, breaking build. Licenses for chacha20 also changed from CC0 to AGPL, which may or may not be an issue. Until the two aforementioned issues are resolved, locking to last-good versions is probably the best way forward for now. To build with vendored deps, use make VENDOR=1 clean all 3/3 Moved body of CI push script into bacillus/
This commit is contained in:
parent
7fe915450b
commit
f5be3578a8
854 changed files with 287417 additions and 7 deletions
62
vendor/gopkg.in/hlandau/passlib.v1/hash/pbkdf2/raw/parse.go
generated
vendored
Normal file
62
vendor/gopkg.in/hlandau/passlib.v1/hash/pbkdf2/raw/parse.go
generated
vendored
Normal file
|
@ -0,0 +1,62 @@
|
|||
package raw
|
||||
|
||||
import (
|
||||
"crypto/sha1"
|
||||
"crypto/sha256"
|
||||
"crypto/sha512"
|
||||
"fmt"
|
||||
"hash"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// Indicates that a password hash or stub is invalid.
|
||||
var ErrInvalidStub = fmt.Errorf("invalid stub")
|
||||
|
||||
// Indicates that the number of rounds specified is not in the valid range.
|
||||
var ErrInvalidRounds = fmt.Errorf("invalid number of rounds")
|
||||
|
||||
var hashMap = map[string]func() hash.Hash{
|
||||
"pbkdf2": sha1.New,
|
||||
"pbkdf2-sha256": sha256.New,
|
||||
"pbkdf2-sha512": sha512.New,
|
||||
}
|
||||
|
||||
func Parse(stub string) (hashFunc func() hash.Hash, rounds int, salt []byte, hash string, err error) {
|
||||
// does not start with $pbkdf2
|
||||
if !strings.HasPrefix(stub, "$pbkdf2") {
|
||||
err = ErrInvalidStub
|
||||
return
|
||||
}
|
||||
|
||||
parts := strings.Split(stub, "$")
|
||||
if f, ok := hashMap[parts[1]]; ok {
|
||||
hashFunc = f
|
||||
} else {
|
||||
err = ErrInvalidStub
|
||||
return
|
||||
}
|
||||
|
||||
roundsStr := parts[2]
|
||||
var n uint64
|
||||
n, err = strconv.ParseUint(roundsStr, 10, 31)
|
||||
if err != nil {
|
||||
err = ErrInvalidStub
|
||||
return
|
||||
}
|
||||
rounds = int(n)
|
||||
|
||||
if rounds < MinRounds || rounds > MaxRounds {
|
||||
err = ErrInvalidRounds
|
||||
return
|
||||
}
|
||||
|
||||
salt, err = Base64Decode(parts[3])
|
||||
if err != nil {
|
||||
err = fmt.Errorf("could not decode base64 salt")
|
||||
return
|
||||
}
|
||||
hash = parts[4]
|
||||
|
||||
return
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue