1package password
2
3import (
4 "errors"
5 "unicode/utf8"
6)
7
8const (
9 minPasswordCodePoints = 15
10 maxPasswordBytes = 1024
11)
12
13var (
14 ErrTooShort = errors.New("password: shorter than 15 characters")
15 ErrTooLong = errors.New("password: longer than 1024 bytes")
16)
17
18func Acceptable(password string) error {
19 if len(password) > maxPasswordBytes {
20 return ErrTooLong
21 }
22 if utf8.RuneCountInString(password) < minPasswordCodePoints {
23 return ErrTooShort
24 }
25 return nil
26}