From 85f4d6393da2ed2ad3ec4912a60a918348784c2b Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Wed, 23 Aug 2017 12:01:43 -0400 Subject: [PATCH] Tweak some SCRAM error messages and code comments Clarify/correct some error messages, fix up some code comments that confused SASL and SCRAM, and other minor fixes. No changes in functionality. --- doc/src/sgml/protocol.sgml | 12 ++++++------ src/backend/libpq/auth-scram.c | 22 +++++++++++----------- src/interfaces/libpq/fe-auth-scram.c | 10 +++++----- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/doc/src/sgml/protocol.sgml b/doc/src/sgml/protocol.sgml index c8b083c29c..7c012f59a3 100644 --- a/doc/src/sgml/protocol.sgml +++ b/doc/src/sgml/protocol.sgml @@ -1405,13 +1405,13 @@ ErrorMessage. -When SCRAM-SHA-256 is used in PostgreSQL, the server will ignore the username -that the client sends in the client-first-message. The username +When SCRAM-SHA-256 is used in PostgreSQL, the server will ignore the user name +that the client sends in the client-first-message. The user name that was already sent in the startup message is used instead. PostgreSQL supports multiple character encodings, while SCRAM -dictates UTF-8 to be used for the username, so it might be impossible to -represent the PostgreSQL username in UTF-8. To avoid confusion, the client -should use pg_same_as_startup_message as the username in the +dictates UTF-8 to be used for the user name, so it might be impossible to +represent the PostgreSQL user name in UTF-8. To avoid confusion, the client +should use pg_same_as_startup_message as the user name in the client-first-message. @@ -5274,7 +5274,7 @@ RowDescription (B) -SASLInitialresponse (F) +SASLInitialResponse (F) diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c index 0b69f106f1..9161c885e1 100644 --- a/src/backend/libpq/auth-scram.c +++ b/src/backend/libpq/auth-scram.c @@ -573,7 +573,7 @@ mock_scram_verifier(const char *username, int *iterations, char **salt, } /* - * Read the value in a given SASL exchange message for given attribute. + * Read the value in a given SCRAM exchange message for given attribute. */ static char * read_attr_value(char **input, char attr) @@ -585,7 +585,7 @@ read_attr_value(char **input, char attr) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("malformed SCRAM message"), - errdetail("Expected attribute '%c' but found %s.", + errdetail("Expected attribute \"%c\" but found \"%s\".", attr, sanitize_char(*begin)))); begin++; @@ -593,7 +593,7 @@ read_attr_value(char **input, char attr) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("malformed SCRAM message"), - errdetail("Expected character = for attribute %c.", attr))); + errdetail("Expected character \"=\" for attribute \"%c\".", attr))); begin++; end = begin; @@ -652,7 +652,7 @@ sanitize_char(char c) } /* - * Read the next attribute and value in a SASL exchange message. + * Read the next attribute and value in a SCRAM exchange message. * * Returns NULL if there is attribute. */ @@ -674,7 +674,7 @@ read_any_attr(char **input, char *attr_p) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("malformed SCRAM message"), - errdetail("Attribute expected, but found invalid character %s.", + errdetail("Attribute expected, but found invalid character \"%s\".", sanitize_char(attr)))); if (attr_p) *attr_p = attr; @@ -684,7 +684,7 @@ read_any_attr(char **input, char *attr_p) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("malformed SCRAM message"), - errdetail("Expected character = for attribute %c.", attr))); + errdetail("Expected character \"=\" for attribute \"%c\".", attr))); begin++; end = begin; @@ -703,7 +703,7 @@ read_any_attr(char **input, char *attr_p) } /* - * Read and parse the first message from client in the context of a SASL + * Read and parse the first message from client in the context of a SCRAM * authentication exchange message. * * At this stage, any errors will be reported directly with ereport(ERROR). @@ -802,14 +802,14 @@ read_client_first_message(scram_state *state, char *input) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("malformed SCRAM message"), - errdetail("Unexpected channel-binding flag %s.", + errdetail("Unexpected channel-binding flag \"%s\".", sanitize_char(*input)))); } if (*input != ',') ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("malformed SCRAM message"), - errdetail("Comma expected, but found character %s.", + errdetail("Comma expected, but found character \"%s\".", sanitize_char(*input)))); input++; @@ -824,7 +824,7 @@ read_client_first_message(scram_state *state, char *input) ereport(ERROR, (errcode(ERRCODE_PROTOCOL_VIOLATION), errmsg("malformed SCRAM message"), - errdetail("Unexpected attribute %s in client-first-message.", + errdetail("Unexpected attribute \"%s\" in client-first-message.", sanitize_char(*input)))); input++; @@ -929,7 +929,7 @@ verify_client_proof(scram_state *state) } /* - * Build the first server-side message sent to the client in a SASL + * Build the first server-side message sent to the client in a SCRAM * communication exchange. */ static char * diff --git a/src/interfaces/libpq/fe-auth-scram.c b/src/interfaces/libpq/fe-auth-scram.c index d1c7037101..edfd42df85 100644 --- a/src/interfaces/libpq/fe-auth-scram.c +++ b/src/interfaces/libpq/fe-auth-scram.c @@ -228,7 +228,7 @@ pg_fe_scram_exchange(void *opaq, char *input, int inputlen, { *success = false; printfPQExpBuffer(errorMessage, - libpq_gettext("invalid server signature\n")); + libpq_gettext("incorrect server signature\n")); } *done = true; state->state = FE_SCRAM_FINISHED; @@ -249,7 +249,7 @@ error: } /* - * Read value for an attribute part of a SASL message. + * Read value for an attribute part of a SCRAM message. */ static char * read_attr_value(char **input, char attr, PQExpBuffer errorMessage) @@ -260,7 +260,7 @@ read_attr_value(char **input, char attr, PQExpBuffer errorMessage) if (*begin != attr) { printfPQExpBuffer(errorMessage, - libpq_gettext("malformed SCRAM message (%c expected)\n"), + libpq_gettext("malformed SCRAM message (attribute \"%c\" expected)\n"), attr); return NULL; } @@ -269,7 +269,7 @@ read_attr_value(char **input, char attr, PQExpBuffer errorMessage) if (*begin != '=') { printfPQExpBuffer(errorMessage, - libpq_gettext("malformed SCRAM message (expected = in attr '%c')\n"), + libpq_gettext("malformed SCRAM message (expected character \"=\" for attribute \"%c\")\n"), attr); return NULL; } @@ -508,7 +508,7 @@ read_server_final_message(fe_scram_state *state, char *input, char *errmsg = read_attr_value(&input, 'e', errormessage); printfPQExpBuffer(errormessage, - libpq_gettext("error received from server in SASL exchange: %s\n"), + libpq_gettext("error received from server in SCRAM exchange: %s\n"), errmsg); return false; } -- 2.40.0