Raw
 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}