mirror of
https://github.com/morgan9e/UxPlay
synced 2026-04-14 00:04:13 +09:00
cleanup to fix bug/regression in -reg option
This commit is contained in:
@@ -626,11 +626,10 @@ srp_confirm_pair_setup(pairing_session_t *session, pairing_t *pairing,
|
||||
return epk_len;
|
||||
}
|
||||
|
||||
void access_client_session_data(pairing_session_t *session, char **username, char **client_pk64, bool *setup) {
|
||||
void get_pairing_session_client_data(pairing_session_t *session, char **username, char **client_pk64) {
|
||||
int len64 = 4 * (1 + (ED25519_KEY_SIZE / 3)) + 1;
|
||||
setup = &(session->pair_setup);
|
||||
*username = session->username;
|
||||
if (setup) {
|
||||
if (session->pair_setup) {
|
||||
*client_pk64 = (char *) malloc(len64);
|
||||
pk_to_base64(session->client_pk, ED25519_KEY_SIZE, *client_pk64, len64);
|
||||
} else {
|
||||
|
||||
@@ -60,7 +60,7 @@ int srp_validate_proof(pairing_session_t *session, pairing_t *pairing, const uns
|
||||
int len_A, unsigned char *proof, int client_proof_len, int proof_len);
|
||||
int srp_confirm_pair_setup(pairing_session_t *session, pairing_t *pairing, unsigned char *epk,
|
||||
unsigned char *auth_tag);
|
||||
void access_client_session_data(pairing_session_t *session, char **username, char **client_pk, bool *setup);
|
||||
void get_pairing_session_client_data(pairing_session_t *session, char **username, char **client_pk);
|
||||
void ed25519_pk_to_base64(const unsigned char *pk, char **pk64);
|
||||
int pairing_session_make_nonce(pairing_session_t *session, uint64_t *local_time, const char *client_data, unsigned char *nonce, int len);
|
||||
bool pairing_digest_verify(const char *method, const char * authorization, const char *password);
|
||||
|
||||
@@ -690,16 +690,11 @@ raop_handler_setup(raop_conn_t *conn,
|
||||
conn->raop->callbacks.report_client_request(conn->raop->callbacks.cls, deviceID, model, name, &admit_client);
|
||||
}
|
||||
if (admit_client && deviceID && name && conn->raop->callbacks.register_client) {
|
||||
bool pending_registration = false;;
|
||||
char *client_device_id = NULL;
|
||||
char *client_pk = NULL; /* encoded as null-terminated base64 string*/
|
||||
access_client_session_data(conn->session, &client_device_id, &client_pk, &pending_registration);
|
||||
if (pending_registration) {
|
||||
char *client_pk = NULL; /* encoded as null-terminated base64 string, must be freed*/
|
||||
get_pairing_session_client_data(conn->session, &client_device_id, &client_pk);
|
||||
if (client_pk && !strcmp(deviceID, client_device_id)) {
|
||||
conn->raop->callbacks.register_client(conn->raop->callbacks.cls, client_device_id, client_pk, name);
|
||||
}
|
||||
}
|
||||
if (client_pk) {
|
||||
free (client_pk);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1226,7 +1226,7 @@ static void parse_arguments (int argc, char *argv[]) {
|
||||
pairing_register.append(argv[++i]);
|
||||
const char * fn = pairing_register.c_str();
|
||||
if (!file_has_write_access(fn)) {
|
||||
fprintf(stderr, "%s cannot be written to:\noption \"-key <fn>\" must be to a file with write access\n", fn);
|
||||
fprintf(stderr, "%s cannot be written to:\noption \"-reg <fn>\" must be to a file with write access\n", fn);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user