def _check_params(self, username, realm, cnonce, digest_uri, response_val,<EOL>authzid, nonce_count):
<EOL>if not cnonce:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>return Failure("<STR_LIT>")<EOL><DEDENT>if not response_val:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>return Failure("<STR_LIT>")<EOL><DEDENT>if not username:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>return Failure("<STR_LIT>")<EOL><DEDENT>if not digest_uri:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>return Failure("<STR_LIT>")<EOL><DEDENT>if not nonce_count:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>return Failure("<STR_LIT>")<EOL><DEDENT>return self._make_final_challenge(username, realm, cnonce, digest_uri,<EOL>response_val, authzid, nonce_count)<EOL>
Check parameters of a client reponse and pass them to further
        processing.

        :Parameters:
            - `username`: user name.
            - `realm`: realm.
            - `cnonce`: cnonce value.
            - `digest_uri`: digest-uri value.
            - `response_val`: response value computed by the client.
            - `authzid`: authorization id.
            - `nonce_count`: nonce count value.
        :Types:
            - `username`: `bytes`
            - `realm`: `bytes`
            - `cnonce`: `bytes`
            - `digest_uri`: `bytes`
            - `response_val`: `bytes`
            - `authzid`: `bytes`
            - `nonce_count`: `bytes`

        :return: a challenge, a success indicator or a failure indicator.
        :returntype: `sasl.Challenge`, `sasl.Success` or `sasl.Failure`