@stream_element_handler(CHALLENGE_TAG, "<STR_LIT>")<EOL><INDENT>def _process_sasl_challenge(self, stream, element):<DEDENT>
if not self.authenticator:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>return False<EOL><DEDENT>content = element.text.encode("<STR_LIT>")<EOL>ret = self.authenticator.challenge(a2b_base64(content))<EOL>if isinstance(ret, sasl.Response):<EOL><INDENT>element = ElementTree.Element(RESPONSE_TAG)<EOL>element.text = ret.encode()<EOL><DEDENT>else:<EOL><INDENT>element = ElementTree.Element(ABORT_TAG)<EOL><DEDENT>stream.write_element(element)<EOL>if isinstance(ret, sasl.Failure):<EOL><INDENT>stream.disconnect()<EOL>raise SASLAuthenticationFailed("<STR_LIT>")<EOL><DEDENT>return True<EOL>
Process incoming <sasl:challenge/> element.

        [initiating entity only]