From 87f1b413824e63129394a1e5784c78cf032f321a Mon Sep 17 00:00:00 2001 From: mom040267 Date: Fri, 26 Sep 2014 07:02:20 +0000 Subject: [PATCH] oauth --- ChangeLog | 1 - src/apps/uclient/uclient.c | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 34e0a330..dfe5470f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,7 +2,6 @@ Version 4.2.1.1 'Monza': - oAuth security implementation: TODO: - - clients's check_integrity method(); - security dialog; - authorization process - test; - access-token must be cached and included only in ALLOCATE and REFRESH; diff --git a/src/apps/uclient/uclient.c b/src/apps/uclient/uclient.c index 7292e55f..e40a8061 100644 --- a/src/apps/uclient/uclient.c +++ b/src/apps/uclient/uclient.c @@ -1463,12 +1463,27 @@ int add_integrity(app_ur_conn_info *clnet_info, stun_buffer *message) int check_integrity(app_ur_conn_info *clnet_info, stun_buffer *message) { SHATYPE sht = clnet_info->shatype; - if(stun_check_message_integrity_str(get_turn_credentials_type(), + + if(oauth && clnet_info->oauth) { + + hmackey_t key; + st_password_t pwd; + + ns_bcopy(otoken.enc_block.mac_key,key,otoken.enc_block.key_length); + + return stun_check_message_integrity_by_key_str(get_turn_credentials_type(), + message->buf, (size_t)(message->len), key, pwd, sht, NULL); + + } else { + + if(stun_check_message_integrity_str(get_turn_credentials_type(), message->buf, (size_t)(message->len), g_uname, clnet_info->realm, g_upwd, sht)<1) { - TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO,"Wrong integrity in a message received from server\n"); - return -1; + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO,"Wrong integrity in a message received from server\n"); + return -1; + } } + return 0; }