From be736f9f608bbb4e93293b369d592ced76c584ba Mon Sep 17 00:00:00 2001 From: mom040267 Date: Wed, 22 Apr 2015 05:59:31 +0000 Subject: [PATCH] working on oauth --- examples/var/db/turndb | Bin 22528 -> 22528 bytes src/apps/relay/mainrelay.c | 15 ++++++++++++--- src/apps/relay/turn_admin_server.c | 4 ++-- src/apps/relay/userdb.c | 8 ++++---- src/client/ns_turn_msg.c | 3 ++- src/client/ns_turn_msg_defs_new.h | 4 ++-- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/examples/var/db/turndb b/examples/var/db/turndb index bcae52e8ac17faa647f96847e5af652fc3a3b685..ad8e8cbd8a0ab35ba5cacdc7d6da2d87d0461666 100644 GIT binary patch delta 51 zcmV-30L=e@umOOu0gxL3%#j>J0nD*rt``CV`>}!U0s&Q#fl;$i8@?z41MRaR5Xu7q J2(#NqB@hE+69NDL delta 38 wcmV+>0NMY5umOOu0gxL3%8?vH0m`vpt{1U^LIbl<8@?#BArR36v)@M{5F;cGrvLx| diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index aa4ad5db..f42e815a 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -897,7 +897,11 @@ static void set_option(int c, char *value) STRCPY(turn_params.oauth_server_name,value); break; case OAUTH_OPT: - turn_params.oauth = get_bool_value(value); + if(!ENC_ALG_NUM) { + TURN_LOG_FUNC(TURN_LOG_LEVEL_WARNING, "WARNING: option --oauth is not supported; ignored.\n"); + } else { + turn_params.oauth = get_bool_value(value); + } break; case NO_SSLV2_OPT: //deprecated @@ -1638,11 +1642,16 @@ static void print_features(unsigned long mfn) TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "TURN/STUN ALPN is not supported\n"); #endif + if(!ENC_ALG_NUM) { + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "Third-party authorization (oAuth) is not supported\n"); + } else { + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "Third-party authorization (oAuth) supported\n"); #if defined(TURN_NO_GCM) - TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "GCM (AEAD) is not supported\n"); + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "GCM (AEAD) is not supported\n"); #else - TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "GCM (AEAD) supported\n"); + TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "GCM (AEAD) supported\n"); #endif + } TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO, "OpenSSL compile-time version: %s\n",OPENSSL_VERSION_TEXT); diff --git a/src/apps/relay/turn_admin_server.c b/src/apps/relay/turn_admin_server.c index 4ab4dc7d..8373c38e 100644 --- a/src/apps/relay/turn_admin_server.c +++ b/src/apps/relay/turn_admin_server.c @@ -1650,7 +1650,7 @@ static void write_https_home_page(ioa_socket_handle s) str_buffer_append(sb,current_eff_realm()); str_buffer_append(sb,"\">Origins"); - if(is_superuser()) { + if(is_superuser() && ENC_ALG_NUM) { str_buffer_append(sb,"
\r\n"); if(key.ikm_key[0]) { - str_buffer_append(sb,"Base64-encoded Input Keying Material:"); + str_buffer_append(sb,"Base64-encoded key:"); str_buffer_append(sb,key.ikm_key); str_buffer_append(sb,"\r\n"); } diff --git a/src/apps/relay/userdb.c b/src/apps/relay/userdb.c index 26f6cde2..401d05ff 100644 --- a/src/apps/relay/userdb.c +++ b/src/apps/relay/userdb.c @@ -622,10 +622,10 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, u08bits *u return 0; } - const turn_dbdriver_t * dbd = get_dbdriver(); - if (dbd && dbd->get_user_key) { - ret = (*(dbd->get_user_key))(usname, realm, key); - } + const turn_dbdriver_t * dbd = get_dbdriver(); + if (dbd && dbd->get_user_key) { + ret = (*(dbd->get_user_key))(usname, realm, key); + } return ret; } diff --git a/src/client/ns_turn_msg.c b/src/client/ns_turn_msg.c index 490598b1..b76febd6 100644 --- a/src/client/ns_turn_msg.c +++ b/src/client/ns_turn_msg.c @@ -2077,8 +2077,9 @@ int convert_oauth_key_data(const oauth_key_data *oakd0, oauth_key *key, char *er if(!(key->timestamp)) key->timestamp = OAUTH_DEFAULT_TIMESTAMP; if(!(key->lifetime)) key->lifetime = OAUTH_DEFAULT_LIFETIME; - key->as_rs_alg = ENC_ALG_DEFAULT; + key->as_rs_alg = ENC_ALG_ERROR; #if !defined(TURN_NO_GCM) + key->as_rs_alg = ENC_ALG_DEFAULT; if(!strcmp(oakd->as_rs_alg,"A128GCM")) { key->as_rs_alg = A128GCM; key->auth_key_size = 0; diff --git a/src/client/ns_turn_msg_defs_new.h b/src/client/ns_turn_msg_defs_new.h index f58e981b..cc3b4074 100644 --- a/src/client/ns_turn_msg_defs_new.h +++ b/src/client/ns_turn_msg_defs_new.h @@ -72,12 +72,12 @@ typedef enum _SHATYPE SHATYPE; enum _ENC_ALG { ENC_ALG_ERROR=-1, - ENC_ALG_DEFAULT=0, #if !defined(TURN_NO_GCM) + ENC_ALG_DEFAULT=0, A256GCM=ENC_ALG_DEFAULT, A128GCM, #endif - ENG_ALG_NUM + ENC_ALG_NUM }; typedef enum _ENC_ALG ENC_ALG;