function CramMd5Authenticator::getResponse
Generates a CRAM-MD5 response from a server challenge.
1 call to CramMd5Authenticator::getResponse()
- CramMd5Authenticator::authenticate in vendor/
symfony/ mailer/ Transport/ Smtp/ Auth/ CramMd5Authenticator.php
File
-
vendor/
symfony/ mailer/ Transport/ Smtp/ Auth/ CramMd5Authenticator.php, line 43
Class
- CramMd5Authenticator
- Handles CRAM-MD5 authentication.
Namespace
Symfony\Component\Mailer\Transport\Smtp\AuthCode
private function getResponse(string $secret, string $challenge) : string {
if (!$secret) {
throw new InvalidArgumentException('A non-empty secret is required.');
}
if (\strlen($secret) > 64) {
$secret = pack('H32', md5($secret));
}
if (\strlen($secret) < 64) {
$secret = str_pad($secret, 64, \chr(0));
}
$kipad = substr($secret, 0, 64) ^ str_repeat(\chr(0x36), 64);
$kopad = substr($secret, 0, 64) ^ str_repeat(\chr(0x5c), 64);
$inner = pack('H32', md5($kipad . $challenge));
return md5($kopad . $inner);
}