diff options
Diffstat (limited to 'vendor/github.com/wagslane/go-password-validator/length.go')
-rw-r--r-- | vendor/github.com/wagslane/go-password-validator/length.go | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/vendor/github.com/wagslane/go-password-validator/length.go b/vendor/github.com/wagslane/go-password-validator/length.go deleted file mode 100644 index ba9014329..000000000 --- a/vendor/github.com/wagslane/go-password-validator/length.go +++ /dev/null @@ -1,94 +0,0 @@ -package passwordvalidator - -const ( - seqNums = "0123456789" - seqKeyboard0 = "qwertyuiop" - seqKeyboard1 = "asdfghjkl" - seqKeyboard2 = "zxcvbnm" - seqAlphabet = "abcdefghijklmnopqrstuvwxyz" -) - -func removeMoreThanTwoFromSequence(s, seq string) string { - seqRunes := []rune(seq) - runes := []rune(s) - matches := 0 - for i := 0; i < len(runes); i++ { - for j := 0; j < len(seqRunes); j++ { - if i >= len(runes) { - break - } - r := runes[i] - r2 := seqRunes[j] - if r != r2 { - matches = 0 - continue - } - // found a match, advance the counter - matches++ - if matches > 2 { - runes = deleteRuneAt(runes, i) - } else { - i++ - } - } - } - return string(runes) -} - -func deleteRuneAt(runes []rune, i int) []rune { - if i >= len(runes) || - i < 0 { - return runes - } - copy(runes[i:], runes[i+1:]) - runes[len(runes)-1] = 0 - runes = runes[:len(runes)-1] - return runes -} - -func getReversedString(s string) string { - n := 0 - rune := make([]rune, len(s)) - for _, r := range s { - rune[n] = r - n++ - } - rune = rune[0:n] - // Reverse - for i := 0; i < n/2; i++ { - rune[i], rune[n-1-i] = rune[n-1-i], rune[i] - } - // Convert back to UTF-8. - return string(rune) -} - -func removeMoreThanTwoRepeatingChars(s string) string { - var prevPrev rune - var prev rune - runes := []rune(s) - for i := 0; i < len(runes); i++ { - r := runes[i] - if r == prev && r == prevPrev { - runes = deleteRuneAt(runes, i) - i-- - } - prevPrev = prev - prev = r - } - return string(runes) -} - -func getLength(password string) int { - password = removeMoreThanTwoRepeatingChars(password) - password = removeMoreThanTwoFromSequence(password, seqNums) - password = removeMoreThanTwoFromSequence(password, seqKeyboard0) - password = removeMoreThanTwoFromSequence(password, seqKeyboard1) - password = removeMoreThanTwoFromSequence(password, seqKeyboard2) - password = removeMoreThanTwoFromSequence(password, seqAlphabet) - password = removeMoreThanTwoFromSequence(password, getReversedString(seqNums)) - password = removeMoreThanTwoFromSequence(password, getReversedString(seqKeyboard0)) - password = removeMoreThanTwoFromSequence(password, getReversedString(seqKeyboard1)) - password = removeMoreThanTwoFromSequence(password, getReversedString(seqKeyboard2)) - password = removeMoreThanTwoFromSequence(password, getReversedString(seqAlphabet)) - return len(password) -} |