diff --git a/data/web/corefork.telegram.org/api/layers.html b/data/web/corefork.telegram.org/api/layers.html index 9d476b246e..0a58c74933 100644 --- a/data/web/corefork.telegram.org/api/layers.html +++ b/data/web/corefork.telegram.org/api/layers.html @@ -165,6 +165,52 @@
{1} shared a story
{1} shared a story to the group
{1} shared a story with you
mentioned you in a story
posted a story
{1}: {3} to your voice message in {2}
to {3} to your voice message in {2}
in CHAT_REACT_AUDIO{1}: {3} to your contact {4} in {2}
to {3} to your contact {4} in {2}
in CHAT_REACT_CONTACT{1}: {3} to your file in {2}
to {3} to your file in {2}
in CHAT_REACT_DOC{1}: {3} to your game in {2}
to {3} to your game in {2}
in CHAT_REACT_GAME{1}: {3} to your map in {2}
to {3} to your map in {2}
in CHAT_REACT_GEO{1}: {3} to your live location in {2}
to {3} to your live location in {2}
in CHAT_REACT_GEOLIVE{1}: {3} to your GIF in {2}
to {1} is calling you!
in CHAT_REACT_GIF{1}: {3} to your invoice in {2}
to {3} to your invoice in {2}
in CHAT_REACT_INVOICE{1}: {3} to your message in {2}
to {3} to your message in {2}
in CHAT_REACT_NOTEXT{1}: {3} to your photo in {2}
to {3} to your photo in {2}
in CHAT_REACT_PHOTO{1}: {3} to your poll {4} in {2}
to {3} to your poll {4} in {2}
in CHAT_REACT_POLL{1}: {3} to your quiz {4} in {2}
to {3} to your quiz {4} in {2}
in CHAT_REACT_QUIZ{1}: {3} to your video message in {2}
to {3} to your video message in {2}
in CHAT_REACT_ROUND{1}: {3} to your {4} sticker in {2}
to {3} to your {4} sticker in {2}
in CHAT_REACT_STICKER{1}: {3} in {2} to your "{4}"
to {3} in {2} to your "{4}"
in CHAT_REACT_TEXT{1}: {3} to your video in {2}
to {3} to your video in {2}
in CHAT_REACT_VIDEOYou were charged {2} by {1}
to {1} were charged {2}
in MESSAGE_RECURRING_PAY{1}: {2} to your voice message
to {2} to your voice message
in REACT_AUDIO{1}: {2} to your contact {3}
to {2} to your contact {3}
in REACT_CONTACT{1}: {2} to your file
to {2} to your file
in REACT_DOC{1}: {2} to your game
to {2} to your game
in REACT_GAME{1}: {2} to your map
to {2} to your map
in REACT_GEO{1}: {2} to your live location
to {2} to your live location
in REACT_GEOLIVE{1}: {2} to your GIF
to {2} to your GIF
in REACT_GIF{1}: {2} to your invoice
to {2} to your invoice
in REACT_INVOICE{1}: {2} to your message
to {2} to your message
in REACT_NOTEXT{1}: {2} to your photo
to {2} to your photo
in REACT_PHOTO{1}: {2} to your poll {3}
to {2} to your poll {3}
in REACT_POLL{1}: {2} to your quiz {3}
to {2} to your quiz {3}
in REACT_QUIZ{1}: {2} to your video message
to {2} to your video message
in REACT_ROUND{1}: {2} to your {3} sticker
to {2} to your {3} sticker
in REACT_STICKER{1}: {2} to your "{3}"
to {2} to your "{3}"
in REACT_TEXT{1}: {2} to your video
to {2} to your video
in REACT_VIDEOdialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;
inputPeerNotifySettings#cacb6ae2 flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int sound:flags.3?NotificationSound stories_muted:flags.6?Bool stories_hide_sender:flags.7?Bool stories_sound:flags.8?NotificationSound = InputPeerNotifySettings;
diff --git a/data/web/corefork.telegram.org/api/push-updates.html b/data/web/corefork.telegram.org/api/push-updates.html
index af40d1b42c..ca6e27083d 100644
--- a/data/web/corefork.telegram.org/api/push-updates.html
+++ b/data/web/corefork.telegram.org/api/push-updates.html
@@ -64,6 +64,7 @@ Simple push works by sending a simple PUT request with a version=number10
- Web push (web push, see below)
11
- MPNS VoIP (token for microsoft push VoIP)
12
- Tizen (token for tizen push)
+13
- Huawei push
For 10
web push, the token must be a JSON-encoded object with the following keys:
@@ -289,6 +290,11 @@ Simple push works by sending a simple PUT request with a version=number1. Channel name
2. Sticker emoji
+CHANNEL_MESSAGE_STORY
+{1} shared a story
+1. Channel name
+
+
CHANNEL_MESSAGE_TEXT
{1}: {2}
1. Channel name
2. Message body
@@ -439,6 +445,11 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Group name
3. Sticker emoji
+CHAT_MESSAGE_STORY
+{1} shared a story to the group
+1. Group name
+
+
CHAT_MESSAGE_TEXT
{1} @ {2}: {3}
1. Message author
2. Chat name
3. Message body
@@ -460,83 +471,83 @@ Simple push works by sending a simple PUT request with a version=number
CHAT_REACT_AUDIO
-{1}: {3} to your voice message in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your voice message in {2}
+2. Group name
3. Reaction
CHAT_REACT_CONTACT
-{1}: {3} to your contact {4} in {2}
-1. User name
2. Group name
3. Reaction
4. Contact name
+{3} to your contact {4} in {2}
+2. Group name
3. Reaction
4. Contact name
CHAT_REACT_DOC
-{1}: {3} to your file in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your file in {2}
+2. Group name
3. Reaction
CHAT_REACT_GAME
-{1}: {3} to your game in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your game in {2}
+2. Group name
3. Reaction
CHAT_REACT_GEO
-{1}: {3} to your map in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your map in {2}
+2. Group name
3. Reaction
CHAT_REACT_GEOLIVE
-{1}: {3} to your live location in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your live location in {2}
+2. Group name
3. Reaction
CHAT_REACT_GIF
-{1}: {3} to your GIF in {2}
-1. User name
2. Group name
3. Reaction
+{1} is calling you!
+1. User name
CHAT_REACT_INVOICE
-{1}: {3} to your invoice in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your invoice in {2}
+2. Group name
3. Reaction
CHAT_REACT_NOTEXT
-{1}: {3} to your message in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your message in {2}
+2. Group name
3. Reaction
CHAT_REACT_PHOTO
-{1}: {3} to your photo in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your photo in {2}
+2. Group name
3. Reaction
CHAT_REACT_POLL
-{1}: {3} to your poll {4} in {2}
-1. User name
2. Group name
3. Reaction
4. Poll name
+{3} to your poll {4} in {2}
+2. Group name
3. Reaction
4. Poll name
CHAT_REACT_QUIZ
-{1}: {3} to your quiz {4} in {2}
-1. User name
2. Group name
3. Reaction
4. Quiz name
+{3} to your quiz {4} in {2}
+2. Group name
3. Reaction
4. Quiz name
CHAT_REACT_ROUND
-{1}: {3} to your video message in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your video message in {2}
+2. Group name
3. Reaction
CHAT_REACT_STICKER
-{1}: {3} to your {4} sticker in {2}
-1. User name
2. Group name
3. Reaction
4. Sticker emoji
+{3} to your {4} sticker in {2}
+2. Group name
3. Reaction
4. Sticker emoji
CHAT_REACT_TEXT
-{1}: {3} in {2} to your "{4}"
-1. User name
2. Group name
3. Reaction
4. Message body
+{3} in {2} to your "{4}"
+2. Group name
3. Reaction
4. Message body
CHAT_REACT_VIDEO
-{1}: {3} to your video in {2}
-1. User name
2. Group name
3. Reaction
+{3} to your video in {2}
+2. Group name
3. Reaction
CHAT_REQ_JOINED
@@ -695,7 +706,7 @@ Simple push works by sending a simple PUT request with a version=number
MESSAGE_RECURRING_PAY
-You were charged {2} by {1}
+{1} were charged {2}
1. The entity to which money was sent for a recurring subscription
2. The amount of money charged for a recurring subscription
@@ -714,6 +725,16 @@ Simple push works by sending a simple PUT request with a version=number1. User name
2. Sticker emoji
+MESSAGE_STORY
+{1} shared a story with you
+1. User name
+
+
+MESSAGE_STORY_MENTION
+mentioned you in a story
+
+
+
MESSAGE_TEXT
{1}: {2}
1. Message author
2. Message body
@@ -915,83 +936,93 @@ Simple push works by sending a simple PUT request with a version=number
REACT_AUDIO
-{1}: {2} to your voice message
-1. User name
2. Reaction
+{2} to your voice message
+2. Reaction
REACT_CONTACT
-{1}: {2} to your contact {3}
-1. User name
2. Reaction
3. Contact name
+{2} to your contact {3}
+2. Reaction
3. Contact name
REACT_DOC
-{1}: {2} to your file
-1. User name
2. Reaction
+{2} to your file
+2. Reaction
REACT_GAME
-{1}: {2} to your game
-1. User name
2. Reaction
+{2} to your game
+2. Reaction
REACT_GEO
-{1}: {2} to your map
-1. User name
2. Reaction
+{2} to your map
+2. Reaction
REACT_GEOLIVE
-{1}: {2} to your live location
-1. User name
2. Reaction
+{2} to your live location
+2. Reaction
REACT_GIF
-{1}: {2} to your GIF
-1. User name
2. Reaction
+{2} to your GIF
+2. Reaction
REACT_INVOICE
-{1}: {2} to your invoice
-1. User name
2. Reaction
+{2} to your invoice
+2. Reaction
REACT_NOTEXT
-{1}: {2} to your message
-1. User name
2. Reaction
+{2} to your message
+2. Reaction
REACT_PHOTO
-{1}: {2} to your photo
-1. User name
2. Reaction
+{2} to your photo
+2. Reaction
REACT_POLL
-{1}: {2} to your poll {3}
-1. User name
2. Reaction
3. Poll name
+{2} to your poll {3}
+2. Reaction
3. Poll name
REACT_QUIZ
-{1}: {2} to your quiz {3}
-1. User name
2. Reaction
3. Quiz name
+{2} to your quiz {3}
+2. Reaction
3. Quiz name
REACT_ROUND
-{1}: {2} to your video message
-1. User name
2. Reaction
+{2} to your video message
+2. Reaction
REACT_STICKER
-{1}: {2} to your {3} sticker
-1. User name
2. Reaction
3. Sticker emoji
+{2} to your {3} sticker
+2. Reaction
3. Sticker emoji
REACT_TEXT
-{1}: {2} to your "{3}"
-1. User name
2. Reaction
3. Message body
+{2} to your "{3}"
+2. Reaction
3. Message body
REACT_VIDEO
-{1}: {2} to your video
-1. User name
2. Reaction
+{2} to your video
+2. Reaction
+
+
+STORY_HIDDEN_AUTHOR
+
+
+
+
+STORY_NOTEXT
+posted a story
+
diff --git a/data/web/corefork.telegram.org/api/takeout.html b/data/web/corefork.telegram.org/api/takeout.html
index 4e2692411e..62d47f5f70 100644
--- a/data/web/corefork.telegram.org/api/takeout.html
+++ b/data/web/corefork.telegram.org/api/takeout.html
@@ -71,7 +71,7 @@ invokeWithMessagesRange#365275f2 {X:Type} range:MessageRange query:!X = X;
First of all, obtain a list of message ranges by invoking messages.getSplitRanges (wrapping it in an invokeWithTakeout as usual).
Then, when invoking methods that require message range pagination, wrap the method using invokeWithMessagesRange, before also wrapping it in an invokeWithTakeout as usual.
Start by passing the first message range; continue passing the same message range while paginating using the usual offset_*
, limit
, etc parameters; once there are no more results left, switch to the next message range, re-starting offset_*
, limit
pagination from the beginning.
-Repeat until you've finished all message ranges.
+Repeat until you've finished all the message ranges that were returned by messages.getSplitRanges.
Contacts
savedPhoneContact#1142bd56 phone:string first_name:string last_name:string date:int = SavedContact;
@@ -88,9 +88,7 @@ Repeat until you've finished all message ranges.
channels.getLeftChannels#8341ecc0 offset:int = messages.Chats;
This method does not require pagination using message ranges.
-Use channels.getLeftChannels to get a list of channels or supergroups we left.
-
-This method requires pagination using message ranges.
+Use channels.getLeftChannels to get a list of channels or supergroups we left.
diff --git a/data/web/corefork.telegram.org/method/channels.createChannel.html b/data/web/corefork.telegram.org/method/channels.createChannel.html
index b98c1d3b98..3f9858dac9 100644
--- a/data/web/corefork.telegram.org/method/channels.createChannel.html
+++ b/data/web/corefork.telegram.org/method/channels.createChannel.html
@@ -141,7 +141,7 @@
400
ADDRESS_INVALID
-
+The specified geopoint address is invalid.
400
@@ -159,6 +159,11 @@
Chat about too long.
+500
+CHAT_INVALID
+Invalid chat.
+
+
400
CHAT_TITLE_EMPTY
No chat title provided.
diff --git a/data/web/corefork.telegram.org/method/channels.createForumTopic.html b/data/web/corefork.telegram.org/method/channels.createForumTopic.html
index d7088e997b..241ce5aea7 100644
--- a/data/web/corefork.telegram.org/method/channels.createForumTopic.html
+++ b/data/web/corefork.telegram.org/method/channels.createForumTopic.html
@@ -139,6 +139,11 @@
You can't write in this chat.
+403
+PREMIUM_ACCOUNT_REQUIRED
+A premium account is required to execute this action.
+
+
400
TOPIC_TITLE_EMPTY
The specified topic title is empty.
diff --git a/data/web/corefork.telegram.org/method/channels.editForumTopic.html b/data/web/corefork.telegram.org/method/channels.editForumTopic.html
index 991b66add5..7d6b69beab 100644
--- a/data/web/corefork.telegram.org/method/channels.editForumTopic.html
+++ b/data/web/corefork.telegram.org/method/channels.editForumTopic.html
@@ -146,12 +146,12 @@
400
TOPIC_CLOSE_SEPARATELY
-
+The close
flag cannot be provided together with any of the other flags.
400
TOPIC_HIDE_SEPARATELY
-
+The hide
flag cannot be provided together with any of the other flags.
400
diff --git a/data/web/corefork.telegram.org/method/messages.checkChatInvite.html b/data/web/corefork.telegram.org/method/messages.checkChatInvite.html
index 3f30965c57..75e04fe503 100644
--- a/data/web/corefork.telegram.org/method/messages.checkChatInvite.html
+++ b/data/web/corefork.telegram.org/method/messages.checkChatInvite.html
@@ -95,11 +95,6 @@
You haven't joined this channel/supergroup.
-500
-CHAT_MEMBERS_CHANNEL
-
-
-
400
INVITE_HASH_EMPTY
The invite hash is empty.
diff --git a/data/web/corefork.telegram.org/method/messages.migrateChat.html b/data/web/corefork.telegram.org/method/messages.migrateChat.html
index c4861d50ca..3995fc70b5 100644
--- a/data/web/corefork.telegram.org/method/messages.migrateChat.html
+++ b/data/web/corefork.telegram.org/method/messages.migrateChat.html
@@ -99,11 +99,6 @@
You have joined too many channels/supergroups.
-500
-CHANNEL_ID_GENERATE_FAILED
-
-
-
403
CHAT_ADMIN_REQUIRED
You must be an admin in this chat to do this.
diff --git a/data/web/corefork.telegram.org/method/messages.transcribeAudio.html b/data/web/corefork.telegram.org/method/messages.transcribeAudio.html
index 5c39c17fd4..3a4a083899 100644
--- a/data/web/corefork.telegram.org/method/messages.transcribeAudio.html
+++ b/data/web/corefork.telegram.org/method/messages.transcribeAudio.html
@@ -93,6 +93,11 @@
+400
+PEER_ID_INVALID
+The provided peer id is invalid.
+
+
403
PREMIUM_ACCOUNT_REQUIRED
A premium account is required to execute this action.
diff --git a/data/web/corefork.telegram.org/method/stories.getPeerStories.html b/data/web/corefork.telegram.org/method/stories.getPeerStories.html
index 6b49e15dc9..a55f79c4f2 100644
--- a/data/web/corefork.telegram.org/method/stories.getPeerStories.html
+++ b/data/web/corefork.telegram.org/method/stories.getPeerStories.html
@@ -94,6 +94,11 @@
400
+MSG_ID_INVALID
+Invalid message ID provided.
+
+
+400
PEER_ID_INVALID
The provided peer id is invalid.
diff --git a/data/web/corefork.telegram.org/method/stories.getStoriesViews.html b/data/web/corefork.telegram.org/method/stories.getStoriesViews.html
index a8b0f89a77..c3e9974316 100644
--- a/data/web/corefork.telegram.org/method/stories.getStoriesViews.html
+++ b/data/web/corefork.telegram.org/method/stories.getStoriesViews.html
@@ -107,6 +107,11 @@
PEER_ID_INVALID
The provided peer id is invalid.
+
+400
+STORY_ID_EMPTY
+You specified no story IDs.
+
Related pages
diff --git a/data/web/corefork.telegram.org/method/upload.getCdnFileHashes.html b/data/web/corefork.telegram.org/method/upload.getCdnFileHashes.html
index c43065ba62..9aa949a61b 100644
--- a/data/web/corefork.telegram.org/method/upload.getCdnFileHashes.html
+++ b/data/web/corefork.telegram.org/method/upload.getCdnFileHashes.html
@@ -98,6 +98,11 @@
400
+FILE_TOKEN_INVALID
+The specified file token is invalid.
+
+
+400
RSA_DECRYPT_FAILED
Internal RSA decryption failed.
diff --git a/data/web/corefork.telegram.org/mtproto/samples-auth_key.html b/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
index 11045ae706..2bed5973d4 100644
--- a/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
+++ b/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
@@ -53,9 +53,9 @@
1) Client sends query to server
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 98 37 0B 00 07 EB 6C 65
-0010 | 14 00 00 00 F1 8E 7E BE 2B 61 E8 CE 46 92 30 D3
-0020 | F0 2E B0 DD 8B 34 7C 7A
+0000 | 00 00 00 00 00 00 00 00 D4 6C 0C 00 5D 54 6E 65
+0010 | 14 00 00 00 F1 8E 7E BE A9 A9 E7 60 C1 90 09 93
+0020 | EF 1D D3 FA 51 4A 0E 34
Payload (de)serialization:
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@
message_id
8, 8
-98370B0007EB6C65
+D46C0C005D546E65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -95,7 +95,7 @@
nonce
24, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Random number
@@ -104,11 +104,11 @@
2) Server sends response of the form
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 48 CB 4A 07 EB 6C 65
-0010 | C4 00 00 00 63 24 16 05 2B 61 E8 CE 46 92 30 D3
-0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
-0030 | B1 CF FB 2E 5A 4C 90 B1 08 1B 02 0A 05 F2 85 48
-0040 | 2D 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
+0000 | 00 00 00 00 00 00 00 00 01 00 27 D4 5D 54 6E 65
+0010 | 60 00 00 00 63 24 16 05 A9 A9 E7 60 C1 90 09 93
+0020 | EF 1D D3 FA 51 4A 0E 34 69 41 64 B6 A2 26 86 5F
+0030 | 51 76 4C C1 1D 1D 1C C1 08 2B E8 4F 32 72 57 A7
+0040 | 45 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
0050 | 35 5F C3 0B 21 6B E8 6C 02 2B B4 C3 85 FD 64 DE
0060 | 85 1D 9D D0
Payload (de)serialization:
@@ -132,13 +132,13 @@
message_id
8, 8
-0148CB4A07EB6C65
+010027D45D546E65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-C4000000
(196 in decimal)
+60000000
(96 in decimal)
Message body length
@@ -150,19 +150,19 @@
nonce
24, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
40, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Server-generated random number
pq
56, 12
-081B020A05F285482D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1946129009637410861
+082BE84F327257A745000000
TL byte deserialization
=> bigendian conversion to decimal
=> 3163865816313079621
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
@@ -208,22 +208,22 @@
Proof of work
3) Client decomposes pq into prime factors such that p < q.
-pq = 1946129009637410861
-Decompose into 2 prime cofactors p < q
: 1946129009637410861 = 1037997977 * 1874887093
-p = 1037997977
-q = 1874887093
+pq = 3163865816313079621
+Decompose into 2 prime cofactors p < q
: 3163865816313079621 = 1751455103 * 1806421307
+p = 1751455103
+q = 1806421307
Presenting proof of work; Server authentication
4) encrypted_data
payload generation
First of all, generate an encrypted_data
payload as follows:
Generated payload (excluding transport headers/trailers):
-0000 | 95 5F F5 A9 08 1B 02 0A 05 F2 85 48 2D 00 00 00
-0010 | 04 3D DE 97 99 00 00 00 04 6F C0 81 B5 00 00 00
-0020 | 2B 61 E8 CE 46 92 30 D3 F0 2E B0 DD 8B 34 7C 7A
-0030 | 0B 13 97 9C AF 03 8B 9C B1 CF FB 2E 5A 4C 90 B1
-0040 | 16 40 1E E2 AC E9 2F A4 AE 0E E0 BC EE EF FB 29
-0050 | 69 3D CD 74 E7 07 FE 6F 97 33 4E 2C A1 6F 15 64
+0000 | 95 5F F5 A9 08 2B E8 4F 32 72 57 A7 45 00 00 00
+0010 | 04 68 65 15 7F 00 00 00 04 6B AB CD 3B 00 00 00
+0020 | A9 A9 E7 60 C1 90 09 93 EF 1D D3 FA 51 4A 0E 34
+0030 | 69 41 64 B6 A2 26 86 5F 51 76 4C C1 1D 1D 1C C1
+0040 | 28 80 34 A2 9E 8F 8D 40 A2 76 0B BA AC 78 99 1B
+0050 | F1 AD BF 24 F2 D6 68 DA 91 2D BD 36 C4 1A DA EE
0060 | 02 00 00 00
Payload (de)serialization:
p_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;
@@ -246,37 +246,37 @@ q = 1874887093
pq
4, 12
-081B020A05F285482D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1946129009637410861
+082BE84F327257A745000000
TL byte deserialization
=> bigendian conversion to decimal
=> 3163865816313079621
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p
16, 8
-043DDE9799000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1037997977
+046865157F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1751455103
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
24, 8
-046FC081B5000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1874887093
+046BABCD3B000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1806421307
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce
32, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
48, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Value received from server in Step 2
new_nonce
64, 32
-16401EE2ACE92FA4AE0EE0BCEEEFFB29
693DCD74E707FE6F97334E2CA16F1564
+288034A29E8F8D40A2760BBAAC78991B
F1ADBF24F2D668DA912DBD36C41ADAEE
Client-generated random number
@@ -291,39 +291,39 @@ q = 1874887093
The serialization of P_Q_inner_data produces data, which is used to generate encrypted_data as specified in step 4.1.
These are the inputs to the algorithm specified in step 4.1:
-data = 955FF5A9081B020A05F285482D000000043DDE9799000000046FC081B50000002B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B116401EE2ACE92FA4AE0EE0BCEEEFFB29693DCD74E707FE6F97334E2CA16F156402000000
-random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D2248993E1A8DCABFF33C447069EA746881CC901111E6C8DDF5E102C734C35F3D9A7E512D98CB7BF509C07DBA2DF796C8554D58513AFF799E58260D6D47334B6C7
+data = 955FF5A9082BE84F327257A745000000046865157F000000046BABCD3B000000A9A9E760C1900993EF1DD3FA514A0E34694164B6A226865F51764CC11D1D1CC1288034A29E8F8D40A2760BBAAC78991BF1ADBF24F2D668DA912DBD36C41ADAEE02000000
+random_padding_bytes = 62802FD3A854F23BC3BAA4B2784CC11390362E1839E954F5CA27D3DFB0172A3CE3D5A92E066E5560611C3848F65DE71D73970E063E23B113E36237D21EE06BF414B3E954FCCED55A2F97B9CBA320CC800A387B2CFF90D3C229D9DC6F
And this is the output:
-encrypted_data = 7C7116856E39AEE23DA81918C4964BFEDB3446BB7225CB18068BCAEFFB302AE8D231A4AED8E27893126979F9A667AABB485D5BCFFA4EB8A4DB98E623F513E88AD39FD7A10C5317BB73F43C12926A7B7589B076BBC3BB6EEC22622C68C2DBDA42806A7CB1295DACD847F50D455C417FD37298907D8805AFA4961347ADD77A6B1A118E78C6A721B2BC15EEABB498EB44838FE64839E075CFB822C597F6DB17B82967AAB3379906AB78BEC7B0BDA340479186E3BB6516E781E216954CF4B856247256DA25B6EF332D86C682A841694B05FAB3DFB8DFB766AE7A06D996BBB7DCB56659D13F67D22221EA37502ECC98AF03AF55D20530D2DB5BBB3476CBA3FD0F3C8E
+encrypted_data = 859CE2A8C3343953B8B51FD840A5E91FC5068B2996283AD7AFF31CEC7239C4F280B193EC199B8F37FAAC476589AEAAA308EF5623EF7C596FA3E7FF808E205073AE98CDD56F3C8F57347E0A1601D9F6BF4435E14CB099DD9EA4FBD85EFC6A69C49324FFA923058A366C9B1416EAB246F90091F4D17B5455B606AF1DDE9E19C44AED6F243BE547B79E804E7683246D14D1D7B6A66A89C7DD1536BD9C26AC8826341787FCEDA5A0DEB8411E5EC5B0D547721EC1D278D92C83C9D79B405F9AA6C41C61AEF0476577ACD165C8AD3E29079ACADDA7F3A22D44A16BCE21C5C10778779AF9BDCB7F6CA1A6D709D2B55C4B34195B9ACBFE3FBD38A33FFEA4BD3F7541DA94
The length of the final string is 256 bytes.
5) Send req_DH_params query with generated encrypted_data
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 9C EB 0D 00 07 EB 6C 65
-0010 | 40 01 00 00 BE E4 12 D7 2B 61 E8 CE 46 92 30 D3
-0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
-0030 | B1 CF FB 2E 5A 4C 90 B1 04 3D DE 97 99 00 00 00
-0040 | 04 6F C0 81 B5 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 7C 71 16 85 6E 39 AE E2 3D A8 19 18
-0060 | C4 96 4B FE DB 34 46 BB 72 25 CB 18 06 8B CA EF
-0070 | FB 30 2A E8 D2 31 A4 AE D8 E2 78 93 12 69 79 F9
-0080 | A6 67 AA BB 48 5D 5B CF FA 4E B8 A4 DB 98 E6 23
-0090 | F5 13 E8 8A D3 9F D7 A1 0C 53 17 BB 73 F4 3C 12
-00A0 | 92 6A 7B 75 89 B0 76 BB C3 BB 6E EC 22 62 2C 68
-00B0 | C2 DB DA 42 80 6A 7C B1 29 5D AC D8 47 F5 0D 45
-00C0 | 5C 41 7F D3 72 98 90 7D 88 05 AF A4 96 13 47 AD
-00D0 | D7 7A 6B 1A 11 8E 78 C6 A7 21 B2 BC 15 EE AB B4
-00E0 | 98 EB 44 83 8F E6 48 39 E0 75 CF B8 22 C5 97 F6
-00F0 | DB 17 B8 29 67 AA B3 37 99 06 AB 78 BE C7 B0 BD
-0100 | A3 40 47 91 86 E3 BB 65 16 E7 81 E2 16 95 4C F4
-0110 | B8 56 24 72 56 DA 25 B6 EF 33 2D 86 C6 82 A8 41
-0120 | 69 4B 05 FA B3 DF B8 DF B7 66 AE 7A 06 D9 96 BB
-0130 | B7 DC B5 66 59 D1 3F 67 D2 22 21 EA 37 50 2E CC
-0140 | 98 AF 03 AF 55 D2 05 30 D2 DB 5B BB 34 76 CB A3
-0150 | FD 0F 3C 8E
+0000 | 00 00 00 00 00 00 00 00 D8 6C 0C 00 5D 54 6E 65
+0010 | 40 01 00 00 BE E4 12 D7 A9 A9 E7 60 C1 90 09 93
+0020 | EF 1D D3 FA 51 4A 0E 34 69 41 64 B6 A2 26 86 5F
+0030 | 51 76 4C C1 1D 1D 1C C1 04 68 65 15 7F 00 00 00
+0040 | 04 6B AB CD 3B 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 85 9C E2 A8 C3 34 39 53 B8 B5 1F D8
+0060 | 40 A5 E9 1F C5 06 8B 29 96 28 3A D7 AF F3 1C EC
+0070 | 72 39 C4 F2 80 B1 93 EC 19 9B 8F 37 FA AC 47 65
+0080 | 89 AE AA A3 08 EF 56 23 EF 7C 59 6F A3 E7 FF 80
+0090 | 8E 20 50 73 AE 98 CD D5 6F 3C 8F 57 34 7E 0A 16
+00A0 | 01 D9 F6 BF 44 35 E1 4C B0 99 DD 9E A4 FB D8 5E
+00B0 | FC 6A 69 C4 93 24 FF A9 23 05 8A 36 6C 9B 14 16
+00C0 | EA B2 46 F9 00 91 F4 D1 7B 54 55 B6 06 AF 1D DE
+00D0 | 9E 19 C4 4A ED 6F 24 3B E5 47 B7 9E 80 4E 76 83
+00E0 | 24 6D 14 D1 D7 B6 A6 6A 89 C7 DD 15 36 BD 9C 26
+00F0 | AC 88 26 34 17 87 FC ED A5 A0 DE B8 41 1E 5E C5
+0100 | B0 D5 47 72 1E C1 D2 78 D9 2C 83 C9 D7 9B 40 5F
+0110 | 9A A6 C4 1C 61 AE F0 47 65 77 AC D1 65 C8 AD 3E
+0120 | 29 07 9A CA DD A7 F3 A2 2D 44 A1 6B CE 21 C5 C1
+0130 | 07 78 77 9A F9 BD CB 7F 6C A1 A6 D7 09 D2 B5 5C
+0140 | 4B 34 19 5B 9A CB FE 3F BD 38 A3 3F FE A4 BD 3F
+0150 | 75 41 DA 94
Payload (de)serialization:
req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
@@ -345,7 +345,7 @@ random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D22
message_id
8, 8
-9CEB0D0007EB6C65
+D86C0C005D546E65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -363,25 +363,25 @@ random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D22
nonce
24, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
40, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Value received from server in Step 2
p
56, 8
-043DDE9799000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1037997977
+046865157F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1751455103
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
64, 8
-046FC081B5000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1874887093
+046BABCD3B000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1806421307
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
@@ -393,7 +393,7 @@ random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D22
encrypted_data
80, 260
-FE0001007C7116856E39AEE23DA81918
C4964BFEDB3446BB7225CB18068BCAEF
FB302AE8D231A4AED8E27893126979F9
A667AABB485D5BCFFA4EB8A4DB98E623
F513E88AD39FD7A10C5317BB73F43C12
926A7B7589B076BBC3BB6EEC22622C68
C2DBDA42806A7CB1295DACD847F50D45
5C417FD37298907D8805AFA4961347AD
D77A6B1A118E78C6A721B2BC15EEABB4
98EB44838FE64839E075CFB822C597F6
DB17B82967AAB3379906AB78BEC7B0BD
A340479186E3BB6516E781E216954CF4
B856247256DA25B6EF332D86C682A841
694B05FAB3DFB8DFB766AE7A06D996BB
B7DCB56659D13F67D22221EA37502ECC
98AF03AF55D20530D2DB5BBB3476CBA3
FD0F3C8E
+FE000100859CE2A8C3343953B8B51FD8
40A5E91FC5068B2996283AD7AFF31CEC
7239C4F280B193EC199B8F37FAAC4765
89AEAAA308EF5623EF7C596FA3E7FF80
8E205073AE98CDD56F3C8F57347E0A16
01D9F6BF4435E14CB099DD9EA4FBD85E
FC6A69C49324FFA923058A366C9B1416
EAB246F90091F4D17B5455B606AF1DDE
9E19C44AED6F243BE547B79E804E7683
246D14D1D7B6A66A89C7DD1536BD9C26
AC8826341787FCEDA5A0DEB8411E5EC5
B0D547721EC1D278D92C83C9D79B405F
9AA6C41C61AEF0476577ACD165C8AD3E
29079ACADDA7F3A22D44A16BCE21C5C1
0778779AF9BDCB7F6CA1A6D709D2B55C
4B34195B9ACBFE3FBD38A33FFEA4BD3F
7541DA94
Value generated above
@@ -402,47 +402,47 @@ random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D22
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 B4 EA F2 07 EB 6C 65
-0010 | BC 02 00 00 5C 07 E8 D0 2B 61 E8 CE 46 92 30 D3
-0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
-0030 | B1 CF FB 2E 5A 4C 90 B1 FE 50 02 00 F5 31 B3 DD
-0040 | 83 6C AE 3B E2 8E 2C 1B 46 86 CA F7 70 06 58 FF
-0050 | DE 89 1B 3B 49 DD 4C E5 B7 3D 9F FA 6C 86 62 90
-0060 | 18 57 39 93 9A F0 D6 AE CA B0 A0 B7 85 F5 3B 62
-0070 | C4 C3 C4 F8 F5 97 27 86 CC ED 85 3D 2C FE C7 C6
-0080 | F0 1A 38 36 ED 3C 67 B7 98 AB 8A 7A 5D 40 FF 09
-0090 | A5 A1 89 F0 4C EB AD CC 7F D8 A2 25 86 B7 EF 6A
-00A0 | 39 F3 98 82 FF 5C A4 85 5A B6 95 36 83 B6 7D F8
-00B0 | DE 80 3D 15 75 30 01 F7 51 10 E8 B9 7D 48 49 49
-00C0 | 7A 11 0D 0A 8C 8B 21 98 3B 0E CF 8D 43 AB 9F 14
-00D0 | 95 8A 48 12 C5 FF 13 DA 1C 32 B9 59 66 B5 39 2C
-00E0 | 93 16 39 F6 21 56 77 2D A2 06 A4 91 39 89 56 A1
-00F0 | 28 7E 70 02 17 4F 71 FA 22 12 BC EE C1 A3 DA AE
-0100 | 61 79 89 D9 43 92 6C 3B 1B AE 39 FE 9E F2 77 ED
-0110 | 39 EF D4 22 62 E1 CD FD 1D C9 EF 3D 9E 89 ED A6
-0120 | 86 64 57 FC 7E 5F FB C5 CB C6 CC 89 86 EF 9B F6
-0130 | 56 E2 50 CD BF 1D 00 BF F9 B9 9C C8 7B EC B3 86
-0140 | 38 FD 67 36 6E 61 6B 79 9B B4 BF 6F 09 0A 61 87
-0150 | 68 EC 3A E6 26 53 AD 5A 0B 8D 15 95 0A 40 A7 A0
-0160 | B3 3A 3B 35 5B A1 0E 0B 04 26 9F F0 42 C4 91 6E
-0170 | DA 6D 53 2E 0C DE CC F3 CE 11 6D 65 E4 17 4A BA
-0180 | 90 51 ED B8 0F 12 45 95 A2 92 8B 8E A8 E2 8C 2D
-0190 | D9 B9 93 C4 5B A1 6E 26 51 E3 0E 9B 63 B4 00 EA
-01A0 | 65 89 96 2D CC 05 F4 EE 32 2D AA FB 47 5E 97 C3
-01B0 | 37 C2 FF 2B 07 55 E9 6B 9D E4 02 E9 EE BB C0 D4
-01C0 | 20 D5 E4 46 8A 3D 00 9A A5 1C 32 7B 54 C2 EA F4
-01D0 | 63 90 DE 0C EA D4 51 C7 B6 06 DD 13 24 B8 AB D5
-01E0 | 82 4D FF 7A 59 5B 4E FD 37 90 F1 CF F4 0E 58 F3
-01F0 | D2 DA 00 00 D9 BD 1C CC F4 54 75 E5 E9 60 26 AC
-0200 | 34 DD 5E 72 E1 90 88 AC 41 43 2F 39 8F F0 42 0F
-0210 | 40 BF 9F 63 BF B3 2C 92 4A 40 C4 14 83 02 60 33
-0220 | 12 D3 55 B7 21 8A CB 70 CA DB 13 1A 9D 16 D7 4E
-0230 | 9F 17 73 C0 BF 03 F3 BB 88 7F 22 A8 A4 EA 40 F6
-0240 | 1F 33 51 DD 9A 84 4C 8E AE 16 70 83 B4 C7 2B 39
-0250 | 58 E8 E2 D7 20 92 EE F3 49 18 FD 25 6C 8E 9B B4
-0260 | FE 12 C6 77 74 D1 F4 7E BA EE 20 67 48 81 3F 5A
-0270 | AC 44 36 A6 7E A7 B2 FC 08 EA FF E6 BB 22 31 8C
-0280 | 83 E3 A7 5B 0F 3F 47 EE E9 BF 7C 70
+0000 | 00 00 00 00 00 00 00 00 01 70 B2 7B 5E 54 6E 65
+0010 | 98 02 00 00 5C 07 E8 D0 A9 A9 E7 60 C1 90 09 93
+0020 | EF 1D D3 FA 51 4A 0E 34 69 41 64 B6 A2 26 86 5F
+0030 | 51 76 4C C1 1D 1D 1C C1 FE 50 02 00 C9 EF 02 01
+0040 | 32 84 BC 69 5E FF AA 67 C2 90 7D 89 E3 E6 A4 06
+0050 | AD 58 0B BF 65 16 27 9B 4A DD 57 F9 F9 AE A7 CE
+0060 | 38 AE 90 4A D5 65 D7 6D C5 18 45 2B AE 9B B9 B6
+0070 | DA 5A 1A D1 20 3D FC 5A 6E 45 8C 0E 13 1A 8D 8F
+0080 | 9E 67 19 2A 3E E1 AF 22 30 6D F7 72 ED ED 7C 56
+0090 | 87 FB FD B3 76 DC 17 76 FF 84 4C B4 52 6E 61 21
+00A0 | DD 82 5F 8D 4A A3 94 43 B5 11 1A 1A 0E C4 83 2A
+00B0 | 55 71 36 3A CB EC 73 B7 77 16 08 B2 8B 14 F5 E3
+00C0 | 5D 5D 8E 9F A8 B7 A4 7A AB 42 08 C3 43 78 70 3C
+00D0 | 3E 6A 5F 3A 22 E7 DA 67 05 10 B6 44 BA FB 30 14
+00E0 | 92 CD C6 7C 7D 99 50 24 E8 2E 99 E3 1A E7 6F FD
+00F0 | 2B F4 00 E0 66 63 2B F3 A6 22 3F B9 99 61 74 A9
+0100 | 37 C3 E8 BE 22 8F 07 47 E6 92 DC 69 66 A2 5E 1F
+0110 | BE 2F 84 1C 29 27 FB 63 45 34 CC 0F 27 D5 B2 97
+0120 | 6B 3D BF 32 73 B6 05 BF 82 FC 6A F9 44 3D F7 7F
+0130 | 25 53 A2 30 81 9B CE CA 28 25 98 8E 9C E6 E3 6B
+0140 | 2B FF 5F A9 36 D1 F8 5D 0E 6F 93 50 E2 C4 37 3C
+0150 | 5F 3C EB C1 80 B0 D1 CB 57 6E 0F 33 32 32 D9 F1
+0160 | 18 13 FE 4C 17 3B B2 EA 73 63 8E 8E 93 29 2F 4C
+0170 | 99 D9 AA DA 44 7C BD 2D CB 6A 96 0F 0D C3 90 71
+0180 | 02 FC 67 72 DF 40 D2 F2 0C 97 80 16 0E 95 F0 C6
+0190 | 6C 76 74 80 F5 D2 09 4E 4B 68 2A EA 02 67 AC 63
+01A0 | B7 F5 BE C6 D2 71 34 87 36 42 A8 93 93 BF FF 61
+01B0 | 3D F0 5E 6C AD C5 BE D2 B1 C1 03 4D 25 5D 91 C5
+01C0 | 3E DF 4D 2F 31 77 28 F4 81 44 EF 54 B9 6A 65 93
+01D0 | 15 2C 03 8D 5B 2E 8F A5 7F 06 AC BF 38 33 D8 BD
+01E0 | 3D D2 B6 7C 4B AB 60 AD F4 27 84 E0 3A 97 CC 65
+01F0 | 6C A8 44 E8 06 30 CC 19 93 62 4B 30 6E E9 64 ED
+0200 | 16 84 BF BC C2 25 18 7E C9 5C 69 6A 92 0F 34 F5
+0210 | DF 0A 3B A1 52 68 26 97 58 ED B7 0F F8 66 54 1D
+0220 | 28 58 8A DE 93 4B DF BE 55 90 5E 6F 3E 8B FD 1A
+0230 | 66 0B 34 B2 1B BD 94 C4 CD FE 50 C6 0A 36 0A C1
+0240 | 33 DA 1B B6 73 F6 77 39 17 C1 15 01 AF 67 EF DE
+0250 | 31 16 58 AC C9 6B D2 59 FF 56 3A B4 0A CE 0E 06
+0260 | F7 0E 2B FA 2C 84 05 F3 F3 95 DE 5F D8 58 62 2B
+0270 | D1 A1 8E 1C 3A 6A 4D B5 A8 F8 2B B9 F7 EC 52 D4
+0280 | 10 83 DC 58 94 8E F3 7F CD 24 E8 39
Payload (de)serialization:
server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
@@ -464,13 +464,13 @@ random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D22
message_id
8, 8
-01B4EAF207EB6C65
+0170B27B5E546E65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-BC020000
(700 in decimal)
+98020000
(664 in decimal)
Message body length
@@ -482,19 +482,19 @@ random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D22
nonce
24, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
40, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Value received from server in Step 2
encrypted_answer
56, 596
-FE500200F531B3DD836CAE3BE28E2C1B
4686CAF7700658FFDE891B3B49DD4CE5
B73D9FFA6C866290185739939AF0D6AE
CAB0A0B785F53B62C4C3C4F8F5972786
CCED853D2CFEC7C6F01A3836ED3C67B7
98AB8A7A5D40FF09A5A189F04CEBADCC
7FD8A22586B7EF6A39F39882FF5CA485
5AB6953683B67DF8DE803D15753001F7
5110E8B97D4849497A110D0A8C8B2198
3B0ECF8D43AB9F14958A4812C5FF13DA
1C32B95966B5392C931639F62156772D
A206A491398956A1287E7002174F71FA
2212BCEEC1A3DAAE617989D943926C3B
1BAE39FE9EF277ED39EFD42262E1CDFD
1DC9EF3D9E89EDA6866457FC7E5FFBC5
CBC6CC8986EF9BF656E250CDBF1D00BF
F9B99CC87BECB38638FD67366E616B79
9BB4BF6F090A618768EC3AE62653AD5A
0B8D15950A40A7A0B33A3B355BA10E0B
04269FF042C4916EDA6D532E0CDECCF3
CE116D65E4174ABA9051EDB80F124595
A2928B8EA8E28C2DD9B993C45BA16E26
51E30E9B63B400EA6589962DCC05F4EE
322DAAFB475E97C337C2FF2B0755E96B
9DE402E9EEBBC0D420D5E4468A3D009A
A51C327B54C2EAF46390DE0CEAD451C7
B606DD1324B8ABD5824DFF7A595B4EFD
3790F1CFF40E58F3D2DA0000D9BD1CCC
F45475E5E96026AC34DD5E72E19088AC
41432F398FF0420F40BF9F63BFB32C92
4A40C4148302603312D355B7218ACB70
CADB131A9D16D74E9F1773C0BF03F3BB
887F22A8A4EA40F61F3351DD9A844C8E
AE167083B4C72B3958E8E2D72092EEF3
4918FD256C8E9BB4FE12C67774D1F47E
BAEE206748813F5AAC4436A67EA7B2FC
08EAFFE6BB22318C83E3A75B0F3F47EE
E9BF7C70
+FE500200C9EF02013284BC695EFFAA67
C2907D89E3E6A406AD580BBF6516279B
4ADD57F9F9AEA7CE38AE904AD565D76D
C518452BAE9BB9B6DA5A1AD1203DFC5A
6E458C0E131A8D8F9E67192A3EE1AF22
306DF772EDED7C5687FBFDB376DC1776
FF844CB4526E6121DD825F8D4AA39443
B5111A1A0EC4832A5571363ACBEC73B7
771608B28B14F5E35D5D8E9FA8B7A47A
AB4208C34378703C3E6A5F3A22E7DA67
0510B644BAFB301492CDC67C7D995024
E82E99E31AE76FFD2BF400E066632BF3
A6223FB9996174A937C3E8BE228F0747
E692DC6966A25E1FBE2F841C2927FB63
4534CC0F27D5B2976B3DBF3273B605BF
82FC6AF9443DF77F2553A230819BCECA
2825988E9CE6E36B2BFF5FA936D1F85D
0E6F9350E2C4373C5F3CEBC180B0D1CB
576E0F333232D9F11813FE4C173BB2EA
73638E8E93292F4C99D9AADA447CBD2D
CB6A960F0DC3907102FC6772DF40D2F2
0C9780160E95F0C66C767480F5D2094E
4B682AEA0267AC63B7F5BEC6D2713487
3642A89393BFFF613DF05E6CADC5BED2
B1C1034D255D91C53EDF4D2F317728F4
8144EF54B96A6593152C038D5B2E8FA5
7F06ACBF3833D8BD3DD2B67C4BAB60AD
F42784E03A97CC656CA844E80630CC19
93624B306EE964ED1684BFBCC225187E
C95C696A920F34F5DF0A3BA152682697
58EDB70FF866541D28588ADE934BDFBE
55905E6F3E8BFD1A660B34B21BBD94C4
CDFE50C60A360AC133DA1BB673F67739
17C11501AF67EFDE311658ACC96BD259
FF563AB40ACE0E06F70E2BFA2C8405F3
F395DE5FD858622BD1A18E1C3A6A4DB5
A8F82BB9F7EC52D41083DC58948EF37F
CD24E839
See below
@@ -502,20 +502,20 @@ random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D22
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = F531B3DD836CAE3BE28E2C1B4686CAF7700658FFDE891B3B49DD4CE5B73D9FFA6C866290185739939AF0D6AECAB0A0B785F53B62C4C3C4F8F5972786CCED853D2CFEC7C6F01A3836ED3C67B798AB8A7A5D40FF09A5A189F04CEBADCC7FD8A22586B7EF6A39F39882FF5CA4855AB6953683B67DF8DE803D15753001F75110E8B97D4849497A110D0A8C8B21983B0ECF8D43AB9F14958A4812C5FF13DA1C32B95966B5392C931639F62156772DA206A491398956A1287E7002174F71FA2212BCEEC1A3DAAE617989D943926C3B1BAE39FE9EF277ED39EFD42262E1CDFD1DC9EF3D9E89EDA6866457FC7E5FFBC5CBC6CC8986EF9BF656E250CDBF1D00BFF9B99CC87BECB38638FD67366E616B799BB4BF6F090A618768EC3AE62653AD5A0B8D15950A40A7A0B33A3B355BA10E0B04269FF042C4916EDA6D532E0CDECCF3CE116D65E4174ABA9051EDB80F124595A2928B8EA8E28C2DD9B993C45BA16E2651E30E9B63B400EA6589962DCC05F4EE322DAAFB475E97C337C2FF2B0755E96B9DE402E9EEBBC0D420D5E4468A3D009AA51C327B54C2EAF46390DE0CEAD451C7B606DD1324B8ABD5824DFF7A595B4EFD3790F1CFF40E58F3D2DA0000D9BD1CCCF45475E5E96026AC34DD5E72E19088AC41432F398FF0420F40BF9F63BFB32C924A40C4148302603312D355B7218ACB70CADB131A9D16D74E9F1773C0BF03F3BB887F22A8A4EA40F61F3351DD9A844C8EAE167083B4C72B3958E8E2D72092EEF34918FD256C8E9BB4FE12C67774D1F47EBAEE206748813F5AAC4436A67EA7B2FC08EAFFE6BB22318C83E3A75B0F3F47EEE9BF7C70
-tmp_aes_key = 0EC4F0C14F035104D377C5113F23FFDF8E92F502C8482FACE4396EE318ACBEA1
-tmp_aes_iv = FC4DDAFCB1351D8B0E53DB5B10E1B7F5EFA5AB0F2B8188414A4BC90C16401EE2
+encrypted_answer = C9EF02013284BC695EFFAA67C2907D89E3E6A406AD580BBF6516279B4ADD57F9F9AEA7CE38AE904AD565D76DC518452BAE9BB9B6DA5A1AD1203DFC5A6E458C0E131A8D8F9E67192A3EE1AF22306DF772EDED7C5687FBFDB376DC1776FF844CB4526E6121DD825F8D4AA39443B5111A1A0EC4832A5571363ACBEC73B7771608B28B14F5E35D5D8E9FA8B7A47AAB4208C34378703C3E6A5F3A22E7DA670510B644BAFB301492CDC67C7D995024E82E99E31AE76FFD2BF400E066632BF3A6223FB9996174A937C3E8BE228F0747E692DC6966A25E1FBE2F841C2927FB634534CC0F27D5B2976B3DBF3273B605BF82FC6AF9443DF77F2553A230819BCECA2825988E9CE6E36B2BFF5FA936D1F85D0E6F9350E2C4373C5F3CEBC180B0D1CB576E0F333232D9F11813FE4C173BB2EA73638E8E93292F4C99D9AADA447CBD2DCB6A960F0DC3907102FC6772DF40D2F20C9780160E95F0C66C767480F5D2094E4B682AEA0267AC63B7F5BEC6D27134873642A89393BFFF613DF05E6CADC5BED2B1C1034D255D91C53EDF4D2F317728F48144EF54B96A6593152C038D5B2E8FA57F06ACBF3833D8BD3DD2B67C4BAB60ADF42784E03A97CC656CA844E80630CC1993624B306EE964ED1684BFBCC225187EC95C696A920F34F5DF0A3BA15268269758EDB70FF866541D28588ADE934BDFBE55905E6F3E8BFD1A660B34B21BBD94C4CDFE50C60A360AC133DA1BB673F6773917C11501AF67EFDE311658ACC96BD259FF563AB40ACE0E06F70E2BFA2C8405F3F395DE5FD858622BD1A18E1C3A6A4DB5A8F82BB9F7EC52D41083DC58948EF37FCD24E839
+tmp_aes_key = E96A1792988B55D95430AE549C488BF681641EC28E79158F9E3CC33BFDF87960
+tmp_aes_iv = 8861AD3E24391A7C3CC470124711FB6AC4F42268A01FFE4DD29D9FCA288034A2
Yielding:
-answer_with_hash = 4025DC61AA8D3AD9FCF7D215C8FB2808285ACBD8BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B103000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002DDF0E0962C4FF122336959E5F1EF9ECDE0D5133DDA3F5226BF41BAAAFF1E406040D53EA007E1F860A6C492FDBC9081F5C961331348B8F53BB48EAA9F0CBD48FB8B8BD70DB1158296F0BF749D70DD32DBA7D83C5C4CE6B59B433030AE2C262BC0E39928A8120A262EF2B6BE8C1EADB73F39B77C85432B8230223774AF46ABBD790D4833CA1C169E0DA63F98CB9471AE9C9E12BCA8131C93B299E1A2EEA8FA3D452F80C72AC032AF5691560E84D2C4E7F89216C33B9ECE8D7C886DBC704C906DA70C459DADDBD31A891968A0876E66E634D635653A80985D5D9B19FB3A2E0C35415613F272CE291166B4D7C354BEA323B11930D99E2E405EF8B3CCEDCE1B4B2CB07EB6C6513675A1B626B5E92
-answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B103000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002DDF0E0962C4FF122336959E5F1EF9ECDE0D5133DDA3F5226BF41BAAAFF1E406040D53EA007E1F860A6C492FDBC9081F5C961331348B8F53BB48EAA9F0CBD48FB8B8BD70DB1158296F0BF749D70DD32DBA7D83C5C4CE6B59B433030AE2C262BC0E39928A8120A262EF2B6BE8C1EADB73F39B77C85432B8230223774AF46ABBD790D4833CA1C169E0DA63F98CB9471AE9C9E12BCA8131C93B299E1A2EEA8FA3D452F80C72AC032AF5691560E84D2C4E7F89216C33B9ECE8D7C886DBC704C906DA70C459DADDBD31A891968A0876E66E634D635653A80985D5D9B19FB3A2E0C35415613F272CE291166B4D7C354BEA323B11930D99E2E405EF8B3CCEDCE1B4B2CB07EB6C6513675A1B626B5E92
+answer_with_hash = 04EFE59D8CA105B3FEFD125A52ED14A395F52677BA0D89B5A9A9E760C1900993EF1DD3FA514A0E34694164B6A226865F51764CC11D1D1CC103000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100B0C038130ECF205F6785B02CF13BA26796D2DCE18D6C8ADE7C682D7F8214CE9404A30DF9B071B2713CE3F6CC9F690245BAB323F905E1B6811C19BEDEB515F9297C7C4ADC9F0C2C045223128E6443B7CD05C004C4F5A36851114ED6E8FC6580C48C7A1955B21EC90ECFC30E8F30F9E97854755920040CEC5E75FDCABE9E2C2EC3BD895CED053B0BBD3A251DDF321E17EC81757155ECB0DC3770D3FD5F60A287C42CF298DB44E1F68D54921DDE2D17227C1121D75F37952EAC2B350C3F8E8059D65F404BB1FCEA36FFB996150D41DD0624CEB2628A085A859CFF174D5C366983451D50D912C722D44B80924A19138F7DCBFA56273E9119643FFC4B5A782FFE0AC45E546E65C1255A8B7D9F86A3
+answer = BA0D89B5A9A9E760C1900993EF1DD3FA514A0E34694164B6A226865F51764CC11D1D1CC103000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100B0C038130ECF205F6785B02CF13BA26796D2DCE18D6C8ADE7C682D7F8214CE9404A30DF9B071B2713CE3F6CC9F690245BAB323F905E1B6811C19BEDEB515F9297C7C4ADC9F0C2C045223128E6443B7CD05C004C4F5A36851114ED6E8FC6580C48C7A1955B21EC90ECFC30E8F30F9E97854755920040CEC5E75FDCABE9E2C2EC3BD895CED053B0BBD3A251DDF321E17EC81757155ECB0DC3770D3FD5F60A287C42CF298DB44E1F68D54921DDE2D17227C1121D75F37952EAC2B350C3F8E8059D65F404BB1FCEA36FFB996150D41DD0624CEB2628A085A859CFF174D5C366983451D50D912C722D44B80924A19138F7DCBFA56273E9119643FFC4B5A782FFE0AC45E546E65C1255A8B7D9F86A3
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 2B 61 E8 CE 46 92 30 D3 F0 2E B0 DD
-0010 | 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C B1 CF FB 2E
-0020 | 5A 4C 90 B1 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 A9 A9 E7 60 C1 90 09 93 EF 1D D3 FA
+0010 | 51 4A 0E 34 69 41 64 B6 A2 26 86 5F 51 76 4C C1
+0020 | 1D 1D 1C C1 03 00 00 00 FE 00 01 00 C7 1C AE B9
0030 | C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23
0040 | 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A
0050 | A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E
@@ -532,23 +532,23 @@ answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B
0100 | F4 7B F9 59 D9 56 85 0C E9 29 85 1F 0D 81 15 F6
0110 | 35 B1 05 EE 2E 4E 15 D0 4B 24 54 BF 6F 4F AD F0
0120 | 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B FE 00 01 00
-0130 | 2D DF 0E 09 62 C4 FF 12 23 36 95 9E 5F 1E F9 EC
-0140 | DE 0D 51 33 DD A3 F5 22 6B F4 1B AA AF F1 E4 06
-0150 | 04 0D 53 EA 00 7E 1F 86 0A 6C 49 2F DB C9 08 1F
-0160 | 5C 96 13 31 34 8B 8F 53 BB 48 EA A9 F0 CB D4 8F
-0170 | B8 B8 BD 70 DB 11 58 29 6F 0B F7 49 D7 0D D3 2D
-0180 | BA 7D 83 C5 C4 CE 6B 59 B4 33 03 0A E2 C2 62 BC
-0190 | 0E 39 92 8A 81 20 A2 62 EF 2B 6B E8 C1 EA DB 73
-01A0 | F3 9B 77 C8 54 32 B8 23 02 23 77 4A F4 6A BB D7
-01B0 | 90 D4 83 3C A1 C1 69 E0 DA 63 F9 8C B9 47 1A E9
-01C0 | C9 E1 2B CA 81 31 C9 3B 29 9E 1A 2E EA 8F A3 D4
-01D0 | 52 F8 0C 72 AC 03 2A F5 69 15 60 E8 4D 2C 4E 7F
-01E0 | 89 21 6C 33 B9 EC E8 D7 C8 86 DB C7 04 C9 06 DA
-01F0 | 70 C4 59 DA DD BD 31 A8 91 96 8A 08 76 E6 6E 63
-0200 | 4D 63 56 53 A8 09 85 D5 D9 B1 9F B3 A2 E0 C3 54
-0210 | 15 61 3F 27 2C E2 91 16 6B 4D 7C 35 4B EA 32 3B
-0220 | 11 93 0D 99 E2 E4 05 EF 8B 3C CE DC E1 B4 B2 CB
-0230 | 07 EB 6C 65
+0130 | B0 C0 38 13 0E CF 20 5F 67 85 B0 2C F1 3B A2 67
+0140 | 96 D2 DC E1 8D 6C 8A DE 7C 68 2D 7F 82 14 CE 94
+0150 | 04 A3 0D F9 B0 71 B2 71 3C E3 F6 CC 9F 69 02 45
+0160 | BA B3 23 F9 05 E1 B6 81 1C 19 BE DE B5 15 F9 29
+0170 | 7C 7C 4A DC 9F 0C 2C 04 52 23 12 8E 64 43 B7 CD
+0180 | 05 C0 04 C4 F5 A3 68 51 11 4E D6 E8 FC 65 80 C4
+0190 | 8C 7A 19 55 B2 1E C9 0E CF C3 0E 8F 30 F9 E9 78
+01A0 | 54 75 59 20 04 0C EC 5E 75 FD CA BE 9E 2C 2E C3
+01B0 | BD 89 5C ED 05 3B 0B BD 3A 25 1D DF 32 1E 17 EC
+01C0 | 81 75 71 55 EC B0 DC 37 70 D3 FD 5F 60 A2 87 C4
+01D0 | 2C F2 98 DB 44 E1 F6 8D 54 92 1D DE 2D 17 22 7C
+01E0 | 11 21 D7 5F 37 95 2E AC 2B 35 0C 3F 8E 80 59 D6
+01F0 | 5F 40 4B B1 FC EA 36 FF B9 96 15 0D 41 DD 06 24
+0200 | CE B2 62 8A 08 5A 85 9C FF 17 4D 5C 36 69 83 45
+0210 | 1D 50 D9 12 C7 22 D4 4B 80 92 4A 19 13 8F 7D CB
+0220 | FA 56 27 3E 91 19 64 3F FC 4B 5A 78 2F FE 0A C4
+0230 | 5E 54 6E 65
Payload (de)serialization:
server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
@@ -570,13 +570,13 @@ answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B
nonce
4, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
20, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Value received from server in Step 2
@@ -594,13 +594,13 @@ answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B
g_a
300, 260
-FE0001002DDF0E0962C4FF122336959E
5F1EF9ECDE0D5133DDA3F5226BF41BAA
AFF1E406040D53EA007E1F860A6C492F
DBC9081F5C961331348B8F53BB48EAA9
F0CBD48FB8B8BD70DB1158296F0BF749
D70DD32DBA7D83C5C4CE6B59B433030A
E2C262BC0E39928A8120A262EF2B6BE8
C1EADB73F39B77C85432B8230223774A
F46ABBD790D4833CA1C169E0DA63F98C
B9471AE9C9E12BCA8131C93B299E1A2E
EA8FA3D452F80C72AC032AF5691560E8
4D2C4E7F89216C33B9ECE8D7C886DBC7
04C906DA70C459DADDBD31A891968A08
76E66E634D635653A80985D5D9B19FB3
A2E0C35415613F272CE291166B4D7C35
4BEA323B11930D99E2E405EF8B3CCEDC
E1B4B2CB
+FE000100B0C038130ECF205F6785B02C
F13BA26796D2DCE18D6C8ADE7C682D7F
8214CE9404A30DF9B071B2713CE3F6CC
9F690245BAB323F905E1B6811C19BEDE
B515F9297C7C4ADC9F0C2C045223128E
6443B7CD05C004C4F5A36851114ED6E8
FC6580C48C7A1955B21EC90ECFC30E8F
30F9E97854755920040CEC5E75FDCABE
9E2C2EC3BD895CED053B0BBD3A251DDF
321E17EC81757155ECB0DC3770D3FD5F
60A287C42CF298DB44E1F68D54921DDE
2D17227C1121D75F37952EAC2B350C3F
8E8059D65F404BB1FCEA36FFB996150D
41DD0624CEB2628A085A859CFF174D5C
366983451D50D912C722D44B80924A19
138F7DCBFA56273E9119643FFC4B5A78
2FFE0AC4
g_a
diffie-hellman parameter
server_time
560, 4
-07EB6C65
(1701636871 in decimal)
+5E546E65
(1701729374 in decimal)
Server time
@@ -609,34 +609,34 @@ answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B
7) Client computes random 2048-bit number b (using a sufficient amount of entropy) and sends the server a message
First, generate a secure random 2048-bit number b:
-b = 7CAC5DD30984C50AA842F48F90D80FBB1B7C7E480D5094E366EF8CD9A3B9A653AA5AF5EAA939787618D5A4AB2D7BE565CB706BF7AD36F0BC9C9D518E25FBCC0404E9C815647B604A08CC827286D898058C7B4582B27956543D102CFD3D74F7874DCE8BA87E543A79FD89155B066119373A8D71B7A10D6774C21E5C8A9CDDFF75FDD6A5A38F5CD0FAB8206DAC93E6AE19004F7DE83A1542657ABD407E388F1AE26A789D0B136B64A20954914404A2E9605E71578D1B8B2F6D60CE51A26A39DA4ABFC1186FA3753F1A335F0FA2EAD84C00A2A1DA24E1E066569FADFD43FD1A1C21582600FD42352831965A3410FD163065CEAADE55EF6727EB613BD709543171C0
+b = 98E98E89E25659746BB1B7D32360E34685BD948BC6B8D6B1EA94A994E018D7E45F8A218021B583C181E8F0FAB182796B011ABE552528E4BB9600AC0CE69D17F1AF0099F412F037F1E5D54784F8B57DB102B2D02B00AD84D4A33F7EAF049EFFB4ADAC676099D2C680BA2D6C508DC6D6E56898EB8504D4E46C64D3277A643EC1A53CAF435D47C35F1BF2D53B298269459B36FAF38BAF8429CD72BEB0467E75B4867B291D5D18A18CDA3372E7B714E28A8CAEFAA3476E007EE8AB54D482CC9814B13F7CF5B8DA04E4303BBA0F58A4A1BA7A3077A02619F435E638B9A520996E9A545FC09EB97D7C404AA451878B9FE0B5C5F48C178B099400DDF627200AA06A4FEC
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 5DE63467EDB3BFAA85242250ED73AD59FFB6421128FC16D29B5863532214029F0A553DA6AFE4C6C9B0B8471156308B17DBC829B8DDA7D48A762AE917726E80380AE83915F29A76D44964F6EFE3171CAC12EB3293FF42F2430793219478BABD6575F30BD1FCA2D1386421ABFA37D064D15F95E3B20F12171485150EFAA6F4EAF7F6B7CC3F8BA663322962005380A9BE9E3D7C1F4C3C080862DD7420488B072EC81873F872B62A7FCD3798E7E92C5F53DD730E92AB882406C4A10644A9B71A86F3C96229F5A11C1B1EDB40817556F15075A3CB9B5CCA73BA1CE7B3EF3EB4D0661D01F5EC8A2AF64928C902DDE03BCAF13AA51417A81116817CA753EF924020F12A
+g_b = 2588E25A92633AD1B5FC851F5A4B9F8BB0A26145EC5E160369577DFF86CAF703A4D02DB7F512E696ECA856DA52C0D3FCFE91991D1A7D7207AEE7C20B0553EE13DFFF4CBE3771299FA40C2AC5281DF37B68E9E314440CFE3C59C2A2AD607C13607815AB8A6744551F2F6F890AA3C2BA8649DFB1C910BD1B166698B7A75B00BCA5D2F0444C88D97B843350AE83095C1BE4BACDF25720BA2248D473CDD6571A35E54C2E350892AD752CF92D6F5D1189C7914A2D6033D78591FB2EF7DAFD3F3E9A43AA84875CDCAAD4AC423A2856BFC110226C9688981F5AE981FB84432D49FF2FC04ACFC6A82BA89BC336D93359C6CECE1C1ECCE7450B079DB9581D01A895805CD6
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 2B 61 E8 CE 46 92 30 D3 F0 2E B0 DD
-0010 | 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C B1 CF FB 2E
-0020 | 5A 4C 90 B1 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 5D E6 34 67 ED B3 BF AA 85 24 22 50 ED 73 AD 59
-0040 | FF B6 42 11 28 FC 16 D2 9B 58 63 53 22 14 02 9F
-0050 | 0A 55 3D A6 AF E4 C6 C9 B0 B8 47 11 56 30 8B 17
-0060 | DB C8 29 B8 DD A7 D4 8A 76 2A E9 17 72 6E 80 38
-0070 | 0A E8 39 15 F2 9A 76 D4 49 64 F6 EF E3 17 1C AC
-0080 | 12 EB 32 93 FF 42 F2 43 07 93 21 94 78 BA BD 65
-0090 | 75 F3 0B D1 FC A2 D1 38 64 21 AB FA 37 D0 64 D1
-00A0 | 5F 95 E3 B2 0F 12 17 14 85 15 0E FA A6 F4 EA F7
-00B0 | F6 B7 CC 3F 8B A6 63 32 29 62 00 53 80 A9 BE 9E
-00C0 | 3D 7C 1F 4C 3C 08 08 62 DD 74 20 48 8B 07 2E C8
-00D0 | 18 73 F8 72 B6 2A 7F CD 37 98 E7 E9 2C 5F 53 DD
-00E0 | 73 0E 92 AB 88 24 06 C4 A1 06 44 A9 B7 1A 86 F3
-00F0 | C9 62 29 F5 A1 1C 1B 1E DB 40 81 75 56 F1 50 75
-0100 | A3 CB 9B 5C CA 73 BA 1C E7 B3 EF 3E B4 D0 66 1D
-0110 | 01 F5 EC 8A 2A F6 49 28 C9 02 DD E0 3B CA F1 3A
-0120 | A5 14 17 A8 11 16 81 7C A7 53 EF 92 40 20 F1 2A
+0000 | 54 B6 43 66 A9 A9 E7 60 C1 90 09 93 EF 1D D3 FA
+0010 | 51 4A 0E 34 69 41 64 B6 A2 26 86 5F 51 76 4C C1
+0020 | 1D 1D 1C C1 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 25 88 E2 5A 92 63 3A D1 B5 FC 85 1F 5A 4B 9F 8B
+0040 | B0 A2 61 45 EC 5E 16 03 69 57 7D FF 86 CA F7 03
+0050 | A4 D0 2D B7 F5 12 E6 96 EC A8 56 DA 52 C0 D3 FC
+0060 | FE 91 99 1D 1A 7D 72 07 AE E7 C2 0B 05 53 EE 13
+0070 | DF FF 4C BE 37 71 29 9F A4 0C 2A C5 28 1D F3 7B
+0080 | 68 E9 E3 14 44 0C FE 3C 59 C2 A2 AD 60 7C 13 60
+0090 | 78 15 AB 8A 67 44 55 1F 2F 6F 89 0A A3 C2 BA 86
+00A0 | 49 DF B1 C9 10 BD 1B 16 66 98 B7 A7 5B 00 BC A5
+00B0 | D2 F0 44 4C 88 D9 7B 84 33 50 AE 83 09 5C 1B E4
+00C0 | BA CD F2 57 20 BA 22 48 D4 73 CD D6 57 1A 35 E5
+00D0 | 4C 2E 35 08 92 AD 75 2C F9 2D 6F 5D 11 89 C7 91
+00E0 | 4A 2D 60 33 D7 85 91 FB 2E F7 DA FD 3F 3E 9A 43
+00F0 | AA 84 87 5C DC AA D4 AC 42 3A 28 56 BF C1 10 22
+0100 | 6C 96 88 98 1F 5A E9 81 FB 84 43 2D 49 FF 2F C0
+0110 | 4A CF C6 A8 2B A8 9B C3 36 D9 33 59 C6 CE CE 1C
+0120 | 1E CC E7 45 0B 07 9D B9 58 1D 01 A8 95 80 5C D6
Payload (de)serialization:
client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
@@ -658,19 +658,19 @@ answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B
nonce
4, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
20, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Value received from server in Step 2
g_b
36, 260
-FE0001005DE63467EDB3BFAA85242250
ED73AD59FFB6421128FC16D29B586353
2214029F0A553DA6AFE4C6C9B0B84711
56308B17DBC829B8DDA7D48A762AE917
726E80380AE83915F29A76D44964F6EF
E3171CAC12EB3293FF42F24307932194
78BABD6575F30BD1FCA2D1386421ABFA
37D064D15F95E3B20F12171485150EFA
A6F4EAF7F6B7CC3F8BA6633229620053
80A9BE9E3D7C1F4C3C080862DD742048
8B072EC81873F872B62A7FCD3798E7E9
2C5F53DD730E92AB882406C4A10644A9
B71A86F3C96229F5A11C1B1EDB408175
56F15075A3CB9B5CCA73BA1CE7B3EF3E
B4D0661D01F5EC8A2AF64928C902DDE0
3BCAF13AA51417A81116817CA753EF92
4020F12A
+FE0001002588E25A92633AD1B5FC851F
5A4B9F8BB0A26145EC5E160369577DFF
86CAF703A4D02DB7F512E696ECA856DA
52C0D3FCFE91991D1A7D7207AEE7C20B
0553EE13DFFF4CBE3771299FA40C2AC5
281DF37B68E9E314440CFE3C59C2A2AD
607C13607815AB8A6744551F2F6F890A
A3C2BA8649DFB1C910BD1B166698B7A7
5B00BCA5D2F0444C88D97B843350AE83
095C1BE4BACDF25720BA2248D473CDD6
571A35E54C2E350892AD752CF92D6F5D
1189C7914A2D6033D78591FB2EF7DAFD
3F3E9A43AA84875CDCAAD4AC423A2856
BFC110226C9688981F5AE981FB84432D
49FF2FC04ACFC6A82BA89BC336D93359
C6CECE1C1ECCE7450B079DB9581D01A8
95805CD6
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -684,47 +684,47 @@ answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B
The serialization of Client_DH_Inner_Data produces a string data. This is used to generate encrypted_data as specified in step 6, using the following inputs:
-data = 54B643662B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B10000000000000000FE0001005DE63467EDB3BFAA85242250ED73AD59FFB6421128FC16D29B5863532214029F0A553DA6AFE4C6C9B0B8471156308B17DBC829B8DDA7D48A762AE917726E80380AE83915F29A76D44964F6EFE3171CAC12EB3293FF42F2430793219478BABD6575F30BD1FCA2D1386421ABFA37D064D15F95E3B20F12171485150EFAA6F4EAF7F6B7CC3F8BA663322962005380A9BE9E3D7C1F4C3C080862DD7420488B072EC81873F872B62A7FCD3798E7E92C5F53DD730E92AB882406C4A10644A9B71A86F3C96229F5A11C1B1EDB40817556F15075A3CB9B5CCA73BA1CE7B3EF3EB4D0661D01F5EC8A2AF64928C902DDE03BCAF13AA51417A81116817CA753EF924020F12A
-padding = 31258D84C9988CCA58689670
-tmp_aes_key = 0EC4F0C14F035104D377C5113F23FFDF8E92F502C8482FACE4396EE318ACBEA1
-tmp_aes_iv = FC4DDAFCB1351D8B0E53DB5B10E1B7F5EFA5AB0F2B8188414A4BC90C16401EE2
+data = 54B64366A9A9E760C1900993EF1DD3FA514A0E34694164B6A226865F51764CC11D1D1CC10000000000000000FE0001002588E25A92633AD1B5FC851F5A4B9F8BB0A26145EC5E160369577DFF86CAF703A4D02DB7F512E696ECA856DA52C0D3FCFE91991D1A7D7207AEE7C20B0553EE13DFFF4CBE3771299FA40C2AC5281DF37B68E9E314440CFE3C59C2A2AD607C13607815AB8A6744551F2F6F890AA3C2BA8649DFB1C910BD1B166698B7A75B00BCA5D2F0444C88D97B843350AE83095C1BE4BACDF25720BA2248D473CDD6571A35E54C2E350892AD752CF92D6F5D1189C7914A2D6033D78591FB2EF7DAFD3F3E9A43AA84875CDCAAD4AC423A2856BFC110226C9688981F5AE981FB84432D49FF2FC04ACFC6A82BA89BC336D93359C6CECE1C1ECCE7450B079DB9581D01A895805CD6
+padding = 970F83BB03E563DE1C1C370E
+tmp_aes_key = E96A1792988B55D95430AE549C488BF681641EC28E79158F9E3CC33BFDF87960
+tmp_aes_iv = 8861AD3E24391A7C3CC470124711FB6AC4F42268A01FFE4DD29D9FCA288034A2
Process:
data_with_hash := SHA1(data) + data + padding (0-15 random bytes such that total length is divisible by 16)
encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);
Output:
-encrypted_data = 03B6A54797F1485038D9AE309CA59FDA675B09F363EC6A9728D282D71AEC467BC5451C0C80A8E87AC073591ED197E3DDE2E026B4C375B60089C5AF1899FBB86CFBD763F5E295BB8B256E40027C536B6835265FA270708ECE9BE46388706839EC90C9EA697B69985277F1AD4C96C939E6A4C5E0245BF4C4BFA36E7083EFD5701F72845137C88FFAEEEB15546DE8DD405120755D022C68888A55546C28A4982B2E06030297A18C720AE560E7C86764D3B239469E07BEE02D804104163C5176D6FF881724C279614AC53DDCBE47DDA625F5D2BFCF249904AABC474DCDA70298178F4D5EFB295E6ECB97742939B335163B204145B0A4ABEE779B14FB956FEDD6DB6C4960E029F16E14CD45A14BB8612F4814933541D4E9BBC32489E120604DF76FA043B9131A83CA20C3BF129C5846DF6E802259401E482BA5314901DB1ED9713A8ACCBAEC6E74AE2F18DB566EB2ED354768
+encrypted_data = 3100EDA298CD8244750C6E6C869D860C090E77B7E459E730FF1536D707787EC4BCDC65955E0E0A6A35FD241EE8AA3D04F4182F096CB43E85AD31A07AFDE27D64196B4E7FB7076057F12C7DA829D0B188645DC2674E466D031C93CEF333AD57FABD08ED86A5431DA34BFFAE8BAD98FB379875DB69316DA8A4B2678A5DE565DC380659155C50855C279B7CC76C599E66DA2DCCD9ECEF66539B1C2DCE512FD7FB5F5F5426BB64C01BADA6D5D98665022C5EC2B201F162404A66CDC6B27F5CCAA9AF971EB7D7CC07098FB8D3D9BA6F511753F8D11E2797CC3632D5B87AB4B5AB11E708D81BF0CC62695D5150460BAD2C14D918B50BA4E57026992692CDF299537458BBD977907EA0DB2EAC49E29523AE767F57C60EE317F4E9F541115EE445B2D8B91983ADABDE5D05C2269FA3062F4FAACC148574F5127C814F2C9CE550F0D5E9D9F19C5031836655CD773082ABAC0BE5A9
The length of the final string is 336 bytes.
7.2) set_client_DH_params query
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 A0 EB 0D 00 07 EB 6C 65
-0010 | 78 01 00 00 1F 5F 04 F5 2B 61 E8 CE 46 92 30 D3
-0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
-0030 | B1 CF FB 2E 5A 4C 90 B1 FE 50 01 00 03 B6 A5 47
-0040 | 97 F1 48 50 38 D9 AE 30 9C A5 9F DA 67 5B 09 F3
-0050 | 63 EC 6A 97 28 D2 82 D7 1A EC 46 7B C5 45 1C 0C
-0060 | 80 A8 E8 7A C0 73 59 1E D1 97 E3 DD E2 E0 26 B4
-0070 | C3 75 B6 00 89 C5 AF 18 99 FB B8 6C FB D7 63 F5
-0080 | E2 95 BB 8B 25 6E 40 02 7C 53 6B 68 35 26 5F A2
-0090 | 70 70 8E CE 9B E4 63 88 70 68 39 EC 90 C9 EA 69
-00A0 | 7B 69 98 52 77 F1 AD 4C 96 C9 39 E6 A4 C5 E0 24
-00B0 | 5B F4 C4 BF A3 6E 70 83 EF D5 70 1F 72 84 51 37
-00C0 | C8 8F FA EE EB 15 54 6D E8 DD 40 51 20 75 5D 02
-00D0 | 2C 68 88 8A 55 54 6C 28 A4 98 2B 2E 06 03 02 97
-00E0 | A1 8C 72 0A E5 60 E7 C8 67 64 D3 B2 39 46 9E 07
-00F0 | BE E0 2D 80 41 04 16 3C 51 76 D6 FF 88 17 24 C2
-0100 | 79 61 4A C5 3D DC BE 47 DD A6 25 F5 D2 BF CF 24
-0110 | 99 04 AA BC 47 4D CD A7 02 98 17 8F 4D 5E FB 29
-0120 | 5E 6E CB 97 74 29 39 B3 35 16 3B 20 41 45 B0 A4
-0130 | AB EE 77 9B 14 FB 95 6F ED D6 DB 6C 49 60 E0 29
-0140 | F1 6E 14 CD 45 A1 4B B8 61 2F 48 14 93 35 41 D4
-0150 | E9 BB C3 24 89 E1 20 60 4D F7 6F A0 43 B9 13 1A
-0160 | 83 CA 20 C3 BF 12 9C 58 46 DF 6E 80 22 59 40 1E
-0170 | 48 2B A5 31 49 01 DB 1E D9 71 3A 8A CC BA EC 6E
-0180 | 74 AE 2F 18 DB 56 6E B2 ED 35 47 68
+0000 | 00 00 00 00 00 00 00 00 B0 17 03 00 5E 54 6E 65
+0010 | 78 01 00 00 1F 5F 04 F5 A9 A9 E7 60 C1 90 09 93
+0020 | EF 1D D3 FA 51 4A 0E 34 69 41 64 B6 A2 26 86 5F
+0030 | 51 76 4C C1 1D 1D 1C C1 FE 50 01 00 31 00 ED A2
+0040 | 98 CD 82 44 75 0C 6E 6C 86 9D 86 0C 09 0E 77 B7
+0050 | E4 59 E7 30 FF 15 36 D7 07 78 7E C4 BC DC 65 95
+0060 | 5E 0E 0A 6A 35 FD 24 1E E8 AA 3D 04 F4 18 2F 09
+0070 | 6C B4 3E 85 AD 31 A0 7A FD E2 7D 64 19 6B 4E 7F
+0080 | B7 07 60 57 F1 2C 7D A8 29 D0 B1 88 64 5D C2 67
+0090 | 4E 46 6D 03 1C 93 CE F3 33 AD 57 FA BD 08 ED 86
+00A0 | A5 43 1D A3 4B FF AE 8B AD 98 FB 37 98 75 DB 69
+00B0 | 31 6D A8 A4 B2 67 8A 5D E5 65 DC 38 06 59 15 5C
+00C0 | 50 85 5C 27 9B 7C C7 6C 59 9E 66 DA 2D CC D9 EC
+00D0 | EF 66 53 9B 1C 2D CE 51 2F D7 FB 5F 5F 54 26 BB
+00E0 | 64 C0 1B AD A6 D5 D9 86 65 02 2C 5E C2 B2 01 F1
+00F0 | 62 40 4A 66 CD C6 B2 7F 5C CA A9 AF 97 1E B7 D7
+0100 | CC 07 09 8F B8 D3 D9 BA 6F 51 17 53 F8 D1 1E 27
+0110 | 97 CC 36 32 D5 B8 7A B4 B5 AB 11 E7 08 D8 1B F0
+0120 | CC 62 69 5D 51 50 46 0B AD 2C 14 D9 18 B5 0B A4
+0130 | E5 70 26 99 26 92 CD F2 99 53 74 58 BB D9 77 90
+0140 | 7E A0 DB 2E AC 49 E2 95 23 AE 76 7F 57 C6 0E E3
+0150 | 17 F4 E9 F5 41 11 5E E4 45 B2 D8 B9 19 83 AD AB
+0160 | DE 5D 05 C2 26 9F A3 06 2F 4F AA CC 14 85 74 F5
+0170 | 12 7C 81 4F 2C 9C E5 50 F0 D5 E9 D9 F1 9C 50 31
+0180 | 83 66 55 CD 77 30 82 AB AC 0B E5 A9
Payload (de)serialization:
set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
@@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id
8, 8
-A0EB0D0007EB6C65
+B01703005E546E65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce
24, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
40, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Value received from server in Step 2
encrypted_data
56, 340
-FE50010003B6A54797F1485038D9AE30
9CA59FDA675B09F363EC6A9728D282D7
1AEC467BC5451C0C80A8E87AC073591E
D197E3DDE2E026B4C375B60089C5AF18
99FBB86CFBD763F5E295BB8B256E4002
7C536B6835265FA270708ECE9BE46388
706839EC90C9EA697B69985277F1AD4C
96C939E6A4C5E0245BF4C4BFA36E7083
EFD5701F72845137C88FFAEEEB15546D
E8DD405120755D022C68888A55546C28
A4982B2E06030297A18C720AE560E7C8
6764D3B239469E07BEE02D804104163C
5176D6FF881724C279614AC53DDCBE47
DDA625F5D2BFCF249904AABC474DCDA7
0298178F4D5EFB295E6ECB97742939B3
35163B204145B0A4ABEE779B14FB956F
EDD6DB6C4960E029F16E14CD45A14BB8
612F4814933541D4E9BBC32489E12060
4DF76FA043B9131A83CA20C3BF129C58
46DF6E802259401E482BA5314901DB1E
D9713A8ACCBAEC6E74AE2F18DB566EB2
ED354768
+FE5001003100EDA298CD8244750C6E6C
869D860C090E77B7E459E730FF1536D7
07787EC4BCDC65955E0E0A6A35FD241E
E8AA3D04F4182F096CB43E85AD31A07A
FDE27D64196B4E7FB7076057F12C7DA8
29D0B188645DC2674E466D031C93CEF3
33AD57FABD08ED86A5431DA34BFFAE8B
AD98FB379875DB69316DA8A4B2678A5D
E565DC380659155C50855C279B7CC76C
599E66DA2DCCD9ECEF66539B1C2DCE51
2FD7FB5F5F5426BB64C01BADA6D5D986
65022C5EC2B201F162404A66CDC6B27F
5CCAA9AF971EB7D7CC07098FB8D3D9BA
6F511753F8D11E2797CC3632D5B87AB4
B5AB11E708D81BF0CC62695D5150460B
AD2C14D918B50BA4E57026992692CDF2
99537458BBD977907EA0DB2EAC49E295
23AE767F57C60EE317F4E9F541115EE4
45B2D8B91983ADABDE5D05C2269FA306
2F4FAACC148574F5127C814F2C9CE550
F0D5E9D9F19C5031836655CD773082AB
AC0BE5A9
Encrypted client_DH_inner_data generated previously, serialized as a TL byte string
@@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
8) Auth key generation
The client computes the auth_key using formula g_a^b mod dh_prime
:
-auth_key = 10A41ACBEB34EDFDA504136358684DEE79845B3F59EA5ABEEC92302CABE37EA27DAEE8FA3B166A7C2CB36BA2259D8CF672BCE6DAFF76AB911B20752C48528E4319C5B88CA7DF1D97939BB5284B397A774EC894333C3528D39A976B94A60D065319CCE1D1B4D650F2ED5DE99232DB3C98D0D308586BEB91BA320A0B9871A81B2907767D27FE7A471B36DC0DCA1BBB50EE2602164C15AF164789481AEFE05C26BD78C2AFDA9B8E59239D29657EA48CE1BB7AFBDF725385BF274B47F81DA572D2B605AD0D204010A2CBC24615CA00891A7EA1894BE20C5B1417AC679DD701E4AE748AB72609AD05FEE7A10C29419A452E5EC329D98F7BE8BD9EA581BFE96876F1CE
+auth_key = 7C74EC0C28CA50F65EC0A400A634F917DE855D8C4D09B0B0B0C1173D40CD5F4B90D8867F70AA2B60807F3F505D09ACD4926E6C90D99E68E2D613D587886228C9F276202908ACDE0D5B26D201FD990AD6E3179B986AF47C8FECDC163857289E908DDF6CC4A28135B319C8E6221A411D3E4D0463D10B92C96668383A77E7F91AAC2ADBD81D21A3C0536D3A3CE873D1442FB17FEA7315AF1A37F64C98D95BC6388C3FDDD03C6D1952D517AF0470EA2CD89CF74A3AC7358B10B9F6D631DCD74B68478CB5EAF9EBB2020217D943C552F3D121169928B9DD98E8514A4E3BC0831F51E88EBA9D913C48FA4DD607CA2E5C7B2628515521E3FF6222CAE80D764FB1A9C425
9) Final server reply
The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 24 37 6D 08 EB 6C 65
-0010 | 70 00 00 00 34 F7 CB 3B 2B 61 E8 CE 46 92 30 D3
-0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
-0030 | B1 CF FB 2E 5A 4C 90 B1 F3 20 D2 E3 91 44 F6 0F
-0040 | 39 72 C9 BD 33 79 36 E1
+0000 | 00 00 00 00 00 00 00 00 01 24 18 C2 5E 54 6E 65
+0010 | 6C 00 00 00 34 F7 CB 3B A9 A9 E7 60 C1 90 09 93
+0020 | EF 1D D3 FA 51 4A 0E 34 69 41 64 B6 A2 26 86 5F
+0030 | 51 76 4C C1 1D 1D 1C C1 C8 E5 6F BE FD E6 B6 53
+0040 | 16 C3 3D FE DF 77 06 E2
Payload (de)serialization:
dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
@@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id
8, 8
-0124376D08EB6C65
+012418C25E546E65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-70000000
(112 in decimal)
+6C000000
(108 in decimal)
Message body length
@@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce
24, 16
-2B61E8CE469230D3F02EB0DD8B347C7A
+A9A9E760C1900993EF1DD3FA514A0E34
Value generated by client in Step 1
server_nonce
40, 16
-0B13979CAF038B9CB1CFFB2E5A4C90B1
+694164B6A226865F51764CC11D1D1CC1
Value received from server in Step 2
new_nonce_hash1
56, 16
-F320D2E39144F60F3972C9BD337936E1
+C8E56FBEFDE6B65316C33DFEDF7706E2
The 128 lower-order bits of SHA1 of the byte string derived from the new_nonce
string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with auth_key_aux_hash
. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.
diff --git a/data/web/corefork.telegram.org/type/MessageEntity.html b/data/web/corefork.telegram.org/type/MessageEntity.html
index 2f19a3c4e5..bc7a8d3b90 100644
--- a/data/web/corefork.telegram.org/type/MessageEntity.html
+++ b/data/web/corefork.telegram.org/type/MessageEntity.html
@@ -153,10 +153,6 @@
Message entity representing strikethrough text.
-messageEntityBlockquote
-Message entity representing a block quote.
-
-
messageEntityBankCard
Indicates a credit card number