mom040267 11 лет назад
Родитель
Сommit
e8e571778a
2 измененных файлов с 22 добавлено и 3 удалено
  1. 3 3
      src/apps/relay/dbdrivers/dbdriver.c
  2. 19 0
      src/apps/relay/userdb.c

+ 3 - 3
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;

+ 19 - 0
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");
 	}
 }