Bug in trunk/pjsip/src/pjsip/sip_auth_client.c

A
arai9232@kdp.biglobe.ne.jp
Sat, Apr 7, 2018 12:17 AM

Hello All,

I think in function respond_digest (), operation for AKAv2 is missing.
To add operation for AKAv2, the beginning part of this function should be as follow:

static pj_status_t respond_digest( pj_pool_t *pool,
pjsip_digest_credential *cred,
const pjsip_digest_challenge *chal,
const pj_str_t *uri,
const pjsip_cred_info *cred_info,
const pj_str_t *cnonce,
pj_uint32_t nc,
const pj_str_t method)
{
const pj_str_t pjsip_AKAv1_MD5_STR = { "AKAv1-MD5", 9 };
const pj_str_t pjsip_AKAv2_MD5_STR = { "AKAv2-MD5", 9 };
/
Check algorithm is supported. We support MD5 and AKAv1-MD5. */
if (chal->algorithm.slen==0 ||
(pj_stricmp(&chal->algorithm, &pjsip_MD5_STR)==0 ||
pj_stricmp(&chal->algorithm, &pjsip_AKAv1_MD5_STR)==0 ||
pj_stricmp(&chal->algorithm, &pjsip_AKAv2_MD5_STR)==0))
{
;
}

Best Regards,
Kunimitsu Arai

Hello All, I think in function respond_digest (), operation for AKAv2 is missing. To add operation for AKAv2, the beginning part of this function should be as follow: static pj_status_t respond_digest( pj_pool_t *pool, pjsip_digest_credential *cred, const pjsip_digest_challenge *chal, const pj_str_t *uri, const pjsip_cred_info *cred_info, const pj_str_t *cnonce, pj_uint32_t nc, const pj_str_t *method) { const pj_str_t pjsip_AKAv1_MD5_STR = { "AKAv1-MD5", 9 }; const pj_str_t pjsip_AKAv2_MD5_STR = { "AKAv2-MD5", 9 }; /* Check algorithm is supported. We support MD5 and AKAv1-MD5. */ if (chal->algorithm.slen==0 || (pj_stricmp(&chal->algorithm, &pjsip_MD5_STR)==0 || pj_stricmp(&chal->algorithm, &pjsip_AKAv1_MD5_STR)==0 || pj_stricmp(&chal->algorithm, &pjsip_AKAv2_MD5_STR)==0)) { ; } Best Regards, Kunimitsu Arai