diff --git a/data/web/corefork.telegram.org/api/emoji-status.html b/data/web/corefork.telegram.org/api/emoji-status.html
index 903ecd3c32..24a1fcb160 100644
--- a/data/web/corefork.telegram.org/api/emoji-status.html
+++ b/data/web/corefork.telegram.org/api/emoji-status.html
@@ -88,12 +88,13 @@
account.emojiStatuses #90c467d1 hash:long statuses:Vector <EmojiStatus > = account.EmojiStatuses ;
inputStickerSetEmojiDefaultStatuses #29d0f5ee = InputStickerSet ;
+inputStickerSetEmojiChannelDefaultStatuses #49748553 = InputStickerSet ;
---functions---
account.getDefaultEmojiStatuses #d6753386 hash:long = account.EmojiStatuses ;
account.getChannelDefaultEmojiStatuses #7727a7d5 hash:long = account.EmojiStatuses ;
-
A set of standard statuses can be fetched by passing inputStickerSetEmojiDefaultStatuses to messages.getStickerSet , as specified in the stickerset documentation » .
+A set of standard statuses for users/channels can be fetched by passing inputStickerSetEmojiDefaultStatuses /inputStickerSetEmojiChannelDefaultStatuses to messages.getStickerSet , as specified in the stickerset documentation » .
account.getDefaultEmojiStatuses can also be used to get a list of featured emoji statuses, from multiple featured custom emoji stickersets.
account.getChannelDefaultEmojiStatuses is the equivalent method for channel emoji statuses.
diff --git a/data/web/corefork.telegram.org/api/layers.html b/data/web/corefork.telegram.org/api/layers.html
index b53eb5d8cc..9485182e54 100644
--- a/data/web/corefork.telegram.org/api/layers.html
+++ b/data/web/corefork.telegram.org/api/layers.html
@@ -143,13 +143,13 @@
Added stories.storyReactionsList - List of peers that reacted to or intercated with a specific story
Added storyViewPublicForward -
Added storyViewPublicRepost -
-Added channelAdminLogEventActionChangePeerColor -
-Added channelAdminLogEventActionChangeProfilePeerColor -
-Added channelAdminLogEventActionChangeWallpaper -
-Added channelAdminLogEventActionChangeEmojiStatus -
-Added inputStickerSetEmojiChannelDefaultStatuses -
+Added channelAdminLogEventActionChangePeerColor - The message accent color was changed
+Added channelAdminLogEventActionChangeProfilePeerColor - The profile accent color was changed
+Added channelAdminLogEventActionChangeWallpaper - The wallpaper was changed
+Added channelAdminLogEventActionChangeEmojiStatus - The emoji status was changed
+Added inputStickerSetEmojiChannelDefaultStatuses - Default custom emoji status stickerset for channel statuses
Added mediaAreaChannelPost -
-Added inputMediaAreaChannelPost -
+Added inputMediaAreaChannelPost - Represents a channel post
Added updateBotMessageReaction -
Added updateBotMessageReactions -
diff --git a/data/web/corefork.telegram.org/api/stories.html b/data/web/corefork.telegram.org/api/stories.html
index 99048f1bb6..51fbd91918 100644
--- a/data/web/corefork.telegram.org/api/stories.html
+++ b/data/web/corefork.telegram.org/api/stories.html
@@ -189,10 +189,19 @@ When the stories of a user are marked as hidden, the stories_hidden
Stories can be shared as messages to any chat by simply using messages.sendMedia , passing an inputMediaStory referencing the shared story.
The story will be shared as a messageMediaStory , and should be displayed as a message forwarded from the poster of the story (even though messages.forwardMessages was not used an the fwd_from
field of the message won't be set).
A message containing a messageMediaStory with the via_mention
flag coming from the story poster will also be generated automatically if the poster mentions us in the story's caption.
- Fetching the viewer list
+ Fetching the interaction list
storyView #b0bdeac5 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true user_id:long date:int reaction:flags.2?Reaction = StoryView ;
+storyViewPublicForward #9083670b flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true message:Message = StoryView ;
+storyViewPublicRepost #bd74cf49 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true peer_id:Peer story:StoryItem = StoryView ;
+
stories.storyViewsList #59d78fc5 flags:# count:int views_count:int forwards_count:int reactions_count:int views:Vector <StoryView > chats:Vector <Chat > users:Vector <User > next_offset:flags.0?string = stories.StoryViewsList ;
+storyReaction #6090d6d5 peer_id:Peer date:int reaction:Reaction = StoryReaction ;
+storyReactionPublicForward #bbab2643 message:Message = StoryReaction ;
+storyReactionPublicRepost #cfcd0f13 peer_id:Peer story:StoryItem = StoryReaction ;
+
+stories.storyReactionsList #aa5f789c flags:# count:int reactions:Vector <StoryReaction > chats:Vector <Chat > users:Vector <User > next_offset:flags.0?string = stories.StoryReactionsList ;
+
storyViews #8d595cd6 flags:# has_viewers:flags.1?true views_count:int forwards_count:flags.2?int reactions:flags.3?Vector <ReactionCount > reactions_count:flags.4?int recent_viewers:flags.0?Vector <long > = StoryViews ;
stories.storyViews #de9eed1d views:Vector <StoryViews > users:Vector <User > = stories.StoryViews ;
@@ -200,9 +209,22 @@ When the stories of a user are marked as hidden, the stories_hidden
stories.getStoryViewsList #7ed23c57 flags:# just_contacts:flags.0?true reactions_first:flags.2?true forwards_first:flags.3?true peer:InputPeer q:flags.1?string id:int offset:string limit:int = stories.StoryViewsList ;
+stories.getStoryReactionsList #b9b2881f flags:# forwards_first:flags.2?true peer:InputPeer id:int reaction:flags.0?Reaction offset:flags.1?string limit:int = stories.StoryReactionsList ;
+
stories.getStoriesViews #28e16cc8 peer:InputPeer id:Vector <int > = stories.StoryViews ;
-Use stories.getStoryViewsList to obtain the full list of users that have viewed a specific story we posted, returned as a list of storyView constructors; pass the returned next_offset
(if present) to offset
to paginate through the results; the full list is available at all times only to Premium users, and will be deleted on stories posted by non-Premium users story_viewers_expire_period » seconds after the story expires; if it's still viewable, the has_viewers
flag will be set.
-Use stories.getStoriesViews to obtain info about the view count, forward count, reactions and recent viewers list of one or more stories, using a single, unpaginated method call, obviously potentially returning less info than stories.getStoryViewsList .
+Use stories.getStoryViewsList to obtain the full list of users that have interacted with a specific story we posted as a user, returned as a list of StoryView constructors; pass the returned next_offset
(if present) to offset
to paginate through the results; the full list is available at all times only to Premium users, and will be deleted on stories posted by non-Premium users story_viewers_expire_period » seconds after the story expires; if it's still viewable, the has_viewers
flag will be set.
+The above method can only be used for stories posted by users, to fetch almost the exact same information for stories posted by channels, use stories.getStoryReactionsList : the data returned by both methods is actually almost exactly the same, the only difference is that:
+
+For the rest, both methods return information about:
+
+Additionally, stories.getStoriesViews can be used to obtain info about the view count, forward count, reactions and recent viewers list of one or more stories, using a single, unpaginated method call, obviously potentially returning less info than stories.getStoryViewsList .
Replying to stories
inputReplyToStory #15b0f283 user_id:InputUser story_id:int = InputReplyTo ;
@@ -264,6 +286,12 @@ When the stories of a user are marked as hidden, the stories_hidden
Stories can have so-called "media areas": clickable rectangular areas with animated overlays on top of the story offering functionality like location tags or reactions.
The coordinates and size of each media area is specified in a mediaAreaCoordinates constructor attached to each MediaArea , see the constructor page » for more info.
After construction, the vector of MediaArea constructors can be passed to stories.sendStory or stories.editStory .
+ Channel posts
+inputMediaAreaChannelPost #2271f2bf coordinates:MediaAreaCoordinates channel:InputChannel msg_id:int = MediaArea ;
+
+mediaAreaChannelPost #770416af coordinates:MediaAreaCoordinates channel_id:long msg_id:int = MediaArea ;
+Messages from channels can be reposted to stories using inputMediaAreaChannelPost /mediaAreaChannelPost .
+Clients should fetch and display a copy of the channel post on top of the story according to the media area coordinates
: clicking on the media area should open the linked post.
Location tags
Schema:
geoPoint #b2a2f663 flags:# long:double lat:double access_hash:long accuracy_radius:flags.0?int = GeoPoint ;
@@ -297,27 +325,16 @@ Note that this should be done transparently in a map UI, not in the usual inline
updateSentStoryReaction #7d627683 peer:Peer story_id:int reaction:Reaction = Update ;
-storyReaction #6090d6d5 peer_id:Peer date:int reaction:Reaction = StoryReaction ;
-
-stories.storyViewsList #59d78fc5 flags:# count:int views_count:int forwards_count:int reactions_count:int views:Vector <StoryView > chats:Vector <Chat > users:Vector <User > next_offset:flags.0?string = stories.StoryViewsList ;
-
-stories.storyReactionsList #aa5f789c flags:# count:int reactions:Vector <StoryReaction > chats:Vector <Chat > users:Vector <User > next_offset:flags.0?string = stories.StoryReactionsList ;
-
---functions---
-stories.sendReaction #7fd736b2 flags:# add_to_recent:flags.0?true peer:InputPeer story_id:int reaction:Reaction = Updates ;
-
-stories.getStoryViewsList #7ed23c57 flags:# just_contacts:flags.0?true reactions_first:flags.2?true forwards_first:flags.3?true peer:InputPeer q:flags.1?string id:int offset:string limit:int = stories.StoryViewsList ;
-
-stories.getStoryReactionsList #b9b2881f flags:# forwards_first:flags.2?true peer:InputPeer id:int reaction:flags.0?Reaction offset:flags.1?string limit:int = stories.StoryReactionsList ;
+stories.sendReaction #7fd736b2 flags:# add_to_recent:flags.0?true peer:InputPeer story_id:int reaction:Reaction = Updates ;
Story reactions are implemented using a simple in-UI button that allows the user to send any reaction using stories.sendReaction .
Sending this method will return an updateSentStoryReaction update to all logged-in sessions.
However, the poster of a story may also use mediaAreaSuggestedReaction media areas » to suggest some specific reactions as simple clickable buttons: they're rendered as a round comic-style thought bubble with its "tail" on the right, white background and the reaction » from the reaction
field located in its center.
If the dark
flag is set, the background should be black.
If the flipped
flag is set, the "tail" should be located on the left.
Clicking it should invoke stories.sendReaction as usual.
-To get the reaction list of a story posted as a user, use stories.getStoryViewsList , see here » for more info on how to use the method.
-To get the reaction list of a story posted as a channel, use stories.getStoryReactionsList , see here » for more info on how to use the method (the parameters and behavior is pretty much the same as for stories.getStoryViewsList , the only difference is that the viewer list cannot be fetched with it).
+See here » to get more info on how to fetch the reaction list of a story .
Stealth mode
Premium users may enable stealth mode , erasing their views from any stories they opened in the past stories_stealth_past_period
seconds » , and hiding their views on stories for the next stories_stealth_future_period
seconds » , as specified by the client configuration » .
Schema:
diff --git a/data/web/corefork.telegram.org/constructor/channel.html b/data/web/corefork.telegram.org/constructor/channel.html
index 6b350476a5..cc318008c2 100644
--- a/data/web/corefork.telegram.org/constructor/channel.html
+++ b/data/web/corefork.telegram.org/constructor/channel.html
@@ -264,17 +264,17 @@
profile_color
flags2 .8?PeerColor
-
+The channel's profile color .
emoji_status
flags2 .9?EmojiStatus
-
+Emoji status
level
flags2 .10?int
-
+Boost level
@@ -302,7 +302,11 @@
How to handle admin permissions, granular bans and global permissions in channels, groups and supergroups.
-Telegram users and channels can change the accent color and background pattern of their profile page and their messages!
+Telegram users and channels can change the accent color and background pattern of their profile page and their messages!
+
+Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.
+
+Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.
diff --git a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeEmojiStatus.html b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeEmojiStatus.html
index d0f1ee2c08..6deffdbf81 100644
--- a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeEmojiStatus.html
+++ b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeEmojiStatus.html
@@ -4,32 +4,10 @@
channelAdminLogEventActionChangeEmojiStatus
-
+
-
+
@@ -64,7 +42,8 @@ ChannelAdminLogEventAction">
channelAdminLogEventActionChangeEmojiStatus
-
+
The emoji status was changed
+
+
ChannelAdminLogEventAction
+
Related pages
+
+
Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.
diff --git a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangePeerColor.html b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangePeerColor.html
index fd652cb3a5..080310179f 100644
--- a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangePeerColor.html
+++ b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangePeerColor.html
@@ -4,32 +4,10 @@
channelAdminLogEventActionChangePeerColor
-
+
-
+
@@ -64,7 +42,8 @@ ChannelAdminLogEventAction">
channelAdminLogEventActionChangePeerColor
-
diff --git a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeProfilePeerColor.html b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeProfilePeerColor.html
index f69898464a..d6e3240411 100644
--- a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeProfilePeerColor.html
+++ b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeProfilePeerColor.html
@@ -4,32 +4,10 @@
channelAdminLogEventActionChangeProfilePeerColor
-
+
-
+
@@ -64,7 +42,8 @@ ChannelAdminLogEventAction">
channelAdminLogEventActionChangeProfilePeerColor
-
diff --git a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeWallpaper.html b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeWallpaper.html
index e4613c30f3..4fc83426ec 100644
--- a/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeWallpaper.html
+++ b/data/web/corefork.telegram.org/constructor/channelAdminLogEventActionChangeWallpaper.html
@@ -4,32 +4,10 @@
channelAdminLogEventActionChangeWallpaper
-
+
-
+
@@ -64,7 +42,8 @@ ChannelAdminLogEventAction">
channelAdminLogEventActionChangeWallpaper
-
diff --git a/data/web/corefork.telegram.org/constructor/channelFull.html b/data/web/corefork.telegram.org/constructor/channelFull.html
index d99718e06e..156327481a 100644
--- a/data/web/corefork.telegram.org/constructor/channelFull.html
+++ b/data/web/corefork.telegram.org/constructor/channelFull.html
@@ -329,7 +329,7 @@
wallpaper
flags2 .7?WallPaper
-
+Wallpaper
@@ -370,7 +370,9 @@
Chats and channels may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.
-
Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.
+
Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.
+
+
Telegram apps support generating, sharing and synchronizing chat backgrounds.
diff --git a/data/web/corefork.telegram.org/constructor/help.peerColorOption.html b/data/web/corefork.telegram.org/constructor/help.peerColorOption.html
index d768baf51e..4d45f30fa6 100644
--- a/data/web/corefork.telegram.org/constructor/help.peerColorOption.html
+++ b/data/web/corefork.telegram.org/constructor/help.peerColorOption.html
@@ -94,13 +94,15 @@
channel_min_level
flags .3?int
-
+Channels can use this palette only after reaching at least the boost level specified in this field.
Type
help.PeerColorOption
Related pages
+
+
Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.
Telegram users and channels can change the accent color and background pattern of their profile page and their messages!
diff --git a/data/web/corefork.telegram.org/constructor/inputMediaAreaChannelPost.html b/data/web/corefork.telegram.org/constructor/inputMediaAreaChannelPost.html
index c4906af9f6..3c6a41d0f5 100644
--- a/data/web/corefork.telegram.org/constructor/inputMediaAreaChannelPost.html
+++ b/data/web/corefork.telegram.org/constructor/inputMediaAreaChannelPost.html
@@ -4,38 +4,10 @@
inputMediaAreaChannelPost
-
+
-
+
@@ -70,7 +42,8 @@ MediaArea">
inputMediaAreaChannelPost
-
+
Represents a channel post
+
Layer 170
@@ -96,17 +69,17 @@ MediaArea">
coordinates
MediaAreaCoordinates
-
+The size and location of the media area corresponding to the location sticker on top of the story media.
channel
InputChannel
-
+The channel that originally posted the message
msg_id
int
-
+ID of the channel message
diff --git a/data/web/corefork.telegram.org/constructor/inputStickerSetEmojiChannelDefaultStatuses.html b/data/web/corefork.telegram.org/constructor/inputStickerSetEmojiChannelDefaultStatuses.html
index 5de89f5489..cfde5869f5 100644
--- a/data/web/corefork.telegram.org/constructor/inputStickerSetEmojiChannelDefaultStatuses.html
+++ b/data/web/corefork.telegram.org/constructor/inputStickerSetEmojiChannelDefaultStatuses.html
@@ -4,16 +4,10 @@
inputStickerSetEmojiChannelDefaultStatuses
-
+
-
+
@@ -48,7 +42,8 @@ InputStickerSet">
inputStickerSetEmojiChannelDefaultStatuses
-
+
Default custom emoji status stickerset for channel statuses
+
+
InputStickerSet
+
Related pages
+
+
Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.
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 2b19807f4b..37db5177da 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 A8 C7 0B 00 05 2E A8 65
-0010 | 14 00 00 00 F1 8E 7E BE 59 EB 4E A1 77 C2 B0 4D
-0020 | C7 A2 21 A2 C0 80 F0 A3
+
0000 | 00 00 00 00 00 00 00 00 E4 99 0A 00 9D 36 A8 65
+0010 | 14 00 00 00 F1 8E 7E BE 9A AF A7 4E 29 5C CF C9
+0020 | 7B C5 93 19 50 7B 21 BC
Payload (de)serialization:
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@
message_id
8, 8
-A8C70B00052EA865
+E4990A009D36A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -95,7 +95,7 @@
nonce
24, 16
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
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 28 AB 03 06 2E A8 65
-0010 | 58 00 00 00 63 24 16 05 59 EB 4E A1 77 C2 B0 4D
-0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
-0030 | 7C 08 6E BA F4 74 75 86 08 19 EC DA 36 66 B5 54
-0040 | A7 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 88 9E 03 9E 36 A8 65
+0010 | 68 00 00 00 63 24 16 05 9A AF A7 4E 29 5C CF C9
+0020 | 7B C5 93 19 50 7B 21 BC 05 4D 38 FE DC 2F 29 EC
+0030 | 2C B5 82 83 2E F5 17 72 08 16 D2 E3 CF 36 19 C1
+0040 | 0B 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
-0128AB03062EA865
+01889E039E36A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-58000000
(88 in decimal)
+68000000
(104 in decimal)
Message body length
@@ -150,19 +150,19 @@
nonce
24, 16
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
40, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Server-generated random number
pq
56, 12
-0819ECDA3666B554A7000000
TL byte deserialization => bigendian conversion to decimal => 1868107872638162087
+0816D2E3CF3619C10B000000
TL byte deserialization => bigendian conversion to decimal => 1644627293049045259
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 = 1868107872638162087
-Decompose into 2 prime cofactors p < q
: 1868107872638162087 = 1176978853 * 1587205979
-p = 1176978853
-q = 1587205979
+pq = 1644627293049045259
+Decompose into 2 prime cofactors p < q
: 1644627293049045259 = 1057485463 * 1555224493
+p = 1057485463
+q = 1555224493
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 19 EC DA 36 66 B5 54 A7 00 00 00
-0010 | 04 46 27 45 A5 00 00 00 04 5E 9A D7 5B 00 00 00
-0020 | 59 EB 4E A1 77 C2 B0 4D C7 A2 21 A2 C0 80 F0 A3
-0030 | 7F 5A B2 77 88 A5 39 5E 7C 08 6E BA F4 74 75 86
-0040 | 5D EE 58 8E FF 79 DA 1F E7 31 07 A1 C0 23 B6 CD
-0050 | 11 3E D8 2D 68 7C 4E 37 D5 2F 24 42 83 8A 24 CB
+0000 | 95 5F F5 A9 08 16 D2 E3 CF 36 19 C1 0B 00 00 00
+0010 | 04 3F 07 F2 97 00 00 00 04 5C B2 D7 AD 00 00 00
+0020 | 9A AF A7 4E 29 5C CF C9 7B C5 93 19 50 7B 21 BC
+0030 | 05 4D 38 FE DC 2F 29 EC 2C B5 82 83 2E F5 17 72
+0040 | E7 53 D9 DE 36 B0 2B 0E F4 88 51 DB 37 AF 3E B8
+0050 | DF 36 F4 38 E4 50 B9 F2 DF 37 32 5D 03 62 28 E2
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 = 1587205979
pq
4, 12
-0819ECDA3666B554A7000000
TL byte deserialization => bigendian conversion to decimal => 1868107872638162087
+0816D2E3CF3619C10B000000
TL byte deserialization => bigendian conversion to decimal => 1644627293049045259
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p
16, 8
-04462745A5000000
TL byte deserialization => bigendian conversion to decimal => 1176978853
+043F07F297000000
TL byte deserialization => bigendian conversion to decimal => 1057485463
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
24, 8
-045E9AD75B000000
TL byte deserialization => bigendian conversion to decimal => 1587205979
+045CB2D7AD000000
TL byte deserialization => bigendian conversion to decimal => 1555224493
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce
32, 16
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
48, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Value received from server in Step 2
new_nonce
64, 32
-5DEE588EFF79DA1FE73107A1C023B6CD
113ED82D687C4E37D52F2442838A24CB
+E753D9DE36B02B0EF48851DB37AF3EB8
DF36F438E450B9F2DF37325D036228E2
Client-generated random number
@@ -291,39 +291,39 @@ q = 1587205979
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 = 955FF5A90819ECDA3666B554A700000004462745A5000000045E9AD75B00000059EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF47475865DEE588EFF79DA1FE73107A1C023B6CD113ED82D687C4E37D52F2442838A24CB02000000
-random_padding_bytes = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406B1A51724C7E0AAAF9B55333567509DDEC97EA483725E6114DD92D3B606BA1C1F76D5225AD0C94240D5112F5AB7C761B5A54207EA99ECE277E6970E45CCF268E
+data = 955FF5A90816D2E3CF3619C10B000000043F07F297000000045CB2D7AD0000009AAFA74E295CCFC97BC59319507B21BC054D38FEDC2F29EC2CB582832EF51772E753D9DE36B02B0EF48851DB37AF3EB8DF36F438E450B9F2DF37325D036228E202000000
+random_padding_bytes = 689372C5F440976397FB5093F99EA81B7ECD1FE29E04222A9A3FAB455FB5FF03D914E9DC780F98D9513FDB8D5B9D8A996ADBADC1896CE1D52BDE8550299E2C720627E8F2BF56D6D1CCDCBE62EDCD26D604BC142759E8B2B292E2894A
And this is the output:
-encrypted_data = 314F92A41A5DAFDA1FC7F0E157B935D4DF2B1F398F30697FE76B83E0F63A50282A7402EEF3F1178B0DE0B8AC34672D628E139747429ABBCEF3402EBF135E45A9A2BCB42EC268693414E830AAF0874EF6AA914EC04EF8DDAF68426F61DCAA995B625D57FFAD1CFD63374495EAF9E5AC2DA9316C90A05761833083DF5160F019315379A2F25B3F183AEF404F9B4065CE585198C635F62C4A2CD9BBFABA3E36649A20AA2617E7E84B4DD4928B1A82896596745EB0ABE6A5D4048D0D2817FED8B830357767E14C88D6F0F5120384E897EA8F13300503B6084E78D855A0EB1A6A22F8AADA95996CABB2609807479D4BA9E763265AF0C1C3489542B7C2262D9135BB9A
+encrypted_data = 57C834C4C90A149B9998EBDA6E2D7AEE192DD0EE1DFD41CDE82998F7632085F70C96AC549B51E234905770402EA632A964213206BD56AA0B3FD8F3AB9F959524B86084A67CFCDAF229329968248D5721175DF5D3112E98D6F837B7172AC316DACB8F962EA965AF2F17984A1997A63F5FE2B13B49189C16AA8BDB9481968E9D33674ED7644E8A78652174F437655DB3170F09A1735ECE4834FCB78D772E5A40A4A850F6BE5D3EA009993FF467608E2A8B0216CAC0197C425C208A9F4BFA1D5112F954DE1AE93DC44F18B0046721DDB938C5EAD8FE39325670BC607A7AB1E5FA2681C7D1053E8E605044A75DA1A7ADF5C230AF5032AAA2519E6AEB4C95B0C0AE0B
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 C8 F3 0D 00 05 2E A8 65
-0010 | 40 01 00 00 BE E4 12 D7 59 EB 4E A1 77 C2 B0 4D
-0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
-0030 | 7C 08 6E BA F4 74 75 86 04 46 27 45 A5 00 00 00
-0040 | 04 5E 9A D7 5B 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 31 4F 92 A4 1A 5D AF DA 1F C7 F0 E1
-0060 | 57 B9 35 D4 DF 2B 1F 39 8F 30 69 7F E7 6B 83 E0
-0070 | F6 3A 50 28 2A 74 02 EE F3 F1 17 8B 0D E0 B8 AC
-0080 | 34 67 2D 62 8E 13 97 47 42 9A BB CE F3 40 2E BF
-0090 | 13 5E 45 A9 A2 BC B4 2E C2 68 69 34 14 E8 30 AA
-00A0 | F0 87 4E F6 AA 91 4E C0 4E F8 DD AF 68 42 6F 61
-00B0 | DC AA 99 5B 62 5D 57 FF AD 1C FD 63 37 44 95 EA
-00C0 | F9 E5 AC 2D A9 31 6C 90 A0 57 61 83 30 83 DF 51
-00D0 | 60 F0 19 31 53 79 A2 F2 5B 3F 18 3A EF 40 4F 9B
-00E0 | 40 65 CE 58 51 98 C6 35 F6 2C 4A 2C D9 BB FA BA
-00F0 | 3E 36 64 9A 20 AA 26 17 E7 E8 4B 4D D4 92 8B 1A
-0100 | 82 89 65 96 74 5E B0 AB E6 A5 D4 04 8D 0D 28 17
-0110 | FE D8 B8 30 35 77 67 E1 4C 88 D6 F0 F5 12 03 84
-0120 | E8 97 EA 8F 13 30 05 03 B6 08 4E 78 D8 55 A0 EB
-0130 | 1A 6A 22 F8 AA DA 95 99 6C AB B2 60 98 07 47 9D
-0140 | 4B A9 E7 63 26 5A F0 C1 C3 48 95 42 B7 C2 26 2D
-0150 | 91 35 BB 9A
+0000 | 00 00 00 00 00 00 00 00 30 AD 05 00 9E 36 A8 65
+0010 | 40 01 00 00 BE E4 12 D7 9A AF A7 4E 29 5C CF C9
+0020 | 7B C5 93 19 50 7B 21 BC 05 4D 38 FE DC 2F 29 EC
+0030 | 2C B5 82 83 2E F5 17 72 04 3F 07 F2 97 00 00 00
+0040 | 04 5C B2 D7 AD 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 57 C8 34 C4 C9 0A 14 9B 99 98 EB DA
+0060 | 6E 2D 7A EE 19 2D D0 EE 1D FD 41 CD E8 29 98 F7
+0070 | 63 20 85 F7 0C 96 AC 54 9B 51 E2 34 90 57 70 40
+0080 | 2E A6 32 A9 64 21 32 06 BD 56 AA 0B 3F D8 F3 AB
+0090 | 9F 95 95 24 B8 60 84 A6 7C FC DA F2 29 32 99 68
+00A0 | 24 8D 57 21 17 5D F5 D3 11 2E 98 D6 F8 37 B7 17
+00B0 | 2A C3 16 DA CB 8F 96 2E A9 65 AF 2F 17 98 4A 19
+00C0 | 97 A6 3F 5F E2 B1 3B 49 18 9C 16 AA 8B DB 94 81
+00D0 | 96 8E 9D 33 67 4E D7 64 4E 8A 78 65 21 74 F4 37
+00E0 | 65 5D B3 17 0F 09 A1 73 5E CE 48 34 FC B7 8D 77
+00F0 | 2E 5A 40 A4 A8 50 F6 BE 5D 3E A0 09 99 3F F4 67
+0100 | 60 8E 2A 8B 02 16 CA C0 19 7C 42 5C 20 8A 9F 4B
+0110 | FA 1D 51 12 F9 54 DE 1A E9 3D C4 4F 18 B0 04 67
+0120 | 21 DD B9 38 C5 EA D8 FE 39 32 56 70 BC 60 7A 7A
+0130 | B1 E5 FA 26 81 C7 D1 05 3E 8E 60 50 44 A7 5D A1
+0140 | A7 AD F5 C2 30 AF 50 32 AA A2 51 9E 6A EB 4C 95
+0150 | B0 C0 AE 0B
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 = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406
message_id
8, 8
-C8F30D00052EA865
+30AD05009E36A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -363,25 +363,25 @@ random_padding_bytes = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406
nonce
24, 16
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
40, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Value received from server in Step 2
p
56, 8
-04462745A5000000
TL byte deserialization => bigendian conversion to decimal => 1176978853
+043F07F297000000
TL byte deserialization => bigendian conversion to decimal => 1057485463
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
64, 8
-045E9AD75B000000
TL byte deserialization => bigendian conversion to decimal => 1587205979
+045CB2D7AD000000
TL byte deserialization => bigendian conversion to decimal => 1555224493
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
@@ -393,7 +393,7 @@ random_padding_bytes = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406
encrypted_data
80, 260
-FE000100314F92A41A5DAFDA1FC7F0E1
57B935D4DF2B1F398F30697FE76B83E0
F63A50282A7402EEF3F1178B0DE0B8AC
34672D628E139747429ABBCEF3402EBF
135E45A9A2BCB42EC268693414E830AA
F0874EF6AA914EC04EF8DDAF68426F61
DCAA995B625D57FFAD1CFD63374495EA
F9E5AC2DA9316C90A05761833083DF51
60F019315379A2F25B3F183AEF404F9B
4065CE585198C635F62C4A2CD9BBFABA
3E36649A20AA2617E7E84B4DD4928B1A
82896596745EB0ABE6A5D4048D0D2817
FED8B830357767E14C88D6F0F5120384
E897EA8F13300503B6084E78D855A0EB
1A6A22F8AADA95996CABB2609807479D
4BA9E763265AF0C1C3489542B7C2262D
9135BB9A
+FE00010057C834C4C90A149B9998EBDA
6E2D7AEE192DD0EE1DFD41CDE82998F7
632085F70C96AC549B51E23490577040
2EA632A964213206BD56AA0B3FD8F3AB
9F959524B86084A67CFCDAF229329968
248D5721175DF5D3112E98D6F837B717
2AC316DACB8F962EA965AF2F17984A19
97A63F5FE2B13B49189C16AA8BDB9481
968E9D33674ED7644E8A78652174F437
655DB3170F09A1735ECE4834FCB78D77
2E5A40A4A850F6BE5D3EA009993FF467
608E2A8B0216CAC0197C425C208A9F4B
FA1D5112F954DE1AE93DC44F18B00467
21DDB938C5EAD8FE39325670BC607A7A
B1E5FA2681C7D1053E8E605044A75DA1
A7ADF5C230AF5032AAA2519E6AEB4C95
B0C0AE0B
Value generated above
@@ -402,47 +402,47 @@ random_padding_bytes = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 EC 7D A1 06 2E A8 65
-0010 | 8C 02 00 00 5C 07 E8 D0 59 EB 4E A1 77 C2 B0 4D
-0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
-0030 | 7C 08 6E BA F4 74 75 86 FE 50 02 00 01 A2 6C 8C
-0040 | 77 D3 7C C8 FD A2 7A DC 77 45 30 F7 EA 13 8A EA
-0050 | EB 8E 51 92 B0 86 4F 8B 45 D1 39 D0 54 73 A3 DB
-0060 | FB 4C A9 67 28 84 AC 1E 9A 0D 1F BC 49 C6 05 27
-0070 | 3B 11 5C 76 EA EA 93 6B FF 52 4C 49 EB 82 F7 A8
-0080 | 10 FF 74 94 61 B9 F0 F8 D8 E0 3D 8D 29 8C 45 CF
-0090 | F1 08 75 D6 76 1D B7 71 C7 35 9B 04 B9 34 EC 23
-00A0 | 69 5E 33 70 FB 84 CF 36 9A 8F AD 08 4B 92 AC 6F
-00B0 | FE 33 29 D4 BF 65 7E 4F E0 C3 8F 92 18 A7 B1 50
-00C0 | BD F8 8A 7F 8E E8 BF B2 89 1E E2 AC BD C0 AC D6
-00D0 | 3C 3F 1B A9 FB F0 EC 94 BD D8 B5 C2 E4 EC 71 67
-00E0 | 6E 28 67 84 87 8E 80 E2 12 5E 8C 8A 14 F1 30 14
-00F0 | 17 59 EF BF 59 36 FF 67 4F FB 56 CC 86 F4 39 BE
-0100 | 84 76 FE 1B BB 83 BC B6 8C D2 76 7D 71 AA 47 02
-0110 | 54 4B A8 1E 70 8F F3 00 34 8D 6C F0 CA 0E B1 93
-0120 | 22 05 D9 4F C3 60 0B A0 35 53 28 2B 79 9E 85 75
-0130 | 74 C6 0A E4 36 4F E3 34 39 E6 C8 C2 5F 7C 85 2E
-0140 | 69 F2 93 87 FD 6C 85 0D CD B0 3E 10 82 23 8B 92
-0150 | F8 00 31 C0 44 00 9B C2 7F 0D 54 85 B4 24 DB 93
-0160 | 55 7E 93 16 C9 CB 15 FC 89 EA 11 F4 5C C5 99 0B
-0170 | DF 02 E5 CC 07 2D 49 43 EA 84 A2 31 A2 58 E2 A3
-0180 | 19 55 10 62 3C 96 52 FD 63 28 2F 04 AC F2 37 0A
-0190 | F2 DD 56 B1 38 18 55 2F 34 D3 03 10 31 66 A5 37
-01A0 | D7 1F AA 26 B5 04 62 01 48 C0 11 15 37 96 5B 26
-01B0 | E8 86 90 D5 DD 85 CA 54 7D 09 9C 29 76 52 61 9E
-01C0 | 4E CA 97 40 B9 9F 18 12 35 22 D6 12 24 7C C2 8D
-01D0 | BB 85 93 13 28 F1 3A 00 20 CE 99 FA 0C 83 8B EE
-01E0 | F5 0B 51 48 67 3C FF 45 FF EF DA 3B BA 54 5B 4E
-01F0 | 8A 13 CC DE 2A 1B 65 20 E9 EA BD BE A7 3F 21 47
-0200 | 2A E5 AA 03 0C D1 90 2F EF 15 43 17 B0 61 C0 E2
-0210 | C7 28 14 4A 67 2A 35 8A 90 01 39 D7 F1 2E 06 28
-0220 | B2 CE 5E 6B 16 AA BE 2E CE 10 82 3B 93 0E B8 7E
-0230 | 40 14 DF DA 34 3B D8 0F A1 F6 AB 14 18 D1 48 0A
-0240 | DE CD 5D 16 44 48 D7 FB 17 50 4E 40 84 09 52 B9
-0250 | 25 CB 56 00 4A 15 68 C0 2D AB 8C C3 FE 8F 5E 41
-0260 | 66 C1 98 79 35 97 23 FF E8 B6 A9 4A 0A DD 07 14
-0270 | 5A 26 E6 CF 70 4E 79 1F 5F ED 94 50 67 11 3E 2C
-0280 | CA AD D8 A2 CC AA 3E AF 32 BC AA C0
+0000 | 00 00 00 00 00 00 00 00 01 58 1F B0 9E 36 A8 65
+0010 | B8 02 00 00 5C 07 E8 D0 9A AF A7 4E 29 5C CF C9
+0020 | 7B C5 93 19 50 7B 21 BC 05 4D 38 FE DC 2F 29 EC
+0030 | 2C B5 82 83 2E F5 17 72 FE 50 02 00 CF 6B 6F 69
+0040 | 5F CF 77 5D 01 50 D0 FB 02 9F 7A BB 2C F7 E3 8B
+0050 | 33 C9 D8 58 E0 8A BC 66 1C FE F3 A5 8B D9 A4 0E
+0060 | A5 52 19 48 DD D0 B7 40 5D BA D7 5F 96 93 56 D1
+0070 | 72 72 7A 9F 06 D0 C9 84 05 C5 4F E6 C6 47 AB C2
+0080 | 59 EA C5 CF 50 03 62 32 18 17 A7 DF 4E 61 6E DD
+0090 | 81 6A FC DF 63 CC AB 2C 8A 27 B3 3A CE A3 FE 2A
+00A0 | C4 2C C3 E8 9D 18 62 0D E4 0E 2F F0 BF 74 BB 28
+00B0 | 8E 8A 48 05 B6 43 00 99 BF 08 E8 16 0E CF 56 8E
+00C0 | F4 63 20 BB 80 B4 1F DE 5B A8 26 A1 10 C1 BC CF
+00D0 | F1 23 52 09 A1 7E 66 48 E2 EB C9 45 00 8A 9D B0
+00E0 | FC 14 A3 34 7D AA FB C9 D5 BC BC C6 60 43 B9 0F
+00F0 | BF 7C 82 24 73 41 5A BA 26 9D 99 49 54 AD B3 3F
+0100 | C3 8D 4D AF 26 E5 64 2B CD 30 3D 67 25 01 58 01
+0110 | FE 9D 7B B6 15 28 F5 B4 66 85 FD 12 EF 99 36 15
+0120 | 09 EB 6C 23 00 DC 26 AB 9D F3 D7 12 26 4A 7F FE
+0130 | 1D C9 75 73 DE B1 55 0C 53 55 C0 08 13 A2 A6 9C
+0140 | EE F5 DA B6 5A A4 08 4A 51 AB 1A AA 58 BF BB A5
+0150 | C7 F7 8C 62 4F 81 7B 21 29 79 FF 45 38 AC 0D A5
+0160 | CA AD 2B 78 6A 0A 63 DD 9B BF 48 96 15 31 64 D1
+0170 | 7F CC 0C 13 61 30 28 4D 3C 36 3B 07 6C 2C F7 8B
+0180 | 34 0F F4 16 13 20 5B A5 1A 68 31 B1 FB 02 16 84
+0190 | 06 90 32 53 9E 3B 96 63 FE 53 38 CF 95 7B 0A 81
+01A0 | 47 39 DB 1C 89 45 18 90 B3 79 C3 43 F5 CF 96 23
+01B0 | 03 97 3B 71 0A AB D3 9F 17 BE EA 24 48 13 EF A9
+01C0 | E0 C7 F0 AE 70 5B 9A FA E8 49 FC E8 B7 C6 97 04
+01D0 | D5 2C E6 39 AC 34 3A 52 69 C4 B2 CB 10 B5 01 47
+01E0 | 5A 22 A8 6A D3 7B 87 2B 6E D7 FB 98 1E 09 0B 32
+01F0 | 87 DB CF 5D 8C 4C 2B 3A 7A A8 E7 D2 C6 8C 1D FD
+0200 | F5 23 7B 22 67 5E C9 99 03 A3 55 C4 90 E1 E9 4F
+0210 | 13 7E 90 47 79 C7 0C 60 22 56 77 E7 35 54 D2 69
+0220 | FB 22 ED A4 DE 09 1A 57 8F F0 49 49 6A D6 B1 6B
+0230 | 59 68 A5 92 85 B8 0F 4A 63 E3 EC DB 32 8B 0E C0
+0240 | 63 C0 77 89 60 F1 B4 A3 D4 B6 8A F6 77 FF 5D 70
+0250 | B7 EB C6 8D C1 37 1B 9A D8 84 0E 2D 1B C9 B0 87
+0260 | 84 45 62 3F 18 C6 7C C5 52 29 17 96 F6 F0 A6 9A
+0270 | 68 61 C3 80 E9 D8 D1 A6 74 E5 F7 65 1E A4 16 3A
+0280 | 41 F5 20 A8 4A ED 73 50 45 AF 8A 57
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 = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406
message_id
8, 8
-01EC7DA1062EA865
+01581FB09E36A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-8C020000
(652 in decimal)
+B8020000
(696 in decimal)
Message body length
@@ -482,19 +482,19 @@ random_padding_bytes = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406
nonce
24, 16
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
40, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Value received from server in Step 2
encrypted_answer
56, 596
-FE50020001A26C8C77D37CC8FDA27ADC
774530F7EA138AEAEB8E5192B0864F8B
45D139D05473A3DBFB4CA9672884AC1E
9A0D1FBC49C605273B115C76EAEA936B
FF524C49EB82F7A810FF749461B9F0F8
D8E03D8D298C45CFF10875D6761DB771
C7359B04B934EC23695E3370FB84CF36
9A8FAD084B92AC6FFE3329D4BF657E4F
E0C38F9218A7B150BDF88A7F8EE8BFB2
891EE2ACBDC0ACD63C3F1BA9FBF0EC94
BDD8B5C2E4EC71676E286784878E80E2
125E8C8A14F130141759EFBF5936FF67
4FFB56CC86F439BE8476FE1BBB83BCB6
8CD2767D71AA4702544BA81E708FF300
348D6CF0CA0EB1932205D94FC3600BA0
3553282B799E857574C60AE4364FE334
39E6C8C25F7C852E69F29387FD6C850D
CDB03E1082238B92F80031C044009BC2
7F0D5485B424DB93557E9316C9CB15FC
89EA11F45CC5990BDF02E5CC072D4943
EA84A231A258E2A3195510623C9652FD
63282F04ACF2370AF2DD56B13818552F
34D303103166A537D71FAA26B5046201
48C0111537965B26E88690D5DD85CA54
7D099C297652619E4ECA9740B99F1812
3522D612247CC28DBB85931328F13A00
20CE99FA0C838BEEF50B5148673CFF45
FFEFDA3BBA545B4E8A13CCDE2A1B6520
E9EABDBEA73F21472AE5AA030CD1902F
EF154317B061C0E2C728144A672A358A
900139D7F12E0628B2CE5E6B16AABE2E
CE10823B930EB87E4014DFDA343BD80F
A1F6AB1418D1480ADECD5D164448D7FB
17504E40840952B925CB56004A1568C0
2DAB8CC3FE8F5E4166C19879359723FF
E8B6A94A0ADD07145A26E6CF704E791F
5FED945067113E2CCAADD8A2CCAA3EAF
32BCAAC0
+FE500200CF6B6F695FCF775D0150D0FB
029F7ABB2CF7E38B33C9D858E08ABC66
1CFEF3A58BD9A40EA5521948DDD0B740
5DBAD75F969356D172727A9F06D0C984
05C54FE6C647ABC259EAC5CF50036232
1817A7DF4E616EDD816AFCDF63CCAB2C
8A27B33ACEA3FE2AC42CC3E89D18620D
E40E2FF0BF74BB288E8A4805B6430099
BF08E8160ECF568EF46320BB80B41FDE
5BA826A110C1BCCFF1235209A17E6648
E2EBC945008A9DB0FC14A3347DAAFBC9
D5BCBCC66043B90FBF7C822473415ABA
269D994954ADB33FC38D4DAF26E5642B
CD303D6725015801FE9D7BB61528F5B4
6685FD12EF99361509EB6C2300DC26AB
9DF3D712264A7FFE1DC97573DEB1550C
5355C00813A2A69CEEF5DAB65AA4084A
51AB1AAA58BFBBA5C7F78C624F817B21
2979FF4538AC0DA5CAAD2B786A0A63DD
9BBF4896153164D17FCC0C136130284D
3C363B076C2CF78B340FF41613205BA5
1A6831B1FB021684069032539E3B9663
FE5338CF957B0A814739DB1C89451890
B379C343F5CF962303973B710AABD39F
17BEEA244813EFA9E0C7F0AE705B9AFA
E849FCE8B7C69704D52CE639AC343A52
69C4B2CB10B501475A22A86AD37B872B
6ED7FB981E090B3287DBCF5D8C4C2B3A
7AA8E7D2C68C1DFDF5237B22675EC999
03A355C490E1E94F137E904779C70C60
225677E73554D269FB22EDA4DE091A57
8FF049496AD6B16B5968A59285B80F4A
63E3ECDB328B0EC063C0778960F1B4A3
D4B68AF677FF5D70B7EBC68DC1371B9A
D8840E2D1BC9B0878445623F18C67CC5
52291796F6F0A69A6861C380E9D8D1A6
74E5F7651EA4163A41F520A84AED7350
45AF8A57
See below
@@ -502,20 +502,20 @@ random_padding_bytes = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406
Decrypt encrypted_answer
using the reverse of the process specified in step 6 :
-encrypted_answer = 01A26C8C77D37CC8FDA27ADC774530F7EA138AEAEB8E5192B0864F8B45D139D05473A3DBFB4CA9672884AC1E9A0D1FBC49C605273B115C76EAEA936BFF524C49EB82F7A810FF749461B9F0F8D8E03D8D298C45CFF10875D6761DB771C7359B04B934EC23695E3370FB84CF369A8FAD084B92AC6FFE3329D4BF657E4FE0C38F9218A7B150BDF88A7F8EE8BFB2891EE2ACBDC0ACD63C3F1BA9FBF0EC94BDD8B5C2E4EC71676E286784878E80E2125E8C8A14F130141759EFBF5936FF674FFB56CC86F439BE8476FE1BBB83BCB68CD2767D71AA4702544BA81E708FF300348D6CF0CA0EB1932205D94FC3600BA03553282B799E857574C60AE4364FE33439E6C8C25F7C852E69F29387FD6C850DCDB03E1082238B92F80031C044009BC27F0D5485B424DB93557E9316C9CB15FC89EA11F45CC5990BDF02E5CC072D4943EA84A231A258E2A3195510623C9652FD63282F04ACF2370AF2DD56B13818552F34D303103166A537D71FAA26B504620148C0111537965B26E88690D5DD85CA547D099C297652619E4ECA9740B99F18123522D612247CC28DBB85931328F13A0020CE99FA0C838BEEF50B5148673CFF45FFEFDA3BBA545B4E8A13CCDE2A1B6520E9EABDBEA73F21472AE5AA030CD1902FEF154317B061C0E2C728144A672A358A900139D7F12E0628B2CE5E6B16AABE2ECE10823B930EB87E4014DFDA343BD80FA1F6AB1418D1480ADECD5D164448D7FB17504E40840952B925CB56004A1568C02DAB8CC3FE8F5E4166C19879359723FFE8B6A94A0ADD07145A26E6CF704E791F5FED945067113E2CCAADD8A2CCAA3EAF32BCAAC0
-tmp_aes_key = 2D98C430FADBBEF521A985A86D5FEC89B0D80C57012AB00E52CBDBEF385BA609
-tmp_aes_iv = 252E68B91E3D4AC180E8FA4B7CC58EACA72F868303EE469B66B95D325DEE588E
+encrypted_answer = CF6B6F695FCF775D0150D0FB029F7ABB2CF7E38B33C9D858E08ABC661CFEF3A58BD9A40EA5521948DDD0B7405DBAD75F969356D172727A9F06D0C98405C54FE6C647ABC259EAC5CF500362321817A7DF4E616EDD816AFCDF63CCAB2C8A27B33ACEA3FE2AC42CC3E89D18620DE40E2FF0BF74BB288E8A4805B6430099BF08E8160ECF568EF46320BB80B41FDE5BA826A110C1BCCFF1235209A17E6648E2EBC945008A9DB0FC14A3347DAAFBC9D5BCBCC66043B90FBF7C822473415ABA269D994954ADB33FC38D4DAF26E5642BCD303D6725015801FE9D7BB61528F5B46685FD12EF99361509EB6C2300DC26AB9DF3D712264A7FFE1DC97573DEB1550C5355C00813A2A69CEEF5DAB65AA4084A51AB1AAA58BFBBA5C7F78C624F817B212979FF4538AC0DA5CAAD2B786A0A63DD9BBF4896153164D17FCC0C136130284D3C363B076C2CF78B340FF41613205BA51A6831B1FB021684069032539E3B9663FE5338CF957B0A814739DB1C89451890B379C343F5CF962303973B710AABD39F17BEEA244813EFA9E0C7F0AE705B9AFAE849FCE8B7C69704D52CE639AC343A5269C4B2CB10B501475A22A86AD37B872B6ED7FB981E090B3287DBCF5D8C4C2B3A7AA8E7D2C68C1DFDF5237B22675EC99903A355C490E1E94F137E904779C70C60225677E73554D269FB22EDA4DE091A578FF049496AD6B16B5968A59285B80F4A63E3ECDB328B0EC063C0778960F1B4A3D4B68AF677FF5D70B7EBC68DC1371B9AD8840E2D1BC9B0878445623F18C67CC552291796F6F0A69A6861C380E9D8D1A674E5F7651EA4163A41F520A84AED735045AF8A57
+tmp_aes_key = 5A92A9C13DAE7AD44F48EE21479299AFD3680211ABDA9D54F009B6846D8EFEA1
+tmp_aes_iv = E99F3BAD6AB94F5C30B04635A75C66CFD2AB5A68B8D4C50DCE7F384DE753D9DE
Yielding:
-answer_with_hash = 1AC4EED45496F12EB1552F300E6F567E749F7CE9BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100016580A48B6D7744D3C0C674241411E844E1CE29BF23763A63E3ED32DF24B969FE60C55CB1CDFFE92F45733036A5A4B0BFBFE9A1622760DA6261CC549C70858A93F073C6A6A099CE63C8084463ED0C4D1F1393A715B71895B06DB2399745B0EA303CD8AFF1B47F057930E6CA70F4F25D3D15E29E268BF9F5A0AD1DA84D216458A2CE6E6EFDC4A1F2AB214D5C8D984919050450A710857C8F625CA4361785923FEFF4089D40A4EB3DB95AA2912753CA255D7CD8BC6220610381B5D082CDF84FC2F9B46DF449FE526435E3D74347C9F19A29391DBCD2F20479F45A7B683D9843640C6589034375356F8606E8CB81CAC69D06CC012F109DF322CB3508FAD4C31A09062EA8656DF821CDED12445D
-answer = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100016580A48B6D7744D3C0C674241411E844E1CE29BF23763A63E3ED32DF24B969FE60C55CB1CDFFE92F45733036A5A4B0BFBFE9A1622760DA6261CC549C70858A93F073C6A6A099CE63C8084463ED0C4D1F1393A715B71895B06DB2399745B0EA303CD8AFF1B47F057930E6CA70F4F25D3D15E29E268BF9F5A0AD1DA84D216458A2CE6E6EFDC4A1F2AB214D5C8D984919050450A710857C8F625CA4361785923FEFF4089D40A4EB3DB95AA2912753CA255D7CD8BC6220610381B5D082CDF84FC2F9B46DF449FE526435E3D74347C9F19A29391DBCD2F20479F45A7B683D9843640C6589034375356F8606E8CB81CAC69D06CC012F109DF322CB3508FAD4C31A09062EA8656DF821CDED12445D
+answer_with_hash = 8A2B4F65A663F8005035B220241C64DFA3A4A078BA0D89B59AAFA74E295CCFC97BC59319507B21BC054D38FEDC2F29EC2CB582832EF5177203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002C0AF2EA836117BEA3BCF6F213BF04679BB389698290EEED2EE4C4583719EC6E55784CE2FCA01A3FA576AAB1606C89DA6701330C7A2A0E7304CE95DAD3A6CE631657EDD4F5A0FDABC1B5167F6AE66C380175100F7B20D1B16A2A329F71615A7E27BAB707C3EDF8657B8D52A82D7CF15F5743A97F78939504E07A2A621C395C2332AF46B3943D8599A9120685675747A9EB987F5A9BCF0E89034717BF77C5A881D3551997F02AAB08EDAB3173274A4BAF20F7EA0E6BA26F95A6DB2EEAF55E9355E0B4AED0F89CE52B00650615CFFEDDEFF0E9964561D2703A635D2CD6D27ACE60B098A51636D79BC3F58C0C265B30B2E2272F1D2337B39DF7F879159C2DE9DC579E36A8657E139AC1E4C03A76
+answer = BA0D89B59AAFA74E295CCFC97BC59319507B21BC054D38FEDC2F29EC2CB582832EF5177203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002C0AF2EA836117BEA3BCF6F213BF04679BB389698290EEED2EE4C4583719EC6E55784CE2FCA01A3FA576AAB1606C89DA6701330C7A2A0E7304CE95DAD3A6CE631657EDD4F5A0FDABC1B5167F6AE66C380175100F7B20D1B16A2A329F71615A7E27BAB707C3EDF8657B8D52A82D7CF15F5743A97F78939504E07A2A621C395C2332AF46B3943D8599A9120685675747A9EB987F5A9BCF0E89034717BF77C5A881D3551997F02AAB08EDAB3173274A4BAF20F7EA0E6BA26F95A6DB2EEAF55E9355E0B4AED0F89CE52B00650615CFFEDDEFF0E9964561D2703A635D2CD6D27ACE60B098A51636D79BC3F58C0C265B30B2E2272F1D2337B39DF7F879159C2DE9DC579E36A8657E139AC1E4C03A76
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 59 EB 4E A1 77 C2 B0 4D C7 A2 21 A2
-0010 | C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E 7C 08 6E BA
-0020 | F4 74 75 86 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 9A AF A7 4E 29 5C CF C9 7B C5 93 19
+0010 | 50 7B 21 BC 05 4D 38 FE DC 2F 29 EC 2C B5 82 83
+0020 | 2E F5 17 72 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 = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758
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 | 01 65 80 A4 8B 6D 77 44 D3 C0 C6 74 24 14 11 E8
-0140 | 44 E1 CE 29 BF 23 76 3A 63 E3 ED 32 DF 24 B9 69
-0150 | FE 60 C5 5C B1 CD FF E9 2F 45 73 30 36 A5 A4 B0
-0160 | BF BF E9 A1 62 27 60 DA 62 61 CC 54 9C 70 85 8A
-0170 | 93 F0 73 C6 A6 A0 99 CE 63 C8 08 44 63 ED 0C 4D
-0180 | 1F 13 93 A7 15 B7 18 95 B0 6D B2 39 97 45 B0 EA
-0190 | 30 3C D8 AF F1 B4 7F 05 79 30 E6 CA 70 F4 F2 5D
-01A0 | 3D 15 E2 9E 26 8B F9 F5 A0 AD 1D A8 4D 21 64 58
-01B0 | A2 CE 6E 6E FD C4 A1 F2 AB 21 4D 5C 8D 98 49 19
-01C0 | 05 04 50 A7 10 85 7C 8F 62 5C A4 36 17 85 92 3F
-01D0 | EF F4 08 9D 40 A4 EB 3D B9 5A A2 91 27 53 CA 25
-01E0 | 5D 7C D8 BC 62 20 61 03 81 B5 D0 82 CD F8 4F C2
-01F0 | F9 B4 6D F4 49 FE 52 64 35 E3 D7 43 47 C9 F1 9A
-0200 | 29 39 1D BC D2 F2 04 79 F4 5A 7B 68 3D 98 43 64
-0210 | 0C 65 89 03 43 75 35 6F 86 06 E8 CB 81 CA C6 9D
-0220 | 06 CC 01 2F 10 9D F3 22 CB 35 08 FA D4 C3 1A 09
-0230 | 06 2E A8 65
+0130 | 2C 0A F2 EA 83 61 17 BE A3 BC F6 F2 13 BF 04 67
+0140 | 9B B3 89 69 82 90 EE ED 2E E4 C4 58 37 19 EC 6E
+0150 | 55 78 4C E2 FC A0 1A 3F A5 76 AA B1 60 6C 89 DA
+0160 | 67 01 33 0C 7A 2A 0E 73 04 CE 95 DA D3 A6 CE 63
+0170 | 16 57 ED D4 F5 A0 FD AB C1 B5 16 7F 6A E6 6C 38
+0180 | 01 75 10 0F 7B 20 D1 B1 6A 2A 32 9F 71 61 5A 7E
+0190 | 27 BA B7 07 C3 ED F8 65 7B 8D 52 A8 2D 7C F1 5F
+01A0 | 57 43 A9 7F 78 93 95 04 E0 7A 2A 62 1C 39 5C 23
+01B0 | 32 AF 46 B3 94 3D 85 99 A9 12 06 85 67 57 47 A9
+01C0 | EB 98 7F 5A 9B CF 0E 89 03 47 17 BF 77 C5 A8 81
+01D0 | D3 55 19 97 F0 2A AB 08 ED AB 31 73 27 4A 4B AF
+01E0 | 20 F7 EA 0E 6B A2 6F 95 A6 DB 2E EA F5 5E 93 55
+01F0 | E0 B4 AE D0 F8 9C E5 2B 00 65 06 15 CF FE DD EF
+0200 | F0 E9 96 45 61 D2 70 3A 63 5D 2C D6 D2 7A CE 60
+0210 | B0 98 A5 16 36 D7 9B C3 F5 8C 0C 26 5B 30 B2 E2
+0220 | 27 2F 1D 23 37 B3 9D F7 F8 79 15 9C 2D E9 DC 57
+0230 | 9E 36 A8 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 = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758
nonce
4, 16
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
20, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Value received from server in Step 2
@@ -594,13 +594,13 @@ answer = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758
g_a
300, 260
-FE000100016580A48B6D7744D3C0C674
241411E844E1CE29BF23763A63E3ED32
DF24B969FE60C55CB1CDFFE92F457330
36A5A4B0BFBFE9A1622760DA6261CC54
9C70858A93F073C6A6A099CE63C80844
63ED0C4D1F1393A715B71895B06DB239
9745B0EA303CD8AFF1B47F057930E6CA
70F4F25D3D15E29E268BF9F5A0AD1DA8
4D216458A2CE6E6EFDC4A1F2AB214D5C
8D984919050450A710857C8F625CA436
1785923FEFF4089D40A4EB3DB95AA291
2753CA255D7CD8BC6220610381B5D082
CDF84FC2F9B46DF449FE526435E3D743
47C9F19A29391DBCD2F20479F45A7B68
3D9843640C6589034375356F8606E8CB
81CAC69D06CC012F109DF322CB3508FA
D4C31A09
+FE0001002C0AF2EA836117BEA3BCF6F2
13BF04679BB389698290EEED2EE4C458
3719EC6E55784CE2FCA01A3FA576AAB1
606C89DA6701330C7A2A0E7304CE95DA
D3A6CE631657EDD4F5A0FDABC1B5167F
6AE66C380175100F7B20D1B16A2A329F
71615A7E27BAB707C3EDF8657B8D52A8
2D7CF15F5743A97F78939504E07A2A62
1C395C2332AF46B3943D8599A9120685
675747A9EB987F5A9BCF0E89034717BF
77C5A881D3551997F02AAB08EDAB3173
274A4BAF20F7EA0E6BA26F95A6DB2EEA
F55E9355E0B4AED0F89CE52B00650615
CFFEDDEFF0E9964561D2703A635D2CD6
D27ACE60B098A51636D79BC3F58C0C26
5B30B2E2272F1D2337B39DF7F879159C
2DE9DC57
g_a
diffie-hellman parameter
server_time
560, 4
-062EA865
(1705520646 in decimal)
+9E36A865
(1705522846 in decimal)
Server time
@@ -609,34 +609,34 @@ answer = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758
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 = 2E790C97AFEC39FDDFF632D55A899D103A91AF3B96E37B623D8CFB6AE218703978AE81A3FFFE06E18290E22AAF85D05C14E18985C2B7BE33DEB780739EED71B79DDEFE8892E27E5529D8827338C12B10E1D8335A1F42CAF3C55B25DD8DA6A2F6787AA1FB6C2A3E2ACB95F274D68ECF7F92D5EA7B6F2845F093346649CC7E8F8D738D8B23A88BDB796C484DC7BAC18D3AC710A41636936C4F0FDDA8AF643A1A6C2B2B2EA0A6D51D023CEBF3D4AA50649130B99DC03E0256A01F9CBE120A0FB91686269AB815B6E6B71B0527092022B44DAC38B4307FAAE6F12B838BBD04C50278E8DB061BBC62CA7E5F9AF016B16B705B943C3096EE04800D77E1DE468BCF892E
+b = 09DA60C95DE494D1DC93E312B4360DCE03264CA0D780F5054953AA123BE384D0F2D9622E94EAEAEF7899772FA52F9002EFFC5B359AEE4BA4AEC1B13ED3B4C4209BABC349C7596FF732E22919D232600EAC2934B8602FE2633D661C378BEE8D503C68C2E1E9C7A1B15A96AD1530C5936CF7150AB604C860060BFEE1728F45877BB7BAF1D24263C9E8C248E0171E0634DA84C3667A276BC024C421191F79290178F47999DF1CA46C0C523B9D3B6B020551D4AC79699A1C7DA431349CFBA2FDD191BE84881E12C848265CAACF1815B977C4325AA9EFB513F50039059F7E61EFD2B66FD6EEFA1520B1AB48BC2E2512F8DC3D1AEAE2011656FC9C42B69A5B26E4A39D
Then compute g_b = pow(g, b) mod dh_prime
-g_b = ADB2E31A0D4B144B226DF3D17C7C23F9326646A06C9848085B7E2ADA605F220FE05D955E5FAF4F05F173F1E34D9AA7C382E590EDD5EA22488DFAFC362A69B044D6DC95A220DADE9CDA01079093C406F80DB702A3F3175CDC5734CC5BFB94767503EEC027D92CBF86DF4665060193C0CA5F5860C0E48E9D948861F5716F545B1FD7DCB033C6AC93D62FD1627B386B0F59847953694300E20AF3E19F828852AFE0C1B87319F73FD71DD10EF5395239E5CF448B2449D97904EA242F6938A70320467FFB58C8CDE037AC21923A44E8E6F7DEFEFBB03409BABD622510359F93451AE78EE93B79D2FCC857CB58D9A2B6CA7A97935C8D41C5B8823A6F7D8C69968FF979
+g_b = 2C8CCBFB2588782B28078C6F4629EEA9C5BB65CE59C26D18D7DBE1224C3F9336073C2EE089387F7C66306EA495BC08E1ADF042C7E3D91EFC9BC075AAAB844F4C7AFEF8D05796FC5104C0A57E55F69F75CD584A4D1AA46D139F9455035900E7ECB56D71074AE08E1901C5F9D90391DFD93DAC28B3CC5674701A0B1E8B39DACD67D3F524710456CD7E147221AC5E2256E12A68C77FCB1F6F7191F9FA0D99EB15A02E00E65A7FA59A4BBA7C7860A300AD43036150C3B4BE9023089F87493DB98D0088E0ACB4C145C72720F7DFDDDCD3F1469BD8EC2D2ED80B849ACC0B6B013F37437D49DCEAACD7360638C02B387932F7FF4BA8409128D78C3FFE7213AD30E83527
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 59 EB 4E A1 77 C2 B0 4D C7 A2 21 A2
-0010 | C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E 7C 08 6E BA
-0020 | F4 74 75 86 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | AD B2 E3 1A 0D 4B 14 4B 22 6D F3 D1 7C 7C 23 F9
-0040 | 32 66 46 A0 6C 98 48 08 5B 7E 2A DA 60 5F 22 0F
-0050 | E0 5D 95 5E 5F AF 4F 05 F1 73 F1 E3 4D 9A A7 C3
-0060 | 82 E5 90 ED D5 EA 22 48 8D FA FC 36 2A 69 B0 44
-0070 | D6 DC 95 A2 20 DA DE 9C DA 01 07 90 93 C4 06 F8
-0080 | 0D B7 02 A3 F3 17 5C DC 57 34 CC 5B FB 94 76 75
-0090 | 03 EE C0 27 D9 2C BF 86 DF 46 65 06 01 93 C0 CA
-00A0 | 5F 58 60 C0 E4 8E 9D 94 88 61 F5 71 6F 54 5B 1F
-00B0 | D7 DC B0 33 C6 AC 93 D6 2F D1 62 7B 38 6B 0F 59
-00C0 | 84 79 53 69 43 00 E2 0A F3 E1 9F 82 88 52 AF E0
-00D0 | C1 B8 73 19 F7 3F D7 1D D1 0E F5 39 52 39 E5 CF
-00E0 | 44 8B 24 49 D9 79 04 EA 24 2F 69 38 A7 03 20 46
-00F0 | 7F FB 58 C8 CD E0 37 AC 21 92 3A 44 E8 E6 F7 DE
-0100 | FE FB B0 34 09 BA BD 62 25 10 35 9F 93 45 1A E7
-0110 | 8E E9 3B 79 D2 FC C8 57 CB 58 D9 A2 B6 CA 7A 97
-0120 | 93 5C 8D 41 C5 B8 82 3A 6F 7D 8C 69 96 8F F9 79
+0000 | 54 B6 43 66 9A AF A7 4E 29 5C CF C9 7B C5 93 19
+0010 | 50 7B 21 BC 05 4D 38 FE DC 2F 29 EC 2C B5 82 83
+0020 | 2E F5 17 72 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 2C 8C CB FB 25 88 78 2B 28 07 8C 6F 46 29 EE A9
+0040 | C5 BB 65 CE 59 C2 6D 18 D7 DB E1 22 4C 3F 93 36
+0050 | 07 3C 2E E0 89 38 7F 7C 66 30 6E A4 95 BC 08 E1
+0060 | AD F0 42 C7 E3 D9 1E FC 9B C0 75 AA AB 84 4F 4C
+0070 | 7A FE F8 D0 57 96 FC 51 04 C0 A5 7E 55 F6 9F 75
+0080 | CD 58 4A 4D 1A A4 6D 13 9F 94 55 03 59 00 E7 EC
+0090 | B5 6D 71 07 4A E0 8E 19 01 C5 F9 D9 03 91 DF D9
+00A0 | 3D AC 28 B3 CC 56 74 70 1A 0B 1E 8B 39 DA CD 67
+00B0 | D3 F5 24 71 04 56 CD 7E 14 72 21 AC 5E 22 56 E1
+00C0 | 2A 68 C7 7F CB 1F 6F 71 91 F9 FA 0D 99 EB 15 A0
+00D0 | 2E 00 E6 5A 7F A5 9A 4B BA 7C 78 60 A3 00 AD 43
+00E0 | 03 61 50 C3 B4 BE 90 23 08 9F 87 49 3D B9 8D 00
+00F0 | 88 E0 AC B4 C1 45 C7 27 20 F7 DF DD DC D3 F1 46
+0100 | 9B D8 EC 2D 2E D8 0B 84 9A CC 0B 6B 01 3F 37 43
+0110 | 7D 49 DC EA AC D7 36 06 38 C0 2B 38 79 32 F7 FF
+0120 | 4B A8 40 91 28 D7 8C 3F FE 72 13 AD 30 E8 35 27
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 = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758
nonce
4, 16
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
20, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Value received from server in Step 2
g_b
36, 260
-FE000100ADB2E31A0D4B144B226DF3D1
7C7C23F9326646A06C9848085B7E2ADA
605F220FE05D955E5FAF4F05F173F1E3
4D9AA7C382E590EDD5EA22488DFAFC36
2A69B044D6DC95A220DADE9CDA010790
93C406F80DB702A3F3175CDC5734CC5B
FB94767503EEC027D92CBF86DF466506
0193C0CA5F5860C0E48E9D948861F571
6F545B1FD7DCB033C6AC93D62FD1627B
386B0F59847953694300E20AF3E19F82
8852AFE0C1B87319F73FD71DD10EF539
5239E5CF448B2449D97904EA242F6938
A70320467FFB58C8CDE037AC21923A44
E8E6F7DEFEFBB03409BABD622510359F
93451AE78EE93B79D2FCC857CB58D9A2
B6CA7A97935C8D41C5B8823A6F7D8C69
968FF979
+FE0001002C8CCBFB2588782B28078C6F
4629EEA9C5BB65CE59C26D18D7DBE122
4C3F9336073C2EE089387F7C66306EA4
95BC08E1ADF042C7E3D91EFC9BC075AA
AB844F4C7AFEF8D05796FC5104C0A57E
55F69F75CD584A4D1AA46D139F945503
5900E7ECB56D71074AE08E1901C5F9D9
0391DFD93DAC28B3CC5674701A0B1E8B
39DACD67D3F524710456CD7E147221AC
5E2256E12A68C77FCB1F6F7191F9FA0D
99EB15A02E00E65A7FA59A4BBA7C7860
A300AD43036150C3B4BE9023089F8749
3DB98D0088E0ACB4C145C72720F7DFDD
DCD3F1469BD8EC2D2ED80B849ACC0B6B
013F37437D49DCEAACD7360638C02B38
7932F7FF4BA8409128D78C3FFE7213AD
30E83527
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -684,47 +684,47 @@ answer = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758
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 = 54B6436659EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF47475860000000000000000FE000100ADB2E31A0D4B144B226DF3D17C7C23F9326646A06C9848085B7E2ADA605F220FE05D955E5FAF4F05F173F1E34D9AA7C382E590EDD5EA22488DFAFC362A69B044D6DC95A220DADE9CDA01079093C406F80DB702A3F3175CDC5734CC5BFB94767503EEC027D92CBF86DF4665060193C0CA5F5860C0E48E9D948861F5716F545B1FD7DCB033C6AC93D62FD1627B386B0F59847953694300E20AF3E19F828852AFE0C1B87319F73FD71DD10EF5395239E5CF448B2449D97904EA242F6938A70320467FFB58C8CDE037AC21923A44E8E6F7DEFEFBB03409BABD622510359F93451AE78EE93B79D2FCC857CB58D9A2B6CA7A97935C8D41C5B8823A6F7D8C69968FF979
-padding = B906094C1C397547E2487EF2
-tmp_aes_key = 2D98C430FADBBEF521A985A86D5FEC89B0D80C57012AB00E52CBDBEF385BA609
-tmp_aes_iv = 252E68B91E3D4AC180E8FA4B7CC58EACA72F868303EE469B66B95D325DEE588E
+data = 54B643669AAFA74E295CCFC97BC59319507B21BC054D38FEDC2F29EC2CB582832EF517720000000000000000FE0001002C8CCBFB2588782B28078C6F4629EEA9C5BB65CE59C26D18D7DBE1224C3F9336073C2EE089387F7C66306EA495BC08E1ADF042C7E3D91EFC9BC075AAAB844F4C7AFEF8D05796FC5104C0A57E55F69F75CD584A4D1AA46D139F9455035900E7ECB56D71074AE08E1901C5F9D90391DFD93DAC28B3CC5674701A0B1E8B39DACD67D3F524710456CD7E147221AC5E2256E12A68C77FCB1F6F7191F9FA0D99EB15A02E00E65A7FA59A4BBA7C7860A300AD43036150C3B4BE9023089F87493DB98D0088E0ACB4C145C72720F7DFDDDCD3F1469BD8EC2D2ED80B849ACC0B6B013F37437D49DCEAACD7360638C02B387932F7FF4BA8409128D78C3FFE7213AD30E83527
+padding = 170DEC31F5A11DE115D057FC
+tmp_aes_key = 5A92A9C13DAE7AD44F48EE21479299AFD3680211ABDA9D54F009B6846D8EFEA1
+tmp_aes_iv = E99F3BAD6AB94F5C30B04635A75C66CFD2AB5A68B8D4C50DCE7F384DE753D9DE
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 = 4FF005BF31BB1AFB6A86D3AFB20336875ADB2DD803501AD99DC3DB1BEE9625D0804B85D055566BF73B8982B4E505A1EBE3D7290EEEEDB3B66BE4656E29B9CFEBC2A3BF71B805E28F7614A4991C0B4F83EB5F9C15B2E884098803AC148E75239484E7525F2031989832F75CBDBC2204C2FB1D9AD54B503636D376F69A7F552B6006B977115655F22D653FC6784591009B2F35E82C931C83422031FD45CB66B1F15AA3578A37AF06F0161222A2C2073B37083CB5785E3307A1B5C06DEA46C708DF93A3A1DDA10A521A25DC0C6BCDD7D506E9ED9C17B9609CFC6D407AB79748EF6D7D73FC5FBA9EB1310C1E4C460FD972A8A1BE76FA451D5BF3F5B82659DAE1C50A601AE37315F216516B1035E4F9ED5F0FB39F6C8BA9FC7D32CFDDD6CD515936FE0163E980B44F3C465F19D8AED4178762133526B67FEFA64B2B5E7AAD37A4FAB8C95DA2F4D687DF42A88F0226A0621C45
+encrypted_data = 19D136DB0431F30C8204159B7547FC223ADA5F91CF9395C2466CC1C0430705F68DAEE69BF38C6D915B04B212503860CC0F2E770F58DBA12E0BC2BFE175B7F05C224E2CA03E9EF0216AD4DD2710C6D43337CE055D6FFD5657905D8ED35073D4D33BFE476903D8576FB34C388C3390432D8BF2C4F86726890B338E42C3EE5F4AA77E0618CA4AEFE578F9AFAA7899FF55F7EE0EC759CA506CD17E029D50FA631EB51C79A1C2B4E7FDDF47F08CF9466E3550857386E9A763DFB5214D47FF8C05E7DAA8BA6E628486F3160050DAEE78F600A4C567EFFAB504B950A62CAFBC2934887CA81433001D0934BD0DD875C0D9274C38C652FF2EC90C8BB22A9CACF77C1081EB4B28882705E8EEDB1BE3B5214EF0ABFCFEC8F7CCCCE4315C625A063FC6988F03192436010EA3F73070E728D357C5FBA4827E1463DC8308A14ABACEEE6B48D315F203D0CBC74E8560C7036068357B292C
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 CC 14 06 00 06 2E A8 65
-0010 | 78 01 00 00 1F 5F 04 F5 59 EB 4E A1 77 C2 B0 4D
-0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
-0030 | 7C 08 6E BA F4 74 75 86 FE 50 01 00 4F F0 05 BF
-0040 | 31 BB 1A FB 6A 86 D3 AF B2 03 36 87 5A DB 2D D8
-0050 | 03 50 1A D9 9D C3 DB 1B EE 96 25 D0 80 4B 85 D0
-0060 | 55 56 6B F7 3B 89 82 B4 E5 05 A1 EB E3 D7 29 0E
-0070 | EE ED B3 B6 6B E4 65 6E 29 B9 CF EB C2 A3 BF 71
-0080 | B8 05 E2 8F 76 14 A4 99 1C 0B 4F 83 EB 5F 9C 15
-0090 | B2 E8 84 09 88 03 AC 14 8E 75 23 94 84 E7 52 5F
-00A0 | 20 31 98 98 32 F7 5C BD BC 22 04 C2 FB 1D 9A D5
-00B0 | 4B 50 36 36 D3 76 F6 9A 7F 55 2B 60 06 B9 77 11
-00C0 | 56 55 F2 2D 65 3F C6 78 45 91 00 9B 2F 35 E8 2C
-00D0 | 93 1C 83 42 20 31 FD 45 CB 66 B1 F1 5A A3 57 8A
-00E0 | 37 AF 06 F0 16 12 22 A2 C2 07 3B 37 08 3C B5 78
-00F0 | 5E 33 07 A1 B5 C0 6D EA 46 C7 08 DF 93 A3 A1 DD
-0100 | A1 0A 52 1A 25 DC 0C 6B CD D7 D5 06 E9 ED 9C 17
-0110 | B9 60 9C FC 6D 40 7A B7 97 48 EF 6D 7D 73 FC 5F
-0120 | BA 9E B1 31 0C 1E 4C 46 0F D9 72 A8 A1 BE 76 FA
-0130 | 45 1D 5B F3 F5 B8 26 59 DA E1 C5 0A 60 1A E3 73
-0140 | 15 F2 16 51 6B 10 35 E4 F9 ED 5F 0F B3 9F 6C 8B
-0150 | A9 FC 7D 32 CF DD D6 CD 51 59 36 FE 01 63 E9 80
-0160 | B4 4F 3C 46 5F 19 D8 AE D4 17 87 62 13 35 26 B6
-0170 | 7F EF A6 4B 2B 5E 7A AD 37 A4 FA B8 C9 5D A2 F4
-0180 | D6 87 DF 42 A8 8F 02 26 A0 62 1C 45
+0000 | 00 00 00 00 00 00 00 00 34 AD 05 00 9E 36 A8 65
+0010 | 78 01 00 00 1F 5F 04 F5 9A AF A7 4E 29 5C CF C9
+0020 | 7B C5 93 19 50 7B 21 BC 05 4D 38 FE DC 2F 29 EC
+0030 | 2C B5 82 83 2E F5 17 72 FE 50 01 00 19 D1 36 DB
+0040 | 04 31 F3 0C 82 04 15 9B 75 47 FC 22 3A DA 5F 91
+0050 | CF 93 95 C2 46 6C C1 C0 43 07 05 F6 8D AE E6 9B
+0060 | F3 8C 6D 91 5B 04 B2 12 50 38 60 CC 0F 2E 77 0F
+0070 | 58 DB A1 2E 0B C2 BF E1 75 B7 F0 5C 22 4E 2C A0
+0080 | 3E 9E F0 21 6A D4 DD 27 10 C6 D4 33 37 CE 05 5D
+0090 | 6F FD 56 57 90 5D 8E D3 50 73 D4 D3 3B FE 47 69
+00A0 | 03 D8 57 6F B3 4C 38 8C 33 90 43 2D 8B F2 C4 F8
+00B0 | 67 26 89 0B 33 8E 42 C3 EE 5F 4A A7 7E 06 18 CA
+00C0 | 4A EF E5 78 F9 AF AA 78 99 FF 55 F7 EE 0E C7 59
+00D0 | CA 50 6C D1 7E 02 9D 50 FA 63 1E B5 1C 79 A1 C2
+00E0 | B4 E7 FD DF 47 F0 8C F9 46 6E 35 50 85 73 86 E9
+00F0 | A7 63 DF B5 21 4D 47 FF 8C 05 E7 DA A8 BA 6E 62
+0100 | 84 86 F3 16 00 50 DA EE 78 F6 00 A4 C5 67 EF FA
+0110 | B5 04 B9 50 A6 2C AF BC 29 34 88 7C A8 14 33 00
+0120 | 1D 09 34 BD 0D D8 75 C0 D9 27 4C 38 C6 52 FF 2E
+0130 | C9 0C 8B B2 2A 9C AC F7 7C 10 81 EB 4B 28 88 27
+0140 | 05 E8 EE DB 1B E3 B5 21 4E F0 AB FC FE C8 F7 CC
+0150 | CC E4 31 5C 62 5A 06 3F C6 98 8F 03 19 24 36 01
+0160 | 0E A3 F7 30 70 E7 28 D3 57 C5 FB A4 82 7E 14 63
+0170 | DC 83 08 A1 4A BA CE EE 6B 48 D3 15 F2 03 D0 CB
+0180 | C7 4E 85 60 C7 03 60 68 35 7B 29 2C
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
-CC140600062EA865
+34AD05009E36A865
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
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
40, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Value received from server in Step 2
encrypted_data
56, 340
-FE5001004FF005BF31BB1AFB6A86D3AF
B20336875ADB2DD803501AD99DC3DB1B
EE9625D0804B85D055566BF73B8982B4
E505A1EBE3D7290EEEEDB3B66BE4656E
29B9CFEBC2A3BF71B805E28F7614A499
1C0B4F83EB5F9C15B2E884098803AC14
8E75239484E7525F2031989832F75CBD
BC2204C2FB1D9AD54B503636D376F69A
7F552B6006B977115655F22D653FC678
4591009B2F35E82C931C83422031FD45
CB66B1F15AA3578A37AF06F0161222A2
C2073B37083CB5785E3307A1B5C06DEA
46C708DF93A3A1DDA10A521A25DC0C6B
CDD7D506E9ED9C17B9609CFC6D407AB7
9748EF6D7D73FC5FBA9EB1310C1E4C46
0FD972A8A1BE76FA451D5BF3F5B82659
DAE1C50A601AE37315F216516B1035E4
F9ED5F0FB39F6C8BA9FC7D32CFDDD6CD
515936FE0163E980B44F3C465F19D8AE
D4178762133526B67FEFA64B2B5E7AAD
37A4FAB8C95DA2F4D687DF42A88F0226
A0621C45
+FE50010019D136DB0431F30C8204159B
7547FC223ADA5F91CF9395C2466CC1C0
430705F68DAEE69BF38C6D915B04B212
503860CC0F2E770F58DBA12E0BC2BFE1
75B7F05C224E2CA03E9EF0216AD4DD27
10C6D43337CE055D6FFD5657905D8ED3
5073D4D33BFE476903D8576FB34C388C
3390432D8BF2C4F86726890B338E42C3
EE5F4AA77E0618CA4AEFE578F9AFAA78
99FF55F7EE0EC759CA506CD17E029D50
FA631EB51C79A1C2B4E7FDDF47F08CF9
466E3550857386E9A763DFB5214D47FF
8C05E7DAA8BA6E628486F3160050DAEE
78F600A4C567EFFAB504B950A62CAFBC
2934887CA81433001D0934BD0DD875C0
D9274C38C652FF2EC90C8BB22A9CACF7
7C1081EB4B28882705E8EEDB1BE3B521
4EF0ABFCFEC8F7CCCCE4315C625A063F
C6988F03192436010EA3F73070E728D3
57C5FBA4827E1463DC8308A14ABACEEE
6B48D315F203D0CBC74E8560C7036068
357B292C
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 = 04F81FB9B944F83BB701D8BE1B11784C74E3A2ED9E9B0E9E272B1F6935EF8291E3A073C5E5AC89FEA805DFCB3F4B9C7E40D364DAD866B0E9452A265E766CE051326B7391B532170D44BA18AA5CFA97881D6B29A39F04B4D564A483902574A79E1864F702D28A922A884D3D155D73F923EBC7F975A3C7D4CA7EF123707E712EBC46E1FB8950B0A1FE36C82BE449DC734F34D76D15528FABB5A7DAD8246C7B68377471D2268045D29F58B6F5C23445526A0F5249BA622F580D2EDD9F2432F0377812F0850853C27C539C1D932006D57C9D3EE269980957B49C61C51614C9D6F288C06124A0964FDBA8BA6AA11B7E46D79FBABE69C2D2A9F9DE708F03E205E0895F
+auth_key = 8C359D419DCD976B43054226DF43AE8E4CE7FCEB812AF52B54255FEA88984E436AA02BAB9B20D8D6DCA5DFE28B594C3BE7F622B0C1DDB9263B8CFD31DBE713F897C162ABAAFCE7E9ED16A344A26E55DC4211EEB291107601898FD18AAC9F016FFA70A099CE280EC4C3255DD7956BBB6E6164473727887CF92578FEE11F7CF2D112CEC1754BA1AA0D4B9BD8C5A33C6273F819D8617CD0E07638B61866A4298F373ED0F46BC272C7E6A07A32CD2B34A8761778849840ACCBE06A7B169C294945F258C8F9B3A25EE209D8B610F4821A49C4ABA136B512631935DEE5B35A280353DDFCF8FB34BB54FA76E3F019C9DF7650632252F81C81B2BB8A7D5F50ACFDDA3B62
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 1C FC 85 07 2E A8 65
-0010 | 84 00 00 00 34 F7 CB 3B 59 EB 4E A1 77 C2 B0 4D
-0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
-0030 | 7C 08 6E BA F4 74 75 86 80 F2 5E 86 60 70 01 35
-0040 | AF AD C1 45 22 0C 7C 72
+0000 | 00 00 00 00 00 00 00 00 01 20 5E E4 9F 36 A8 65
+0010 | 5C 00 00 00 34 F7 CB 3B 9A AF A7 4E 29 5C CF C9
+0020 | 7B C5 93 19 50 7B 21 BC 05 4D 38 FE DC 2F 29 EC
+0030 | 2C B5 82 83 2E F5 17 72 4F C0 EE 0B 29 27 F6 92
+0040 | BE D8 95 F7 9C D6 6A 3A
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
-011CFC85072EA865
+01205EE49F36A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-84000000
(132 in decimal)
+5C000000
(92 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
-59EB4EA177C2B04DC7A221A2C080F0A3
+9AAFA74E295CCFC97BC59319507B21BC
Value generated by client in Step 1
server_nonce
40, 16
-7F5AB27788A5395E7C086EBAF4747586
+054D38FEDC2F29EC2CB582832EF51772
Value received from server in Step 2
new_nonce_hash1
56, 16
-80F25E8660700135AFADC145220C7C72
+4FC0EE0B2927F692BED895F79CD66A3A
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/ChannelAdminLogEventAction.html b/data/web/corefork.telegram.org/type/ChannelAdminLogEventAction.html
index d2759f5561..f1f0a3e6cf 100644
--- a/data/web/corefork.telegram.org/type/ChannelAdminLogEventAction.html
+++ b/data/web/corefork.telegram.org/type/ChannelAdminLogEventAction.html
@@ -285,19 +285,19 @@
channelAdminLogEventActionChangePeerColor
-
+The message accent color was changed
channelAdminLogEventActionChangeProfilePeerColor
-
+The profile accent color was changed
channelAdminLogEventActionChangeWallpaper
-
+The wallpaper was changed
channelAdminLogEventActionChangeEmojiStatus
-
+The emoji status was changed
diff --git a/data/web/corefork.telegram.org/type/InputStickerSet.html b/data/web/corefork.telegram.org/type/InputStickerSet.html
index 1818f76fef..435e0b6624 100644
--- a/data/web/corefork.telegram.org/type/InputStickerSet.html
+++ b/data/web/corefork.telegram.org/type/InputStickerSet.html
@@ -117,7 +117,7 @@
inputStickerSetEmojiChannelDefaultStatuses
-
+Default custom emoji status stickerset for channel statuses
diff --git a/data/web/corefork.telegram.org/type/MediaArea.html b/data/web/corefork.telegram.org/type/MediaArea.html
index 04d52b5922..3d97a59bd4 100644
--- a/data/web/corefork.telegram.org/type/MediaArea.html
+++ b/data/web/corefork.telegram.org/type/MediaArea.html
@@ -92,7 +92,7 @@
inputMediaAreaChannelPost
-
+Represents a channel post