diff --git a/examples/var/db/turndb b/examples/var/db/turndb
index 3dc7eff..f6316d8 100644
Binary files a/examples/var/db/turndb and b/examples/var/db/turndb differ
diff --git a/src/apps/relay/turn_admin_server.c b/src/apps/relay/turn_admin_server.c
index 916b51e..f9916bf 100644
--- a/src/apps/relay/turn_admin_server.c
+++ b/src/apps/relay/turn_admin_server.c
@@ -1369,6 +1369,7 @@ typedef enum _AS_FORM AS_FORM;
#define HR_ADD_IP_KIND "aipk"
#define HR_UPDATE_PARAMETER "togglepar"
#define HR_ADD_OAUTH_KID "oauth_kid"
+#define HR_ADD_OAUTH_REALM "oauth_realm"
#define HR_ADD_OAUTH_TS "oauth_ts"
#define HR_ADD_OAUTH_LT "oauth_lt"
#define HR_ADD_OAUTH_IKM "oauth_ikm"
@@ -2808,6 +2809,9 @@ static size_t https_print_oauth_keys(struct str_buffer* sb)
str_buffer_append(sb,"
");
str_buffer_append(sb,get_secrets_list_elem(&teas,i));
str_buffer_append(sb," | ");
+ str_buffer_append(sb,"");
+ str_buffer_append(sb,get_secrets_list_elem(&realms,i));
+ str_buffer_append(sb," | ");
{
str_buffer_append(sb," \r\n");
- str_buffer_append(sb,"| ");
+ str_buffer_append(sb," | ");
{
if(!add_ikm) add_ikm = "";
- str_buffer_append(sb," Base64-encoded input keying material (required):
| ");
+ {
+ if(!add_realm) add_realm = "";
+
+ str_buffer_append(sb," Realm (optional): \r\n");
+ }
+
+ str_buffer_append(sb," | ");
+
{
str_buffer_append(sb," Token encryption algorithm (required): \r\n");
@@ -3012,6 +3032,7 @@ static void write_https_oauth_page(ioa_socket_handle s, const char* add_kid, con
str_buffer_append(sb," | Timestamp, secs | ");
str_buffer_append(sb,"Lifetime,secs | ");
str_buffer_append(sb,"Token encryption algorithm | ");
+ str_buffer_append(sb,"Realm | ");
str_buffer_append(sb," | ");
str_buffer_append(sb," \r\n");
@@ -3499,6 +3520,7 @@ static void handle_https(ioa_socket_handle s, ioa_network_buffer_handle nbh)
const char* add_lt = "0";
const char* add_ikm = "";
const char* add_tea = "";
+ const char* add_realm = "";
const char* msg = "";
add_kid = get_http_header_value(hr,HR_ADD_OAUTH_KID,"");
@@ -3507,6 +3529,7 @@ static void handle_https(ioa_socket_handle s, ioa_network_buffer_handle nbh)
add_ts = get_http_header_value(hr,HR_ADD_OAUTH_TS,"");
add_lt = get_http_header_value(hr,HR_ADD_OAUTH_LT,"");
add_tea = get_http_header_value(hr,HR_ADD_OAUTH_TEA,"");
+ add_realm = get_http_header_value(hr,HR_ADD_OAUTH_REALM,"");
int keys_ok = (add_ikm[0] != 0);
if(!keys_ok) {
@@ -3530,6 +3553,8 @@ static void handle_https(ioa_socket_handle s, ioa_network_buffer_handle nbh)
key.timestamp = (u64bits)strtoull(add_ts,NULL,10);
}
+ if(add_realm && add_realm[0]) STRCPY(key.realm,add_realm);
+
STRCPY(key.ikm_key,add_ikm);
STRCPY(key.as_rs_alg,add_tea);
@@ -3543,12 +3568,13 @@ static void handle_https(ioa_socket_handle s, ioa_network_buffer_handle nbh)
add_lt = "0";
add_ikm = "";
add_tea = "";
+ add_realm = "";
}
}
}
}
- write_https_oauth_page(s,add_kid,add_ikm,add_tea,add_ts,add_lt,msg);
+ write_https_oauth_page(s,add_kid,add_ikm,add_tea,add_ts,add_lt,add_realm,msg);
}
break;
}
|