mirror of
https://github.com/LonamiWebs/Telethon.git
synced 2025-08-02 03:00:15 +03:00
add custom secret support
This commit is contained in:
parent
2b99ff65c5
commit
9743d1eefd
|
@ -1,5 +1,7 @@
|
||||||
|
import binascii
|
||||||
import asyncio
|
import asyncio
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import base64
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from .connection import ObfuscatedConnection
|
from .connection import ObfuscatedConnection
|
||||||
|
@ -98,7 +100,7 @@ class TcpMTProxy(ObfuscatedConnection):
|
||||||
def __init__(self, ip, port, dc_id, *, loggers, proxy=None, local_addr=None):
|
def __init__(self, ip, port, dc_id, *, loggers, proxy=None, local_addr=None):
|
||||||
# connect to proxy's host and port instead of telegram's ones
|
# connect to proxy's host and port instead of telegram's ones
|
||||||
proxy_host, proxy_port = self.address_info(proxy)
|
proxy_host, proxy_port = self.address_info(proxy)
|
||||||
self._secret = bytes.fromhex(proxy[2])
|
self._secret = TcpMTProxy.normilize_secret(proxy[2])
|
||||||
super().__init__(
|
super().__init__(
|
||||||
proxy_host, proxy_port, dc_id, loggers=loggers)
|
proxy_host, proxy_port, dc_id, loggers=loggers)
|
||||||
|
|
||||||
|
@ -130,6 +132,21 @@ class TcpMTProxy(ObfuscatedConnection):
|
||||||
raise ValueError("No proxy info specified for MTProxy connection")
|
raise ValueError("No proxy info specified for MTProxy connection")
|
||||||
return proxy_info[:2]
|
return proxy_info[:2]
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def normilize_secret(secret):
|
||||||
|
if secret[:2] in ["ee","dd"]: # Remove extra bytes
|
||||||
|
secret = secret[2:]
|
||||||
|
|
||||||
|
try:
|
||||||
|
secret_bytes = bytes.fromhex(secret)
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
secret_bytes = base64.b64decode(secret.encode())
|
||||||
|
except binascii.Error:
|
||||||
|
secret = secret + "=="
|
||||||
|
secret_bytes = base64.b64decode(secret.encode())
|
||||||
|
|
||||||
|
return secret_bytes[:16] # Remove the domain from the secret (until domain support is added)
|
||||||
|
|
||||||
class ConnectionTcpMTProxyAbridged(TcpMTProxy):
|
class ConnectionTcpMTProxyAbridged(TcpMTProxy):
|
||||||
"""
|
"""
|
||||||
|
@ -149,4 +166,4 @@ class ConnectionTcpMTProxyRandomizedIntermediate(TcpMTProxy):
|
||||||
"""
|
"""
|
||||||
Connect to proxy using randomized intermediate protocol (dd-secrets)
|
Connect to proxy using randomized intermediate protocol (dd-secrets)
|
||||||
"""
|
"""
|
||||||
packet_codec = RandomizedIntermediatePacketCodec
|
packet_codec = RandomizedIntermediatePacketCodec
|
Loading…
Reference in New Issue
Block a user