diff --git a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java index 309c25527..1c0a8370a 100644 --- a/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java +++ b/smack-sasl-provided/src/main/java/org/jivesoftware/smack/sasl/provided/SASLDigestMD5Mechanism.java @@ -104,6 +104,13 @@ public class SASLDigestMD5Mechanism extends SASLMechanism { String[] keyValue = part.split("="); assert (keyValue.length == 2); String key = keyValue[0]; + // RFC 2831 ยง 7.1 about the formating of the digest-challenge: + // "The full form is "#element" indicating at least and + // at most elements, each separated by one or more commas + // (",") and OPTIONAL linear white space (LWS)." + // Which means the key value may be preceded by whitespace, + // which is what we remove: *Only the preceding whitespace*. + key = key.replaceFirst("^\\s+", ""); String value = keyValue[1]; if ("nonce".equals(key)) { if (nonce != null) {