Ignore:
Timestamp:
May 15, 2007 10:42:56 AM (12 years ago)
Author:
bennylp
Message:

Fixed several STUN bugs: USERNAME, REALM etc are not allowed in the response, retransmission timer calculation bug, etc.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjnath/include/pjnath/stun_auth.h

    r1126 r1275  
    263263 
    264264/** 
    265  * Verify credential in the STUN message. Note that before calling this 
     265 * Verify credential in the STUN request. Note that before calling this 
    266266 * function, application must have checked that the message contains 
    267267 * PJ_STUN_ATTR_MESSAGE_INTEGRITY attribute by calling pj_stun_msg_find_attr() 
     
    287287 *                      \a p_response. 
    288288 */ 
    289 PJ_DECL(pj_status_t) pj_stun_verify_credential(const pj_uint8_t *pkt, 
    290                                                unsigned pkt_len, 
    291                                                const pj_stun_msg *msg, 
    292                                                pj_stun_auth_cred *cred, 
    293                                                pj_pool_t *pool, 
    294                                                pj_stun_msg **p_response); 
    295  
    296  
     289PJ_DECL(pj_status_t) pj_stun_authenticate_request(const pj_uint8_t *pkt, 
     290                                                  unsigned pkt_len, 
     291                                                  const pj_stun_msg *msg, 
     292                                                  pj_stun_auth_cred *cred, 
     293                                                  pj_pool_t *pool, 
     294                                                  pj_stun_msg **p_response); 
     295 
     296 
     297/** 
     298 * Verify credential in the STUN response. Note that before calling this 
     299 * function, application must have checked that the message contains 
     300 * PJ_STUN_ATTR_MESSAGE_INTEGRITY attribute by calling pj_stun_msg_find_attr() 
     301 * function, because otherwise this function will report authentication 
     302 * failure. 
     303 * 
     304 * @param pkt           The original packet which has been parsed into 
     305 *                      the message. This packet MUST NOT have been modified 
     306 *                      after the parsing. 
     307 * @param pkt_len       The length of the packet. 
     308 * @param msg           The parsed message to be verified. 
     309 * @param key           Authentication key to calculate MESSAGE-INTEGRITY 
     310 *                      value. Application can create this key by using 
     311 *                      #pj_stun_create_key() function. 
     312 * 
     313 * @return              PJ_SUCCESS if credential is verified successfully. 
     314 */ 
     315PJ_DECL(pj_status_t) pj_stun_authenticate_response(const pj_uint8_t *pkt, 
     316                                                   unsigned pkt_len, 
     317                                                   const pj_stun_msg *msg, 
     318                                                   const pj_str_t *key); 
    297319 
    298320 
     
    302324 
    303325 
    304 /** 
    305  * Calculate HMAC-SHA1 key for long term credential, by getting 
    306  * MD5 digest of username, realm, and password.  
    307  * 
    308  * @param digest    The buffer for the digest. 
    309  * @param realm     The realm of the credential, if long term credential 
    310  *                  is to be used. 
    311  * @param username  The username. 
    312  * @param passwd    The clear text password. 
    313  */ 
    314 void pj_stun_calc_md5_key(pj_uint8_t digest[16], 
    315                           const pj_str_t *realm, 
    316                           const pj_str_t *username, 
    317                           const pj_str_t *passwd); 
    318  
    319  
    320326PJ_END_DECL 
    321327 
Note: See TracChangeset for help on using the changeset viewer.