|
@@ -1717,7 +1717,7 @@ static int handle_turn_refresh(turn_turnserver *server,
|
|
|
}
|
|
|
|
|
|
if(message_integrity) {
|
|
|
- stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,server->shatype);
|
|
|
+ stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,SHATYPE_DEFAULT);
|
|
|
ioa_network_buffer_set_size(nbh,len);
|
|
|
}
|
|
|
|
|
@@ -1980,7 +1980,7 @@ static void tcp_peer_connection_completed_callback(int success, void *arg)
|
|
|
ioa_network_buffer_set_size(nbh,len);
|
|
|
|
|
|
if(need_stun_authentication(server, ss)) {
|
|
|
- stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,server->shatype);
|
|
|
+ stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,SHATYPE_DEFAULT);
|
|
|
ioa_network_buffer_set_size(nbh,len);
|
|
|
}
|
|
|
|
|
@@ -2462,7 +2462,7 @@ int turnserver_accept_tcp_client_data_connection(turn_turnserver *server, tcp_co
|
|
|
|
|
|
if(message_integrity && ss) {
|
|
|
size_t len = ioa_network_buffer_get_size(nbh);
|
|
|
- stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,server->shatype);
|
|
|
+ stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,SHATYPE_DEFAULT);
|
|
|
ioa_network_buffer_set_size(nbh,len);
|
|
|
}
|
|
|
|
|
@@ -3280,49 +3280,10 @@ static int check_stun_auth(turn_turnserver *server,
|
|
|
|
|
|
switch(sarlen) {
|
|
|
case SHA1SIZEBYTES:
|
|
|
- if(server->shatype > SHATYPE_SHA1) {
|
|
|
- *err_code = SHA_TOO_WEAK_ERROR_CODE;
|
|
|
- *reason = SHA_TOO_WEAK_ERROR_REASON;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
- if(server->shatype != SHATYPE_SHA1) {
|
|
|
- *err_code = 401;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
break;
|
|
|
case SHA256SIZEBYTES:
|
|
|
- if(server->shatype > SHATYPE_SHA256) {
|
|
|
- *err_code = SHA_TOO_WEAK_ERROR_CODE;
|
|
|
- *reason = SHA_TOO_WEAK_ERROR_REASON;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
- if(server->shatype != SHATYPE_SHA256) {
|
|
|
- *err_code = 401;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
- break;
|
|
|
case SHA384SIZEBYTES:
|
|
|
- if(server->shatype > SHATYPE_SHA384) {
|
|
|
- *err_code = SHA_TOO_WEAK_ERROR_CODE;
|
|
|
- *reason = SHA_TOO_WEAK_ERROR_REASON;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
- if(server->shatype != SHATYPE_SHA384) {
|
|
|
- *err_code = 401;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
- break;
|
|
|
case SHA512SIZEBYTES:
|
|
|
- if(server->shatype > SHATYPE_SHA512) {
|
|
|
- *err_code = SHA_TOO_WEAK_ERROR_CODE;
|
|
|
- *reason = SHA_TOO_WEAK_ERROR_REASON;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
- if(server->shatype != SHATYPE_SHA512) {
|
|
|
- *err_code = 401;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
- break;
|
|
|
default:
|
|
|
*err_code = 401;
|
|
|
return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
@@ -3446,22 +3407,11 @@ static int check_stun_auth(turn_turnserver *server,
|
|
|
}
|
|
|
|
|
|
/* Check integrity */
|
|
|
- int too_weak = 0;
|
|
|
if(stun_check_message_integrity_by_key_str(server->ct,ioa_network_buffer_data(in_buffer->nbh),
|
|
|
ioa_network_buffer_get_size(in_buffer->nbh),
|
|
|
ss->hmackey,
|
|
|
ss->pwd,
|
|
|
- server->shatype,
|
|
|
- &too_weak)<1) {
|
|
|
-
|
|
|
- if(too_weak) {
|
|
|
- TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR,
|
|
|
- "%s: user %s credentials are incorrect: SHA function is too weak\n",
|
|
|
- __FUNCTION__, (char*)usname);
|
|
|
- *err_code = SHA_TOO_WEAK_ERROR_CODE;
|
|
|
- *reason = SHA_TOO_WEAK_ERROR_REASON;
|
|
|
- return create_challenge_response(ss,tid,resp_constructed,err_code,reason,nbh,method);
|
|
|
- }
|
|
|
+ SHATYPE_DEFAULT)<1) {
|
|
|
|
|
|
if(can_resume) {
|
|
|
(server->userkeycb)(server->id, server->ct, server->oauth, &(ss->oauth), usname, realm, resume_processing_after_username_check, in_buffer, ss->id, postpone_reply);
|
|
@@ -3907,7 +3857,7 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss,
|
|
|
|
|
|
if(message_integrity) {
|
|
|
size_t len = ioa_network_buffer_get_size(nbh);
|
|
|
- stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,server->shatype);
|
|
|
+ stun_attr_add_integrity_str(server->ct,ioa_network_buffer_data(nbh),&len,ss->hmackey,ss->pwd,SHATYPE_DEFAULT);
|
|
|
ioa_network_buffer_set_size(nbh,len);
|
|
|
}
|
|
|
|
|
@@ -4840,7 +4790,7 @@ void init_turn_server(turn_turnserver* server,
|
|
|
vintp no_multicast_peers, vintp no_loopback_peers,
|
|
|
ip_range_list_t* ip_whitelist, ip_range_list_t* ip_blacklist,
|
|
|
send_socket_to_relay_cb send_socket_to_relay,
|
|
|
- vintp secure_stun, SHATYPE shatype, vintp mobility, int server_relay,
|
|
|
+ vintp secure_stun, vintp mobility, int server_relay,
|
|
|
send_turn_session_info_cb send_turn_session_info,
|
|
|
send_https_socket_cb send_https_socket,
|
|
|
allocate_bps_cb allocate_bps_func,
|
|
@@ -4864,7 +4814,6 @@ void init_turn_server(turn_turnserver* server,
|
|
|
server->no_multicast_peers = no_multicast_peers;
|
|
|
server->no_loopback_peers = no_loopback_peers;
|
|
|
server->secure_stun = secure_stun;
|
|
|
- server->shatype = shatype;
|
|
|
server->mobility = mobility;
|
|
|
server->server_relay = server_relay;
|
|
|
server->send_turn_session_info = send_turn_session_info;
|