public function isValidResponse($ha1)
	{
		if($this->opaque === NULL)
		{
			return false;
		}
		
		if(!SecurityUtil::timingSafeEquals($this->auth->getOpaque(), $this->opaque))
		{
			return false;
		}
		
		$args = [
			$ha1,
			$this->nonce,
			$this->nc,
			$this->cnonce,
			$this->auth->getQualityOfProtection(),
			$this->ha2
		];
		
		return SecurityUtil::timingSafeEquals(md5(vsprintf('%s:%s:%s:%s:%s:%s', $args)), $this->response);
	}
public function isValidResponse($ha1)
	{
		if($this->opaque === NULL)
		{
			return false;
		}
		
		if(!SecurityUtil::timingSafeEquals($this->auth->getOpaque(), $this->opaque))
		{
			return false;
		}
		
		$args = [
			$ha1,
			$this->nonce,
			$this->nc,
			$this->cnonce,
			$this->auth->getQualityOfProtection(),
			$this->ha2
		];
		
		return SecurityUtil::timingSafeEquals(md5(vsprintf('%s:%s:%s:%s:%s:%s', $args)), $this->response);
	}
public function isValidResponse ( $ ha1 ) { if ( $ this -> opaque === NULL ) { return false ; } if ( ! SecurityUtil :: timingSafeEquals ( $ this -> auth -> getOpaque ( ) , $ this -> opaque ) ) { return false ; } $ args = [ $ ha1 , $ this -> nonce , $ this -> nc , $ this -> cnonce , $ this -> auth -> getQualityOfProtection ( ) , $ this -> ha2 ] ; return SecurityUtil :: timingSafeEquals ( md5 ( vsprintf ( '%s:%s:%s:%s:%s:%s' , $ args ) ) , $ this -> response ) ; }
Check if the response is valid using the given HA1 value.

@param string $ha1
@return boolean
Check if the response is valid using the given HA1 value .