Merge pull request 'chuni: fix encryption , added known iter keys , and add c2c api for sdgs' (#165) from Puz/artemis:develop into develop
Reviewed-on: https://gitea.tendokyu.moe/Hay1tsme/artemis/pulls/165
This commit is contained in:
commit
b5715b8da6
@ -94,14 +94,19 @@ class ChuniServlet(BaseServlet):
|
|||||||
|
|
||||||
known_iter_counts = {
|
known_iter_counts = {
|
||||||
ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS: 67,
|
ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS: 67,
|
||||||
|
f"{ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS}_int": 25, # SUPERSTAR
|
||||||
ChuniConstants.VER_CHUNITHM_PARADISE: 44,
|
ChuniConstants.VER_CHUNITHM_PARADISE: 44,
|
||||||
f"{ChuniConstants.VER_CHUNITHM_PARADISE}_int": 25,
|
f"{ChuniConstants.VER_CHUNITHM_PARADISE}_int": 51, # SUPERSTAR PLUS
|
||||||
ChuniConstants.VER_CHUNITHM_NEW: 54,
|
ChuniConstants.VER_CHUNITHM_NEW: 54,
|
||||||
f"{ChuniConstants.VER_CHUNITHM_NEW}_int": 49,
|
f"{ChuniConstants.VER_CHUNITHM_NEW}_int": 49,
|
||||||
ChuniConstants.VER_CHUNITHM_NEW_PLUS: 25,
|
ChuniConstants.VER_CHUNITHM_NEW_PLUS: 25,
|
||||||
|
f"{ChuniConstants.VER_CHUNITHM_NEW_PLUS}_int": 31,
|
||||||
ChuniConstants.VER_CHUNITHM_SUN: 70,
|
ChuniConstants.VER_CHUNITHM_SUN: 70,
|
||||||
|
f"{ChuniConstants.VER_CHUNITHM_SUN}_int": 35,
|
||||||
ChuniConstants.VER_CHUNITHM_SUN_PLUS: 36,
|
ChuniConstants.VER_CHUNITHM_SUN_PLUS: 36,
|
||||||
|
f"{ChuniConstants.VER_CHUNITHM_SUN_PLUS}_int": 36,
|
||||||
ChuniConstants.VER_CHUNITHM_LUMINOUS: 8,
|
ChuniConstants.VER_CHUNITHM_LUMINOUS: 8,
|
||||||
|
f"{ChuniConstants.VER_CHUNITHM_LUMINOUS}_int": 8,
|
||||||
}
|
}
|
||||||
|
|
||||||
for version, keys in self.game_cfg.crypto.keys.items():
|
for version, keys in self.game_cfg.crypto.keys.items():
|
||||||
@ -233,8 +238,10 @@ class ChuniServlet(BaseServlet):
|
|||||||
elif version >= 220: # LUMINOUS
|
elif version >= 220: # LUMINOUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
||||||
elif game_code == "SDGS": # Int
|
elif game_code == "SDGS": # Int
|
||||||
if version < 110: # SUPERSTAR / SUPERSTAR PLUS
|
if version < 105: # SUPERSTAR
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_PARADISE # SUPERSTAR / SUPERSTAR PLUS worked fine with it
|
internal_ver = ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS
|
||||||
|
elif version >= 105 and version < 110: # SUPERSTAR PLUS *Cursed but needed due to different encryption key
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_PARADISE
|
||||||
elif version >= 110 and version < 115: # NEW
|
elif version >= 110 and version < 115: # NEW
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
||||||
elif version >= 115 and version < 120: # NEW PLUS!!
|
elif version >= 115 and version < 120: # NEW PLUS!!
|
||||||
@ -353,9 +360,9 @@ class ChuniServlet(BaseServlet):
|
|||||||
padded = pad(zipped, 16)
|
padded = pad(zipped, 16)
|
||||||
|
|
||||||
crypt = AES.new(
|
crypt = AES.new(
|
||||||
bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][0]),
|
bytes.fromhex(self.game_cfg.crypto.keys[crypto_cfg_key][0]),
|
||||||
AES.MODE_CBC,
|
AES.MODE_CBC,
|
||||||
bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][1]),
|
bytes.fromhex(self.game_cfg.crypto.keys[crypto_cfg_key][1]),
|
||||||
)
|
)
|
||||||
|
|
||||||
return Response(crypt.encrypt(padded))
|
return Response(crypt.encrypt(padded))
|
||||||
|
@ -16,4 +16,14 @@ class ChuniSun(ChuniNewPlus):
|
|||||||
|
|
||||||
# hardcode lastDataVersion for CardMaker 1.35 A032
|
# hardcode lastDataVersion for CardMaker 1.35 A032
|
||||||
user_data["lastDataVersion"] = "2.10.00"
|
user_data["lastDataVersion"] = "2.10.00"
|
||||||
return user_data
|
return user_data
|
||||||
|
|
||||||
|
#SDGS Exclusive
|
||||||
|
async def handle_get_user_cto_c_play_api_request(self, data: Dict) -> Dict:
|
||||||
|
return {
|
||||||
|
"userId": data["userId"],
|
||||||
|
"orderBy": "0",
|
||||||
|
"count": "0",
|
||||||
|
#game request c2c play history while login but seem unused(?)
|
||||||
|
"userCtoCPlayList": [],
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user