Module genshin.utility.auth

Auth utilities.

Functions

def encrypt_credentials(text: str, key_type: Literal[1, 2]) ‑> str
Expand source code
def encrypt_credentials(text: str, key_type: typing.Literal[1, 2]) -> str:
    """Encrypt text for geetest."""
    import rsa

    public_key = rsa.PublicKey.load_pkcs1_openssl_pem(LOGIN_KEY_TYPE_1 if key_type == 1 else LOGIN_KEY_TYPE_2)
    crypto = rsa.encrypt(text.encode("utf-8"), public_key)
    return base64.b64encode(crypto).decode("utf-8")

Encrypt text for geetest.

def generate_sign(data: dict[str, typing.Any], key: str) ‑> str
Expand source code
def generate_sign(data: dict[str, typing.Any], key: str) -> str:
    """Generate a sign for the given `data` and `app_key`."""
    string = ""
    for k in sorted(data.keys()):
        string += k + "=" + str(data[k]) + "&"
    return hmac.new(key.encode(), string[:-1].encode(), sha256).hexdigest()

Generate a sign for the given data and app_key.