M server/src/main.rs => server/src/main.rs +10 -7
@@ 24,16 24,16 @@ use bevy_rapier2d::prelude::*;
use bevy_twite::{twite::frame::MessageType, ServerEvent, TwiteServerConfig, TwiteServerPlugin};
use component::Input;
use component::*;
+use hmac::{Hmac, Mac};
+use jwt::VerifyWithKey;
use packet::*;
use rand::Rng;
+use serde::{Deserialize, Serialize};
+use sha2::Sha256;
use starkingdoms_common::SaveModule;
use starkingdoms_common::{pack_savefile, unpack_savefile, SaveData};
use std::f32::consts::PI;
-use serde::{Serialize, Deserialize};
use std::time::SystemTime;
-use hmac::{Hmac, Mac};
-use jwt::VerifyWithKey;
-use sha2::Sha256;
pub mod component;
pub mod macros;
@@ 267,7 267,7 @@ fn on_message(
mut packet_recv: Local<ManualEventReader<ServerEvent>>,
mut packet_event_send: ResMut<Events<ServerEvent>>,
app_keys: Res<AppKeys>,
- ) {
+) {
let mut event_queue = Vec::new();
for ev in packet_recv.read(&packet_event_send) {
if let ServerEvent::Recv(addr, MessageType::Text, data) = ev {
@@ 275,8 275,11 @@ fn on_message(
let packet: Packet = err_or_cont!(serde_json::from_str(&data));
match packet {
- Packet::ClientLogin { username, save, jwt } => {
-
+ Packet::ClientLogin {
+ username,
+ save,
+ jwt,
+ } => {
if jwt.is_none() && REQUIRED_PERMISSION_LEVEL != 0 {
// d/c
let packet = Packet::Message {
M starkingdoms-client/src/hub.ts => starkingdoms-client/src/hub.ts +1 -1
@@ 67,7 67,7 @@ export async function hub_connect(
c: {
username,
save: window.localStorage.getItem("save"),
- jwt: window.localStorage.getItem("stk-token")
+ jwt: window.localStorage.getItem("stk-token"),
},
};
sendPacket(client, packet);
M starkingdoms-common/src/lib.rs => starkingdoms-common/src/lib.rs +11 -5
@@ 73,15 73,21 @@ pub fn pack_savefile(key: &[u8], save_data: SaveData) -> String {
}
pub fn unpack_savefile(key: &[u8], file: String) -> Result<SaveData, Box<dyn Error>> {
// << reverse! <<
- let savefile_bytes = base64::engine::general_purpose::STANDARD.decode(file).map_err(|e| format!("error decoding b64: {e}"))?;
+ let savefile_bytes = base64::engine::general_purpose::STANDARD
+ .decode(file)
+ .map_err(|e| format!("error decoding b64: {e}"))?;
- let save_file: Savefile = rmp_serde::from_slice(&savefile_bytes).map_err(|e| format!("error decoding savefile wrapper: {e}"))?;
+ let save_file: Savefile = rmp_serde::from_slice(&savefile_bytes)
+ .map_err(|e| format!("error decoding savefile wrapper: {e}"))?;
- let mut mac: Hmac<Sha256> = Hmac::new_from_slice(key).map_err(|e| format!("error loading hmac-sha256: {e}"))?;
+ let mut mac: Hmac<Sha256> =
+ Hmac::new_from_slice(key).map_err(|e| format!("error loading hmac-sha256: {e}"))?;
mac.update(&save_file.data_msgpack);
- mac.verify_slice(&save_file.mac).map_err(|e| format!("error verifying signature: {e}"))?;
+ mac.verify_slice(&save_file.mac)
+ .map_err(|e| format!("error verifying signature: {e}"))?;
- let save_data = rmp_serde::from_slice(&save_file.data_msgpack).map_err(|e| format!("error decoding inner signature: {e}"))?;
+ let save_data = rmp_serde::from_slice(&save_file.data_msgpack)
+ .map_err(|e| format!("error decoding inner signature: {e}"))?;
Ok(save_data)
}