diff --git a/data/web/corefork.telegram.org/api/boost.html b/data/web/corefork.telegram.org/api/boost.html
index f19da64a0d..f6ae9bce96 100644
--- a/data/web/corefork.telegram.org/api/boost.html
+++ b/data/web/corefork.telegram.org/api/boost.html
@@ -66,6 +66,9 @@
message#94345242 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true invert_media:flags.27?true flags2:# offline:flags2.1?true id:int from_id:flags.8?Peer from_boosts_applied:flags.29?int peer_id:Peer saved_peer_id:flags.28?Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long via_business_bot_id:flags2.0?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int quick_reply_shortcut_id:flags.30?int effect:flags2.2?long factcheck:flags2.3?FactCheck = Message;
channelFull#bbab348d flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true restricted_sponsored:flags2.11?true can_view_revenue:flags2.12?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions reactions_limit:flags2.13?int stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper boosts_applied:flags2.8?int boosts_unrestrict:flags2.9?int emojiset:flags2.10?StickerSet = ChatFull;
+messageActionBoostApply#cc02aa6d boosts:int = MessageAction;
+messageService#2b085862 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int action:MessageAction ttl_period:flags.25?int = Message;
+
---functions---
premium.getMyBoosts#0be77b4a = premium.MyBoosts;
@@ -85,6 +88,7 @@ A BOOST_NOT_MODIFIED
RPC error will be returned when calling any of
Users may also invoke premium.getBoostsStatus, to get the current boost status of a channel or supergroup as a premium.boostsStatus constructor, check out the constructor page for more info.
The number of boosts we have currently assigned to the channel/supergroup will also be visible in channelFull.boosts_applied
.
Channel or supergroup administrators may invoke premium.getBoostsList to fetch the list of users currently boosting the channel or supergroup, and premium.getUserBoosts to get info about the boosts sent to a channel or supergroup by a specific user.
+Boosting a channel or supergroup will emit (not immediately, after max 15 seconds to allow grouping of repeated boosts) a messageService with a messageActionBoostApply to all users (supergroups) or for just the sender (channels), with from_id
equal to the sender of the boosts.
With each boost, channels and supergroups can post 1 additional story per day to their subscribers' story feeds.
diff --git a/data/web/corefork.telegram.org/api/layers.html b/data/web/corefork.telegram.org/api/layers.html index 4f9b54fdd9..9a2f2bff3a 100644 --- a/data/web/corefork.telegram.org/api/layers.html +++ b/data/web/corefork.telegram.org/api/layers.html @@ -282,7 +282,7 @@Use account.updateProfile to change the name and bio (about
) of the current account.
first_name
and last_name
will be contained in the user constructor, and the about
field in the userFull constructor.
Changing the first/last name will emit an updateUserName update, changing the about
bio will emit an updateUser update (which should lead to an invalidation of the locally cached userFull constructor, and subsequent refetch using users.getFullUser if and when needed).
userProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;
+userProfilePhoto#82d1f706 flags:# has_video:flags.0?true personal:flags.2?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;
+
+user#215c4438 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true bot_business:flags2.11?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int color:flags2.8?PeerColor profile_color:flags2.9?PeerColor = User;
+
+updateUser#20529438 user_id:long = Update;
+
+---functions---
+
+photos.updateProfilePhoto#9e82039 flags:# fallback:flags.0?true bot:flags.1?InputUser id:InputPhoto = photos.Photo;
+photos.uploadProfilePhoto#388a3b5 flags:# fallback:flags.3?true bot:flags.5?InputUser file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double video_emoji_markup:flags.4?VideoSize = photos.Photo;
+Use photos.updateProfilePhoto or photos.uploadProfilePhoto to set a profile (optionally animated) picture, emitting an updateUser.
+The photo will be contained in user.photo
.
See here » for full info on profile pictures and how to work with them.
user#215c4438 flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true bot_business:flags2.11?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int color:flags2.8?PeerColor profile_color:flags2.9?PeerColor = User;
@@ -149,6 +164,7 @@ Updating/reordering usernames will emit an account.updateBusinessGreetingMessage#66cdafc4 flags:# message:flags.0?InputBusinessGreetingMessage = Bool;
account.updateBusinessAwayMessage#a26a7fa5 flags:# message:flags.0?InputBusinessAwayMessage = Bool;
account.updateBusinessIntro#a614d034 flags:# intro:flags.0?InputBusinessIntro = Bool;
+A large number of Telegram Business-related information should be displayed on the profile page, see here » for the full list of fields and how they can be changed.
userStatusEmpty#9d05049 = UserStatus;
userStatusOnline#edb93949 expires:int = UserStatus;
diff --git a/data/web/corefork.telegram.org/constructor/birthday.html b/data/web/corefork.telegram.org/constructor/birthday.html
index cb42a741c3..0160af0a60 100644
--- a/data/web/corefork.telegram.org/constructor/birthday.html
+++ b/data/web/corefork.telegram.org/constructor/birthday.html
@@ -4,12 +4,10 @@
birthday
-
+
-
+
@@ -45,7 +43,7 @@ Also used to invite users to gift Telegram Premium subscriptions » to other use
birthday
Birthday information for a user.
-Also used to invite users to gift Telegram Premium subscriptions » to other users with birthdays within a +1/-1 day time range, related to the current day.
+Also used to invite users to gift Telegram Premium subscriptions » to other users with birthdays within a +1/-1 day time range, related to the current day.
+
+Related pages
+Profile
+Telegram offers many customization options for your profile!
+Telegram Premium
+Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.
diff --git a/data/web/corefork.telegram.org/constructor/messageActionBoostApply.html b/data/web/corefork.telegram.org/constructor/messageActionBoostApply.html
index 611babc40b..e5accef1df 100644
--- a/data/web/corefork.telegram.org/constructor/messageActionBoostApply.html
+++ b/data/web/corefork.telegram.org/constructor/messageActionBoostApply.html
@@ -4,26 +4,10 @@
messageActionBoostApply
-
+
-
+
@@ -58,7 +42,8 @@ MessageAction">
messageActionBoostApply
-
+ Some boosts » were applied to the channel or supergroup.
+
+
+Related pages
+Channel and supergroup boosts
+Telegram Premium users can grant their favorite channels and supergroups additional features like the ability to post stories by giving them boosts.
diff --git a/data/web/corefork.telegram.org/constructor/updateUser.html b/data/web/corefork.telegram.org/constructor/updateUser.html
index 5dee936d3f..aa74807c39 100644
--- a/data/web/corefork.telegram.org/constructor/updateUser.html
+++ b/data/web/corefork.telegram.org/constructor/updateUser.html
@@ -4,10 +4,10 @@
updateUser
-
+
-
+
@@ -42,7 +42,7 @@
updateUser
- User information was updated, it must be refetched using users.getFullUser.
+ User (user and/or userFull) information was updated, it must be refetched using users.getFullUser.
-
@@ -76,6 +76,10 @@
Type
Related pages
+user
+Indicates info about a certain user
+userFull
+Extended user info
users.getFullUser
Returns extended user info by ID.
diff --git a/data/web/corefork.telegram.org/method/account.updatePersonalChannel.html b/data/web/corefork.telegram.org/method/account.updatePersonalChannel.html
index 0f6f915355..a5df241b55 100644
--- a/data/web/corefork.telegram.org/method/account.updatePersonalChannel.html
+++ b/data/web/corefork.telegram.org/method/account.updatePersonalChannel.html
@@ -87,7 +87,7 @@
Profile
Telegram offers many customization options for your profile!
updateUser
-User information was updated, it must be refetched using users.getFullUser.
+User (user and/or userFull) information was updated, it must be refetched using users.getFullUser.
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 520cd3b230..d909992a74 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 C0 66 04 00 8F 61 89 66
-0010 | 14 00 00 00 F1 8E 7E BE 8A 74 6C B5 B5 A8 B2 09
-0020 | 60 7A C2 3F 42 38 1C 8D
+0000 | 00 00 00 00 00 00 00 00 E0 DF 08 00 DF 67 89 66
+0010 | 14 00 00 00 F1 8E 7E BE 24 51 93 B7 F5 9B 5B BC
+0020 | 8C C5 6C B6 43 18 20 22
Payload (de)serialization:
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@
message_id
8, 8
-C06604008F618966
+E0DF0800DF678966
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -95,7 +95,7 @@
nonce
24, 16
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
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 44 56 57 8F 61 89 66
-0010 | 54 00 00 00 63 24 16 05 8A 74 6C B5 B5 A8 B2 09
-0020 | 60 7A C2 3F 42 38 1C 8D 9E 84 14 64 C6 56 0C E5
-0030 | 91 60 C5 0C 1F F4 76 17 08 29 F6 69 A5 77 4E A5
-0040 | 49 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 30 97 6E DF 67 89 66
+0010 | 58 00 00 00 63 24 16 05 24 51 93 B7 F5 9B 5B BC
+0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
+0030 | 53 14 82 A7 E3 C2 ED 64 08 1D B8 A4 A1 D9 52 C3
+0040 | 8B 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
-014456578F618966
+0130976EDF678966
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-54000000
(84 in decimal)
+58000000
(88 in decimal)
Message body length
@@ -150,19 +150,19 @@
nonce
24, 16
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
40, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Server-generated random number
pq
56, 12
-0829F669A5774EA549000000
TL byte deserialization
=> bigendian conversion to decimal
=> 3023720359218029897
+081DB8A4A1D952C38B000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2141642637857440651
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 = 3023720359218029897
-Decompose into 2 prime cofactors p < q
: 3023720359218029897 = 1603108193 * 1886161129
-p = 1603108193
-q = 1886161129
+pq = 2141642637857440651
+Decompose into 2 prime cofactors p < q
: 2141642637857440651 = 1329070753 * 1611383467
+p = 1329070753
+q = 1611383467
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 29 F6 69 A5 77 4E A5 49 00 00 00
-0010 | 04 5F 8D 7D 61 00 00 00 04 70 6C 88 E9 00 00 00
-0020 | 8A 74 6C B5 B5 A8 B2 09 60 7A C2 3F 42 38 1C 8D
-0030 | 9E 84 14 64 C6 56 0C E5 91 60 C5 0C 1F F4 76 17
-0040 | FB C0 49 04 1D 75 6E 0F C5 05 AA 27 17 62 9C 44
-0050 | B4 71 2F 0E B5 7F 1E 08 B9 50 7E 29 14 C1 85 31
+0000 | 95 5F F5 A9 08 1D B8 A4 A1 D9 52 C3 8B 00 00 00
+0010 | 04 4F 38 02 A1 00 00 00 04 60 0B C2 AB 00 00 00
+0020 | 24 51 93 B7 F5 9B 5B BC 8C C5 6C B6 43 18 20 22
+0030 | 12 38 54 3A 19 42 67 BC 53 14 82 A7 E3 C2 ED 64
+0040 | 61 55 EC C9 94 CB BC FB 0D C2 C7 93 F9 80 9B 96
+0050 | 58 39 3B FD 15 01 BD E0 D1 64 B2 E4 B7 E9 42 4B
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 = 1886161129
pq
4, 12
-0829F669A5774EA549000000
TL byte deserialization
=> bigendian conversion to decimal
=> 3023720359218029897
+081DB8A4A1D952C38B000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2141642637857440651
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p
16, 8
-045F8D7D61000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1603108193
+044F3802A1000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1329070753
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
24, 8
-04706C88E9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1886161129
+04600BC2AB000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1611383467
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce
32, 16
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
48, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Value received from server in Step 2
new_nonce
64, 32
-FBC049041D756E0FC505AA2717629C44
B4712F0EB57F1E08B9507E2914C18531
+6155ECC994CBBCFB0DC2C793F9809B96
58393BFD1501BDE0D164B2E4B7E9424B
Client-generated random number
@@ -291,39 +291,39 @@ q = 1886161129
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 = 955FF5A90829F669A5774EA549000000045F8D7D6100000004706C88E90000008A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF47617FBC049041D756E0FC505AA2717629C44B4712F0EB57F1E08B9507E2914C1853102000000
-random_padding_bytes = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B0702997678141B1079D38FBD1B15F9B30C29DF39F8F7DB2A25C963F808668FCCF33427079D568A45A1E2280472A1563403548155361C412D24C6C85B0A46971
+data = 955FF5A9081DB8A4A1D952C38B000000044F3802A100000004600BC2AB000000245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED646155ECC994CBBCFB0DC2C793F9809B9658393BFD1501BDE0D164B2E4B7E9424B02000000
+random_padding_bytes = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D195302D3533B2E25A0BCBAE9AB55AF20A73ADD1B3E5C7910FB7FC22FD241CB2FF1012793625810226EA738F28054935B34BC673A92FF094E32F11C3843AE135CB6A
And this is the output:
-encrypted_data = 360075AD1A519DBFB16611CD0291CEB0090E7E7076CC2AB2130ACB621A298302004BE8CF6CD8DD0FA9C7F555C6BB3B882132CA14AD8049BA74E23046011DCA9FAF820C1959701D9F4E697ED03DC068454E0CA897CAB18C4BA7BE4A478875869D4229587F42A5E8D400010F3614E3C01654F5982AD6CF3A69EF0C7A3471A4BC195B2EFF6881ABD6AA32520EE59F8D4FEA3D4A98E48EFFC69742A577D86C70F1017B0327E8D5ECCEA8E5216EECBD851225E69FCF09B3CADBFCFF76AA13C3284BF246B26305CBF7F0D850E376238F9C99131B7BCB2E2455DDE96F42073EC4670639605F11A8298CA95FA98E0D0B6ECC64A69540B272CB09B1C7E0B9F8F7B2449F90
+encrypted_data = 31338A47F38101AF1CE82D2C64632A2BA0497EF970194478825BDB1CFB0BB1CD28605D729DC0658CC756C6338B20459B2CBFC33EB4EB94F9D352B59643EC449F4C5611CA246BE2BC47152BFB2837AF86298F8A80175E242215169170C96E058A162419C2DAA0E3A1D59290DAA2CD5456FD2B6D569A399FFA454CF28DF922B33B2CF693433C0E1E74EC0EE5B8D454EC442799110462048EE523F47952FE00F06095D93D4DE0D55E6D4DB360248C83278515EC8547DF872CB39354F1CFA7670E2FB457585E0FB7264DEA8F4DC7DC80BD931769796227C776B8BB0F7E32014B7558F369169496DA990345A38C8415E6678DDC9933A4D5F0AC213D60E3A8D9B74B8F
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 C4 66 04 00 8F 61 89 66
-0010 | 40 01 00 00 BE E4 12 D7 8A 74 6C B5 B5 A8 B2 09
-0020 | 60 7A C2 3F 42 38 1C 8D 9E 84 14 64 C6 56 0C E5
-0030 | 91 60 C5 0C 1F F4 76 17 04 5F 8D 7D 61 00 00 00
-0040 | 04 70 6C 88 E9 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 36 00 75 AD 1A 51 9D BF B1 66 11 CD
-0060 | 02 91 CE B0 09 0E 7E 70 76 CC 2A B2 13 0A CB 62
-0070 | 1A 29 83 02 00 4B E8 CF 6C D8 DD 0F A9 C7 F5 55
-0080 | C6 BB 3B 88 21 32 CA 14 AD 80 49 BA 74 E2 30 46
-0090 | 01 1D CA 9F AF 82 0C 19 59 70 1D 9F 4E 69 7E D0
-00A0 | 3D C0 68 45 4E 0C A8 97 CA B1 8C 4B A7 BE 4A 47
-00B0 | 88 75 86 9D 42 29 58 7F 42 A5 E8 D4 00 01 0F 36
-00C0 | 14 E3 C0 16 54 F5 98 2A D6 CF 3A 69 EF 0C 7A 34
-00D0 | 71 A4 BC 19 5B 2E FF 68 81 AB D6 AA 32 52 0E E5
-00E0 | 9F 8D 4F EA 3D 4A 98 E4 8E FF C6 97 42 A5 77 D8
-00F0 | 6C 70 F1 01 7B 03 27 E8 D5 EC CE A8 E5 21 6E EC
-0100 | BD 85 12 25 E6 9F CF 09 B3 CA DB FC FF 76 AA 13
-0110 | C3 28 4B F2 46 B2 63 05 CB F7 F0 D8 50 E3 76 23
-0120 | 8F 9C 99 13 1B 7B CB 2E 24 55 DD E9 6F 42 07 3E
-0130 | C4 67 06 39 60 5F 11 A8 29 8C A9 5F A9 8E 0D 0B
-0140 | 6E CC 64 A6 95 40 B2 72 CB 09 B1 C7 E0 B9 F8 F7
-0150 | B2 44 9F 90
+0000 | 00 00 00 00 00 00 00 00 E4 DF 08 00 DF 67 89 66
+0010 | 40 01 00 00 BE E4 12 D7 24 51 93 B7 F5 9B 5B BC
+0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
+0030 | 53 14 82 A7 E3 C2 ED 64 04 4F 38 02 A1 00 00 00
+0040 | 04 60 0B C2 AB 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 31 33 8A 47 F3 81 01 AF 1C E8 2D 2C
+0060 | 64 63 2A 2B A0 49 7E F9 70 19 44 78 82 5B DB 1C
+0070 | FB 0B B1 CD 28 60 5D 72 9D C0 65 8C C7 56 C6 33
+0080 | 8B 20 45 9B 2C BF C3 3E B4 EB 94 F9 D3 52 B5 96
+0090 | 43 EC 44 9F 4C 56 11 CA 24 6B E2 BC 47 15 2B FB
+00A0 | 28 37 AF 86 29 8F 8A 80 17 5E 24 22 15 16 91 70
+00B0 | C9 6E 05 8A 16 24 19 C2 DA A0 E3 A1 D5 92 90 DA
+00C0 | A2 CD 54 56 FD 2B 6D 56 9A 39 9F FA 45 4C F2 8D
+00D0 | F9 22 B3 3B 2C F6 93 43 3C 0E 1E 74 EC 0E E5 B8
+00E0 | D4 54 EC 44 27 99 11 04 62 04 8E E5 23 F4 79 52
+00F0 | FE 00 F0 60 95 D9 3D 4D E0 D5 5E 6D 4D B3 60 24
+0100 | 8C 83 27 85 15 EC 85 47 DF 87 2C B3 93 54 F1 CF
+0110 | A7 67 0E 2F B4 57 58 5E 0F B7 26 4D EA 8F 4D C7
+0120 | DC 80 BD 93 17 69 79 62 27 C7 76 B8 BB 0F 7E 32
+0130 | 01 4B 75 58 F3 69 16 94 96 DA 99 03 45 A3 8C 84
+0140 | 15 E6 67 8D DC 99 33 A4 D5 F0 AC 21 3D 60 E3 A8
+0150 | D9 B7 4B 8F
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 = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B
message_id
8, 8
-C46604008F618966
+E4DF0800DF678966
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -363,25 +363,25 @@ random_padding_bytes = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B
nonce
24, 16
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
40, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Value received from server in Step 2
p
56, 8
-045F8D7D61000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1603108193
+044F3802A1000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1329070753
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
64, 8
-04706C88E9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1886161129
+04600BC2AB000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1611383467
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
@@ -393,7 +393,7 @@ random_padding_bytes = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B
encrypted_data
80, 260
-FE000100360075AD1A519DBFB16611CD
0291CEB0090E7E7076CC2AB2130ACB62
1A298302004BE8CF6CD8DD0FA9C7F555
C6BB3B882132CA14AD8049BA74E23046
011DCA9FAF820C1959701D9F4E697ED0
3DC068454E0CA897CAB18C4BA7BE4A47
8875869D4229587F42A5E8D400010F36
14E3C01654F5982AD6CF3A69EF0C7A34
71A4BC195B2EFF6881ABD6AA32520EE5
9F8D4FEA3D4A98E48EFFC69742A577D8
6C70F1017B0327E8D5ECCEA8E5216EEC
BD851225E69FCF09B3CADBFCFF76AA13
C3284BF246B26305CBF7F0D850E37623
8F9C99131B7BCB2E2455DDE96F42073E
C4670639605F11A8298CA95FA98E0D0B
6ECC64A69540B272CB09B1C7E0B9F8F7
B2449F90
+FE00010031338A47F38101AF1CE82D2C
64632A2BA0497EF970194478825BDB1C
FB0BB1CD28605D729DC0658CC756C633
8B20459B2CBFC33EB4EB94F9D352B596
43EC449F4C5611CA246BE2BC47152BFB
2837AF86298F8A80175E242215169170
C96E058A162419C2DAA0E3A1D59290DA
A2CD5456FD2B6D569A399FFA454CF28D
F922B33B2CF693433C0E1E74EC0EE5B8
D454EC442799110462048EE523F47952
FE00F06095D93D4DE0D55E6D4DB36024
8C83278515EC8547DF872CB39354F1CF
A7670E2FB457585E0FB7264DEA8F4DC7
DC80BD931769796227C776B8BB0F7E32
014B7558F369169496DA990345A38C84
15E6678DDC9933A4D5F0AC213D60E3A8
D9B74B8F
Value generated above
@@ -402,47 +402,47 @@ random_padding_bytes = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 EC 8E 1D 90 61 89 66
-0010 | 7C 02 00 00 5C 07 E8 D0 8A 74 6C B5 B5 A8 B2 09
-0020 | 60 7A C2 3F 42 38 1C 8D 9E 84 14 64 C6 56 0C E5
-0030 | 91 60 C5 0C 1F F4 76 17 FE 50 02 00 6D 5A AD DF
-0040 | 81 C7 99 97 17 4E 5F DB A0 37 1A 00 8C 05 88 0D
-0050 | BE AA 2C 84 20 5A 4D 2B 14 A3 58 41 9D 2A AC F1
-0060 | CF 91 D8 62 CE 3D 8F 18 93 08 7B FF C2 4F 2C DE
-0070 | 28 2A A0 CF 50 A9 8C C7 F5 76 ED B0 37 AD B5 45
-0080 | CC 15 F9 71 88 BD EE 88 1E 3F 96 37 85 73 91 A5
-0090 | E2 75 91 F1 39 4C 81 29 F8 BB 0C 39 E2 8B 81 90
-00A0 | DD C1 8F 19 C6 67 A7 35 3F E0 F3 9E F6 05 54 48
-00B0 | 83 00 C9 6F CC A2 54 32 36 87 47 B2 F0 D3 2F A1
-00C0 | B4 CB D8 CB E9 E8 88 77 A1 B2 EB 4A 53 6C C9 67
-00D0 | 17 B5 44 01 FF 29 2B FB 3A E7 D7 0B 0D B9 CE 62
-00E0 | 68 46 9E AC 4A 51 C3 DE 5D 60 23 2A 71 18 3B 98
-00F0 | 1B AC 7E D9 86 E7 26 CE A8 F9 4D 4A B4 41 01 C4
-0100 | F5 70 00 0E 05 52 2F B7 52 7F E9 20 5F 3A AD 12
-0110 | 7F 69 81 D7 08 DE 1B 30 E4 0B E2 F6 8A 8B 02 95
-0120 | 80 0E 58 96 8F 97 67 28 AD C6 F7 6E 82 6E 9F DA
-0130 | 13 9C A4 A8 CE 40 8C 7C B0 CC 29 2D 92 23 84 79
-0140 | CB 16 53 62 CA 28 47 6D 73 DB F6 18 B2 49 AD 16
-0150 | 6C 5F 8F 42 63 07 28 A0 AB 3F E0 76 EF F8 3C AD
-0160 | D8 21 36 77 6E D1 75 C7 3B 2D E1 7A C8 54 DC EB
-0170 | FB 44 6A 76 BA 32 9F 5C 99 F7 F0 CD B3 81 DA D5
-0180 | D3 66 2E C6 D7 20 C7 25 B7 99 C9 CF 1F 52 C0 21
-0190 | 8E 48 36 E4 0D 2C 77 98 F4 F3 97 C3 99 A2 D5 C2
-01A0 | 6F 23 5D 46 22 BB 3C DB 40 74 93 DD 89 2F A5 31
-01B0 | D6 67 4A 3C C7 49 5C BD 44 A2 EE CC BC 72 C6 9C
-01C0 | 42 07 C0 22 0C 99 95 1B 0C 60 BB 03 4D 1E 1C BF
-01D0 | 54 D7 17 3F 18 40 F5 C7 E1 92 83 13 9B 12 E8 AB
-01E0 | 1D BD 21 7A B2 8A 40 79 87 9C 0D 2C A1 D6 C9 96
-01F0 | 55 4B 6D F5 41 29 50 35 FB CA 61 FE CF 25 9D 23
-0200 | BD 9C 12 9E 65 88 D0 5A 42 93 96 A3 C1 52 AC 54
-0210 | C3 6B CF 31 11 A3 48 C2 F3 62 D0 13 BA 95 45 11
-0220 | 8E DB 27 BA 7C FF 61 01 71 EF 1E 34 CB EC 38 A8
-0230 | 4A 19 9B 87 DD BD 3F 9E B1 82 2D 39 FA 15 2A 1C
-0240 | 78 0C A5 57 57 5D AD 73 11 B9 85 43 B1 99 34 8B
-0250 | 89 FA 3B 01 C8 E4 9D 9B 21 C8 F7 97 0D C2 95 A5
-0260 | BB 84 DA B0 CF C9 A5 75 E4 3D 5F 68 AF 0D 6E F9
-0270 | 4D F8 BC 36 C3 98 B4 94 02 F1 7B 5D 9B 55 39 F5
-0280 | 96 17 DD 85 C4 86 20 47 CD F7 64 A7
+0000 | 00 00 00 00 00 00 00 00 01 08 66 20 E0 67 89 66
+0010 | E8 02 00 00 5C 07 E8 D0 24 51 93 B7 F5 9B 5B BC
+0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
+0030 | 53 14 82 A7 E3 C2 ED 64 FE 50 02 00 35 D5 91 1D
+0040 | F0 26 5E 6E F5 2A B9 9A 6E ED 40 AD E9 59 2C 9C
+0050 | E2 3A B8 B6 56 01 0E 92 B9 9E 40 8E 91 D8 60 A1
+0060 | B1 A3 75 00 FD 9D AA AC B2 75 E3 1A 7B 97 84 89
+0070 | 3F 6C 04 C1 18 60 ED 86 1F CD B4 BB 17 F3 76 EA
+0080 | 6F F7 D3 75 94 D4 2E FF 93 9D 42 C6 9B B8 A8 BB
+0090 | 4C DB CE 00 5D B7 F7 B6 D4 15 DC 8C FA B4 0D F0
+00A0 | A2 A4 22 3C 49 55 B1 75 83 5D B9 3E 11 7E FD 52
+00B0 | D4 8F EA 47 6C 6C BF C8 3B A1 A0 42 2B B7 C8 B8
+00C0 | 44 EE B5 CA 7D E6 2F 59 54 A1 67 D8 41 E1 6F 44
+00D0 | 2B B7 1C CC A7 D6 1D D5 C7 84 CC 8C 09 46 60 BF
+00E0 | C5 EB CF B1 F0 37 25 87 F1 DB A4 50 0B 86 8F 2C
+00F0 | E0 5B 18 AC DB 98 88 16 CF F6 66 4E 23 3A 4B 57
+0100 | D2 8F FB 44 3F BE 74 C0 22 9F F3 04 29 D5 72 E9
+0110 | 77 C2 7E A6 05 E7 0C 7B 0E 2C D4 3D 30 5D BB 25
+0120 | FC 0B E7 04 58 F9 93 BB 48 8C 37 32 DD D6 E3 06
+0130 | 72 39 82 D4 4A 49 03 A6 4D 0E FB 21 45 46 2A F8
+0140 | 6A 1E 19 93 FD 8C C4 F4 2F EB AB A0 0B 86 ED CC
+0150 | 50 60 17 98 79 42 07 B5 EE 67 DE 52 44 2C 7D A9
+0160 | C5 F9 5C F9 DC 12 03 B0 9A 5C 7A BD 67 CC DE 63
+0170 | 18 4F A1 E9 5B 20 CD EB 5F CD 91 45 20 E6 DF 62
+0180 | 4B 84 4B F0 2D 5F F2 F4 89 B0 09 D9 71 5D 98 C5
+0190 | A3 2A CC 6E 7E 78 E8 E0 C2 6A 89 99 97 A4 80 30
+01A0 | B0 1F 3A 23 48 2D AD 5D BA 59 6D A8 FD 7C B1 5F
+01B0 | 14 08 F1 F6 6A 88 36 3E 21 2A 13 3F 0D 8A D0 BD
+01C0 | 04 C1 4B 06 AD 86 5C 62 1F A8 92 3C BC A9 1F 3A
+01D0 | F3 4C 97 D5 26 FA 0A 1B 82 39 5B AF E0 45 C8 30
+01E0 | 7C 31 5F 1C FA 05 C9 DE 22 6B 63 6C 52 46 38 95
+01F0 | 80 3B 07 D0 90 2B 40 A4 48 88 51 3C F2 41 58 D7
+0200 | 55 3C 84 C4 1D 32 70 1A 5E E1 68 82 F5 C5 F0 26
+0210 | 1F 19 F4 7A 2C B2 3D C2 BB 92 44 5B 58 65 61 51
+0220 | 62 B6 11 70 39 97 BC C9 7C 2A F7 8E 0E 2F 21 85
+0230 | B2 F2 F4 7F 47 A3 9C 50 FC 77 64 D6 D7 3A A2 D9
+0240 | EB BB 5D E3 95 05 F2 FD 49 E4 9F AC E0 0C F9 7A
+0250 | 37 23 35 89 81 E6 40 90 80 C9 BE E4 F8 5B 0D 8E
+0260 | 13 90 C8 BE B2 99 49 C8 B7 37 81 8B E6 83 1B 2C
+0270 | 7C 30 7C 38 84 EA FE 8D 0E F4 11 D7 05 E1 C1 1F
+0280 | EA 23 45 73 C6 61 2E 23 32 77 AC 65
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 = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B
message_id
8, 8
-01EC8E1D90618966
+01086620E0678966
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-7C020000
(636 in decimal)
+E8020000
(744 in decimal)
Message body length
@@ -482,19 +482,19 @@ random_padding_bytes = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B
nonce
24, 16
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
40, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Value received from server in Step 2
encrypted_answer
56, 596
-FE5002006D5AADDF81C79997174E5FDB
A0371A008C05880DBEAA2C84205A4D2B
14A358419D2AACF1CF91D862CE3D8F18
93087BFFC24F2CDE282AA0CF50A98CC7
F576EDB037ADB545CC15F97188BDEE88
1E3F9637857391A5E27591F1394C8129
F8BB0C39E28B8190DDC18F19C667A735
3FE0F39EF60554488300C96FCCA25432
368747B2F0D32FA1B4CBD8CBE9E88877
A1B2EB4A536CC96717B54401FF292BFB
3AE7D70B0DB9CE6268469EAC4A51C3DE
5D60232A71183B981BAC7ED986E726CE
A8F94D4AB44101C4F570000E05522FB7
527FE9205F3AAD127F6981D708DE1B30
E40BE2F68A8B0295800E58968F976728
ADC6F76E826E9FDA139CA4A8CE408C7C
B0CC292D92238479CB165362CA28476D
73DBF618B249AD166C5F8F42630728A0
AB3FE076EFF83CADD82136776ED175C7
3B2DE17AC854DCEBFB446A76BA329F5C
99F7F0CDB381DAD5D3662EC6D720C725
B799C9CF1F52C0218E4836E40D2C7798
F4F397C399A2D5C26F235D4622BB3CDB
407493DD892FA531D6674A3CC7495CBD
44A2EECCBC72C69C4207C0220C99951B
0C60BB034D1E1CBF54D7173F1840F5C7
E19283139B12E8AB1DBD217AB28A4079
879C0D2CA1D6C996554B6DF541295035
FBCA61FECF259D23BD9C129E6588D05A
429396A3C152AC54C36BCF3111A348C2
F362D013BA9545118EDB27BA7CFF6101
71EF1E34CBEC38A84A199B87DDBD3F9E
B1822D39FA152A1C780CA557575DAD73
11B98543B199348B89FA3B01C8E49D9B
21C8F7970DC295A5BB84DAB0CFC9A575
E43D5F68AF0D6EF94DF8BC36C398B494
02F17B5D9B5539F59617DD85C4862047
CDF764A7
+FE50020035D5911DF0265E6EF52AB99A
6EED40ADE9592C9CE23AB8B656010E92
B99E408E91D860A1B1A37500FD9DAAAC
B275E31A7B9784893F6C04C11860ED86
1FCDB4BB17F376EA6FF7D37594D42EFF
939D42C69BB8A8BB4CDBCE005DB7F7B6
D415DC8CFAB40DF0A2A4223C4955B175
835DB93E117EFD52D48FEA476C6CBFC8
3BA1A0422BB7C8B844EEB5CA7DE62F59
54A167D841E16F442BB71CCCA7D61DD5
C784CC8C094660BFC5EBCFB1F0372587
F1DBA4500B868F2CE05B18ACDB988816
CFF6664E233A4B57D28FFB443FBE74C0
229FF30429D572E977C27EA605E70C7B
0E2CD43D305DBB25FC0BE70458F993BB
488C3732DDD6E306723982D44A4903A6
4D0EFB2145462AF86A1E1993FD8CC4F4
2FEBABA00B86EDCC50601798794207B5
EE67DE52442C7DA9C5F95CF9DC1203B0
9A5C7ABD67CCDE63184FA1E95B20CDEB
5FCD914520E6DF624B844BF02D5FF2F4
89B009D9715D98C5A32ACC6E7E78E8E0
C26A899997A48030B01F3A23482DAD5D
BA596DA8FD7CB15F1408F1F66A88363E
212A133F0D8AD0BD04C14B06AD865C62
1FA8923CBCA91F3AF34C97D526FA0A1B
82395BAFE045C8307C315F1CFA05C9DE
226B636C52463895803B07D0902B40A4
4888513CF24158D7553C84C41D32701A
5EE16882F5C5F0261F19F47A2CB23DC2
BB92445B5865615162B611703997BCC9
7C2AF78E0E2F2185B2F2F47F47A39C50
FC7764D6D73AA2D9EBBB5DE39505F2FD
49E49FACE00CF97A3723358981E64090
80C9BEE4F85B0D8E1390C8BEB29949C8
B737818BE6831B2C7C307C3884EAFE8D
0EF411D705E1C11FEA234573C6612E23
3277AC65
See below
@@ -502,20 +502,20 @@ random_padding_bytes = BC9C93671B69DBE52455F0C7F543141805CAE69A5EF8B26A25C3B971B
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = 6D5AADDF81C79997174E5FDBA0371A008C05880DBEAA2C84205A4D2B14A358419D2AACF1CF91D862CE3D8F1893087BFFC24F2CDE282AA0CF50A98CC7F576EDB037ADB545CC15F97188BDEE881E3F9637857391A5E27591F1394C8129F8BB0C39E28B8190DDC18F19C667A7353FE0F39EF60554488300C96FCCA25432368747B2F0D32FA1B4CBD8CBE9E88877A1B2EB4A536CC96717B54401FF292BFB3AE7D70B0DB9CE6268469EAC4A51C3DE5D60232A71183B981BAC7ED986E726CEA8F94D4AB44101C4F570000E05522FB7527FE9205F3AAD127F6981D708DE1B30E40BE2F68A8B0295800E58968F976728ADC6F76E826E9FDA139CA4A8CE408C7CB0CC292D92238479CB165362CA28476D73DBF618B249AD166C5F8F42630728A0AB3FE076EFF83CADD82136776ED175C73B2DE17AC854DCEBFB446A76BA329F5C99F7F0CDB381DAD5D3662EC6D720C725B799C9CF1F52C0218E4836E40D2C7798F4F397C399A2D5C26F235D4622BB3CDB407493DD892FA531D6674A3CC7495CBD44A2EECCBC72C69C4207C0220C99951B0C60BB034D1E1CBF54D7173F1840F5C7E19283139B12E8AB1DBD217AB28A4079879C0D2CA1D6C996554B6DF541295035FBCA61FECF259D23BD9C129E6588D05A429396A3C152AC54C36BCF3111A348C2F362D013BA9545118EDB27BA7CFF610171EF1E34CBEC38A84A199B87DDBD3F9EB1822D39FA152A1C780CA557575DAD7311B98543B199348B89FA3B01C8E49D9B21C8F7970DC295A5BB84DAB0CFC9A575E43D5F68AF0D6EF94DF8BC36C398B49402F17B5D9B5539F59617DD85C4862047CDF764A7
-tmp_aes_key = F6C8B70E28B38F579298486D999B0FCF25918C61A50C6C6E269AD587FB88E194
-tmp_aes_iv = 7250DE6AE3E631E6D7AACDF78A312205C83A84A8ECFEFA5B11D67BC9FBC04904
+encrypted_answer = 35D5911DF0265E6EF52AB99A6EED40ADE9592C9CE23AB8B656010E92B99E408E91D860A1B1A37500FD9DAAACB275E31A7B9784893F6C04C11860ED861FCDB4BB17F376EA6FF7D37594D42EFF939D42C69BB8A8BB4CDBCE005DB7F7B6D415DC8CFAB40DF0A2A4223C4955B175835DB93E117EFD52D48FEA476C6CBFC83BA1A0422BB7C8B844EEB5CA7DE62F5954A167D841E16F442BB71CCCA7D61DD5C784CC8C094660BFC5EBCFB1F0372587F1DBA4500B868F2CE05B18ACDB988816CFF6664E233A4B57D28FFB443FBE74C0229FF30429D572E977C27EA605E70C7B0E2CD43D305DBB25FC0BE70458F993BB488C3732DDD6E306723982D44A4903A64D0EFB2145462AF86A1E1993FD8CC4F42FEBABA00B86EDCC50601798794207B5EE67DE52442C7DA9C5F95CF9DC1203B09A5C7ABD67CCDE63184FA1E95B20CDEB5FCD914520E6DF624B844BF02D5FF2F489B009D9715D98C5A32ACC6E7E78E8E0C26A899997A48030B01F3A23482DAD5DBA596DA8FD7CB15F1408F1F66A88363E212A133F0D8AD0BD04C14B06AD865C621FA8923CBCA91F3AF34C97D526FA0A1B82395BAFE045C8307C315F1CFA05C9DE226B636C52463895803B07D0902B40A44888513CF24158D7553C84C41D32701A5EE16882F5C5F0261F19F47A2CB23DC2BB92445B5865615162B611703997BCC97C2AF78E0E2F2185B2F2F47F47A39C50FC7764D6D73AA2D9EBBB5DE39505F2FD49E49FACE00CF97A3723358981E6409080C9BEE4F85B0D8E1390C8BEB29949C8B737818BE6831B2C7C307C3884EAFE8D0EF411D705E1C11FEA234573C6612E233277AC65
+tmp_aes_key = EB1DEED079C861DCBB389AFC13961A14C1DFD95EED5800484B54AE157EB980B0
+tmp_aes_iv = 804327EBEF76C86A7C81ACD8E82F02EDF3F5DEE0FE475FA0A8697D2C6155ECC9
Yielding:
-answer_with_hash = 470230E9F0704272DE68166D4484486AFFC514ACBA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002B06F35519FB9B69A441ACEDD6A8F77A22D90209189A4A22C89FC4D255E9BC5DB1DD4D27E2B41027981B861708465084A0759367DA102A5FEF15C368EB56996AD18255256D59136FDC0E6211B81AE72D27BEA5C444CB9DA38750345C51C06AD34E62E04820F4AF96D580EFE8ED7C5593F5E3BC989EABF8A46AA43FF6881F85A3E8BD654FD078D2DD6A8C7ABBAA899BD68B3142A64516DD356F357ABC4F88CC37EFF4C2A66DCF6DE8C4C110D87142B39FE241E890AF985354DF02ADE13EF0293325F09118A700F8A27C567C75F5B4EC65E6A12E69BEFCD611CBB497650E15E0FD6A1AED0049F40228B5CDBA0BF81934CB9497F33294499AF660CE8980B0017C9890618966FA9FA97CF1B88E97
-answer = BA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002B06F35519FB9B69A441ACEDD6A8F77A22D90209189A4A22C89FC4D255E9BC5DB1DD4D27E2B41027981B861708465084A0759367DA102A5FEF15C368EB56996AD18255256D59136FDC0E6211B81AE72D27BEA5C444CB9DA38750345C51C06AD34E62E04820F4AF96D580EFE8ED7C5593F5E3BC989EABF8A46AA43FF6881F85A3E8BD654FD078D2DD6A8C7ABBAA899BD68B3142A64516DD356F357ABC4F88CC37EFF4C2A66DCF6DE8C4C110D87142B39FE241E890AF985354DF02ADE13EF0293325F09118A700F8A27C567C75F5B4EC65E6A12E69BEFCD611CBB497650E15E0FD6A1AED0049F40228B5CDBA0BF81934CB9497F33294499AF660CE8980B0017C9890618966FA9FA97CF1B88E97
+answer_with_hash = 7DF01684237F0202BA8E36E4821EB3E75D5B1FABBA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009C6DA0F03FC74CF209ABCA82CEA24A45FFA65FCDFABBC51D0256B841B6878074CA8E267FBEEB8665BEB6379FCE7037EC1BFA4493D42988A5C1327DC05B96C27778D1932EE617A499259F743AF43D0993DCBCAED1F6AB711649C3C3F844D98E3A6EA52F73EF4A05EC57054E774C7497C49B9128F28E3E4391CA3E01CB701721B2A0974ED269EAC14F5CB3966B4F9E7D149AAF769A87BC2FF224798B2B5B32FF3378AE2E4D8A3D31DF9F7F8938B310EE9ADB8784873A60F2641F55E977AC0A24458DF7793980E93043B83EC70D890E43B822CF040FDD57081C1B943396C7A5C26338FA2E66BF0022EE1A6371DCD48CDF22763BF6DEF856E0EF29967BB1674247BEE0678966C32B46BCE0A56975
+answer = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009C6DA0F03FC74CF209ABCA82CEA24A45FFA65FCDFABBC51D0256B841B6878074CA8E267FBEEB8665BEB6379FCE7037EC1BFA4493D42988A5C1327DC05B96C27778D1932EE617A499259F743AF43D0993DCBCAED1F6AB711649C3C3F844D98E3A6EA52F73EF4A05EC57054E774C7497C49B9128F28E3E4391CA3E01CB701721B2A0974ED269EAC14F5CB3966B4F9E7D149AAF769A87BC2FF224798B2B5B32FF3378AE2E4D8A3D31DF9F7F8938B310EE9ADB8784873A60F2641F55E977AC0A24458DF7793980E93043B83EC70D890E43B822CF040FDD57081C1B943396C7A5C26338FA2E66BF0022EE1A6371DCD48CDF22763BF6DEF856E0EF29967BB1674247BEE0678966C32B46BCE0A56975
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 8A 74 6C B5 B5 A8 B2 09 60 7A C2 3F
-0010 | 42 38 1C 8D 9E 84 14 64 C6 56 0C E5 91 60 C5 0C
-0020 | 1F F4 76 17 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 24 51 93 B7 F5 9B 5B BC 8C C5 6C B6
+0010 | 43 18 20 22 12 38 54 3A 19 42 67 BC 53 14 82 A7
+0020 | E3 C2 ED 64 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 = BA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761
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 | 2B 06 F3 55 19 FB 9B 69 A4 41 AC ED D6 A8 F7 7A
-0140 | 22 D9 02 09 18 9A 4A 22 C8 9F C4 D2 55 E9 BC 5D
-0150 | B1 DD 4D 27 E2 B4 10 27 98 1B 86 17 08 46 50 84
-0160 | A0 75 93 67 DA 10 2A 5F EF 15 C3 68 EB 56 99 6A
-0170 | D1 82 55 25 6D 59 13 6F DC 0E 62 11 B8 1A E7 2D
-0180 | 27 BE A5 C4 44 CB 9D A3 87 50 34 5C 51 C0 6A D3
-0190 | 4E 62 E0 48 20 F4 AF 96 D5 80 EF E8 ED 7C 55 93
-01A0 | F5 E3 BC 98 9E AB F8 A4 6A A4 3F F6 88 1F 85 A3
-01B0 | E8 BD 65 4F D0 78 D2 DD 6A 8C 7A BB AA 89 9B D6
-01C0 | 8B 31 42 A6 45 16 DD 35 6F 35 7A BC 4F 88 CC 37
-01D0 | EF F4 C2 A6 6D CF 6D E8 C4 C1 10 D8 71 42 B3 9F
-01E0 | E2 41 E8 90 AF 98 53 54 DF 02 AD E1 3E F0 29 33
-01F0 | 25 F0 91 18 A7 00 F8 A2 7C 56 7C 75 F5 B4 EC 65
-0200 | E6 A1 2E 69 BE FC D6 11 CB B4 97 65 0E 15 E0 FD
-0210 | 6A 1A ED 00 49 F4 02 28 B5 CD BA 0B F8 19 34 CB
-0220 | 94 97 F3 32 94 49 9A F6 60 CE 89 80 B0 01 7C 98
-0230 | 90 61 89 66
+0130 | 9C 6D A0 F0 3F C7 4C F2 09 AB CA 82 CE A2 4A 45
+0140 | FF A6 5F CD FA BB C5 1D 02 56 B8 41 B6 87 80 74
+0150 | CA 8E 26 7F BE EB 86 65 BE B6 37 9F CE 70 37 EC
+0160 | 1B FA 44 93 D4 29 88 A5 C1 32 7D C0 5B 96 C2 77
+0170 | 78 D1 93 2E E6 17 A4 99 25 9F 74 3A F4 3D 09 93
+0180 | DC BC AE D1 F6 AB 71 16 49 C3 C3 F8 44 D9 8E 3A
+0190 | 6E A5 2F 73 EF 4A 05 EC 57 05 4E 77 4C 74 97 C4
+01A0 | 9B 91 28 F2 8E 3E 43 91 CA 3E 01 CB 70 17 21 B2
+01B0 | A0 97 4E D2 69 EA C1 4F 5C B3 96 6B 4F 9E 7D 14
+01C0 | 9A AF 76 9A 87 BC 2F F2 24 79 8B 2B 5B 32 FF 33
+01D0 | 78 AE 2E 4D 8A 3D 31 DF 9F 7F 89 38 B3 10 EE 9A
+01E0 | DB 87 84 87 3A 60 F2 64 1F 55 E9 77 AC 0A 24 45
+01F0 | 8D F7 79 39 80 E9 30 43 B8 3E C7 0D 89 0E 43 B8
+0200 | 22 CF 04 0F DD 57 08 1C 1B 94 33 96 C7 A5 C2 63
+0210 | 38 FA 2E 66 BF 00 22 EE 1A 63 71 DC D4 8C DF 22
+0220 | 76 3B F6 DE F8 56 E0 EF 29 96 7B B1 67 42 47 BE
+0230 | E0 67 89 66
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 = BA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761
nonce
4, 16
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
20, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Value received from server in Step 2
@@ -594,13 +594,13 @@ answer = BA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761
g_a
300, 260
-FE0001002B06F35519FB9B69A441ACED
D6A8F77A22D90209189A4A22C89FC4D2
55E9BC5DB1DD4D27E2B41027981B8617
08465084A0759367DA102A5FEF15C368
EB56996AD18255256D59136FDC0E6211
B81AE72D27BEA5C444CB9DA38750345C
51C06AD34E62E04820F4AF96D580EFE8
ED7C5593F5E3BC989EABF8A46AA43FF6
881F85A3E8BD654FD078D2DD6A8C7ABB
AA899BD68B3142A64516DD356F357ABC
4F88CC37EFF4C2A66DCF6DE8C4C110D8
7142B39FE241E890AF985354DF02ADE1
3EF0293325F09118A700F8A27C567C75
F5B4EC65E6A12E69BEFCD611CBB49765
0E15E0FD6A1AED0049F40228B5CDBA0B
F81934CB9497F33294499AF660CE8980
B0017C98
+FE0001009C6DA0F03FC74CF209ABCA82
CEA24A45FFA65FCDFABBC51D0256B841
B6878074CA8E267FBEEB8665BEB6379F
CE7037EC1BFA4493D42988A5C1327DC0
5B96C27778D1932EE617A499259F743A
F43D0993DCBCAED1F6AB711649C3C3F8
44D98E3A6EA52F73EF4A05EC57054E77
4C7497C49B9128F28E3E4391CA3E01CB
701721B2A0974ED269EAC14F5CB3966B
4F9E7D149AAF769A87BC2FF224798B2B
5B32FF3378AE2E4D8A3D31DF9F7F8938
B310EE9ADB8784873A60F2641F55E977
AC0A24458DF7793980E93043B83EC70D
890E43B822CF040FDD57081C1B943396
C7A5C26338FA2E66BF0022EE1A6371DC
D48CDF22763BF6DEF856E0EF29967BB1
674247BE
g_a
diffie-hellman parameter
server_time
560, 4
-90618966
(1720279440 in decimal)
+E0678966
(1720281056 in decimal)
Server time
@@ -609,34 +609,34 @@ answer = BA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761
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 = C1330D14BF326E49DCB91171D2CAA83CC5C98562C6D608D9CD48C8A510830AF282D90260DFC0A65266D6A86776F191DC3F798D4B5345BCC163CE8D6D9294076F60396341017C09B6164729F1D859B6161B1277B15F1B60464AD9BED0C6C396D1993347F2BADF8CAB3CB8D7FE784A3C57C2F0229ED2C0E51593D0C76B547D3389E73E42EE30860D039F3D9D533AD2AD34560DAF4BE2EC02C254F77CD660962675667A2196ED485346B42E818B35754ED03EE9FC5F02060D43202D6BD44C7DAA2E94C7551159A3C166B616A10B1E6C3D271E38534C3D33C9B6733309D2229942E5491198BE626CEB4AC8F229C099E4C5F72F43ED9FAE497D4A02CE6F47AF913997
+b = A2D7C1DC092B41FBD4D0E65F7EABB90AFCD1A575A1CDEC150ED971CF3ED1E63B05C18670115E3F0A708C4025E1F398CCDA44AC164696BA35004B06CF50E8656E3AF8D6E055F20D872FEB052CCD5088A106D397C540FF230475D5A5901CC81CE9662928F556189032AED0A56CCAB46C583AC16D9A66104E3BB9FB6B61353BBF0B77DCE83C7ED01280E45362B891CEE149C3505018EDC23486FB7A6062FEFC6BFFD0CB62E359CB7FCF95657A7CBF85C1F52F21BCD24166AA1A93F252E24736F65632AC73D3116EF7BE9317F066C3AC825789BCAF0DFA55AFA4D23AC25C5BA2C1E95C21927D8FBCC78F5163F2393239BFAB48537ECB8A9433030CE6925259AF3F60
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 1C5E3A3FC0740AB61E09EBFE006A990103D77A0877A7B2F11052B12672180BAFC743616A864AC41A91E5EA8AC9CEC9434D9916899DC878FDF8EC4C452C6CACB14EB91FB8EB5153259E05634A46379034993391B0F438FB9417A2787E605D9C41F44BFC0049A34D0FD0F5265E592024CCABECBA1B60E04A9CE960F5FA00D38D23F22F0C013FCCCDB34686160BD09ECB2482DE4D0946D9C9DCE337161366F934186E1D11A06260CDA5E4F85F3298055DDA12EED331AE5E1D0F2B206AB9BD3552D5CC7A85C9C4231BA990949B9B2FB2D7B205FE06B1D482FD21BCF8FE7FEF3D96347FA4F01C46952E84C9B7B40AB35D5177D83A346039AE7843C59012FF1063A60B
+g_b = AB97981E05567552D981606DB53FBBF54BA7A999809FDD0D0F7D023B0AD846125C39BD0B323331C71302945CFD5E5A66E1F48265E88A17A465B647DD0B14142A80AFC44E8DC7A6ECE7A48BC6F4111FA9E4CDACCD8C8E92CFBC7149B93EB362B32EB02BA9789DAF248B7335406C3891931568181BD54EF08F303430E234AA21251284A2C40D52001DF41AC3ED1A5BB83723C554B767EF2DD9B4B18ADD9AB24F9F2499084BA67D9A6D72516AA4D205113581B60E3BC8AB76530B1D00D6931FD4AAEBE4930F18C10005D935C6BC991EC46A942396C693D5224713AC74720D4EA2B784F9B47C2472CA9148C8C2CF227856FB2D226BA5BE424BD517D3A2093761C10A
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 8A 74 6C B5 B5 A8 B2 09 60 7A C2 3F
-0010 | 42 38 1C 8D 9E 84 14 64 C6 56 0C E5 91 60 C5 0C
-0020 | 1F F4 76 17 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 1C 5E 3A 3F C0 74 0A B6 1E 09 EB FE 00 6A 99 01
-0040 | 03 D7 7A 08 77 A7 B2 F1 10 52 B1 26 72 18 0B AF
-0050 | C7 43 61 6A 86 4A C4 1A 91 E5 EA 8A C9 CE C9 43
-0060 | 4D 99 16 89 9D C8 78 FD F8 EC 4C 45 2C 6C AC B1
-0070 | 4E B9 1F B8 EB 51 53 25 9E 05 63 4A 46 37 90 34
-0080 | 99 33 91 B0 F4 38 FB 94 17 A2 78 7E 60 5D 9C 41
-0090 | F4 4B FC 00 49 A3 4D 0F D0 F5 26 5E 59 20 24 CC
-00A0 | AB EC BA 1B 60 E0 4A 9C E9 60 F5 FA 00 D3 8D 23
-00B0 | F2 2F 0C 01 3F CC CD B3 46 86 16 0B D0 9E CB 24
-00C0 | 82 DE 4D 09 46 D9 C9 DC E3 37 16 13 66 F9 34 18
-00D0 | 6E 1D 11 A0 62 60 CD A5 E4 F8 5F 32 98 05 5D DA
-00E0 | 12 EE D3 31 AE 5E 1D 0F 2B 20 6A B9 BD 35 52 D5
-00F0 | CC 7A 85 C9 C4 23 1B A9 90 94 9B 9B 2F B2 D7 B2
-0100 | 05 FE 06 B1 D4 82 FD 21 BC F8 FE 7F EF 3D 96 34
-0110 | 7F A4 F0 1C 46 95 2E 84 C9 B7 B4 0A B3 5D 51 77
-0120 | D8 3A 34 60 39 AE 78 43 C5 90 12 FF 10 63 A6 0B
+0000 | 54 B6 43 66 24 51 93 B7 F5 9B 5B BC 8C C5 6C B6
+0010 | 43 18 20 22 12 38 54 3A 19 42 67 BC 53 14 82 A7
+0020 | E3 C2 ED 64 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | AB 97 98 1E 05 56 75 52 D9 81 60 6D B5 3F BB F5
+0040 | 4B A7 A9 99 80 9F DD 0D 0F 7D 02 3B 0A D8 46 12
+0050 | 5C 39 BD 0B 32 33 31 C7 13 02 94 5C FD 5E 5A 66
+0060 | E1 F4 82 65 E8 8A 17 A4 65 B6 47 DD 0B 14 14 2A
+0070 | 80 AF C4 4E 8D C7 A6 EC E7 A4 8B C6 F4 11 1F A9
+0080 | E4 CD AC CD 8C 8E 92 CF BC 71 49 B9 3E B3 62 B3
+0090 | 2E B0 2B A9 78 9D AF 24 8B 73 35 40 6C 38 91 93
+00A0 | 15 68 18 1B D5 4E F0 8F 30 34 30 E2 34 AA 21 25
+00B0 | 12 84 A2 C4 0D 52 00 1D F4 1A C3 ED 1A 5B B8 37
+00C0 | 23 C5 54 B7 67 EF 2D D9 B4 B1 8A DD 9A B2 4F 9F
+00D0 | 24 99 08 4B A6 7D 9A 6D 72 51 6A A4 D2 05 11 35
+00E0 | 81 B6 0E 3B C8 AB 76 53 0B 1D 00 D6 93 1F D4 AA
+00F0 | EB E4 93 0F 18 C1 00 05 D9 35 C6 BC 99 1E C4 6A
+0100 | 94 23 96 C6 93 D5 22 47 13 AC 74 72 0D 4E A2 B7
+0110 | 84 F9 B4 7C 24 72 CA 91 48 C8 C2 CF 22 78 56 FB
+0120 | 2D 22 6B A5 BE 42 4B D5 17 D3 A2 09 37 61 C1 0A
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 = BA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761
nonce
4, 16
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
20, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Value received from server in Step 2
g_b
36, 260
-FE0001001C5E3A3FC0740AB61E09EBFE
006A990103D77A0877A7B2F11052B126
72180BAFC743616A864AC41A91E5EA8A
C9CEC9434D9916899DC878FDF8EC4C45
2C6CACB14EB91FB8EB5153259E05634A
46379034993391B0F438FB9417A2787E
605D9C41F44BFC0049A34D0FD0F5265E
592024CCABECBA1B60E04A9CE960F5FA
00D38D23F22F0C013FCCCDB34686160B
D09ECB2482DE4D0946D9C9DCE3371613
66F934186E1D11A06260CDA5E4F85F32
98055DDA12EED331AE5E1D0F2B206AB9
BD3552D5CC7A85C9C4231BA990949B9B
2FB2D7B205FE06B1D482FD21BCF8FE7F
EF3D96347FA4F01C46952E84C9B7B40A
B35D5177D83A346039AE7843C59012FF
1063A60B
+FE000100AB97981E05567552D981606D
B53FBBF54BA7A999809FDD0D0F7D023B
0AD846125C39BD0B323331C71302945C
FD5E5A66E1F48265E88A17A465B647DD
0B14142A80AFC44E8DC7A6ECE7A48BC6
F4111FA9E4CDACCD8C8E92CFBC7149B9
3EB362B32EB02BA9789DAF248B733540
6C3891931568181BD54EF08F303430E2
34AA21251284A2C40D52001DF41AC3ED
1A5BB83723C554B767EF2DD9B4B18ADD
9AB24F9F2499084BA67D9A6D72516AA4
D205113581B60E3BC8AB76530B1D00D6
931FD4AAEBE4930F18C10005D935C6BC
991EC46A942396C693D5224713AC7472
0D4EA2B784F9B47C2472CA9148C8C2CF
227856FB2D226BA5BE424BD517D3A209
3761C10A
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -684,47 +684,47 @@ answer = BA0D89B58A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF4761
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 = 54B643668A746CB5B5A8B209607AC23F42381C8D9E841464C6560CE59160C50C1FF476170000000000000000FE0001001C5E3A3FC0740AB61E09EBFE006A990103D77A0877A7B2F11052B12672180BAFC743616A864AC41A91E5EA8AC9CEC9434D9916899DC878FDF8EC4C452C6CACB14EB91FB8EB5153259E05634A46379034993391B0F438FB9417A2787E605D9C41F44BFC0049A34D0FD0F5265E592024CCABECBA1B60E04A9CE960F5FA00D38D23F22F0C013FCCCDB34686160BD09ECB2482DE4D0946D9C9DCE337161366F934186E1D11A06260CDA5E4F85F3298055DDA12EED331AE5E1D0F2B206AB9BD3552D5CC7A85C9C4231BA990949B9B2FB2D7B205FE06B1D482FD21BCF8FE7FEF3D96347FA4F01C46952E84C9B7B40AB35D5177D83A346039AE7843C59012FF1063A60B
-padding = CCC1EFD6BF664FE1B892B41B
-tmp_aes_key = F6C8B70E28B38F579298486D999B0FCF25918C61A50C6C6E269AD587FB88E194
-tmp_aes_iv = 7250DE6AE3E631E6D7AACDF78A312205C83A84A8ECFEFA5B11D67BC9FBC04904
+data = 54B64366245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED640000000000000000FE000100AB97981E05567552D981606DB53FBBF54BA7A999809FDD0D0F7D023B0AD846125C39BD0B323331C71302945CFD5E5A66E1F48265E88A17A465B647DD0B14142A80AFC44E8DC7A6ECE7A48BC6F4111FA9E4CDACCD8C8E92CFBC7149B93EB362B32EB02BA9789DAF248B7335406C3891931568181BD54EF08F303430E234AA21251284A2C40D52001DF41AC3ED1A5BB83723C554B767EF2DD9B4B18ADD9AB24F9F2499084BA67D9A6D72516AA4D205113581B60E3BC8AB76530B1D00D6931FD4AAEBE4930F18C10005D935C6BC991EC46A942396C693D5224713AC74720D4EA2B784F9B47C2472CA9148C8C2CF227856FB2D226BA5BE424BD517D3A2093761C10A
+padding = A9110132D6F262C66402E6D7
+tmp_aes_key = EB1DEED079C861DCBB389AFC13961A14C1DFD95EED5800484B54AE157EB980B0
+tmp_aes_iv = 804327EBEF76C86A7C81ACD8E82F02EDF3F5DEE0FE475FA0A8697D2C6155ECC9
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 = 2CFB9E47A412980CD68FAC7CD010727A6F8FEAF131891FFC62462CA3BB17847C39F884DA945EA57DD94A55FEA50CE72D737121CC7DD269C1C0C5D756C3720800AFECB573E89618DA3C7A285474F901D4F73755C0D811BBFBFEA82E9E6DEE71643743046E8FAFF01430F61CCA0CD63E235BFD8EB32D018C3ECEFFCF4A7ACA54A64527D5DB4129B2DD9D58F72124366F385214B59E3DE6CFFCB56D537D2748C23E60BE32C815FDF5DFFA0F042A27ADA968F38E3E3087350B9577B9AB3B6F41D799BC4D8DA8F74620469435A12631FD4CAA7C65713A44230D7B855E55AF2D6890B3947646C623D8875A24D6E271D824CCFECCE8AA24E4E036B4111015B41F7F1CFD3A26982F537BE2BA6CFE87434B612139B0C51A9AE588356264E8B7990C8D7D11E38EEECFC308484752AC91A062BBFA0EBDF674A8A019485FA73B28ED5FAC1555E80BC33DCA107F17BE9DCE453760C3C1
+encrypted_data = 5E5CFE20CCB74AE7EB61E477571FF7A76D881352C1EB1B4FD8ED80B64FDFC256B6DE061C89BB387BFECCD39D8BFEA22D8EED63984DF8980F9BF2BBF1BFDAE37F897C24BFBCCE51A8D6AD15D27EF6FBA49041432A88408B0A9E4922F9B27262A4D231CE27CEFE86C6FA15A87FA48E53C4599D315E9B3B988F054E6D6AE76CA08CCDB9F3AD12646E05C4A42D8F6BF3ADDE0D5F0388C762EE8F7454A34B3CC9854843EEC9C090AE6D74A75FA397F20C6A451B1A90DB330E15474ADB94F18AC80237E5C46B4CD9F3628BDA267948535103BEB5B8E22DF2A0C8DFC236DF0C800A36FA23FF3BB057BF33162DE271D73795BDCE094DCC02F8840022D220F4FBD89DF86E561F75C2407342BFF8C70C1E4FD2F47DDBC2866BF6F22DE9E6BFCBB502D534F75602C0305EB9E26BA03835923339B159D894DC36D1C3F9B6863FC197E5632D2495863AF73434B30F795FC44934EFF107
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 E4 EF 00 00 90 61 89 66
-0010 | 78 01 00 00 1F 5F 04 F5 8A 74 6C B5 B5 A8 B2 09
-0020 | 60 7A C2 3F 42 38 1C 8D 9E 84 14 64 C6 56 0C E5
-0030 | 91 60 C5 0C 1F F4 76 17 FE 50 01 00 2C FB 9E 47
-0040 | A4 12 98 0C D6 8F AC 7C D0 10 72 7A 6F 8F EA F1
-0050 | 31 89 1F FC 62 46 2C A3 BB 17 84 7C 39 F8 84 DA
-0060 | 94 5E A5 7D D9 4A 55 FE A5 0C E7 2D 73 71 21 CC
-0070 | 7D D2 69 C1 C0 C5 D7 56 C3 72 08 00 AF EC B5 73
-0080 | E8 96 18 DA 3C 7A 28 54 74 F9 01 D4 F7 37 55 C0
-0090 | D8 11 BB FB FE A8 2E 9E 6D EE 71 64 37 43 04 6E
-00A0 | 8F AF F0 14 30 F6 1C CA 0C D6 3E 23 5B FD 8E B3
-00B0 | 2D 01 8C 3E CE FF CF 4A 7A CA 54 A6 45 27 D5 DB
-00C0 | 41 29 B2 DD 9D 58 F7 21 24 36 6F 38 52 14 B5 9E
-00D0 | 3D E6 CF FC B5 6D 53 7D 27 48 C2 3E 60 BE 32 C8
-00E0 | 15 FD F5 DF FA 0F 04 2A 27 AD A9 68 F3 8E 3E 30
-00F0 | 87 35 0B 95 77 B9 AB 3B 6F 41 D7 99 BC 4D 8D A8
-0100 | F7 46 20 46 94 35 A1 26 31 FD 4C AA 7C 65 71 3A
-0110 | 44 23 0D 7B 85 5E 55 AF 2D 68 90 B3 94 76 46 C6
-0120 | 23 D8 87 5A 24 D6 E2 71 D8 24 CC FE CC E8 AA 24
-0130 | E4 E0 36 B4 11 10 15 B4 1F 7F 1C FD 3A 26 98 2F
-0140 | 53 7B E2 BA 6C FE 87 43 4B 61 21 39 B0 C5 1A 9A
-0150 | E5 88 35 62 64 E8 B7 99 0C 8D 7D 11 E3 8E EE CF
-0160 | C3 08 48 47 52 AC 91 A0 62 BB FA 0E BD F6 74 A8
-0170 | A0 19 48 5F A7 3B 28 ED 5F AC 15 55 E8 0B C3 3D
-0180 | CA 10 7F 17 BE 9D CE 45 37 60 C3 C1
+0000 | 00 00 00 00 00 00 00 00 A8 BC 00 00 E0 67 89 66
+0010 | 78 01 00 00 1F 5F 04 F5 24 51 93 B7 F5 9B 5B BC
+0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
+0030 | 53 14 82 A7 E3 C2 ED 64 FE 50 01 00 5E 5C FE 20
+0040 | CC B7 4A E7 EB 61 E4 77 57 1F F7 A7 6D 88 13 52
+0050 | C1 EB 1B 4F D8 ED 80 B6 4F DF C2 56 B6 DE 06 1C
+0060 | 89 BB 38 7B FE CC D3 9D 8B FE A2 2D 8E ED 63 98
+0070 | 4D F8 98 0F 9B F2 BB F1 BF DA E3 7F 89 7C 24 BF
+0080 | BC CE 51 A8 D6 AD 15 D2 7E F6 FB A4 90 41 43 2A
+0090 | 88 40 8B 0A 9E 49 22 F9 B2 72 62 A4 D2 31 CE 27
+00A0 | CE FE 86 C6 FA 15 A8 7F A4 8E 53 C4 59 9D 31 5E
+00B0 | 9B 3B 98 8F 05 4E 6D 6A E7 6C A0 8C CD B9 F3 AD
+00C0 | 12 64 6E 05 C4 A4 2D 8F 6B F3 AD DE 0D 5F 03 88
+00D0 | C7 62 EE 8F 74 54 A3 4B 3C C9 85 48 43 EE C9 C0
+00E0 | 90 AE 6D 74 A7 5F A3 97 F2 0C 6A 45 1B 1A 90 DB
+00F0 | 33 0E 15 47 4A DB 94 F1 8A C8 02 37 E5 C4 6B 4C
+0100 | D9 F3 62 8B DA 26 79 48 53 51 03 BE B5 B8 E2 2D
+0110 | F2 A0 C8 DF C2 36 DF 0C 80 0A 36 FA 23 FF 3B B0
+0120 | 57 BF 33 16 2D E2 71 D7 37 95 BD CE 09 4D CC 02
+0130 | F8 84 00 22 D2 20 F4 FB D8 9D F8 6E 56 1F 75 C2
+0140 | 40 73 42 BF F8 C7 0C 1E 4F D2 F4 7D DB C2 86 6B
+0150 | F6 F2 2D E9 E6 BF CB B5 02 D5 34 F7 56 02 C0 30
+0160 | 5E B9 E2 6B A0 38 35 92 33 39 B1 59 D8 94 DC 36
+0170 | D1 C3 F9 B6 86 3F C1 97 E5 63 2D 24 95 86 3A F7
+0180 | 34 34 B3 0F 79 5F C4 49 34 EF F1 07
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
-E4EF000090618966
+A8BC0000E0678966
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
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
40, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Value received from server in Step 2
encrypted_data
56, 340
-FE5001002CFB9E47A412980CD68FAC7C
D010727A6F8FEAF131891FFC62462CA3
BB17847C39F884DA945EA57DD94A55FE
A50CE72D737121CC7DD269C1C0C5D756
C3720800AFECB573E89618DA3C7A2854
74F901D4F73755C0D811BBFBFEA82E9E
6DEE71643743046E8FAFF01430F61CCA
0CD63E235BFD8EB32D018C3ECEFFCF4A
7ACA54A64527D5DB4129B2DD9D58F721
24366F385214B59E3DE6CFFCB56D537D
2748C23E60BE32C815FDF5DFFA0F042A
27ADA968F38E3E3087350B9577B9AB3B
6F41D799BC4D8DA8F74620469435A126
31FD4CAA7C65713A44230D7B855E55AF
2D6890B3947646C623D8875A24D6E271
D824CCFECCE8AA24E4E036B4111015B4
1F7F1CFD3A26982F537BE2BA6CFE8743
4B612139B0C51A9AE588356264E8B799
0C8D7D11E38EEECFC308484752AC91A0
62BBFA0EBDF674A8A019485FA73B28ED
5FAC1555E80BC33DCA107F17BE9DCE45
3760C3C1
+FE5001005E5CFE20CCB74AE7EB61E477
571FF7A76D881352C1EB1B4FD8ED80B6
4FDFC256B6DE061C89BB387BFECCD39D
8BFEA22D8EED63984DF8980F9BF2BBF1
BFDAE37F897C24BFBCCE51A8D6AD15D2
7EF6FBA49041432A88408B0A9E4922F9
B27262A4D231CE27CEFE86C6FA15A87F
A48E53C4599D315E9B3B988F054E6D6A
E76CA08CCDB9F3AD12646E05C4A42D8F
6BF3ADDE0D5F0388C762EE8F7454A34B
3CC9854843EEC9C090AE6D74A75FA397
F20C6A451B1A90DB330E15474ADB94F1
8AC80237E5C46B4CD9F3628BDA267948
535103BEB5B8E22DF2A0C8DFC236DF0C
800A36FA23FF3BB057BF33162DE271D7
3795BDCE094DCC02F8840022D220F4FB
D89DF86E561F75C2407342BFF8C70C1E
4FD2F47DDBC2866BF6F22DE9E6BFCBB5
02D534F75602C0305EB9E26BA0383592
3339B159D894DC36D1C3F9B6863FC197
E5632D2495863AF73434B30F795FC449
34EFF107
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 = 5BB6C61CF73779D7E23070FB31BB7CFD6D17F016374B8E1CFC0695F5877D591B0685B5B582BF857D77D28A8BABE2D60B230F4286E5CF6B0DE9C237C25213A147C4E2302590FFBE2ECCFE2A15F5317069A5EAF098D218BADB268DACB05E2866356F94A0F1D473277C832F209367505C8088C3AD2DCBEA6880A90BA24D651A3C3B4B845E285AD427622F666FAE6B031A4FDA6FBEC76714026FB286351BE5DBF55C8DD3F6F105E1AB54478FFB4D1EC54DEA76651776D1CF14E899FF5F7847B23FBF7391CA746F4E07811DB2E77F4D46A2AE3A0003998C908A1CAF6F236D8FEC590F4BE5C170BDB7E4508BA6B385DECE62B3EB050DD62E6ED191272270E5AA5D2BE5
+auth_key = B2C082716DA83CFB3B63671D483EB079F74DBE33917A58E9D8DC8E04B0D30BDAB6321024875EF8E9EC124947A91814469CEE3376C801EBF4E5E49D6AEAC827B08D992641035D7A2E31856D880A770ACFBD2278886DF12EA1F71FEB4C34A8AFC9DEAE2652550ADD221B5E5EB2ABA8E316C45D2875788BE138B71BC3B1FFD8428453E979864B9DCB806041EF6609A6A514C41FCC59F8EE69FD463B477CF39F76F15694F4535C07D67C9DA807ED13426CE2D96B51053864FCBF036A5F017AE5FDE4C8AE9BA8C23E6876EE168E0AE10143B153F093E450A15A1122BBA787A0ACD0F4DF12FC9EB49577C6C3FD5700FA4E136AF529215629B1777E178B4F0399F4862B
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 04 04 A8 90 61 89 66
-0010 | 60 00 00 00 34 F7 CB 3B 8A 74 6C B5 B5 A8 B2 09
-0020 | 60 7A C2 3F 42 38 1C 8D 9E 84 14 64 C6 56 0C E5
-0030 | 91 60 C5 0C 1F F4 76 17 A6 7B B2 FB 91 0E 85 56
-0040 | B3 39 BB 23 79 05 17 E0
+0000 | 00 00 00 00 00 00 00 00 01 8C E5 CF E0 67 89 66
+0010 | B0 00 00 00 34 F7 CB 3B 24 51 93 B7 F5 9B 5B BC
+0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
+0030 | 53 14 82 A7 E3 C2 ED 64 11 D9 18 9A F2 62 02 34
+0040 | 5F 84 29 79 BB A1 8A DA
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
-010404A890618966
+018CE5CFE0678966
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-60000000
(96 in decimal)
+B0000000
(176 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
-8A746CB5B5A8B209607AC23F42381C8D
+245193B7F59B5BBC8CC56CB643182022
Value generated by client in Step 1
server_nonce
40, 16
-9E841464C6560CE59160C50C1FF47617
+1238543A194267BC531482A7E3C2ED64
Value received from server in Step 2
new_nonce_hash1
56, 16
-A67BB2FB910E8556B339BB23790517E0
+11D9189AF26202345F842979BBA18ADA
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/MessageAction.html b/data/web/corefork.telegram.org/type/MessageAction.html
index bb4a2266ea..0a4da90d7b 100644
--- a/data/web/corefork.telegram.org/type/MessageAction.html
+++ b/data/web/corefork.telegram.org/type/MessageAction.html
@@ -273,7 +273,7 @@
messageActionBoostApply
-
+Some boosts » were applied to the channel or supergroup.
messageActionRequestedPeerSentMe
diff --git a/data/web/corefork.telegram.org/type/Update.html b/data/web/corefork.telegram.org/type/Update.html
index bbbd2ff4f1..3d5cfdcfb3 100644
--- a/data/web/corefork.telegram.org/type/Update.html
+++ b/data/web/corefork.telegram.org/type/Update.html
@@ -639,7 +639,7 @@
updateUser
-User information was updated, it must be refetched using users.getFullUser.
+User (user and/or userFull) information was updated, it must be refetched using users.getFullUser.
updateAutoSaveSettings