From fe19f4dee088e0f2a0fa630e39f2d6b778c71491 Mon Sep 17 00:00:00 2001 From: mom040267 Date: Thu, 28 Aug 2014 07:49:33 +0000 Subject: [PATCH] oauth db fixes --- .../secure_relay_with_db_mysql_ssl.sh | 2 +- src/apps/relay/dbdrivers/dbd_mongo.c | 4 +-- src/apps/relay/userdb.c | 36 +++++++++++++++++++ 3 files changed, 39 insertions(+), 3 deletions(-) diff --git a/examples/scripts/longtermsecuredb/secure_relay_with_db_mysql_ssl.sh b/examples/scripts/longtermsecuredb/secure_relay_with_db_mysql_ssl.sh index c107168..4cd1725 100755 --- a/examples/scripts/longtermsecuredb/secure_relay_with_db_mysql_ssl.sh +++ b/examples/scripts/longtermsecuredb/secure_relay_with_db_mysql_ssl.sh @@ -32,4 +32,4 @@ fi export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:/usr/local/lib/:/usr/local/mysql/lib/ -PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 -r north.gov --mysql-userdb="host=localhost dbname=turn user=turn password=turn cipher=DHE-RSA-AES256-SHA connect_timeout=30" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 $@ +PATH="./bin/:../bin/:../../bin/:${PATH}" turnserver -v --syslog -a -L 127.0.0.1 -L ::1 -E 127.0.0.1 -E ::1 --max-bps=3000000 -f -m 3 --min-port=32355 --max-port=65535 -r north.gov --mysql-userdb="host=localhost dbname=coturn user=turn password=turn cipher=DHE-RSA-AES256-SHA connect_timeout=30" --cert=turn_server_cert.pem --pkey=turn_server_pkey.pem --log-file=stdout --cipher-list=ALL:SSLv2 $@ diff --git a/src/apps/relay/dbdrivers/dbd_mongo.c b/src/apps/relay/dbdrivers/dbd_mongo.c index 65a0acd..12ac65f 100644 --- a/src/apps/relay/dbdrivers/dbd_mongo.c +++ b/src/apps/relay/dbdrivers/dbd_mongo.c @@ -244,7 +244,7 @@ static int mongo_get_oauth_key(const u08bits *kid, oauth_key_data_raw *key) { bson_t query; bson_init(&query); - BSON_APPEND_UTF8(&query, "kid", (const char *)key->kid); + BSON_APPEND_UTF8(&query, "kid", (const char *)kid); bson_t fields; bson_init(&fields); @@ -398,7 +398,7 @@ static int mongo_set_oauth_key(oauth_key_data_raw *key) { bson_t doc; bson_init(&doc); - BSON_APPEND_UTF8(&query, "kid", (const char *)key->kid); + BSON_APPEND_UTF8(&doc, "kid", (const char *)key->kid); BSON_APPEND_UTF8(&doc, "as_rs_alg", (const char *)key->as_rs_alg); BSON_APPEND_UTF8(&doc, "as_rs_key", (const char *)key->as_rs_key); BSON_APPEND_UTF8(&doc, "auth_alg", (const char *)key->auth_alg); diff --git a/src/apps/relay/userdb.c b/src/apps/relay/userdb.c index 5bc6d0c..540b397 100644 --- a/src/apps/relay/userdb.c +++ b/src/apps/relay/userdb.c @@ -1109,7 +1109,43 @@ void run_db_test(void) { turn_dbdriver_t * dbd = get_dbdriver(); if (dbd) { + + printf("DB TEST 1:\n"); dbd->list_oauth_keys(); + + printf("DB TEST 2:\n"); + oauth_key_data_raw key_; + oauth_key_data_raw *key=&key_; + dbd->get_oauth_key((const u08bits*)"north",key); + printf(" kid=%s, ikm_key=%s, timestamp=%llu, lifetime=%lu, hkdf_hash_func=%s, as_rs_alg=%s, as_rs_key=%s, auth_alg=%s, auth_key=%s\n", + key->kid, key->ikm_key, (unsigned long long)key->timestamp, (unsigned long)key->lifetime, key->hkdf_hash_func, + key->as_rs_alg, key->as_rs_key, key->auth_alg, key->auth_key); + + printf("DB TEST 3:\n"); + + STRCPY(key->as_rs_alg,"as_rs_alg"); + STRCPY(key->as_rs_key,"as_rs_key"); + STRCPY(key->auth_alg,"auth_alg"); + STRCPY(key->auth_key,"auth_key"); + STRCPY(key->hkdf_hash_func,"hkdf"); + STRCPY(key->ikm_key,"ikm_key"); + STRCPY(key->kid,"kid"); + key->timestamp = 123; + key->lifetime = 456; + dbd->del_oauth_key((const u08bits*)"kid"); + dbd->set_oauth_key(key); + dbd->list_oauth_keys(); + + printf("DB TEST 4:\n"); + dbd->get_oauth_key((const u08bits*)"kid",key); + printf(" kid=%s, ikm_key=%s, timestamp=%llu, lifetime=%lu, hkdf_hash_func=%s, as_rs_alg=%s, as_rs_key=%s, auth_alg=%s, auth_key=%s\n", + key->kid, key->ikm_key, (unsigned long long)key->timestamp, (unsigned long)key->lifetime, key->hkdf_hash_func, + key->as_rs_alg, key->as_rs_key, key->auth_alg, key->auth_key); + + printf("DB TEST 5:\n"); + dbd->del_oauth_key((const u08bits*)"kid"); + dbd->list_oauth_keys(); + printf("DB TEST END\n"); } }