executeCommand("AUTH CRAM-MD5\r\n", [334]); $challenge = base64_decode(substr($challenge, 4)); $message = base64_encode( $username.' '.$this->getResponse($password, $challenge) ); $agent->executeCommand(sprintf("%s\r\n", $message), [235]); return true; } catch (Swift_TransportException $e) { $agent->executeCommand("RSET\r\n", [250]); throw $e; } } /** * Generate a CRAM-MD5 response from a server challenge. * * @param string $secret * @param string $challenge * * @return string */ private function getResponse($secret, $challenge) { if (strlen($secret) > 64) { $secret = pack('H32', md5($secret)); } if (strlen($secret) < 64) { $secret = str_pad($secret, 64, chr(0)); } $k_ipad = substr($secret, 0, 64) ^ str_repeat(chr(0x36), 64); $k_opad = substr($secret, 0, 64) ^ str_repeat(chr(0x5C), 64); $inner = pack('H32', md5($k_ipad.$challenge)); $digest = md5($k_opad.$inner); return $digest; } } __halt_compiler();----SIGNATURE:----deyZKT4aj3uVl1zueBRc0Lc5O3y8vfzyyOYoAhhkRD6S8noARTWPuXqVFui8sQu9lIfLUUplRm3ovFoMDPnEgzofB/4Y5FQJsKaeOyBi6OOqX7f5ljiVyMHO8nyna1SlahiBC6Y9LG9zos3WGGQ3LwKqNS46UHnDHTVx+tgtfCR57dEtcx5/Yc75Pho8HfPlvPBh9nxoKwdI0rJinMC2A4njMS6aEjMoZ2a/AJT+uDx2qNWjD9qOhtfdJP73BE/j3orjEQ7ZIuiC/iU2i1VmSGmhonNUbHmeeJo+OdngbpCsxKEY0H9jxj9BeAZcDp7pz//yQeYWUdYO8u3AuYW7r2CZGQKPP0xbBEvDO2i344FQXgr8NlieRwH3Un+0OV9MMa6kO82Wb0qnAtq/pEjfhHxBxoKiukUubayAAEe9go+0mnSk8/N/C50vf7S7eUeAucHxeJ0xwUZhk6iMlSkOYwqM79o3F0F5wE3v7s+1SWunXw24H3WEMUGT48xu3RBw3EcePk8TaQGNvD7dClr/8Km78ZrUPkJHHAtkDtcToNwkkgPI4Yx+AGTg8tOYTeuD0jZ+p0vB8TehnCO1olsF5KPOXRLNesAsOygg9HNYymQQ+cm/xSA6qlDPHeF30rFemuSqrH7g5YNK6vxP0PCNjKTqNyCfC00xpoOk2PBK+B8=----ATTACHMENT:----Njk0MDYxODg4OTgyNDcxMCA0NzMwMDUxOTYzOTU1NTg5IDUxODY5MDgzNjAyOTQ0Mzk=