src/main/java/org/jivesoftware/smack/sasl/SASLMechanism.java
public void challengeReceived(String challenge) throws IOException {
        byte response[];
        if (challenge != null) {
            response = sc
                    .evaluateChallenge(StringUtils.decodeBase64(challenge));
        } else {
            response = sc.evaluateChallenge(new byte[0]);
        }

        Packet responseStanza;
        if (response == null) {
            responseStanza = new Response();
        } else {
            responseStanza = new Response(StringUtils.encodeBase64(response,
                    false));
        }

        // Send the authentication to the server
        getSASLAuthentication().send(responseStanza);
    }
public void challengeReceived(String challenge) throws IOException {
        byte response[];
        if (challenge != null) {
            response = sc
                    .evaluateChallenge(StringUtils.decodeBase64(challenge));
        } else {
            response = sc.evaluateChallenge(new byte[0]);
        }

        Packet responseStanza;
        if (response == null) {
            responseStanza = new Response();
        } else {
            responseStanza = new Response(StringUtils.encodeBase64(response,
                    false));
        }

        // Send the authentication to the server
        getSASLAuthentication().send(responseStanza);
    }
The server is challenging the SASL mechanism for the stanza he just sent.
Send a response to the server's challenge.

@param challenge
a base64 encoded string representing the challenge.
@throws IOException
if an exception sending the response occurs.