Home / Function/ parseHashedPassword() — fiber Function Reference

parseHashedPassword() — fiber Function Reference

Architecture documentation for the parseHashedPassword() function in config.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  f1aa6348_4a4d_8681_83b0_a6601ceef6b4["parseHashedPassword()"]
  01789d85_fb66_6955_8e64_00a267dc5b74["config.go"]
  f1aa6348_4a4d_8681_83b0_a6601ceef6b4 -->|defined in| 01789d85_fb66_6955_8e64_00a267dc5b74
  2ad37537_a29d_ecbf_0fcd_cb581bf8f843["configDefault()"]
  2ad37537_a29d_ecbf_0fcd_cb581bf8f843 -->|calls| f1aa6348_4a4d_8681_83b0_a6601ceef6b4
  style f1aa6348_4a4d_8681_83b0_a6601ceef6b4 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/basicauth/config.go lines 162–202

func parseHashedPassword(h string) (func(string) bool, error) {
	switch {
	case strings.HasPrefix(h, "$2"):
		hash := []byte(h)
		return func(p string) bool {
			return bcrypt.CompareHashAndPassword(hash, []byte(p)) == nil
		}, nil
	case strings.HasPrefix(h, "{SHA512}"):
		b, err := base64.StdEncoding.DecodeString(h[len("{SHA512}"):])
		if err != nil {
			return nil, fmt.Errorf("decode SHA512 password: %w", err)
		}
		return func(p string) bool {
			sum := sha512.Sum512([]byte(p))
			return subtle.ConstantTimeCompare(sum[:], b) == 1
		}, nil
	case strings.HasPrefix(h, "{SHA256}"):
		b, err := base64.StdEncoding.DecodeString(h[len("{SHA256}"):])
		if err != nil {
			return nil, fmt.Errorf("decode SHA256 password: %w", err)
		}
		return func(p string) bool {
			sum := sha256.Sum256([]byte(p))
			return subtle.ConstantTimeCompare(sum[:], b) == 1
		}, nil
	default:
		b, err := hex.DecodeString(h)
		if err != nil || len(b) != sha256.Size {
			if b, err = base64.StdEncoding.DecodeString(h); err != nil {
				return nil, fmt.Errorf("decode SHA256 password: %w", err)
			}
			if len(b) != sha256.Size {
				return nil, ErrInvalidSHA256PasswordLength
			}
		}
		return func(p string) bool {
			sum := sha256.Sum256([]byte(p))
			return subtle.ConstantTimeCompare(sum[:], b) == 1
		}, nil
	}
}

Domain

Subdomains

Called By

Frequently Asked Questions

What does parseHashedPassword() do?
parseHashedPassword() is a function in the fiber codebase, defined in middleware/basicauth/config.go.
Where is parseHashedPassword() defined?
parseHashedPassword() is defined in middleware/basicauth/config.go at line 162.
What calls parseHashedPassword()?
parseHashedPassword() is called by 1 function(s): configDefault.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free