</para>
<para>
-When SCRAM-SHA-256 is used in PostgreSQL, the server will ignore the username
-that the client sends in the <structname>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 <structname>client-first-message</>. The user name
that was already sent in the startup message is used instead.
<productname>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 <literal>pg_same_as_startup_message</literal> 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 <literal>pg_same_as_startup_message</literal> as the user name in the
<structname>client-first-message</>.
</para>
<varlistentry>
<term>
-SASLInitialresponse (F)
+SASLInitialResponse (F)
</term>
<listitem>
<para>
}
/*
- * 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)
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++;
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;
}
/*
- * 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.
*/
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;
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;
}
/*
- * 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).
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++;
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++;
}
/*
- * 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 *
{
*success = false;
printfPQExpBuffer(errorMessage,
- libpq_gettext("invalid server signature\n"));
+ libpq_gettext("incorrect server signature\n"));
}
*done = true;
state->state = FE_SCRAM_FINISHED;
}
/*
- * 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)
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;
}
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;
}
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;
}