From 9b343071030fbe4e4d8927aca8f14e56b5b52339 Mon Sep 17 00:00:00 2001 From: restitux Date: Sun, 29 Jun 2025 20:34:13 -0600 Subject: [PATCH] Server now returns paired == 1 --- gamestream-webtransport-proxy/src/pair.rs | 24 +++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/gamestream-webtransport-proxy/src/pair.rs b/gamestream-webtransport-proxy/src/pair.rs index 93ed17d..0809bcf 100644 --- a/gamestream-webtransport-proxy/src/pair.rs +++ b/gamestream-webtransport-proxy/src/pair.rs @@ -3,6 +3,7 @@ use axum::http::StatusCode; use axum::response::{IntoResponse, Response}; use openssl::hash::MessageDigest; use openssl::sha::Sha256; +use rand::Rng; use serde::{Deserialize, Serialize}; use openssl::pkey::{PKey, Private}; @@ -79,7 +80,7 @@ async fn get_url(base_url: &mut url_constructor::UrlConstructor) -> Result Result { let aes_key = generate_aes_key(salt, pin).await; + let aes_hex = hex::encode(&aes_key); + //println!("aes_hex: {aes_hex}"); let client_challenge_response = get_server_challenge(base_url.clone(), &aes_key).await?; - println!("{client_challenge_response:?}"); + //println!("{client_challenge_response:?}"); let challenge_response = generate_challenge_response( client_challenge_response.challengeresponse, @@ -274,10 +284,8 @@ pub async fn generate_pin() -> [u8; 4] { // TODO: reenable real RNG let mut rng = rand::rng(); for i in 0..pin.len() { - pin[i] = 5; - //TODO: reenable random pin - // pin[i] = rng.random_range(0..10); - print!("{}", pin[i]); + pin[i] = rng.random_range(48..58); // Generate ascii number 0-9 + print!("{}", pin[i] as char); } // Print as a four-digit, zero-padded integer println!(""); @@ -388,7 +396,7 @@ pub async fn get_pair(Path((host, port)): Path<(String, u16)>) -> Response { return StatusCode::INTERNAL_SERVER_ERROR.into_response(); } }; - println!("{server_cert:?}"); + //println!("{server_cert:?}"); // Do the challenge response process // This returns the pairing secret @@ -400,7 +408,7 @@ pub async fn get_pair(Path((host, port)): Path<(String, u16)>) -> Response { return StatusCode::INTERNAL_SERVER_ERROR.into_response(); } }; - println!("{server_pairing_secret:?}"); + //println!("{server_pairing_secret:?}"); // Verify the pairing_secret signature if let Err(e) = verify_signature(