package postgresql import "fmt" // passwordAuthentication determines whether to send passwords in plaintext (password) or hashed (scram-sha-256). type passwordAuthentication string var ( // passwordAuthenticationPassword is the default. If set, passwords will be sent to PostgreSQL in plain text. passwordAuthenticationPassword passwordAuthentication = "password" passwordAuthenticationSCRAMSHA256 passwordAuthentication = "scram-sha-256" ) var passwordAuthentications = map[passwordAuthentication]struct{}{ passwordAuthenticationSCRAMSHA256: {}, passwordAuthenticationPassword: {}, } func parsePasswordAuthentication(s string) (passwordAuthentication, error) { if _, ok := passwordAuthentications[passwordAuthentication(s)]; !ok { return "", fmt.Errorf("'%s' is not a valid password authentication type", s) } return passwordAuthentication(s), nil }