123456789101112131415161718192021222324252627 |
- // Copyright (c) 2018 Shivaram Lingamneni
-
- package irc
-
- import (
- "encoding/base64"
- "errors"
- )
-
- var (
- errInvalidPasswordHash = errors.New("invalid password hash")
- )
-
- // Decode a hashed passphrase as it would appear in a config file,
- // retaining compatibility with old versions of `oragono genpasswd`
- // that used to apply a redundant layer of base64
- func decodeLegacyPasswordHash(hash string) ([]byte, error) {
- // a correctly formatted bcrypt hash is 60 bytes of printable ASCII
- if len(hash) == 80 {
- // double-base64, remove the outer layer:
- return base64.StdEncoding.DecodeString(hash)
- } else if len(hash) == 60 {
- return []byte(hash), nil
- } else {
- return nil, errInvalidPasswordHash
- }
- }
|