forked from Hay1tsme/artemis
SDHJ title server support added + encryption
This commit is contained in:
@ -8,4 +8,4 @@ index = ChuniServlet
|
|||||||
database = ChuniData
|
database = ChuniData
|
||||||
reader = ChuniReader
|
reader = ChuniReader
|
||||||
frontend = ChuniFrontend
|
frontend = ChuniFrontend
|
||||||
game_codes = [ChuniConstants.GAME_CODE, ChuniConstants.GAME_CODE_NEW, ChuniConstants.GAME_CODE_INT]
|
game_codes = [ChuniConstants.GAME_CODE, ChuniConstants.GAME_CODE_NEW, ChuniConstants.GAME_CODE_INT, ChuniConstants.GAME_CODE_CHN]
|
||||||
|
@ -6,6 +6,7 @@ class ChuniConstants:
|
|||||||
GAME_CODE = "SDBT"
|
GAME_CODE = "SDBT"
|
||||||
GAME_CODE_NEW = "SDHD"
|
GAME_CODE_NEW = "SDHD"
|
||||||
GAME_CODE_INT = "SDGS"
|
GAME_CODE_INT = "SDGS"
|
||||||
|
GAME_CODE_CHN = "SDHJ"
|
||||||
|
|
||||||
CONFIG_NAME = "chuni.yaml"
|
CONFIG_NAME = "chuni.yaml"
|
||||||
|
|
||||||
|
@ -150,6 +150,11 @@ class ChuniServlet(BaseServlet):
|
|||||||
and version_idx >= ChuniConstants.VER_CHUNITHM_NEW
|
and version_idx >= ChuniConstants.VER_CHUNITHM_NEW
|
||||||
):
|
):
|
||||||
method_fixed += "C3Exp"
|
method_fixed += "C3Exp"
|
||||||
|
elif (
|
||||||
|
isinstance(version, str)
|
||||||
|
and version.endswith("_chn")
|
||||||
|
):
|
||||||
|
method_fixed += "Chn"
|
||||||
|
|
||||||
hash = PBKDF2(
|
hash = PBKDF2(
|
||||||
method_fixed,
|
method_fixed,
|
||||||
@ -259,6 +264,13 @@ class ChuniServlet(BaseServlet):
|
|||||||
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
||||||
elif version >= 135: # LUMINOUS PLUS
|
elif version >= 135: # LUMINOUS PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS_PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS_PLUS
|
||||||
|
elif game_code == "SDHJ": # Chn
|
||||||
|
if version < 110: # NEW!!
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
||||||
|
elif version >= 110 and version < 120: # NEW PLUS!!
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
||||||
|
elif version >= 120: # LUMINOUS
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_LUMINOUS
|
||||||
|
|
||||||
if all(c in string.hexdigits for c in endpoint) and len(endpoint) == 32:
|
if all(c in string.hexdigits for c in endpoint) and len(endpoint) == 32:
|
||||||
# If we get a 32 character long hex string, it's a hash and we're
|
# If we get a 32 character long hex string, it's a hash and we're
|
||||||
@ -268,6 +280,9 @@ class ChuniServlet(BaseServlet):
|
|||||||
if game_code == "SDGS":
|
if game_code == "SDGS":
|
||||||
crypto_cfg_key = f"{internal_ver}_int"
|
crypto_cfg_key = f"{internal_ver}_int"
|
||||||
hash_table_key = f"{internal_ver}_int"
|
hash_table_key = f"{internal_ver}_int"
|
||||||
|
elif game_code == "SDHJ":
|
||||||
|
crypto_cfg_key = f"{internal_ver}_chn"
|
||||||
|
hash_table_key = f"{internal_ver}_chn"
|
||||||
else:
|
else:
|
||||||
crypto_cfg_key = internal_ver
|
crypto_cfg_key = internal_ver
|
||||||
hash_table_key = internal_ver
|
hash_table_key = internal_ver
|
||||||
@ -337,6 +352,8 @@ class ChuniServlet(BaseServlet):
|
|||||||
endpoint = endpoint.replace("C3Exp", "")
|
endpoint = endpoint.replace("C3Exp", "")
|
||||||
elif game_code == "SDGS" and version < 110:
|
elif game_code == "SDGS" and version < 110:
|
||||||
endpoint = endpoint.replace("Exp", "")
|
endpoint = endpoint.replace("Exp", "")
|
||||||
|
elif game_code == "SDHJ":
|
||||||
|
endpoint = endpoint.replace("Chn", "")
|
||||||
else:
|
else:
|
||||||
endpoint = endpoint
|
endpoint = endpoint
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user