mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-10-30 15:02:27 -05:00
Grand test fixup (#138)
* start fixing up tests * fix up tests + automate with drone * fiddle with linting * messing about with drone.yml * some more fiddling * hmmm * add cache * add vendor directory * verbose * ci updates * update some little things * update sig
This commit is contained in:
parent
329a5e8144
commit
98263a7de6
2677 changed files with 1090869 additions and 219 deletions
39
vendor/github.com/wagslane/go-password-validator/entropy.go
generated
vendored
Normal file
39
vendor/github.com/wagslane/go-password-validator/entropy.go
generated
vendored
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
package passwordvalidator
|
||||
|
||||
import (
|
||||
"math"
|
||||
)
|
||||
|
||||
// GetEntropy returns the entropy in bits for the given password
|
||||
// See the ReadMe for more information
|
||||
func GetEntropy(password string) float64 {
|
||||
return getEntropy(password)
|
||||
}
|
||||
|
||||
func getEntropy(password string) float64 {
|
||||
base := getBase(password)
|
||||
length := getLength(password)
|
||||
|
||||
// calculate log2(base^length)
|
||||
return logPow(float64(base), length, 2)
|
||||
}
|
||||
|
||||
func logX(base, n float64) float64 {
|
||||
if base == 0 {
|
||||
return 0
|
||||
}
|
||||
// change of base formulae
|
||||
return math.Log2(n) / math.Log2(base)
|
||||
}
|
||||
|
||||
// logPow calculates log_base(x^y)
|
||||
// without leaving logspace for each multiplication step
|
||||
// this makes it take less space in memory
|
||||
func logPow(expBase float64, pow int, logBase float64) float64 {
|
||||
// logb (MN) = logb M + logb N
|
||||
total := 0.0
|
||||
for i := 0; i < pow; i++ {
|
||||
total += logX(logBase, expBase)
|
||||
}
|
||||
return total
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue