- Модуль: dav
- Путь к файлу: ~/bitrix/modules/dav/classes/general/exchangeclient.php
- Класс: CDavExchangeClient
- Вызов: CDavExchangeClient::AuthenticateDigest
private function AuthenticateDigest($arDigestRequest, $request, $response, $verb = "Authorization")
{
// qop="auth",algorithm=MD5-sess,nonce="+Upgraded+v1fdcb1e18d2cc7a72322c81c0d8d2a3c332f7908ef0dfcb01aa9fb63930eadf5722dc8f6ce7b82912353531b18360cd62382a6c2433939d3f",charset=utf-8,realm="Digest"
$cn = md5(uniqid());
$a1 = md5($this->userName.':'.$arDigestRequest["realm"].':'.$this->userPassword).":".$arDigestRequest["nonce"].":".$cn;
$a2 = $request->GetMethod().":".$request->GetPath();
$hash = md5(md5($a1).":".$arDigestRequest["nonce"].":00000001:".$cn.":".$arDigestRequest["qop"].":".md5($a2));
$request->SetHeader(
$verb,
sprintf(
"Digest username="%s",realm="%s",nonce="%s",uri="%s",cnonce="%s",nc=00000001,algorithm=%s,response="%s",qop="%s",charset=utf-8",
$this->userName,
$arDigestRequest["realm"],
$arDigestRequest["nonce"],
$request->GetPath(),
$cn,
$arDigestRequest["algorithm"],
$hash,
$arDigestRequest["qop"]
)
);
return $request;
}