diff --git a/src/apps/relay/dbdrivers/dbdriver.c b/src/apps/relay/dbdrivers/dbdriver.c index 9344ecc..e3b3b99 100644 --- a/src/apps/relay/dbdrivers/dbdriver.c +++ b/src/apps/relay/dbdrivers/dbdriver.c @@ -107,7 +107,7 @@ void convert_oauth_key_data_raw(const oauth_key_data_raw *raw, oauth_key_data *o if(raw->ikm_key[0]) { size_t ikm_key_size = 0; - char *ikm_key = base64_encode((const unsigned char *)(raw->ikm_key),strlen(raw->ikm_key),&ikm_key_size); + char *ikm_key = (char*)base64_decode(raw->ikm_key,strlen(raw->ikm_key),&ikm_key_size); if(ikm_key) { ns_bcopy(ikm_key,oakd->ikm_key,ikm_key_size); oakd->ikm_key_size = ikm_key_size; @@ -117,7 +117,7 @@ void convert_oauth_key_data_raw(const oauth_key_data_raw *raw, oauth_key_data *o if(raw->as_rs_key[0]) { size_t as_rs_key_size = 0; - char *as_rs_key = base64_encode((const unsigned char *)(raw->as_rs_key),strlen(raw->as_rs_key),&as_rs_key_size); + char *as_rs_key = (char*)base64_decode(raw->as_rs_key,strlen(raw->as_rs_key),&as_rs_key_size); if(as_rs_key) { ns_bcopy(as_rs_key,oakd->as_rs_key,as_rs_key_size); oakd->as_rs_key_size = as_rs_key_size; @@ -127,7 +127,7 @@ void convert_oauth_key_data_raw(const oauth_key_data_raw *raw, oauth_key_data *o if(raw->auth_key[0]) { size_t auth_key_size = 0; - char *auth_key = base64_encode((const unsigned char *)(raw->auth_key),strlen(raw->auth_key),&auth_key_size); + char *auth_key = (char*)base64_decode(raw->auth_key,strlen(raw->auth_key),&auth_key_size); if(auth_key) { ns_bcopy(auth_key,oakd->auth_key,auth_key_size); oakd->auth_key_size = auth_key_size; diff --git a/src/apps/relay/userdb.c b/src/apps/relay/userdb.c index 540b397..6763bca 100644 --- a/src/apps/relay/userdb.c +++ b/src/apps/relay/userdb.c @@ -1145,6 +1145,25 @@ void run_db_test(void) printf("DB TEST 5:\n"); dbd->del_oauth_key((const u08bits*)"kid"); dbd->list_oauth_keys(); + + printf("DB TEST 6:\n"); + + dbd->get_oauth_key((const u08bits*)"north",key); + + oauth_key_data oakd; + convert_oauth_key_data_raw(key, &oakd); + printf(" kid=%s, ikm_key=%s, timestamp=%llu, lifetime=%lu, hkdf_hash_func=%s, as_rs_alg=%s, as_rs_key_size=%d, auth_alg=%s, auth_key_size=%d\n", + oakd.kid, oakd.ikm_key, (unsigned long long)oakd.timestamp, (unsigned long)oakd.lifetime, oakd.hkdf_hash_func, + oakd.as_rs_alg, (int)oakd.as_rs_key_size, oakd.auth_alg, (int)oakd.auth_key_size); + + oauth_key oak; + char err_msg[1025]; + err_msg[0]=0; + if(convert_oauth_key_data(&oakd,&oak,err_msg,sizeof(err_msg)-1)<0) { + printf(" ERROR: %s\n",err_msg); + } else { + printf(" OK!\n"); + } printf("DB TEST END\n"); } }