Ignore:
Timestamp:
Nov 8, 2007 10:19:39 AM (16 years ago)
Author:
bennylp
Message:

Update the digest AKAv2-MD5 implementation, we can now login to OpenIMSCore

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip/src/pjsip/sip_auth_aka.c

    r1500 r1565  
    157157         * 
    158158         * 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! 
    159161         */ 
    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); 
    177170 
    178171        pjsip_auth_create_digest(&auth->response, &chal->nonce,  
Note: See TracChangeset for help on using the changeset viewer.