Skip to content

Commit cc49815

Browse files
committed
req_pq is deprecated, use req_pq_multi instead
1 parent 71f3e07 commit cc49815

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

pyrogram/session/auth.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,19 @@ def create(self):
9191
# Step 1; Step 2
9292
nonce = int.from_bytes(urandom(16), "little", signed=True)
9393
log.debug("Send req_pq: {}".format(nonce))
94-
res_pq = self.send(functions.ReqPq(nonce))
94+
res_pq = self.send(functions.ReqPqMulti(nonce))
9595
log.debug("Got ResPq: {}".format(res_pq.server_nonce))
96+
log.debug("Server public key fingerprints: {}".format(res_pq.server_public_key_fingerprints))
97+
98+
for i in res_pq.server_public_key_fingerprints:
99+
if i in RSA.server_public_keys:
100+
log.debug("Using fingerprint: {}".format(i))
101+
public_key_fingerprint = i
102+
break
103+
else:
104+
log.debug("Fingerprint unknown: {}".format(i))
105+
else:
106+
raise Exception("Public key not found")
96107

97108
# Step 3
98109
pq = int.from_bytes(res_pq.pq, "big")
@@ -118,7 +129,7 @@ def create(self):
118129
sha = sha1(data).digest()
119130
padding = urandom(- (len(data) + len(sha)) % 255)
120131
data_with_hash = sha + data + padding
121-
encrypted_data = RSA.encrypt(data_with_hash, res_pq.server_public_key_fingerprints[0])
132+
encrypted_data = RSA.encrypt(data_with_hash, public_key_fingerprint)
122133

123134
log.debug("Done encrypt data with RSA")
124135

@@ -130,7 +141,7 @@ def create(self):
130141
server_nonce,
131142
int.to_bytes(p, 4, "big"),
132143
int.to_bytes(q, 4, "big"),
133-
res_pq.server_public_key_fingerprints[0],
144+
public_key_fingerprint,
134145
encrypted_data
135146
)
136147
)

0 commit comments

Comments
 (0)