chore: sdgb 1.40 stopped service

This commit is contained in:
mokurin000
2025-08-02 00:08:21 +08:00
parent 780785b7ea
commit 000251df65
3 changed files with 2 additions and 62 deletions

View File

@@ -9,36 +9,7 @@ use flate2::write::{ZlibDecoder, ZlibEncoder};
use spdlog::debug;
use crate::error::ApiError;
use crate::title::{MaiVersion, MaiVersionExt, Sdgb1_40, Sdgb1_50};
impl MaiVersionExt for Sdgb1_40 {
fn decode(mut data: impl AsMut<[u8]>) -> Result<Vec<u8>, ApiError> {
let mut decompressed = decompress(data.as_mut());
if decompressed.is_empty() {
return Err(ApiError::EmptyResponse);
}
let orig_len = decompressed.len();
let remain = 16 - decompressed.len() % 16;
if
// weird but nessacary for Rust Pkcs7
remain != 16 {
decompressed.resize(remain + orig_len, remain as _);
}
let unpad_size = decrypt(&mut decompressed, Self::AES_KEY, Self::AES_IV)?.len();
decompressed.truncate(unpad_size);
Ok(decompressed)
}
fn encode(data: impl AsRef<[u8]>) -> Result<Vec<u8>, ApiError> {
let enc = encrypt(data, Self::AES_KEY, Self::AES_IV)?;
let compressed = compress(enc)?;
Ok(compressed)
}
}
use crate::title::{MaiVersion, MaiVersionExt, Sdgb1_50};
impl MaiVersionExt for Sdgb1_50 {
fn decode(mut data: impl AsMut<[u8]>) -> Result<Vec<u8>, ApiError> {
@@ -110,21 +81,6 @@ mod _tests {
use crate::title::{Sdgb1_50, encryption::*};
#[test]
fn test_sdgb_140_dec_enc() -> Result<(), ApiError> {
let data = [
120_u8, 156, 171, 77, 91, 233, 184, 108, 2, 71, 125, 142, 118, 135, 112, 181, 85, 217,
239, 243, 159, 153, 248, 98, 159, 185, 63, 43, 173, 106, 221, 115, 104, 105, 221, 107,
0, 241, 176, 16, 37,
];
let dec = Sdgb1_40::decode(data)?;
assert_eq!(dec, br#"{"result":"Pong"}"#);
let enc = Sdgb1_40::encode(dec)?;
assert_eq!(enc, data);
Ok(())
}
#[test]
fn test_sdgb_150_dec_enc() -> Result<(), ApiError> {
let data = [

View File

@@ -117,16 +117,8 @@ pub trait MaiVersionExt: MaiVersion {
}
}
pub struct Sdgb1_40;
pub struct Sdgb1_50;
impl MaiVersion for Sdgb1_40 {
const AES_KEY: &[u8; 32] = b"n7bx6:@Fg_:2;5E89Phy7AyIcpxEQ:R@";
const AES_IV: &[u8; 16] = b";;KjR1C3hgB1ovXa";
const OBFUSECATE_SUFFIX: &str = "MaimaiChnBEs2D5vW";
const VERSION: &str = "1.40";
}
impl MaiVersion for Sdgb1_50 {
const AES_KEY: &[u8; 32] = b"a>32bVP7v<63BVLkY[xM>daZ1s9MBP<R";
const AES_IV: &[u8; 16] = b"d6xHIKq]1J]Dt^ue";