mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-21 05:53:12 -07:00
Fix Feedback State Encryption
This commit is contained in:
parent
b0e0cbec0b
commit
ebcf72fb10
3 changed files with 9 additions and 6 deletions
|
@ -129,9 +129,9 @@ void StreamSession::SendFeedbackState()
|
||||||
return;
|
return;
|
||||||
ChiakiControllerState state;
|
ChiakiControllerState state;
|
||||||
state.left_x = static_cast<int16_t>(gamepad->axisLeftX() * 0x7fff);
|
state.left_x = static_cast<int16_t>(gamepad->axisLeftX() * 0x7fff);
|
||||||
state.left_y = static_cast<int16_t>(gamepad->axisLeftX() * 0x7fff);
|
state.left_y = static_cast<int16_t>(gamepad->axisLeftY() * 0x7fff);
|
||||||
state.right_x = static_cast<int16_t>(gamepad->axisLeftX() * 0x7fff);
|
state.right_x = static_cast<int16_t>(gamepad->axisRightX() * 0x7fff);
|
||||||
state.right_y = static_cast<int16_t>(gamepad->axisLeftX() * 0x7fff);
|
state.right_y = static_cast<int16_t>(gamepad->axisRightY() * 0x7fff);
|
||||||
chiaki_session_set_controller_state(&session, &state);
|
chiaki_session_set_controller_state(&session, &state);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -229,7 +229,7 @@ static void ctrl_message_received_heartbeat_req(ChiakiCtrl *ctrl, uint8_t *paylo
|
||||||
if(payload_size != 0)
|
if(payload_size != 0)
|
||||||
CHIAKI_LOGW(&ctrl->session->log, "Received Heartbeat request with non-empty payload\n");
|
CHIAKI_LOGW(&ctrl->session->log, "Received Heartbeat request with non-empty payload\n");
|
||||||
|
|
||||||
CHIAKI_LOGD(&ctrl->session->log, "Received Ctrl Heartbeat\n");
|
CHIAKI_LOGI(&ctrl->session->log, "Received Ctrl Heartbeat, sending reply\n");
|
||||||
|
|
||||||
ctrl_message_send(ctrl, CTRL_MESSAGE_TYPE_HEARTBEAT_REP, NULL, 0);
|
ctrl_message_send(ctrl, CTRL_MESSAGE_TYPE_HEARTBEAT_REP, NULL, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -418,16 +418,19 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_takion_send_feedback_state(ChiakiTakion *ta
|
||||||
*((uint32_t *)(buf + 8)) = 0; // gmac
|
*((uint32_t *)(buf + 8)) = 0; // gmac
|
||||||
chiaki_feedback_state_format(buf + 0xc, feedback_state);
|
chiaki_feedback_state_format(buf + 0xc, feedback_state);
|
||||||
|
|
||||||
|
//CHIAKI_LOGD(takion->log, "Takion sending Feedback State:\n");
|
||||||
|
//chiaki_log_hexdump(takion->log, CHIAKI_LOG_DEBUG, buf, sizeof(buf));
|
||||||
|
|
||||||
ChiakiErrorCode err = chiaki_mutex_lock(&takion->gkcrypt_local_mutex);
|
ChiakiErrorCode err = chiaki_mutex_lock(&takion->gkcrypt_local_mutex);
|
||||||
if(err != CHIAKI_ERR_SUCCESS)
|
if(err != CHIAKI_ERR_SUCCESS)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
size_t key_pos;
|
size_t key_pos;
|
||||||
err = chiaki_takion_crypt_advance_key_pos(takion, CHIAKI_FEEDBACK_STATE_BUF_SIZE, &key_pos);
|
err = chiaki_takion_crypt_advance_key_pos(takion, CHIAKI_FEEDBACK_STATE_BUF_SIZE + CHIAKI_GKCRYPT_BLOCK_SIZE, &key_pos);
|
||||||
if(err != CHIAKI_ERR_SUCCESS)
|
if(err != CHIAKI_ERR_SUCCESS)
|
||||||
goto beach;
|
goto beach;
|
||||||
|
|
||||||
err = chiaki_gkcrypt_encrypt(takion->gkcrypt_local, key_pos, buf + 0xc, CHIAKI_FEEDBACK_STATE_BUF_SIZE);
|
err = chiaki_gkcrypt_encrypt(takion->gkcrypt_local, key_pos + CHIAKI_GKCRYPT_BLOCK_SIZE, buf + 0xc, CHIAKI_FEEDBACK_STATE_BUF_SIZE);
|
||||||
if(err != CHIAKI_ERR_SUCCESS)
|
if(err != CHIAKI_ERR_SUCCESS)
|
||||||
goto beach;
|
goto beach;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue