This commit is contained in:
danogentili 2016-08-06 00:56:47 +02:00
parent edd5f81fec
commit 538c79940f
2 changed files with 6 additions and 2 deletions

View File

@ -187,6 +187,7 @@ class Session
}
$x = $this->struct->unpack('<I', substr($packet, 0, 4));
$auth_key_id = substr($packet, 4, 8);
hex_dump($packet);
if ($auth_key_id == string2bin('\x00\x00\x00\x00\x00\x00\x00\x00')) {
list($message_id, $message_length) = $this->struct->unpack('<8sI', substr($packet, 12, 12));
$data = substr($packet, 24, (24 + $message_length) - 24);
@ -210,6 +211,7 @@ class Session
public function method_call($method, $kwargs)
{
//var_dump($kwargs);
foreach (range(1, $this->MAX_RETRY) as $i) {
try {
$this->send_message($this->tl->serialize_method($method, $kwargs));
@ -230,6 +232,7 @@ class Session
$ResPQ = $this->method_call('req_pq', ['nonce' => $nonce]);
$server_nonce = $ResPQ['server_nonce'];
$public_key_fingerprint = $ResPQ['server_public_key_fingerprints'][0];
var_dump($public_key_fingerprint);
$pq_bytes = $ResPQ['pq'];
$pq = new \phpseclib\Math\BigInteger($pq_bytes, 256);
@ -273,7 +276,7 @@ class Session
pyjslib_printnl(sprintf('Server-client time delta = %.1f s', $this->timedelta));
$dh_prime = $this->struct->unpack('>Q', $dh_prime_str);
$g_a = $this->struct->unpack('>Q', $g_a_str);
assert($this->PrimeModule->isPrime($dh_prime));
assert($this->PrimeModule->isprime($dh_prime));
$retry_id = 0;
$b_str = \phpseclib\Crypt\Random::string(256);
$b = $this->struct->unpack('>Q', $b_str);

View File

@ -6,6 +6,7 @@ Created on Tue Sep 2 19:26:15 2014
@author: Sammy Pfeiffer
"""
from binascii import crc32 as originalcrc32
from binascii import hexlify
from time import time
import io
import os.path
@ -125,6 +126,7 @@ class Session:
return data
def method_call(self, method, **kwargs):
#print(kwargs)
for i in range(1, self.MAX_RETRY):
try:
self.send_message(TL.serialize_method(method, **kwargs))
@ -169,7 +171,6 @@ class Session:
random_bytes = os.urandom(255-len(data)-len(sha_digest))
to_encrypt = sha_digest + data + random_bytes
encrypted_data = key.encrypt(to_encrypt, 0)[0]
print("Starting Diffie Hellman key exchange")
server_dh_params = self.method_call('req_DH_params',
nonce=nonce,