移除二维码信封历史数据依赖
This commit is contained in:
@@ -26,6 +26,7 @@ from core.huya.login import HuyaLoginResult
|
||||
from core.huya.nonce_forge import K1_DEFAULT, gen_nonce
|
||||
from core.huya.udb_aes import udb_decrypt, udb_encrypt
|
||||
from core.huya.wup_encoder import _make_name, build_password_login_wup
|
||||
from core.huya.wup_protocol import WupResponse
|
||||
from web.backend.database import Base
|
||||
from web.backend.models import HuyaAccount, User
|
||||
from web.backend.routers.huya import (
|
||||
@@ -102,6 +103,38 @@ class TestHuyaAppLogin:
|
||||
assert b'"session":7654321' in current
|
||||
assert (b'"traceId":"' + new_trace.encode() + b'"') in current
|
||||
|
||||
def test_qr_envelope_is_fully_dynamic(self):
|
||||
profile = {
|
||||
"hdid": "h" * 32,
|
||||
"app_version": "13.4.22",
|
||||
"sdk_version": "1.0.80138",
|
||||
"ip": "10.0.0.8",
|
||||
"vendor": "vivo",
|
||||
"model": "V2370A",
|
||||
"fingerprint": "f" * 40,
|
||||
"os": "android",
|
||||
"screen": "V2370A,34,13",
|
||||
"width": "1080",
|
||||
"height": "2412",
|
||||
"device_id": "d" * 40,
|
||||
}
|
||||
env = Envelope.build_qr(
|
||||
uid=1199664135026,
|
||||
cert_b64="A" * 260,
|
||||
safedeviceid="B" * 180,
|
||||
session=7654321,
|
||||
trace_id="t" * 16 + "-12345-" + "9" * 20,
|
||||
device_info=profile,
|
||||
)
|
||||
wup = WupResponse()
|
||||
wup.decode(bytes(env.raw))
|
||||
body = wup.newdata["_wup_data"]
|
||||
for value in (b"B" * 180, b"h" * 32, b"f" * 40, b"V2370A", b"d" * 40):
|
||||
assert value in body
|
||||
assert b"PQwemAN9NHkZKoMq" not in body
|
||||
assert b"02df398797432eadefcc12767119ad5e80999389" not in body
|
||||
assert b"7c5387e0539c023c31c4ff0e807e7256117385ee" not in body
|
||||
|
||||
def test_device_profile_generation(self):
|
||||
p1 = generate_profile()
|
||||
assert p1["os"] == "android"
|
||||
@@ -271,10 +304,13 @@ class TestHuyaAppLogin:
|
||||
patch("core.huya.app_login.solve_safe_auth", return_value={"authId": "id"}),
|
||||
patch("core.huya.app_login.parse_real_uid", return_value=1199666914671),
|
||||
):
|
||||
cred, uid = login_cred_with_flow("300023887", "pw")
|
||||
cred, uid, safedeviceid = login_cred_with_flow(
|
||||
"300023887", "pw", include_device_token=True
|
||||
)
|
||||
|
||||
assert cred == b"c" * 114
|
||||
assert uid == 1199666914671
|
||||
assert safedeviceid == "A" * 180
|
||||
assert calls == [assets, assets]
|
||||
|
||||
def test_login_cred_flow_maps_invalid_password_response(self):
|
||||
|
||||
Reference in New Issue
Block a user