Changeset 1565 for pjproject/trunk/pjsip/src/pjsip/sip_auth_aka.c
- Timestamp:
- Nov 8, 2007 10:19:39 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_auth_aka.c
r1500 r1565 157 157 * 158 158 * The pseudo-random function (PRF) is HMAC-MD5 in this case. 159 * 160 * Hmmm.. but those above doesn't seem to work, and this below does! 159 161 */ 160 pj_hmac_md5_context ctx; 161 pj_uint8_t hmac_digest[16]; 162 char hmac_digest64[24]; 163 int out_len; 164 165 pj_hmac_md5_init(&ctx, (pj_uint8_t*)"http-digest-akav2-password", 26); 166 pj_hmac_md5_update(&ctx, res, PJSIP_AKA_RESLEN); 167 pj_hmac_md5_update(&ctx, ik, PJSIP_AKA_IKLEN); 168 pj_hmac_md5_update(&ctx, ck, PJSIP_AKA_CKLEN); 169 pj_hmac_md5_final(&ctx, hmac_digest); 170 171 out_len = sizeof(hmac_digest64); 172 status = pj_base64_encode(hmac_digest, 16, hmac_digest64, &out_len); 173 PJ_ASSERT_RETURN(status==PJ_SUCCESS, status); 174 175 aka_cred.data.ptr = hmac_digest64; 176 aka_cred.data.slen = out_len; 162 aka_cred.data.slen = PJSIP_AKA_RESLEN + PJSIP_AKA_IKLEN + 163 PJSIP_AKA_CKLEN; 164 aka_cred.data.ptr = pj_pool_alloc(pool, aka_cred.data.slen); 165 166 pj_memcpy(aka_cred.data.ptr + 0, res, PJSIP_AKA_RESLEN); 167 pj_memcpy(aka_cred.data.ptr + PJSIP_AKA_RESLEN, ik, PJSIP_AKA_IKLEN); 168 pj_memcpy(aka_cred.data.ptr + PJSIP_AKA_RESLEN + PJSIP_AKA_IKLEN, 169 ck, PJSIP_AKA_CKLEN); 177 170 178 171 pjsip_auth_create_digest(&auth->response, &chal->nonce,
Note: See TracChangeset
for help on using the changeset viewer.