diff --git a/data/web/corefork.telegram.org/api/layers.html b/data/web/corefork.telegram.org/api/layers.html index d9cd94bc35..0d6aa69e26 100644 --- a/data/web/corefork.telegram.org/api/layers.html +++ b/data/web/corefork.telegram.org/api/layers.html @@ -42,8 +42,652 @@

Layers

-

temp

-
+
+ +

Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.

+

Layer 181

+

Schema changes

+
New Methods
+ +
New Constructors
+ +
Changed Constructors
+ +

Schema

+
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;
+inputMediaInvoice#405fef0d flags:# title:string description:string photo:flags.0?InputWebDocument invoice:Invoice payload:bytes provider:flags.3?string provider_data:DataJSON start_param:flags.1?string extended_media:flags.2?InputMedia = InputMedia;
+messageEntityBlockquote#f1ccaaac flags:# collapsed:flags.0?true offset:int length:int = MessageEntity;
+factCheck#b89bfccf flags:# need_check:flags.0?true country:flags.1?string text:flags.1?TextWithEntities hash:long = FactCheck;
+starsTransactionPeerUnsupported#95f2bfe4 = StarsTransactionPeer; +starsTransactionPeerAppStore#b457b375 = StarsTransactionPeer; +starsTransactionPeerPlayMarket#7b560a0b = StarsTransactionPeer; +starsTransactionPeerPremiumBot#250dbaf8 = StarsTransactionPeer; +starsTransactionPeerFragment#e92fd902 = StarsTransactionPeer; +starsTransactionPeer#d80da15d peer:Peer = StarsTransactionPeer;
+inputStorePaymentStars#4f0ee8df flags:# stars:long currency:string amount:long = InputStorePaymentPurpose;
+starsTopupOption#0bd915c0 flags:# extended:flags.1?true stars:long store_product:flags.0?string currency:string amount:long = StarsTopupOption;
+inputInvoiceStars#1da33ad8 option:StarsTopupOption = InputInvoice;
+starsTransaction#cc7079b2 flags:# refund:flags.3?true id:string stars:long date:int peer:StarsTransactionPeer title:flags.0?string description:flags.1?string photo:flags.2?WebDocument = StarsTransaction;
+payments.starsStatus#8cf4ee60 flags:# balance:long history:Vector<StarsTransaction> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = payments.StarsStatus;
+updateStarsBalance#0fb85198 balance:long = Update;
+payments.paymentFormStars#7bf6b15c flags:# form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice users:Vector<User> = payments.PaymentForm; +payments.paymentReceiptStars#dabbf83a flags:# date:int bot_id:long title:string description:string photo:flags.2?WebDocument invoice:Invoice currency:string total_amount:long transaction_id:string users:Vector<User> = payments.PaymentReceipt;
+---functions---
+messages.editFactCheck#0589ee75 peer:InputPeer msg_id:int text:TextWithEntities = Updates; +messages.deleteFactCheck#d1da940c peer:InputPeer msg_id:int = Updates; +messages.getFactCheck#b9cdc5ee peer:InputPeer msg_id:Vector<int> = Vector<FactCheck>;
+payments.getStarsTopupOptions#c00ec7d3 = Vector<StarsTopupOption>; +payments.getStarsStatus#104fcfa7 peer:InputPeer = payments.StarsStatus; +payments.getStarsTransactions#673ac2f9 flags:# inbound:flags.0?true outbound:flags.1?true peer:InputPeer offset:string = payments.StarsStatus; +payments.sendStarsForm#02bb731d flags:# form_id:long invoice:InputInvoice = payments.PaymentResult; +payments.refundStarsCharge#25ae8f4a user_id:InputUser charge_id:string = Updates;
+

Layer 180

+

Schema changes

+
New Methods
+ +
Changed Methods
+ +
New Constructors
+ +
Changed Constructors
+ +

Schema

+
message#bde09c2e 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 = Message;
+auth.sentCodeTypeFirebaseSms#13c90f17 flags:# nonce:flags.0?bytes play_integrity_nonce:flags.2?bytes receipt:flags.1?string push_timeout:flags.1?int length:int = auth.SentCodeType;
+updateBroadcastRevenueTransactions#dfd961f5 peer:Peer balances:BroadcastRevenueBalances = Update;
+availableEffect#93c3e27e flags:# premium_required:flags.2?true id:long emoticon:string static_icon_id:flags.0?long effect_sticker_id:long effect_animation_id:flags.1?long = AvailableEffect;
+messages.availableEffectsNotModified#d1ed9a5b = messages.AvailableEffects; +messages.availableEffects#bddb616e hash:int effects:Vector<AvailableEffect> documents:Vector<Document> = messages.AvailableEffects;
+---functions---
+messages.sendMessage#983f9745 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = Updates; +messages.sendMedia#7852834e flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = Updates;
+auth.resendCode#cae47523 flags:# phone_number:string phone_code_hash:string reason:flags.0?string = auth.SentCode;
+messages.sendMultiMedia#37b74355 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = Updates;
+auth.requestFirebaseSms#8e39261e flags:# phone_number:string phone_code_hash:string safety_net_token:flags.0?string play_integrity_token:flags.2?string ios_push_secret:flags.1?string = Bool;
+invokeWithGooglePlayIntegrity#1df92984 {X:Type} nonce:string token:string query:!X = X; +invokeWithApnsSecret#0dae54f8 {X:Type} nonce:string secret:string query:!X = X;
+messages.getAvailableEffects#dea20a39 hash:int = messages.AvailableEffects;
+channels.searchPosts#d19f987b hashtag:string offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;
+

Layer 179

+

Schema changes

+
New Methods
+ +
New Constructors
+ +
Changed Constructors
+ +

Schema

+
pollAnswer#ff16e2ca text:TextWithEntities option:bytes = PollAnswer;
+poll#58747131 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:TextWithEntities answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int = Poll;
+stats.broadcastRevenueStats#5407e297 top_hours_graph:StatsGraph revenue_graph:StatsGraph balances:BroadcastRevenueBalances usd_rate:double = stats.BroadcastRevenueStats;
+auth.sentCodeTypeSmsWord#a416ac81 flags:# beginning:flags.0?string = auth.SentCodeType; +auth.sentCodeTypeSmsPhrase#b37794af flags:# beginning:flags.0?string = auth.SentCodeType;
+emojiGroupGreeting#80d26cc7 title:string icon_emoji_id:long emoticons:Vector<string> = EmojiGroup; +emojiGroupPremium#093bcf34 title:string icon_emoji_id:long = EmojiGroup;
+broadcastRevenueBalances#8438f1c6 current_balance:long available_balance:long overall_revenue:long = BroadcastRevenueBalances;
+---functions---
+auth.reportMissingCode#cb9deff6 phone_number:string phone_code_hash:string mnc:string = Bool;
+messages.getEmojiStickerGroups#1dd840f5 hash:int = messages.EmojiGroups;
+

Layer 178

+

Schema changes

+
New Methods
+ +
Changed Methods
+ +
New Constructors
+ +
Changed Constructors
+ +
Deleted Constructors
+ +

Schema

+
chatFull#2633421b flags:# can_set_username:flags.7?true has_scheduled:flags.8?true translations_disabled:flags.19?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> available_reactions:flags.18?ChatReactions reactions_limit:flags.20?int = ChatFull;
+userFull#cc997720 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# sponsored_enabled:flags2.7?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int = UserFull;
+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; +codeSettings#ad253d78 flags:# allow_flashcall:flags.0?true current_number:flags.1?true allow_app_hash:flags.4?true allow_missed_call:flags.5?true allow_firebase:flags.7?true unknown_number:flags.9?true logout_tokens:flags.6?Vector<bytes> token:flags.8?string app_sandbox:flags.8?Bool = CodeSettings;
+sponsoredMessage#bdedf566 flags:# recommended:flags.5?true can_report:flags.12?true random_id:bytes url:string title:string message:string entities:flags.1?Vector<MessageEntity> photo:flags.6?Photo color:flags.13?PeerColor button_text:string sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage; +stories.stories#63c3dd0a flags:# count:int stories:Vector<StoryItem> pinned_to_top:flags.0?Vector<int> chats:Vector<Chat> users:Vector<User> = stories.Stories;
+webPageAttributeStickerSet#50cc03d3 flags:# emojis:flags.0?true text_color:flags.1?true stickers:Vector<Document> = WebPageAttribute;
+reactionNotificationsFromContacts#bac3a61a = ReactionNotificationsFrom; +reactionNotificationsFromAll#4b9e22a0 = ReactionNotificationsFrom; +reactionsNotifySettings#56e34970 flags:# messages_notify_from:flags.0?ReactionNotificationsFrom stories_notify_from:flags.1?ReactionNotificationsFrom sound:NotificationSound show_previews:Bool = ReactionsNotifySettings;
+updateNewStoryReaction#1824e40b story_id:int peer:Peer reaction:Reaction = Update;
+---functions---
+messages.setChatAvailableReactions#5a150bd4 flags:# peer:InputPeer available_reactions:ChatReactions reactions_limit:flags.0?int = Updates;
+channels.getChannelRecommendations#25a71742 flags:# channel:flags.0?InputChannel = messages.Chats;
+account.toggleSponsoredMessages#b9d9a38d enabled:Bool = Bool;
+stories.togglePinnedToTop#0b297e9b peer:InputPeer id:Vector<int> = Bool;
+account.getReactionsNotifySettings#06dd654c = ReactionsNotifySettings; +account.setReactionsNotifySettings#316ce548 settings:ReactionsNotifySettings = ReactionsNotifySettings;
+

Layer 177

+

Schema changes

+
New Methods
+ +
Changed Methods
+ +
New Constructors
+ +
Changed Constructors
+ +
Deleted Constructors
+ +

Schema

+
message#2357bf25 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 = Message;
+peerSettings#acd66c5e flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true invite_members:flags.8?true request_chat_broadcast:flags.10?true business_bot_paused:flags.11?true business_bot_can_reply:flags.12?true geo_distance:flags.6?int request_chat_title:flags.9?string request_chat_date:flags.9?int business_bot_id:flags.13?long business_bot_manage_url:flags.13?string = PeerSettings;
+userFull#cc997720 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int = UserFull;
+stickerSet#2dd14edc flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true emojis:flags.7?true text_color:flags.9?true channel_emoji_status:flags.10?true creator:flags.11?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int thumb_document_id:flags.8?long count:int hash:int = StickerSet;
+channelFull#44c054a7 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 stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper boosts_applied:flags2.8?int boosts_unrestrict:flags2.9?int emojiset:flags2.10?StickerSet = ChatFull;
+phoneCall#30535af5 flags:# p2p_allowed:flags.5?true video:flags.6?true id:long access_hash:long date:int admin_id:long participant_id:long g_a_or_b:bytes key_fingerprint:long protocol:PhoneCallProtocol connections:Vector<PhoneConnection> start_date:int custom_parameters:flags.7?DataJSON = PhoneCall;
+sponsoredMessage#ed5383f7 flags:# recommended:flags.5?true show_peer_photo:flags.6?true can_report:flags.12?true random_id:bytes from_id:flags.3?Peer chat_invite:flags.4?ChatInvite chat_invite_hash:flags.4?string channel_post:flags.2?int start_param:flags.0?string webpage:flags.9?SponsoredWebPage app:flags.10?BotApp message:string entities:flags.1?Vector<MessageEntity> button_text:flags.11?string sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;
+connectedBot#bd068601 flags:# can_reply:flags.0?true bot_id:long recipients:BusinessBotRecipients = ConnectedBot;
+birthday#6c8e1e06 flags:# day:int month:int year:flags.0?int = Birthday;
+updateBotBusinessConnect#8ae5c97a connection:BotBusinessConnection qts:int = Update; +updateBotNewBusinessMessage#9ddb347c flags:# connection_id:string message:Message reply_to_message:flags.0?Message qts:int = Update; +updateBotEditBusinessMessage#07df587c flags:# connection_id:string message:Message reply_to_message:flags.0?Message qts:int = Update; +updateBotDeleteBusinessMessage#a02a982e connection_id:string peer:Peer messages:Vector<int> qts:int = Update;
+botBusinessConnection#896433b4 flags:# can_reply:flags.0?true disabled:flags.1?true connection_id:string user_id:long dc_id:int date:int = BotBusinessConnection;
+inputBusinessIntro#09c469cd flags:# title:string description:string sticker:flags.0?InputDocument = InputBusinessIntro;
+businessIntro#5a0a066d flags:# title:string description:string sticker:flags.0?Document = BusinessIntro;
+messages.myStickers#faff629d count:int sets:Vector<StickerSetCovered> = messages.MyStickers;
+inputCollectibleUsername#e39460a9 username:string = InputCollectible; +inputCollectiblePhone#a2e214a4 phone:string = InputCollectible;
+fragment.collectibleInfo#6ebdff91 purchase_date:int currency:string amount:long crypto_currency:string crypto_amount:long url:string = fragment.CollectibleInfo;
+inputBusinessBotRecipients#c4e5921e flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<InputUser> exclude_users:flags.6?Vector<InputUser> = InputBusinessBotRecipients;
+businessBotRecipients#b88cf373 flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<long> exclude_users:flags.6?Vector<long> = BusinessBotRecipients;
+contactBirthday#1d998733 contact_id:long birthday:Birthday = ContactBirthday; +contacts.contactBirthdays#114ff30d contacts:Vector<ContactBirthday> users:Vector<User> = contacts.ContactBirthdays;
+inputPrivacyKeyBirthday#d65a11cc = InputPrivacyKey;
+privacyKeyBirthday#2000a518 = PrivacyKey;
+inputPrivacyValueAllowPremium#77cdc9f1 = InputPrivacyRule;
+privacyValueAllowPremium#ece9814b = PrivacyRule;
+missingInvitee#628c9224 flags:# premium_would_allow_invite:flags.0?true premium_required_for_pm:flags.1?true user_id:long = MissingInvitee; +messages.invitedUsers#7f5defa6 updates:Updates missing_invitees:Vector<MissingInvitee> = messages.InvitedUsers;
+inputBusinessChatLink#11679fa7 flags:# message:string entities:flags.0?Vector<MessageEntity> title:flags.1?string = InputBusinessChatLink;
+businessChatLink#b4ae666f flags:# link:string message:string entities:flags.0?Vector<MessageEntity> title:flags.1?string views:int = BusinessChatLink;
+account.businessChatLinks#ec43a2d1 links:Vector<BusinessChatLink> chats:Vector<Chat> users:Vector<User> = account.BusinessChatLinks; +account.resolvedBusinessChatLinks#9a23af21 flags:# peer:Peer message:string entities:flags.0?Vector<MessageEntity> chats:Vector<Chat> users:Vector<User> = account.ResolvedBusinessChatLinks;
+requestedPeerUser#d62ff46a flags:# user_id:long first_name:flags.0?string last_name:flags.0?string username:flags.1?string photo:flags.2?Photo = RequestedPeer; +requestedPeerChat#7307544f flags:# chat_id:long title:flags.0?string photo:flags.2?Photo = RequestedPeer; +requestedPeerChannel#8ba403e4 flags:# channel_id:long title:flags.0?string username:flags.1?string photo:flags.2?Photo = RequestedPeer;
+messageActionRequestedPeerSentMe#93b31848 button_id:int peers:Vector<RequestedPeer> = MessageAction;
+inputKeyboardButtonRequestPeer#c9662d05 flags:# name_requested:flags.0?true username_requested:flags.1?true photo_requested:flags.2?true text:string button_id:int peer_type:RequestPeerType max_quantity:int = KeyboardButton;
+sponsoredMessageReportOption#430d3150 text:string option:bytes = SponsoredMessageReportOption;
+channels.sponsoredMessageReportResultChooseOption#846f9e42 title:string options:Vector<SponsoredMessageReportOption> = channels.SponsoredMessageReportResult; +channels.sponsoredMessageReportResultAdsHidden#3e3bcf2f = channels.SponsoredMessageReportResult; +channels.sponsoredMessageReportResultReported#ad798849 = channels.SponsoredMessageReportResult;
+stats.broadcastRevenueStats#d07b4bad top_hours_graph:StatsGraph revenue_graph:StatsGraph current_balance:long available_balance:long overall_revenue:long usd_rate:double = stats.BroadcastRevenueStats; +stats.broadcastRevenueWithdrawalUrl#ec659737 url:string = stats.BroadcastRevenueWithdrawalUrl;
+broadcastRevenueTransactionProceeds#557e2cc4 amount:long from_date:int to_date:int = BroadcastRevenueTransaction; +broadcastRevenueTransactionWithdrawal#5a590978 flags:# pending:flags.0?true failed:flags.2?true amount:long date:int provider:string transaction_date:flags.1?int transaction_url:flags.1?string = BroadcastRevenueTransaction; +broadcastRevenueTransactionRefund#42d30d2e amount:long date:int provider:string = BroadcastRevenueTransaction;
+stats.broadcastRevenueTransactions#87158466 count:int transactions:Vector<BroadcastRevenueTransaction> = stats.BroadcastRevenueTransactions;
+---functions---
+messages.addChatUser#cbc6d107 chat_id:long user_id:InputUser fwd_limit:int = messages.InvitedUsers; +messages.createChat#92ceddd4 flags:# users:Vector<InputUser> title:string ttl_period:flags.0?int = messages.InvitedUsers;
+channels.inviteToChannel#c9e33d54 channel:InputChannel users:Vector<InputUser> = messages.InvitedUsers; +channels.getAdminedPublicChannels#f8b036af flags:# by_location:flags.0?true check_limit:flags.1?true for_personal:flags.2?true = messages.Chats;
+stickers.createStickerSet#9021ab67 flags:# masks:flags.0?true emojis:flags.5?true text_color:flags.6?true user_id:InputUser title:string short_name:string thumb:flags.2?InputDocument stickers:Vector<InputStickerSetItem> software:flags.3?string = messages.StickerSet;
+messages.uploadMedia#14967978 flags:# business_connection_id:flags.0?string peer:InputPeer media:InputMedia = MessageMedia; +messages.sendQuickReplyMessages#6c750de1 peer:InputPeer shortcut_id:int id:Vector<int> random_id:Vector<long> = Updates;
+account.updateConnectedBot#43d8521d flags:# can_reply:flags.0?true deleted:flags.1?true bot:InputUser recipients:InputBusinessBotRecipients = Updates;
+invokeWithBusinessConnection#dd289f8e {X:Type} connection_id:string query:!X = X;
+account.getBotBusinessConnection#76a86270 connection_id:string = Updates; +account.updateBusinessIntro#a614d034 flags:# intro:flags.0?InputBusinessIntro = Bool;
+stickers.replaceSticker#4696459a sticker:InputDocument new_sticker:InputStickerSetItem = messages.StickerSet;
+messages.getMyStickers#d0b5e1fc offset_id:long limit:int = messages.MyStickers;
+fragment.getCollectibleInfo#be1e85ba collectible:InputCollectible = fragment.CollectibleInfo;
+account.toggleConnectedBotPaused#646e1097 peer:InputPeer paused:Bool = Bool; +account.disablePeerConnectedBot#5e437ed9 peer:InputPeer = Bool; +account.updateBirthday#cc6e0c11 flags:# birthday:flags.0?Birthday = Bool;
+contacts.getBirthdays#daeda864 = contacts.ContactBirthdays;
+account.createBusinessChatLink#8851e68e link:InputBusinessChatLink = BusinessChatLink; +account.editBusinessChatLink#8c3410af slug:string link:InputBusinessChatLink = BusinessChatLink; +account.deleteBusinessChatLink#60073674 slug:string = Bool; +account.getBusinessChatLinks#6f70dde1 = account.BusinessChatLinks; +account.resolveBusinessChatLink#5492e5ee slug:string = account.ResolvedBusinessChatLinks; +account.updatePersonalChannel#d94305e0 channel:InputChannel = Bool;
+channels.reportSponsoredMessage#af8ff6b9 channel:InputChannel random_id:bytes option:bytes = channels.SponsoredMessageReportResult;
+stats.getBroadcastRevenueStats#75dfb671 flags:# dark:flags.0?true channel:InputChannel = stats.BroadcastRevenueStats; +stats.getBroadcastRevenueWithdrawalUrl#2a65ef73 channel:InputChannel password:InputCheckPasswordSRP = stats.BroadcastRevenueWithdrawalUrl; +stats.getBroadcastRevenueTransactions#0069280f channel:InputChannel offset:int limit:int = stats.BroadcastRevenueTransactions;
+channels.restrictSponsoredMessages#9ae91519 channel:InputChannel restricted:Bool = Updates;
+

Layer 176

+

Schema changes

+
New Methods
+ +
Changed Methods
+ +
New Constructors
+ +
Changed Constructors
+ +

Schema

+
message#a66c7efc 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 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 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 = Message;
+userFull#22ff3e85 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage = UserFull;
+dialogFilter#5fb5523b flags:# contacts:flags.0?true non_contacts:flags.1?true groups:flags.2?true broadcasts:flags.3?true bots:flags.4?true exclude_muted:flags.11?true exclude_read:flags.12?true exclude_archived:flags.13?true id:int title:string emoticon:flags.25?string color:flags.27?int pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> exclude_peers:Vector<InputPeer> = DialogFilter; +dialogFilterChatlist#9fe28ea4 flags:# has_my_invites:flags.26?true id:int title:string emoticon:flags.25?string color:flags.27?int pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> = DialogFilter;
+smsjobs.eligibleToJoin#dc8b44cf terms_url:string monthly_sent_sms:int = smsjobs.EligibilityToJoin; +smsjobs.status#2aee9191 flags:# allow_international:flags.0?true recent_sent:int recent_since:int recent_remains:int total_sent:int total_since:int last_gift_slug:flags.1?string terms_url:string = smsjobs.Status;
+updateSmsJob#f16269d4 job_id:string = Update;
+smsJob#e6a1eeb8 job_id:string phone_number:string text:string = SmsJob;
+businessWeeklyOpen#120b1ab9 start_minute:int end_minute:int = BusinessWeeklyOpen; +businessWorkHours#8c92b098 flags:# open_now:flags.0?true timezone_id:string weekly_open:Vector<BusinessWeeklyOpen> = BusinessWorkHours; +businessLocation#ac5c1af7 flags:# geo_point:flags.0?GeoPoint address:string = BusinessLocation;
+inputBusinessRecipients#6f8b32aa flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<InputUser> = InputBusinessRecipients;
+businessRecipients#21108ff7 flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<long> = BusinessRecipients; +businessAwayMessageScheduleAlways#c9b9e2b9 = BusinessAwayMessageSchedule; +businessAwayMessageScheduleOutsideWorkHours#c3f2f501 = BusinessAwayMessageSchedule; +businessAwayMessageScheduleCustom#cc4d9ecc start_date:int end_date:int = BusinessAwayMessageSchedule;
+inputBusinessGreetingMessage#0194cb3b shortcut_id:int recipients:InputBusinessRecipients no_activity_days:int = InputBusinessGreetingMessage;
+businessGreetingMessage#e519abab shortcut_id:int recipients:BusinessRecipients no_activity_days:int = BusinessGreetingMessage;
+inputBusinessAwayMessage#832175e0 flags:# offline_only:flags.0?true shortcut_id:int schedule:BusinessAwayMessageSchedule recipients:InputBusinessRecipients = InputBusinessAwayMessage;
+businessAwayMessage#ef156a5c flags:# offline_only:flags.0?true shortcut_id:int schedule:BusinessAwayMessageSchedule recipients:BusinessRecipients = BusinessAwayMessage;
+timezone#ff9289f5 id:string name:string utc_offset:int = Timezone;
+help.timezonesListNotModified#970708cc = help.TimezonesList; +help.timezonesList#7b74ed71 timezones:Vector<Timezone> hash:int = help.TimezonesList;
+quickReply#0697102b shortcut_id:int shortcut:string top_message:int count:int = QuickReply;
+inputQuickReplyShortcut#24596d41 shortcut:string = InputQuickReplyShortcut; +inputQuickReplyShortcutId#01190cf1 shortcut_id:int = InputQuickReplyShortcut;
+messages.quickReplies#c68d6695 quick_replies:Vector<QuickReply> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.QuickReplies; +messages.quickRepliesNotModified#5f91eb5b = messages.QuickReplies;
+updateQuickReplies#f9470ab2 quick_replies:Vector<QuickReply> = Update; +updateNewQuickReply#f53da717 quick_reply:QuickReply = Update; +updateDeleteQuickReply#53e6f1ec shortcut_id:int = Update; +updateQuickReplyMessage#3e050d0f message:Message = Update; +updateDeleteQuickReplyMessages#566fe7cd shortcut_id:int messages:Vector<int> = Update;
+connectedBot#e7e999e7 flags:# can_reply:flags.0?true bot_id:long recipients:BusinessRecipients = ConnectedBot;
+account.connectedBots#17d7f87b connected_bots:Vector<ConnectedBot> users:Vector<User> = account.ConnectedBots;
+messages.dialogFilters#2ad93719 flags:# tags_enabled:flags.0?true filters:Vector<DialogFilter> = messages.DialogFilters;
+---functions---
+messages.sendMessage#dff8042c flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates; +messages.sendMedia#7bd66041 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates; +messages.forwardMessages#d5039208 flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true drop_media_captions:flags.12?true noforwards:flags.14?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer top_msg_id:flags.9?int schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates; +messages.sendInlineBotResult#3ebee86a flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true hide_via:flags.11?true peer:InputPeer reply_to:flags.0?InputReplyTo random_id:long query_id:long id:string schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates; +messages.editMessage#dfd14005 flags:# no_webpage:flags.1?true invert_media:flags.16?true peer:InputPeer id:int message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.15?int quick_reply_shortcut_id:flags.17?int = Updates; +messages.sendMultiMedia#0c964709 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates; +messages.getDialogFilters#efd48c89 = messages.DialogFilters;
+smsjobs.isEligibleToJoin#0edc39d0 = smsjobs.EligibilityToJoin; +smsjobs.join#a74ece2d = Bool; +smsjobs.leave#9898ad73 = Bool; +smsjobs.updateSettings#093fa0bf flags:# allow_international:flags.0?true = Bool; +smsjobs.getStatus#10a698e8 = smsjobs.Status; +smsjobs.getSmsJob#778d902f job_id:string = SmsJob; +smsjobs.finishJob#4f1ebf24 flags:# job_id:string error:flags.0?string = Bool;
+help.getTimezonesList#49b30240 hash:int = help.TimezonesList;
+account.updateBusinessWorkHours#4b00e066 flags:# business_work_hours:flags.0?BusinessWorkHours = Bool; +account.updateBusinessLocation#9e6b131a flags:# geo_point:flags.1?InputGeoPoint address:flags.0?string = Bool; +account.updateBusinessGreetingMessage#66cdafc4 flags:# message:flags.0?InputBusinessGreetingMessage = Bool; +account.updateBusinessAwayMessage#a26a7fa5 flags:# message:flags.0?InputBusinessAwayMessage = Bool;
+messages.getQuickReplies#d483f2a8 hash:long = messages.QuickReplies; +messages.reorderQuickReplies#60331907 order:Vector<int> = Bool; +messages.checkQuickReplyShortcut#f1d0fbd3 shortcut:string = Bool; +messages.editQuickReplyShortcut#5c003cef shortcut_id:int shortcut:string = Bool; +messages.deleteQuickReplyShortcut#3cc04740 shortcut_id:int = Bool; +messages.getQuickReplyMessages#94a495c3 flags:# shortcut_id:int id:flags.0?Vector<int> hash:long = messages.Messages; +messages.sendQuickReplyMessages#33153ad4 peer:InputPeer shortcut_id:int = Updates; +messages.deleteQuickReplyMessages#e105e910 shortcut_id:int id:Vector<int> = Updates;
+account.updateConnectedBot#9c2d527d flags:# can_reply:flags.0?true deleted:flags.1?true bot:InputUser recipients:InputBusinessRecipients = Updates; +account.getConnectedBots#4ea4c80f = account.ConnectedBots;
+messages.toggleDialogFilterTags#fd2dda49 enabled:Bool = Bool;
+

Layer 174

+

Schema changes

+
New Methods
+ +
Changed Methods
+ +
New Constructors
+ +
Changed Constructors
+ +

Schema

+
message#1e4c8a69 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 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 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 = Message;
+userFull#b9b12c6c flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?PeerStories = UserFull; +userStatusRecently#7b197dc8 flags:# by_me:flags.0?true = UserStatus; +userStatusLastWeek#541a1d1a flags:# by_me:flags.0?true = UserStatus; +userStatusLastMonth#65899777 flags:# by_me:flags.0?true = UserStatus; +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;
+channelFull#44c054a7 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 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 stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper boosts_applied:flags2.8?int boosts_unrestrict:flags2.9?int emojiset:flags2.10?StickerSet = ChatFull;
+globalPrivacySettings#734c4ccb flags:# archive_and_mute_new_noncontact_peers:flags.0?true keep_archived_unmuted:flags.1?true keep_archived_folders:flags.2?true hide_read_marks:flags.3?true new_noncontact_peers_require_premium:flags.4?true = GlobalPrivacySettings;
+storyItem#79b26a24 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int from_id:flags.18?Peer fwd_from:flags.17?StoryFwdHeader expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction = StoryItem;
+inputReplyToStory#5881323a peer:InputPeer story_id:int = InputReplyTo;
+messageReplyStoryHeader#0e5af939 peer:Peer story_id:int = MessageReplyHeader;
+help.peerColorOption#adec6ebe flags:# hidden:flags.0?true color_id:int colors:flags.1?help.PeerColorSet dark_colors:flags.2?help.PeerColorSet channel_min_level:flags.3?int group_min_level:flags.4?int = help.PeerColorOption;
+outboxReadDate#3bb842ac date:int = OutboxReadDate;
+messageActionBoostApply#cc02aa6d boosts:int = MessageAction;
+channelAdminLogEventActionChangeEmojiStickerSet#46d840ab prev_stickerset:InputStickerSet new_stickerset:InputStickerSet = ChannelAdminLogEventAction;
+---functions---
+auth.signUp#aac7b717 flags:# no_joined_notifications:flags.0?true phone_number:string phone_code_hash:string first_name:string last_name:string = auth.Authorization;
+messages.getSavedReactionTags#3637e05b flags:# peer:flags.0?InputPeer hash:long = messages.SavedReactionTags; +messages.getOutboxReadDate#8c4bfe5d peer:InputPeer msg_id:int = OutboxReadDate;
+users.getIsPremiumRequiredToContact#a622aa10 id:Vector<InputUser> = Vector<Bool>;
+channels.setBoostsToUnblockRestrictions#ad399cee channel:InputChannel boosts:int = Updates; +channels.setEmojiStickers#3cd930b7 channel:InputChannel stickerset:InputStickerSet = Bool;
+

Layer 171

+

Schema changes

+
New Methods
+ +
Changed Methods
+ +
New Constructors
+ +
Changed Constructors
+ +

Schema

+
messageReactions#4f2b9479 flags:# min:flags.0?true can_see_list:flags.2?true reactions_as_tags:flags.3?true results:Vector<ReactionCount> recent_reactions:flags.1?Vector<MessagePeerReaction> = MessageReactions;
+savedReactionTag#cb6ff828 flags:# reaction:Reaction title:flags.0?string count:int = SavedReactionTag;
+messages.savedReactionTagsNotModified#889b59ef = messages.SavedReactionTags; +messages.savedReactionTags#3259950a tags:Vector<SavedReactionTag> hash:long = messages.SavedReactionTags;
+updateSavedReactionTags#39c67432 = Update;
+---functions---
+messages.search#29ee847a flags:# peer:InputPeer q:string from_id:flags.0?InputPeer saved_peer_id:flags.2?InputPeer saved_reaction:flags.3?Vector<Reaction> top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages; +messages.searchGlobal#4bc6589a flags:# broadcasts_only:flags.1?true folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages; +messages.getSavedReactionTags#761ddacf hash:long = messages.SavedReactionTags; +messages.updateSavedReactionTag#60297dec flags:# reaction:Reaction title:flags.0?string = Bool; +messages.getDefaultTagReactions#bdf93428 hash:long = messages.Reactions;
+

Layer 170

+

The following detailed articles were added:

+ +

Also added documentation for streamed uploads and improved the docs for method queue, quick ACKs and content-related messages.

+

The RPC error database » was also updated.

+

The following new deep links were added:

+ +

This layer introduces the saved messages dialog list and several other saved messages improvements »!

@@ -110,8 +754,11 @@ - - + + + 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 fd4e30e658..20b5682373 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 90 4B 0D 00 A6 8A 6D 66
-0010 | 14 00 00 00 F1 8E 7E BE 20 FD E6 08 42 30 CC 5C
-0020 | 8D CC F8 96 31 94 64 97
+
0000 | 00 00 00 00 00 00 00 00 E0 FC 06 00 FC 8E 6D 66
+0010 | 14 00 00 00 F1 8E 7E BE A0 7A 5A EC 88 BE AB B1
+0020 | 21 CA 05 C7 95 47 49 57

Payload (de)serialization:

req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -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 98 3E 25 A6 8A 6D 66
-0010 | 78 00 00 00 63 24 16 05 20 FD E6 08 42 30 CC 5C
-0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
-0030 | EA CD BD 8F 12 81 EC 50 08 24 4A BF 37 7B D7 6F
-0040 | B7 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 08 E3 84 FC 8E 6D 66
+0010 | 50 00 00 00 63 24 16 05 A0 7A 5A EC 88 BE AB B1
+0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
+0030 | 65 3F 46 E0 25 8F D3 07 08 25 E5 22 AD FB B3 44
+0040 | 29 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 @@
- + - + @@ -150,19 +150,19 @@ - + - + - + @@ -208,22 +208,22 @@

Proof of work

3) Client decomposes pq into prime factors such that p < q.
-
pq = 2615112778663817143
-

Decompose into 2 prime cofactors p < q: 2615112778663817143 = 1398490957 * 1869953299

-
p = 1398490957
-q = 1869953299
+
pq = 2730626879717590057
+

Decompose into 2 prime cofactors p < q: 2730626879717590057 = 1558228979 * 1752391283

+
p = 1558228979
+q = 1752391283

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 24 4A BF 37 7B D7 6F B7 00 00 00
-0010 | 04 53 5B 47 4D 00 00 00 04 6F 75 39 13 00 00 00
-0020 | 20 FD E6 08 42 30 CC 5C 8D CC F8 96 31 94 64 97
-0030 | 93 28 4F B9 DD C4 95 D2 EA CD BD 8F 12 81 EC 50
-0040 | 01 DA CD 54 1E 00 A2 2D 9D B3 14 2E AE 22 3F 26
-0050 | B5 E5 B3 97 2A 6F 33 D7 28 90 49 FB C0 6F 6F 88
+
0000 | 95 5F F5 A9 08 25 E5 22 AD FB B3 44 29 00 00 00
+0010 | 04 5C E0 AF F3 00 00 00 04 68 73 5E 73 00 00 00
+0020 | A0 7A 5A EC 88 BE AB B1 21 CA 05 C7 95 47 49 57
+0030 | 9D EF AA 9F 2F 39 95 32 65 3F 46 E0 25 8F D3 07
+0040 | 2F 45 8E 33 3D AB 1C 14 CD 4E 7D 8D EE D2 CD 2C
+0050 | 2F B1 86 FD EC D2 DF 01 03 51 5E 79 68 F4 71 DE
 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 = 1869953299
- + - + - + - + - + - + @@ -291,39 +291,39 @@ q = 1869953299

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 = 955FF5A908244ABF377BD76FB700000004535B474D000000046F75391300000020FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5001DACD541E00A22D9DB3142EAE223F26B5E5B3972A6F33D7289049FBC06F6F8802000000
-random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A529C6E2399941070B8CDBF89106E386CC21B7E3B4BD2F4769E8C1D565FF3EE5E0BA82BCA3E765FDB28938F19B128A1752A335F0A7A54208274685C1B448BE9A
+
data = 955FF5A90825E522ADFBB34429000000045CE0AFF30000000468735E73000000A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD3072F458E333DAB1C14CD4E7D8DEED2CD2C2FB186FDECD2DF0103515E7968F471DE02000000
+random_padding_bytes = 69F4155729696E10344C0DC594D4CCF42BCCA7D9D2986865BB59055B8153EA4923521F63BFC18C699480308450D750790BB80E9C26CE18AB51356A863381F839DE6D1245686099425B593E508F00DEE92A5EDFCFD7A6CBA63C83D5F1

And this is the output:

-
encrypted_data = 52C399C4765B45332A99BFE685994E189789F5F7C01242B1CD8AE7D5279DBFBD3705D11EFB0E983FBB66C4CBA6AA3B18622D1638BD6AF10AA7609D89B879E483E2231E6EB8922A58A26C8AFB787B3A7FF64C45EFFE0C1A3902DFA9846F9E71EEC42D39002524B899C01AD2EFBBAE95483E868901164D60AD5EC3FD33643CD5CD41929CC28C4849399FC9CE55CFBBF9C6D1AA9DF1D942F7B3152EE236FE3B66AEAC8A0BF7AE03B84B7E2D5DE50F2B2958C7344189EB9F8752A4839FFA50823AA116CD4D1B6F2FB2DE35A3F505FA09990614FB0D6E1CC9326436423E5FE85741679782AD8C8248CE92AC4ED5BFF9D525A3C58099534BC1CD71C78D4EF9C83A3AB9
+
encrypted_data = D6D1FBBE8A517DA3887E06C3F9AB1080A545E9426501E9610AA75C004FA5270E4ECF4ACB2C7089A986BA38DDD91419FD42F3E34583693569FB885ACB7904BBECBE2217FEE22C807661773ADF9DF9A30877CCB0E88A79BABF3C8CF27372668D40DE47E2B5D63B9A12C35E9CA71BC6183866527A23CC6465EDB638F9528D0E672914EF3BED810B96CB202E5C8C074503F84D7FB616A0B52F793AD56D9AEA65179F3F18A6AE10A79925D95B68664525681172E721FB514C920C25AF9EB9E513BB9C16C2E1BCAF5AAE8CFC75649B44E8E0214F31C252BB6D5344B972CE39CB1B55F02D011AB29B1735915C861AB70A7FD3B853574A0F4106D6954D7E221282AF19AD

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 94 4B 0D 00 A6 8A 6D 66
-0010 | 40 01 00 00 BE E4 12 D7 20 FD E6 08 42 30 CC 5C
-0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
-0030 | EA CD BD 8F 12 81 EC 50 04 53 5B 47 4D 00 00 00
-0040 | 04 6F 75 39 13 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 52 C3 99 C4 76 5B 45 33 2A 99 BF E6
-0060 | 85 99 4E 18 97 89 F5 F7 C0 12 42 B1 CD 8A E7 D5
-0070 | 27 9D BF BD 37 05 D1 1E FB 0E 98 3F BB 66 C4 CB
-0080 | A6 AA 3B 18 62 2D 16 38 BD 6A F1 0A A7 60 9D 89
-0090 | B8 79 E4 83 E2 23 1E 6E B8 92 2A 58 A2 6C 8A FB
-00A0 | 78 7B 3A 7F F6 4C 45 EF FE 0C 1A 39 02 DF A9 84
-00B0 | 6F 9E 71 EE C4 2D 39 00 25 24 B8 99 C0 1A D2 EF
-00C0 | BB AE 95 48 3E 86 89 01 16 4D 60 AD 5E C3 FD 33
-00D0 | 64 3C D5 CD 41 92 9C C2 8C 48 49 39 9F C9 CE 55
-00E0 | CF BB F9 C6 D1 AA 9D F1 D9 42 F7 B3 15 2E E2 36
-00F0 | FE 3B 66 AE AC 8A 0B F7 AE 03 B8 4B 7E 2D 5D E5
-0100 | 0F 2B 29 58 C7 34 41 89 EB 9F 87 52 A4 83 9F FA
-0110 | 50 82 3A A1 16 CD 4D 1B 6F 2F B2 DE 35 A3 F5 05
-0120 | FA 09 99 06 14 FB 0D 6E 1C C9 32 64 36 42 3E 5F
-0130 | E8 57 41 67 97 82 AD 8C 82 48 CE 92 AC 4E D5 BF
-0140 | F9 D5 25 A3 C5 80 99 53 4B C1 CD 71 C7 8D 4E F9
-0150 | C8 3A 3A B9
+
0000 | 00 00 00 00 00 00 00 00 E4 FC 06 00 FC 8E 6D 66
+0010 | 40 01 00 00 BE E4 12 D7 A0 7A 5A EC 88 BE AB B1
+0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
+0030 | 65 3F 46 E0 25 8F D3 07 04 5C E0 AF F3 00 00 00
+0040 | 04 68 73 5E 73 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 D6 D1 FB BE 8A 51 7D A3 88 7E 06 C3
+0060 | F9 AB 10 80 A5 45 E9 42 65 01 E9 61 0A A7 5C 00
+0070 | 4F A5 27 0E 4E CF 4A CB 2C 70 89 A9 86 BA 38 DD
+0080 | D9 14 19 FD 42 F3 E3 45 83 69 35 69 FB 88 5A CB
+0090 | 79 04 BB EC BE 22 17 FE E2 2C 80 76 61 77 3A DF
+00A0 | 9D F9 A3 08 77 CC B0 E8 8A 79 BA BF 3C 8C F2 73
+00B0 | 72 66 8D 40 DE 47 E2 B5 D6 3B 9A 12 C3 5E 9C A7
+00C0 | 1B C6 18 38 66 52 7A 23 CC 64 65 ED B6 38 F9 52
+00D0 | 8D 0E 67 29 14 EF 3B ED 81 0B 96 CB 20 2E 5C 8C
+00E0 | 07 45 03 F8 4D 7F B6 16 A0 B5 2F 79 3A D5 6D 9A
+00F0 | EA 65 17 9F 3F 18 A6 AE 10 A7 99 25 D9 5B 68 66
+0100 | 45 25 68 11 72 E7 21 FB 51 4C 92 0C 25 AF 9E B9
+0110 | E5 13 BB 9C 16 C2 E1 BC AF 5A AE 8C FC 75 64 9B
+0120 | 44 E8 E0 21 4F 31 C2 52 BB 6D 53 44 B9 72 CE 39
+0130 | CB 1B 55 F0 2D 01 1A B2 9B 17 35 91 5C 86 1A B7
+0140 | 0A 7F D3 B8 53 57 4A 0F 41 06 D6 95 4D 7E 22 12
+0150 | 82 AF 19 AD

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;
message_id 8, 8904B0D00A68A6D66E0FC0600FC8E6D66 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Random number
message_id 8, 801983E25A68A6D660108E384FC8E6D66 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 478000000 (120 in decimal)50000000 (80 in decimal) Message body length
nonce 24, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 40, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Server-generated random number
pq 56, 1208244ABF377BD76FB7000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2615112778663817143
0825E522ADFBB34429000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2730626879717590057
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
pq 4, 1208244ABF377BD76FB7000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2615112778663817143
0825E522ADFBB34429000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2730626879717590057
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p 16, 804535B474D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1398490957
045CE0AFF3000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1558228979
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 24, 8046F753913000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1869953299
0468735E73000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1752391283
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce 32, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 48, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Value received from server in Step 2
new_nonce 64, 3201DACD541E00A22D9DB3142EAE223F26 B5E5B3972A6F33D7289049FBC06F6F882F458E333DAB1C14CD4E7D8DEED2CD2C 2FB186FDECD2DF0103515E7968F471DE Client-generated random number
@@ -345,7 +345,7 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A - + @@ -363,25 +363,25 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A - + - + - + - + @@ -393,7 +393,7 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A - + @@ -402,47 +402,47 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A
6) Server responds with:

Received payload (excluding transport headers/trailers):

-
0000 | 00 00 00 00 00 00 00 00 01 98 81 E0 A6 8A 6D 66
-0010 | C4 02 00 00 5C 07 E8 D0 20 FD E6 08 42 30 CC 5C
-0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
-0030 | EA CD BD 8F 12 81 EC 50 FE 50 02 00 C2 F0 09 F2
-0040 | 34 3E F7 E5 17 DA 94 B2 3D D1 2C 3C 0B 25 A1 DA
-0050 | BE 97 2E 96 21 E2 8B D6 2D F7 46 0E 1E 3C DB 02
-0060 | A2 76 64 86 DC 9F B6 CD 01 D5 64 49 AA 85 5E A1
-0070 | EC 8D AB 9F A7 47 83 2E CA 34 25 D9 EC FC 7E DE
-0080 | FA 9E 17 AC 8F D9 A2 8E CD 18 DB 92 C4 42 A7 4A
-0090 | 2A 8F E5 2F F3 88 E5 77 37 08 6F E3 24 77 3E 73
-00A0 | E6 A5 B3 60 2D BB A1 C6 89 54 29 96 C2 72 DF F3
-00B0 | E5 70 48 C6 46 49 2E 82 F7 54 6A F8 CE 7C 71 42
-00C0 | 19 C2 33 35 55 93 F3 50 3C E7 E2 8D 13 D1 87 FE
-00D0 | 0C E0 7D 90 B2 E9 00 B2 D0 16 45 46 A2 99 B6 1A
-00E0 | F4 37 91 1F 1E 3A 68 92 45 F1 77 47 71 08 81 D8
-00F0 | 7A D5 FB 2E 9F F8 52 DE 02 7B 8D 3B A6 3E 4D 3B
-0100 | 16 7B B3 3C DD 88 56 3C 20 DF 47 39 47 0F 5F 14
-0110 | 9F 7C 5B FD 6E CE 07 B7 59 C7 D3 07 B8 56 7F A5
-0120 | 50 7D 6C 32 6B 0D 82 A8 90 E3 4B 30 9B B4 34 55
-0130 | 2A A5 E6 78 50 83 98 C1 B0 0C C6 53 AB 4C 04 BE
-0140 | 80 63 77 E1 F6 58 19 10 5B D0 6B D2 71 03 07 82
-0150 | 52 A9 1B 10 63 B4 A2 9B 01 15 81 47 E5 44 A9 C7
-0160 | C2 38 27 75 A1 99 AE F1 75 CF 05 6B 57 7E 21 59
-0170 | F0 A7 5D 0A 2B 12 14 CB 94 2B 67 BD 82 EE DA 8C
-0180 | 64 C1 6C 08 0E 49 C5 39 88 B4 7A F6 95 CB 94 51
-0190 | 94 72 E3 72 D7 B9 30 71 67 C2 F2 A7 F8 3D F5 32
-01A0 | 01 9D BD 55 AB A4 AB 09 21 A2 D4 45 A1 32 77 E4
-01B0 | C9 76 37 C2 21 87 DA E7 51 DB 74 AF CF 59 78 C2
-01C0 | C8 64 D3 0F 2B 6F 09 C5 5C 6A A0 CF 5F 53 8C F6
-01D0 | 71 C3 A8 18 5A 26 EE BA B9 DC D2 73 32 39 A4 0C
-01E0 | 30 D2 28 F9 4F 97 11 8A 67 1C 09 1D 05 F8 CB 81
-01F0 | 78 9D 8B 0C 79 AF 38 E9 2E 89 72 97 64 74 89 14
-0200 | 74 54 87 AC 8E 2A 7B 0C CE 91 7F 12 F9 BD 2A F4
-0210 | F4 C3 84 92 2A 16 1E 8A 01 AD 18 10 AC 96 F9 9D
-0220 | 20 17 3E 30 6C AC 4D F2 49 B1 43 6F 4F F6 54 E5
-0230 | 02 E1 24 88 51 28 AE EE 23 63 9F D6 BD CA BD A8
-0240 | C2 4E F4 61 72 FE 56 38 32 AA B0 F9 BF F0 D2 B6
-0250 | DA 29 25 98 0D 22 FD A4 8F 4C FC BA 77 A1 E0 4E
-0260 | E5 0D CE DB 4D 8B 5C 0C 1A 3F A7 43 AA 22 89 02
-0270 | A6 C4 ED 47 24 F6 92 72 F9 A1 91 ED BF D1 CF E9
-0280 | 17 77 83 23 59 D6 94 CB DB 90 74 7F
+
0000 | 00 00 00 00 00 00 00 00 01 B0 27 29 FD 8E 6D 66
+0010 | 9C 02 00 00 5C 07 E8 D0 A0 7A 5A EC 88 BE AB B1
+0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
+0030 | 65 3F 46 E0 25 8F D3 07 FE 50 02 00 AA 13 E4 A4
+0040 | F4 81 E8 04 DA F0 18 5A 90 C9 2B F2 0F 4A E4 7A
+0050 | 19 CA B4 8F 84 9F AD F6 32 7F 74 AB 2D B5 AC 6D
+0060 | 42 7B 0E 52 04 D0 7B 94 9E 97 C8 D9 2E 87 63 8A
+0070 | 32 B3 89 1E 5C 99 FA 1E F1 13 96 45 5F FB 9A 43
+0080 | 44 88 7F 46 20 12 24 49 FE DD 54 4A 37 BE F6 33
+0090 | F1 AC 24 8E BA 11 53 BE 74 29 D1 17 EA 4E 75 30
+00A0 | 6D BE 5B 3A A9 34 89 57 9B 9B 38 D1 55 36 32 77
+00B0 | B9 25 F3 BB E4 F7 1B 48 75 46 8A DA 56 9F 08 7E
+00C0 | 9C F1 94 03 D8 29 8A 32 1C 80 BE D8 80 F6 F0 0E
+00D0 | 3E 6E C2 BA A6 22 03 41 49 DF 75 70 0E 9D 64 B1
+00E0 | F1 B3 5E 55 E7 DE 8E 86 EB 27 A4 7E AF 0C B0 D8
+00F0 | 4D 16 35 CB 83 77 76 A9 6F D6 08 C4 20 6F E3 FB
+0100 | 0C 8D 2F 57 05 7A 31 D3 5B C2 F8 13 36 74 F4 37
+0110 | 52 3B 46 D9 8D 1C 31 92 C6 76 EE 3E CA 5F AA 67
+0120 | 5F 64 74 73 07 E0 31 71 1F 3C 90 49 89 72 B9 54
+0130 | 84 9D 1D AE 50 6C 3E B1 27 F4 CC 1D CD E3 F8 DA
+0140 | 56 5B 9B C5 83 25 35 B2 2C 86 9D F8 5A 1A B6 01
+0150 | E5 67 A4 96 91 96 51 41 C4 D2 09 A4 C0 9E AE DC
+0160 | A3 ED CC 9B 9E 14 20 FC B1 F6 BE 14 FB 92 42 E6
+0170 | BD AA 52 D9 21 19 8B 8B EA 42 20 EE 1B 42 9C 30
+0180 | 38 48 DE 6A 66 19 B6 FC 1A 13 C6 A2 EA 37 83 33
+0190 | C0 56 D7 F9 0C 0F BD 83 38 6F C5 DB AB E6 64 6D
+01A0 | 95 B0 42 71 58 42 84 88 8D A7 4C 55 8D B5 B0 C7
+01B0 | CB 59 E8 4F 5E 60 E2 90 C6 D8 09 0A 0E 94 E6 F0
+01C0 | F9 7A FD 88 DB 60 FA C8 35 DE 55 2D A4 6B 11 62
+01D0 | CB 32 2A 09 A1 B5 39 B5 22 F6 B7 F5 71 E3 31 56
+01E0 | 16 25 4B DD 27 F4 E6 92 97 99 9D 97 87 3D 81 7A
+01F0 | DC 95 88 B7 BB 2E 5D F2 E6 95 F2 4A BE 6E 68 FE
+0200 | F2 C3 88 C9 15 33 C2 DB BF 23 DC F7 B4 32 CA C8
+0210 | 39 4F 45 9D 1D 86 74 99 3A 5B 6F AD 2D 01 8F D3
+0220 | EA C1 BA 99 D7 F1 B0 E5 02 27 B8 DD EB A1 FD B6
+0230 | 9E 7D F0 1A 4E 69 92 7B 95 A4 D4 75 13 E8 C6 F1
+0240 | 58 93 A0 6D A5 38 CA 42 A0 7C 15 EB 86 7A 97 6F
+0250 | 48 6A 73 57 23 BF 01 D2 68 BF AF D1 00 09 B9 00
+0260 | C3 B1 16 52 32 7F 69 E3 EF 33 C7 AE E1 8D EA 27
+0270 | 26 14 A7 9F 11 A1 4A C6 B1 3B 03 F1 E7 A4 44 16
+0280 | D0 AE C7 D2 75 A6 F6 EA 23 06 6C EC

Payload (de)serialization:

server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
message_id 8, 8944B0D00A68A6D66E4FC0600FC8E6D66 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 40, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Value received from server in Step 2
p 56, 804535B474D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1398490957
045CE0AFF3000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1558228979
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 64, 8046F753913000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1869953299
0468735E73000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1752391283
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
encrypted_data 80, 260FE00010052C399C4765B45332A99BFE6 85994E189789F5F7C01242B1CD8AE7D5 279DBFBD3705D11EFB0E983FBB66C4CB A6AA3B18622D1638BD6AF10AA7609D89 B879E483E2231E6EB8922A58A26C8AFB 787B3A7FF64C45EFFE0C1A3902DFA984 6F9E71EEC42D39002524B899C01AD2EF BBAE95483E868901164D60AD5EC3FD33 643CD5CD41929CC28C4849399FC9CE55 CFBBF9C6D1AA9DF1D942F7B3152EE236 FE3B66AEAC8A0BF7AE03B84B7E2D5DE5 0F2B2958C7344189EB9F8752A4839FFA 50823AA116CD4D1B6F2FB2DE35A3F505 FA09990614FB0D6E1CC9326436423E5F E85741679782AD8C8248CE92AC4ED5BF F9D525A3C58099534BC1CD71C78D4EF9
C83A3AB9
FE000100D6D1FBBE8A517DA3887E06C3 F9AB1080A545E9426501E9610AA75C00 4FA5270E4ECF4ACB2C7089A986BA38DD D91419FD42F3E34583693569FB885ACB 7904BBECBE2217FEE22C807661773ADF 9DF9A30877CCB0E88A79BABF3C8CF273 72668D40DE47E2B5D63B9A12C35E9CA7 1BC6183866527A23CC6465EDB638F952 8D0E672914EF3BED810B96CB202E5C8C 074503F84D7FB616A0B52F793AD56D9A EA65179F3F18A6AE10A79925D95B6866 4525681172E721FB514C920C25AF9EB9 E513BB9C16C2E1BCAF5AAE8CFC75649B 44E8E0214F31C252BB6D5344B972CE39 CB1B55F02D011AB29B1735915C861AB7 0A7FD3B853574A0F4106D6954D7E2212
82AF19AD
Value generated above
@@ -464,13 +464,13 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A - + - + @@ -482,19 +482,19 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A - + - + - + @@ -502,20 +502,20 @@ random_padding_bytes = 87C5B101B966A5B388D8655526C71CE63DE32D6763F768ACDA886064A

Decrypt encrypted_answer using the reverse of the process specified in step 6:

-
encrypted_answer = C2F009F2343EF7E517DA94B23DD12C3C0B25A1DABE972E9621E28BD62DF7460E1E3CDB02A2766486DC9FB6CD01D56449AA855EA1EC8DAB9FA747832ECA3425D9ECFC7EDEFA9E17AC8FD9A28ECD18DB92C442A74A2A8FE52FF388E57737086FE324773E73E6A5B3602DBBA1C689542996C272DFF3E57048C646492E82F7546AF8CE7C714219C233355593F3503CE7E28D13D187FE0CE07D90B2E900B2D0164546A299B61AF437911F1E3A689245F17747710881D87AD5FB2E9FF852DE027B8D3BA63E4D3B167BB33CDD88563C20DF4739470F5F149F7C5BFD6ECE07B759C7D307B8567FA5507D6C326B0D82A890E34B309BB434552AA5E678508398C1B00CC653AB4C04BE806377E1F65819105BD06BD27103078252A91B1063B4A29B01158147E544A9C7C2382775A199AEF175CF056B577E2159F0A75D0A2B1214CB942B67BD82EEDA8C64C16C080E49C53988B47AF695CB94519472E372D7B9307167C2F2A7F83DF532019DBD55ABA4AB0921A2D445A13277E4C97637C22187DAE751DB74AFCF5978C2C864D30F2B6F09C55C6AA0CF5F538CF671C3A8185A26EEBAB9DCD2733239A40C30D228F94F97118A671C091D05F8CB81789D8B0C79AF38E92E89729764748914745487AC8E2A7B0CCE917F12F9BD2AF4F4C384922A161E8A01AD1810AC96F99D20173E306CAC4DF249B1436F4FF654E502E124885128AEEE23639FD6BDCABDA8C24EF46172FE563832AAB0F9BFF0D2B6DA2925980D22FDA48F4CFCBA77A1E04EE50DCEDB4D8B5C0C1A3FA743AA228902A6C4ED4724F69272F9A191EDBFD1CFE91777832359D694CBDB90747F
-tmp_aes_key = 358F471A5799CC4CBBDB0023F56911461E3DDD66CFEAB574F9E1B75AFD04946D
-tmp_aes_iv = 3FFB9DE3C15F2B4582416182773D16B6334D71764B280C60397C27C001DACD54
+
encrypted_answer = AA13E4A4F481E804DAF0185A90C92BF20F4AE47A19CAB48F849FADF6327F74AB2DB5AC6D427B0E5204D07B949E97C8D92E87638A32B3891E5C99FA1EF11396455FFB9A4344887F4620122449FEDD544A37BEF633F1AC248EBA1153BE7429D117EA4E75306DBE5B3AA93489579B9B38D155363277B925F3BBE4F71B4875468ADA569F087E9CF19403D8298A321C80BED880F6F00E3E6EC2BAA622034149DF75700E9D64B1F1B35E55E7DE8E86EB27A47EAF0CB0D84D1635CB837776A96FD608C4206FE3FB0C8D2F57057A31D35BC2F8133674F437523B46D98D1C3192C676EE3ECA5FAA675F64747307E031711F3C90498972B954849D1DAE506C3EB127F4CC1DCDE3F8DA565B9BC5832535B22C869DF85A1AB601E567A49691965141C4D209A4C09EAEDCA3EDCC9B9E1420FCB1F6BE14FB9242E6BDAA52D921198B8BEA4220EE1B429C303848DE6A6619B6FC1A13C6A2EA378333C056D7F90C0FBD83386FC5DBABE6646D95B04271584284888DA74C558DB5B0C7CB59E84F5E60E290C6D8090A0E94E6F0F97AFD88DB60FAC835DE552DA46B1162CB322A09A1B539B522F6B7F571E3315616254BDD27F4E69297999D97873D817ADC9588B7BB2E5DF2E695F24ABE6E68FEF2C388C91533C2DBBF23DCF7B432CAC8394F459D1D8674993A5B6FAD2D018FD3EAC1BA99D7F1B0E50227B8DDEBA1FDB69E7DF01A4E69927B95A4D47513E8C6F15893A06DA538CA42A07C15EB867A976F486A735723BF01D268BFAFD10009B900C3B11652327F69E3EF33C7AEE18DEA272614A79F11A14AC6B13B03F1E7A44416D0AEC7D275A6F6EA23066CEC
+tmp_aes_key = 0BD14FBB6C72F5E59B4F5368B5E03E77226548EEC3E3982248C6420793E21030
+tmp_aes_iv = 0F97369690C1BEA33CDF14AC2D6F209F96F7496AB4B35925AD9EB6872F458E33

Yielding:

-
answer_with_hash = 7D492F541C905100ABD15A23FB64B89ECB37F4A0BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100978C9B946ECCBCDE68F79884E374F5C269AA8122B96E6CC06D378D513A80859E1E65AABCAF3CFB79ED191CD21EB18886E7A34D893CAB4219BE46B24A10F05D001C777B6D03AB082F826ADC76B32647B671A2EFAA9B53A55E88449CAA768FE51D8507D122F616FFDA204F5BBDB72ED6EE504624BD4F0D7A7DA9D966241933653AC22257C8F7FEEC5CF00CF898EA948C29246CBC819C577083C6C2D4014A6AF9FCE42858989D22F8E4E6783A76DB63B527C41B0E3A14649E817008922C5244F27FC704A76AAC0FAE235FDE71D74A32D673ABAE57C45822E55196E70675738BD419307B70271A625BB4683C734117706CE616054B5F651224894403969051F2BDE4A68A6D66951A03E5B239AC55
-answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100978C9B946ECCBCDE68F79884E374F5C269AA8122B96E6CC06D378D513A80859E1E65AABCAF3CFB79ED191CD21EB18886E7A34D893CAB4219BE46B24A10F05D001C777B6D03AB082F826ADC76B32647B671A2EFAA9B53A55E88449CAA768FE51D8507D122F616FFDA204F5BBDB72ED6EE504624BD4F0D7A7DA9D966241933653AC22257C8F7FEEC5CF00CF898EA948C29246CBC819C577083C6C2D4014A6AF9FCE42858989D22F8E4E6783A76DB63B527C41B0E3A14649E817008922C5244F27FC704A76AAC0FAE235FDE71D74A32D673ABAE57C45822E55196E70675738BD419307B70271A625BB4683C734117706CE616054B5F651224894403969051F2BDE4A68A6D66951A03E5B239AC55
+
answer_with_hash = 5D51B83A750DFA24EE9C70093E1CBFD6466F5DC0BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010032A34B0D25EA91D4CE46EBD9FD2793C245A129CAA10BEB70E582BE547C86A0F5F720AEA02F3F5A773EA55FB450D636B6E9CD68B87BD9F17B1A0D704A82CB629EA4767040F47DFEB4EE3320A32332F03C538AA99DCC5A71DA3C13634BF6617E194D7D3DE34A0C51F16DE01CE3D947F6CEE7B2C89D40A888F2A8B42CBE45E51782C472AEED8431FF4A3F90EBC1EBDC2D422EB4653FF9C599DE92EE796661EC19AF6D589FB00F95F91DFFB0FEF0378F62EB71EA6BF3BAB56FF1AC0A78CA6BB487C5210B7A287498A5030AD066552101E3FDDF5DD4D17E0F58644FE659AF73F6EC597BD977AB2B4ABA552EC9BFBC802D9619745EDD89DFF4197EEE489B9459BD7D69FD8E6D66C8AF159019EB6104
+answer = BA0D89B5A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD30703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010032A34B0D25EA91D4CE46EBD9FD2793C245A129CAA10BEB70E582BE547C86A0F5F720AEA02F3F5A773EA55FB450D636B6E9CD68B87BD9F17B1A0D704A82CB629EA4767040F47DFEB4EE3320A32332F03C538AA99DCC5A71DA3C13634BF6617E194D7D3DE34A0C51F16DE01CE3D947F6CEE7B2C89D40A888F2A8B42CBE45E51782C472AEED8431FF4A3F90EBC1EBDC2D422EB4653FF9C599DE92EE796661EC19AF6D589FB00F95F91DFFB0FEF0378F62EB71EA6BF3BAB56FF1AC0A78CA6BB487C5210B7A287498A5030AD066552101E3FDDF5DD4D17E0F58644FE659AF73F6EC597BD977AB2B4ABA552EC9BFBC802D9619745EDD89DFF4197EEE489B9459BD7D69FD8E6D66C8AF159019EB6104

Generated payload (excluding transport headers/trailers):

-
0000 | BA 0D 89 B5 20 FD E6 08 42 30 CC 5C 8D CC F8 96
-0010 | 31 94 64 97 93 28 4F B9 DD C4 95 D2 EA CD BD 8F
-0020 | 12 81 EC 50 03 00 00 00 FE 00 01 00 C7 1C AE B9
+
0000 | BA 0D 89 B5 A0 7A 5A EC 88 BE AB B1 21 CA 05 C7
+0010 | 95 47 49 57 9D EF AA 9F 2F 39 95 32 65 3F 46 E0
+0020 | 25 8F D3 07 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 = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
 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 | 97 8C 9B 94 6E CC BC DE 68 F7 98 84 E3 74 F5 C2
-0140 | 69 AA 81 22 B9 6E 6C C0 6D 37 8D 51 3A 80 85 9E
-0150 | 1E 65 AA BC AF 3C FB 79 ED 19 1C D2 1E B1 88 86
-0160 | E7 A3 4D 89 3C AB 42 19 BE 46 B2 4A 10 F0 5D 00
-0170 | 1C 77 7B 6D 03 AB 08 2F 82 6A DC 76 B3 26 47 B6
-0180 | 71 A2 EF AA 9B 53 A5 5E 88 44 9C AA 76 8F E5 1D
-0190 | 85 07 D1 22 F6 16 FF DA 20 4F 5B BD B7 2E D6 EE
-01A0 | 50 46 24 BD 4F 0D 7A 7D A9 D9 66 24 19 33 65 3A
-01B0 | C2 22 57 C8 F7 FE EC 5C F0 0C F8 98 EA 94 8C 29
-01C0 | 24 6C BC 81 9C 57 70 83 C6 C2 D4 01 4A 6A F9 FC
-01D0 | E4 28 58 98 9D 22 F8 E4 E6 78 3A 76 DB 63 B5 27
-01E0 | C4 1B 0E 3A 14 64 9E 81 70 08 92 2C 52 44 F2 7F
-01F0 | C7 04 A7 6A AC 0F AE 23 5F DE 71 D7 4A 32 D6 73
-0200 | AB AE 57 C4 58 22 E5 51 96 E7 06 75 73 8B D4 19
-0210 | 30 7B 70 27 1A 62 5B B4 68 3C 73 41 17 70 6C E6
-0220 | 16 05 4B 5F 65 12 24 89 44 03 96 90 51 F2 BD E4
-0230 | A6 8A 6D 66
+0130 | 32 A3 4B 0D 25 EA 91 D4 CE 46 EB D9 FD 27 93 C2 +0140 | 45 A1 29 CA A1 0B EB 70 E5 82 BE 54 7C 86 A0 F5 +0150 | F7 20 AE A0 2F 3F 5A 77 3E A5 5F B4 50 D6 36 B6 +0160 | E9 CD 68 B8 7B D9 F1 7B 1A 0D 70 4A 82 CB 62 9E +0170 | A4 76 70 40 F4 7D FE B4 EE 33 20 A3 23 32 F0 3C +0180 | 53 8A A9 9D CC 5A 71 DA 3C 13 63 4B F6 61 7E 19 +0190 | 4D 7D 3D E3 4A 0C 51 F1 6D E0 1C E3 D9 47 F6 CE +01A0 | E7 B2 C8 9D 40 A8 88 F2 A8 B4 2C BE 45 E5 17 82 +01B0 | C4 72 AE ED 84 31 FF 4A 3F 90 EB C1 EB DC 2D 42 +01C0 | 2E B4 65 3F F9 C5 99 DE 92 EE 79 66 61 EC 19 AF +01D0 | 6D 58 9F B0 0F 95 F9 1D FF B0 FE F0 37 8F 62 EB +01E0 | 71 EA 6B F3 BA B5 6F F1 AC 0A 78 CA 6B B4 87 C5 +01F0 | 21 0B 7A 28 74 98 A5 03 0A D0 66 55 21 01 E3 FD +0200 | DF 5D D4 D1 7E 0F 58 64 4F E6 59 AF 73 F6 EC 59 +0210 | 7B D9 77 AB 2B 4A BA 55 2E C9 BF BC 80 2D 96 19 +0220 | 74 5E DD 89 DF F4 19 7E EE 48 9B 94 59 BD 7D 69 +0230 | FD 8E 6D 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;
message_id 8, 8019881E0A68A6D6601B02729FD8E6D66 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 4C4020000 (708 in decimal)9C020000 (668 in decimal) Message body length
nonce 24, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 40, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Value received from server in Step 2
encrypted_answer 56, 596FE500200C2F009F2343EF7E517DA94B2 3DD12C3C0B25A1DABE972E9621E28BD6 2DF7460E1E3CDB02A2766486DC9FB6CD 01D56449AA855EA1EC8DAB9FA747832E CA3425D9ECFC7EDEFA9E17AC8FD9A28E CD18DB92C442A74A2A8FE52FF388E577 37086FE324773E73E6A5B3602DBBA1C6 89542996C272DFF3E57048C646492E82 F7546AF8CE7C714219C233355593F350 3CE7E28D13D187FE0CE07D90B2E900B2 D0164546A299B61AF437911F1E3A6892 45F17747710881D87AD5FB2E9FF852DE 027B8D3BA63E4D3B167BB33CDD88563C 20DF4739470F5F149F7C5BFD6ECE07B7 59C7D307B8567FA5507D6C326B0D82A8 90E34B309BB434552AA5E678508398C1 B00CC653AB4C04BE806377E1F6581910 5BD06BD27103078252A91B1063B4A29B 01158147E544A9C7C2382775A199AEF1 75CF056B577E2159F0A75D0A2B1214CB 942B67BD82EEDA8C64C16C080E49C539 88B47AF695CB94519472E372D7B93071 67C2F2A7F83DF532019DBD55ABA4AB09 21A2D445A13277E4C97637C22187DAE7 51DB74AFCF5978C2C864D30F2B6F09C5 5C6AA0CF5F538CF671C3A8185A26EEBA B9DCD2733239A40C30D228F94F97118A 671C091D05F8CB81789D8B0C79AF38E9 2E89729764748914745487AC8E2A7B0C CE917F12F9BD2AF4F4C384922A161E8A 01AD1810AC96F99D20173E306CAC4DF2 49B1436F4FF654E502E124885128AEEE 23639FD6BDCABDA8C24EF46172FE5638 32AAB0F9BFF0D2B6DA2925980D22FDA4 8F4CFCBA77A1E04EE50DCEDB4D8B5C0C 1A3FA743AA228902A6C4ED4724F69272 F9A191EDBFD1CFE91777832359D694CB
DB90747F
FE500200AA13E4A4F481E804DAF0185A 90C92BF20F4AE47A19CAB48F849FADF6 327F74AB2DB5AC6D427B0E5204D07B94 9E97C8D92E87638A32B3891E5C99FA1E F11396455FFB9A4344887F4620122449 FEDD544A37BEF633F1AC248EBA1153BE 7429D117EA4E75306DBE5B3AA9348957 9B9B38D155363277B925F3BBE4F71B48 75468ADA569F087E9CF19403D8298A32 1C80BED880F6F00E3E6EC2BAA6220341 49DF75700E9D64B1F1B35E55E7DE8E86 EB27A47EAF0CB0D84D1635CB837776A9 6FD608C4206FE3FB0C8D2F57057A31D3 5BC2F8133674F437523B46D98D1C3192 C676EE3ECA5FAA675F64747307E03171 1F3C90498972B954849D1DAE506C3EB1 27F4CC1DCDE3F8DA565B9BC5832535B2 2C869DF85A1AB601E567A49691965141 C4D209A4C09EAEDCA3EDCC9B9E1420FC B1F6BE14FB9242E6BDAA52D921198B8B EA4220EE1B429C303848DE6A6619B6FC 1A13C6A2EA378333C056D7F90C0FBD83 386FC5DBABE6646D95B0427158428488 8DA74C558DB5B0C7CB59E84F5E60E290 C6D8090A0E94E6F0F97AFD88DB60FAC8 35DE552DA46B1162CB322A09A1B539B5 22F6B7F571E3315616254BDD27F4E692 97999D97873D817ADC9588B7BB2E5DF2 E695F24ABE6E68FEF2C388C91533C2DB BF23DCF7B432CAC8394F459D1D867499 3A5B6FAD2D018FD3EAC1BA99D7F1B0E5 0227B8DDEBA1FDB69E7DF01A4E69927B 95A4D47513E8C6F15893A06DA538CA42 A07C15EB867A976F486A735723BF01D2 68BFAFD10009B900C3B11652327F69E3 EF33C7AEE18DEA272614A79F11A14AC6 B13B03F1E7A44416D0AEC7D275A6F6EA
23066CEC
See below
@@ -570,13 +570,13 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5 - + - + @@ -594,13 +594,13 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5 - + - + @@ -609,34 +609,34 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5
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 = EBCDB3228FAFFE7F27D38AB0A00E79E6D5BACEB96B5307DE5C5F5C196A6378F49FF94727CBB6E7FE9823E6C621C5BC6C70D6A68288D3F2419831B1DC2AB77A5D9A11551732EF80E0B6CC1954072535CACC548B5EC8BD4058E57CF24BF9180B6E3190C0F7E7E3729336861A42FBDDFC05944330D1E0019CFAE5F55F3723EF90F07E49E8908F37B263B3C7FF2BB7BB0248243B6B2AE815341746A9CB63A5CE8173D9A02D653977022378444ECB8C6322C735DA836774D000E385332371916A1F8FDD1BFF7EEEC61984641B6A46D56AF3209029A9A50AAD06238C3A970A4460823BFBA41EA6573FE0729A129508D6D4A99974A0FD0A10F6B58765037ECC4E5864DB
+
b = C1EFE25AA25368E77343C59C59D7F341192D0A4C20B2A818C831FDA212AE24DEA54134FDBD567CA0B4096A87D3C6180F00CB096CE5C328C5CEA433E277B91CDD6609CF5971124111CDEFD9FEBD28227EE48D4D592A2A2CE6503A4DC8A831908B317BE9FBD59561B2C0523AF9CA96AFE50FCCAB10BB7ED383F99E4452B8074C4AA8D8F3695196F6EEFD130D7466C7DFC4C2209B77ADA73918087E1B53AEFD68896EBACF936FDC59BD78015CFB2F5BA8BE94B28156579AE4999F41F2C68E4AA9C2CC7EE4EE6C4C417B6492E7A9EC44D117FD7E04A4FDE257D6CE66C9A97B1DAF981C4F9982D45E482E71BF7654B8624C6F57A6DE2AD45550BADDE405D77A9DCE13

Then compute g_b = pow(g, b) mod dh_prime

-
g_b = 015F7858F4D68C37FEF92CDE649044BBC08F451F321EE35999163DFA05B235B1B44EB0D48FF5948970577BD3A666FAC86FD428DEDAF2802EDCC4447F87889F87370A53D502CD739BC9BA8F1C1EA4697E29DB5665D20516ED40AB69F0A5CA44529A757DDAF25492D8DA349C84C5F5CBE283F53FA15F33BE98BAC101EAB52849B967FF4E483B7D22DC701EDBAFAA09BA4557B278F524CE3A78E3D983D4983B37EA9DA1C6BFA903612B82071D115ADF6CC684864AF3BC4E23987A63B803944392EDC01614DA0F21B8474312F776A568ECDBAE2F809E3540D6E1EBAB3AAFDFBE3A813085584F91845EBEA59F80A46CDACC71A3E15BCC338D2CB62B5817B89EA6CB2F
+
g_b = 6918A223D2AF18B957F13A58ECC2D2D4E1C695D12FC48C20574D69D9DF647769FD71C7C69DF66F0814178792BDE4BF32EA2CF8208644146C0762509DCD360C22591AC42826B710C192EB3C74C72A49491938A5A9905CF370B54D070B978967A643AAB19FA183E58282F8372A13B40FFB8B5512E5396C8C66442FC3649A30A80FBE258FDC8B90E3552B9C77EFCAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4C66BD5EF636978B97C380BC2DB50A91649C2E75AFBA29B4709075B4C57D4F86FDB1B70B9D536FB0574986E2A7147D864C7776134E62F7864FF675E85320251EBAD57A175377502CA9F4D73C8FDBC13FD5F0218D79D75543D8256BC960CEC12C853027A1D
7.1) generation of encrypted_data

Generated payload (excluding transport headers/trailers):

-
0000 | 54 B6 43 66 20 FD E6 08 42 30 CC 5C 8D CC F8 96
-0010 | 31 94 64 97 93 28 4F B9 DD C4 95 D2 EA CD BD 8F
-0020 | 12 81 EC 50 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 01 5F 78 58 F4 D6 8C 37 FE F9 2C DE 64 90 44 BB
-0040 | C0 8F 45 1F 32 1E E3 59 99 16 3D FA 05 B2 35 B1
-0050 | B4 4E B0 D4 8F F5 94 89 70 57 7B D3 A6 66 FA C8
-0060 | 6F D4 28 DE DA F2 80 2E DC C4 44 7F 87 88 9F 87
-0070 | 37 0A 53 D5 02 CD 73 9B C9 BA 8F 1C 1E A4 69 7E
-0080 | 29 DB 56 65 D2 05 16 ED 40 AB 69 F0 A5 CA 44 52
-0090 | 9A 75 7D DA F2 54 92 D8 DA 34 9C 84 C5 F5 CB E2
-00A0 | 83 F5 3F A1 5F 33 BE 98 BA C1 01 EA B5 28 49 B9
-00B0 | 67 FF 4E 48 3B 7D 22 DC 70 1E DB AF AA 09 BA 45
-00C0 | 57 B2 78 F5 24 CE 3A 78 E3 D9 83 D4 98 3B 37 EA
-00D0 | 9D A1 C6 BF A9 03 61 2B 82 07 1D 11 5A DF 6C C6
-00E0 | 84 86 4A F3 BC 4E 23 98 7A 63 B8 03 94 43 92 ED
-00F0 | C0 16 14 DA 0F 21 B8 47 43 12 F7 76 A5 68 EC DB
-0100 | AE 2F 80 9E 35 40 D6 E1 EB AB 3A AF DF BE 3A 81
-0110 | 30 85 58 4F 91 84 5E BE A5 9F 80 A4 6C DA CC 71
-0120 | A3 E1 5B CC 33 8D 2C B6 2B 58 17 B8 9E A6 CB 2F
+
0000 | 54 B6 43 66 A0 7A 5A EC 88 BE AB B1 21 CA 05 C7
+0010 | 95 47 49 57 9D EF AA 9F 2F 39 95 32 65 3F 46 E0
+0020 | 25 8F D3 07 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 69 18 A2 23 D2 AF 18 B9 57 F1 3A 58 EC C2 D2 D4
+0040 | E1 C6 95 D1 2F C4 8C 20 57 4D 69 D9 DF 64 77 69
+0050 | FD 71 C7 C6 9D F6 6F 08 14 17 87 92 BD E4 BF 32
+0060 | EA 2C F8 20 86 44 14 6C 07 62 50 9D CD 36 0C 22
+0070 | 59 1A C4 28 26 B7 10 C1 92 EB 3C 74 C7 2A 49 49
+0080 | 19 38 A5 A9 90 5C F3 70 B5 4D 07 0B 97 89 67 A6
+0090 | 43 AA B1 9F A1 83 E5 82 82 F8 37 2A 13 B4 0F FB
+00A0 | 8B 55 12 E5 39 6C 8C 66 44 2F C3 64 9A 30 A8 0F
+00B0 | BE 25 8F DC 8B 90 E3 55 2B 9C 77 EF CA B0 F2 BF
+00C0 | 5F ED FE E4 AB E0 CC A4 FF 51 B3 F4 C6 6B D5 EF
+00D0 | 63 69 78 B9 7C 38 0B C2 DB 50 A9 16 49 C2 E7 5A
+00E0 | FB A2 9B 47 09 07 5B 4C 57 D4 F8 6F DB 1B 70 B9
+00F0 | D5 36 FB 05 74 98 6E 2A 71 47 D8 64 C7 77 61 34
+0100 | E6 2F 78 64 FF 67 5E 85 32 02 51 EB AD 57 A1 75
+0110 | 37 75 02 CA 9F 4D 73 C8 FD BC 13 FD 5F 02 18 D7
+0120 | 9D 75 54 3D 82 56 BC 96 0C EC 12 C8 53 02 7A 1D

Payload (de)serialization:

client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
nonce 4, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 20, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Value received from server in Step 2
g_a 300, 260FE000100978C9B946ECCBCDE68F79884 E374F5C269AA8122B96E6CC06D378D51 3A80859E1E65AABCAF3CFB79ED191CD2 1EB18886E7A34D893CAB4219BE46B24A 10F05D001C777B6D03AB082F826ADC76 B32647B671A2EFAA9B53A55E88449CAA 768FE51D8507D122F616FFDA204F5BBD B72ED6EE504624BD4F0D7A7DA9D96624 1933653AC22257C8F7FEEC5CF00CF898 EA948C29246CBC819C577083C6C2D401 4A6AF9FCE42858989D22F8E4E6783A76 DB63B527C41B0E3A14649E817008922C 5244F27FC704A76AAC0FAE235FDE71D7 4A32D673ABAE57C45822E55196E70675 738BD419307B70271A625BB4683C7341 17706CE616054B5F6512248944039690
51F2BDE4
FE00010032A34B0D25EA91D4CE46EBD9 FD2793C245A129CAA10BEB70E582BE54 7C86A0F5F720AEA02F3F5A773EA55FB4 50D636B6E9CD68B87BD9F17B1A0D704A 82CB629EA4767040F47DFEB4EE3320A3 2332F03C538AA99DCC5A71DA3C13634B F6617E194D7D3DE34A0C51F16DE01CE3 D947F6CEE7B2C89D40A888F2A8B42CBE 45E51782C472AEED8431FF4A3F90EBC1 EBDC2D422EB4653FF9C599DE92EE7966 61EC19AF6D589FB00F95F91DFFB0FEF0 378F62EB71EA6BF3BAB56FF1AC0A78CA 6BB487C5210B7A287498A5030AD06655 2101E3FDDF5DD4D17E0F58644FE659AF 73F6EC597BD977AB2B4ABA552EC9BFBC 802D9619745EDD89DFF4197EEE489B94
59BD7D69
g_a diffie-hellman parameter
server_time 560, 4A68A6D66 (1718454950 in decimal)FD8E6D66 (1718456061 in decimal) Server time
@@ -658,19 +658,19 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5 - + - + - + @@ -684,47 +684,47 @@ answer = BA0D89B520FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC5

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 = 54B6436620FDE6084230CC5C8DCCF8963194649793284FB9DDC495D2EACDBD8F1281EC500000000000000000FE000100015F7858F4D68C37FEF92CDE649044BBC08F451F321EE35999163DFA05B235B1B44EB0D48FF5948970577BD3A666FAC86FD428DEDAF2802EDCC4447F87889F87370A53D502CD739BC9BA8F1C1EA4697E29DB5665D20516ED40AB69F0A5CA44529A757DDAF25492D8DA349C84C5F5CBE283F53FA15F33BE98BAC101EAB52849B967FF4E483B7D22DC701EDBAFAA09BA4557B278F524CE3A78E3D983D4983B37EA9DA1C6BFA903612B82071D115ADF6CC684864AF3BC4E23987A63B803944392EDC01614DA0F21B8474312F776A568ECDBAE2F809E3540D6E1EBAB3AAFDFBE3A813085584F91845EBEA59F80A46CDACC71A3E15BCC338D2CB62B5817B89EA6CB2F
-padding = 19B6836E091AEA989B31ED7C
-tmp_aes_key = 358F471A5799CC4CBBDB0023F56911461E3DDD66CFEAB574F9E1B75AFD04946D
-tmp_aes_iv = 3FFB9DE3C15F2B4582416182773D16B6334D71764B280C60397C27C001DACD54
+
data = 54B64366A07A5AEC88BEABB121CA05C7954749579DEFAA9F2F399532653F46E0258FD3070000000000000000FE0001006918A223D2AF18B957F13A58ECC2D2D4E1C695D12FC48C20574D69D9DF647769FD71C7C69DF66F0814178792BDE4BF32EA2CF8208644146C0762509DCD360C22591AC42826B710C192EB3C74C72A49491938A5A9905CF370B54D070B978967A643AAB19FA183E58282F8372A13B40FFB8B5512E5396C8C66442FC3649A30A80FBE258FDC8B90E3552B9C77EFCAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4C66BD5EF636978B97C380BC2DB50A91649C2E75AFBA29B4709075B4C57D4F86FDB1B70B9D536FB0574986E2A7147D864C7776134E62F7864FF675E85320251EBAD57A175377502CA9F4D73C8FDBC13FD5F0218D79D75543D8256BC960CEC12C853027A1D
+padding = 9A9587E9824EAFB2959EDFEE
+tmp_aes_key = 0BD14FBB6C72F5E59B4F5368B5E03E77226548EEC3E3982248C6420793E21030
+tmp_aes_iv = 0F97369690C1BEA33CDF14AC2D6F209F96F7496AB4B35925AD9EB6872F458E33

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 = 2ECCA417B66B66313398CD5E88DE30ABA18C51884446658AAB84C29603A173D23FEC9EAB938E6EA4FE3C2D9ADF22A1109C0C8C4700CDE663005E5727324E769406AA6CB7C2A73E36E30934F3A6168F18B3E6362B97418FCE0A757BEBB32D31DCC8AB2034BF5075DDABDFD8145C8EE62D196D1C28C4AA61519322BB4582F8E5FF7E9016B59926AC4DE2C216588571D03BAFADD19BACDBA35CC4AA0B534B6EF304F5EDAED54740C93691FC4907CFAB26D684966EB0EB62195BA4267B9E447107A684F461A8D047F54C9709B7D3F4FAC1387ACD97036B58F7F9D755BB367D6C9B134A431EFF6D0C1E2C747A8C846C02BBF65871C31DDC8239B77F090CF73D5ABBC2771A8CD86DF0769ECDE8ECE42D3BA68662D89E8DFEBC8D1CC18A00632F9CA2B11932AA44AD82F8CBE7F953CCF049ABF3585E920BB20FAEA9A8F0A28810D5FE9EC711574A4714922220AE980E1A538A0D
+
encrypted_data = 5165902A5D348855AD4A5B90EB06E677907D2C8754D830B0BBB01332E0A8219895DDD28C6405BB6C80F6613551FCDB8C2A928060914E4637179863B6B212FB62A59859DA0AF87EB1836DEF45DC5AD69715050CA8CB2717231CE627EDDB7C58B488C5B166A4D86E2F707AEB02E89E25F378D95DBB12DCFEC5D7AD46552F02AC7C100D97AAAAABBD34537EC4D9E17C5E5F9E7A12F8035FF3C7ED6E5B23F793E1F425C0754D1E809C9F599FF546F14A0123069ECA3C0123967C165CB4022FFB8C10AF33A2DA267CDD7A67D7EAEF4659142ABF616E827914C47E0AD7D7245951CA33293DCE38E2AD99A272A338D4D0729BA03646FD225EEC136B75BF02ECEE35E7C586EDE223A7F6B89E371FF4113A3CE5D81022907BB73AB91EDE25ABAF78DC00B6FEC9BA809153570101ACC766655A170FC904A88E2991F18531DAF1891F9A8A693E2143A2BC31C4B8D241BF616C7300E1

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 80 89 01 00 A7 8A 6D 66
-0010 | 78 01 00 00 1F 5F 04 F5 20 FD E6 08 42 30 CC 5C
-0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
-0030 | EA CD BD 8F 12 81 EC 50 FE 50 01 00 2E CC A4 17
-0040 | B6 6B 66 31 33 98 CD 5E 88 DE 30 AB A1 8C 51 88
-0050 | 44 46 65 8A AB 84 C2 96 03 A1 73 D2 3F EC 9E AB
-0060 | 93 8E 6E A4 FE 3C 2D 9A DF 22 A1 10 9C 0C 8C 47
-0070 | 00 CD E6 63 00 5E 57 27 32 4E 76 94 06 AA 6C B7
-0080 | C2 A7 3E 36 E3 09 34 F3 A6 16 8F 18 B3 E6 36 2B
-0090 | 97 41 8F CE 0A 75 7B EB B3 2D 31 DC C8 AB 20 34
-00A0 | BF 50 75 DD AB DF D8 14 5C 8E E6 2D 19 6D 1C 28
-00B0 | C4 AA 61 51 93 22 BB 45 82 F8 E5 FF 7E 90 16 B5
-00C0 | 99 26 AC 4D E2 C2 16 58 85 71 D0 3B AF AD D1 9B
-00D0 | AC DB A3 5C C4 AA 0B 53 4B 6E F3 04 F5 ED AE D5
-00E0 | 47 40 C9 36 91 FC 49 07 CF AB 26 D6 84 96 6E B0
-00F0 | EB 62 19 5B A4 26 7B 9E 44 71 07 A6 84 F4 61 A8
-0100 | D0 47 F5 4C 97 09 B7 D3 F4 FA C1 38 7A CD 97 03
-0110 | 6B 58 F7 F9 D7 55 BB 36 7D 6C 9B 13 4A 43 1E FF
-0120 | 6D 0C 1E 2C 74 7A 8C 84 6C 02 BB F6 58 71 C3 1D
-0130 | DC 82 39 B7 7F 09 0C F7 3D 5A BB C2 77 1A 8C D8
-0140 | 6D F0 76 9E CD E8 EC E4 2D 3B A6 86 62 D8 9E 8D
-0150 | FE BC 8D 1C C1 8A 00 63 2F 9C A2 B1 19 32 AA 44
-0160 | AD 82 F8 CB E7 F9 53 CC F0 49 AB F3 58 5E 92 0B
-0170 | B2 0F AE A9 A8 F0 A2 88 10 D5 FE 9E C7 11 57 4A
-0180 | 47 14 92 22 20 AE 98 0E 1A 53 8A 0D
+
0000 | 00 00 00 00 00 00 00 00 E0 56 0D 00 FD 8E 6D 66
+0010 | 78 01 00 00 1F 5F 04 F5 A0 7A 5A EC 88 BE AB B1
+0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
+0030 | 65 3F 46 E0 25 8F D3 07 FE 50 01 00 51 65 90 2A
+0040 | 5D 34 88 55 AD 4A 5B 90 EB 06 E6 77 90 7D 2C 87
+0050 | 54 D8 30 B0 BB B0 13 32 E0 A8 21 98 95 DD D2 8C
+0060 | 64 05 BB 6C 80 F6 61 35 51 FC DB 8C 2A 92 80 60
+0070 | 91 4E 46 37 17 98 63 B6 B2 12 FB 62 A5 98 59 DA
+0080 | 0A F8 7E B1 83 6D EF 45 DC 5A D6 97 15 05 0C A8
+0090 | CB 27 17 23 1C E6 27 ED DB 7C 58 B4 88 C5 B1 66
+00A0 | A4 D8 6E 2F 70 7A EB 02 E8 9E 25 F3 78 D9 5D BB
+00B0 | 12 DC FE C5 D7 AD 46 55 2F 02 AC 7C 10 0D 97 AA
+00C0 | AA AB BD 34 53 7E C4 D9 E1 7C 5E 5F 9E 7A 12 F8
+00D0 | 03 5F F3 C7 ED 6E 5B 23 F7 93 E1 F4 25 C0 75 4D
+00E0 | 1E 80 9C 9F 59 9F F5 46 F1 4A 01 23 06 9E CA 3C
+00F0 | 01 23 96 7C 16 5C B4 02 2F FB 8C 10 AF 33 A2 DA
+0100 | 26 7C DD 7A 67 D7 EA EF 46 59 14 2A BF 61 6E 82
+0110 | 79 14 C4 7E 0A D7 D7 24 59 51 CA 33 29 3D CE 38
+0120 | E2 AD 99 A2 72 A3 38 D4 D0 72 9B A0 36 46 FD 22
+0130 | 5E EC 13 6B 75 BF 02 EC EE 35 E7 C5 86 ED E2 23
+0140 | A7 F6 B8 9E 37 1F F4 11 3A 3C E5 D8 10 22 90 7B
+0150 | B7 3A B9 1E DE 25 AB AF 78 DC 00 B6 FE C9 BA 80
+0160 | 91 53 57 01 01 AC C7 66 65 5A 17 0F C9 04 A8 8E
+0170 | 29 91 F1 85 31 DA F1 89 1F 9A 8A 69 3E 21 43 A2
+0180 | BC 31 C4 B8 D2 41 BF 61 6C 73 00 E1

Payload (de)serialization:

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
nonce 4, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 20, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Value received from server in Step 2
g_b 36, 260FE000100015F7858F4D68C37FEF92CDE 649044BBC08F451F321EE35999163DFA 05B235B1B44EB0D48FF5948970577BD3 A666FAC86FD428DEDAF2802EDCC4447F 87889F87370A53D502CD739BC9BA8F1C 1EA4697E29DB5665D20516ED40AB69F0 A5CA44529A757DDAF25492D8DA349C84 C5F5CBE283F53FA15F33BE98BAC101EA B52849B967FF4E483B7D22DC701EDBAF AA09BA4557B278F524CE3A78E3D983D4 983B37EA9DA1C6BFA903612B82071D11 5ADF6CC684864AF3BC4E23987A63B803 944392EDC01614DA0F21B8474312F776 A568ECDBAE2F809E3540D6E1EBAB3AAF DFBE3A813085584F91845EBEA59F80A4 6CDACC71A3E15BCC338D2CB62B5817B8
9EA6CB2F
FE0001006918A223D2AF18B957F13A58 ECC2D2D4E1C695D12FC48C20574D69D9 DF647769FD71C7C69DF66F0814178792 BDE4BF32EA2CF8208644146C0762509D CD360C22591AC42826B710C192EB3C74 C72A49491938A5A9905CF370B54D070B 978967A643AAB19FA183E58282F8372A 13B40FFB8B5512E5396C8C66442FC364 9A30A80FBE258FDC8B90E3552B9C77EF CAB0F2BF5FEDFEE4ABE0CCA4FF51B3F4 C66BD5EF636978B97C380BC2DB50A916 49C2E75AFBA29B4709075B4C57D4F86F DB1B70B9D536FB0574986E2A7147D864 C7776134E62F7864FF675E85320251EB AD57A175377502CA9F4D73C8FDBC13FD 5F0218D79D75543D8256BC960CEC12C8
53027A1D
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + @@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + - + @@ -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 = 81CE06F4E091A1EA220DB809260DA84049B2034BCF0FF9419D6CB00AB3A2387BFEC36DB566BA8D525943E3F1C5F84C0299ED8036BC81714BEE1EC04A4D8CDDAB38F82F9E7F86B902CBFC57D34123FA0A1B0B4429AA753FF082A31D1C51721E6F01321D41539EB17558E47E7C30B7E18B8812150438255D5E5A341008D265140EB9E27508FFC94FEDB7C424148EE2288406BA88BFFA0083AA3095D18132206CE8C9105E2D8385EBAD2F684166C732B4717E1747FDB7695E39EF7170CA012A8996A6C361B33B9A3D02A690AA42376B9A0854F64D425AF6E591307E511191F91868DACF4121A37617652512794A557FE86655AAF4433014E0B68D0E877A9A2D6FC9
+
auth_key = 20102921AC006318497CF06314369EBBF43FD9D2FA527A2C080A4C73A1E2B6EFC4D5D63FCD6982B2D71529E777FC4AF35793FEE0A3382F515BE5BFD1633C70024F030A15BE0B2C6A215F8339B9FFACE74845D1F343F52B58C5E43EC76D93445E5D9BDC70FC2F1162DEBC2675000343A53BE0B546B72BE15E9501F075737D83DC398F75C761AC11489A895A00F9FCAD6A2272F3A20853FA744002E443DE74F2573D6F528213BA7C7D39AE0A6316BEC6E7B738994DC29A12656F099B68806C65A62D29ED9A710C8388807D32DBF8A70AD1DB60297B6A06DCA57D13532189235EF77D6AEF1C53C850BA1BA158BC4B77ACD7D8AE8E7D22CC5E11AAE959261F5597D4
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 B0 D5 D1 A7 8A 6D 66
-0010 | 44 00 00 00 34 F7 CB 3B 20 FD E6 08 42 30 CC 5C
-0020 | 8D CC F8 96 31 94 64 97 93 28 4F B9 DD C4 95 D2
-0030 | EA CD BD 8F 12 81 EC 50 64 8A 71 79 9D AD 64 5F
-0040 | E2 8F 6D F3 CA 84 51 AE
+
0000 | 00 00 00 00 00 00 00 00 01 E8 89 EF FD 8E 6D 66
+0010 | AC 00 00 00 34 F7 CB 3B A0 7A 5A EC 88 BE AB B1
+0020 | 21 CA 05 C7 95 47 49 57 9D EF AA 9F 2F 39 95 32
+0030 | 65 3F 46 E0 25 8F D3 07 F8 B6 22 0A A1 C4 19 E4
+0040 | 8F A2 0A 26 F4 45 3B 73

Payload (de)serialization:

dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
message_id 8, 880890100A78A6D66E0560D00FD8E6D66 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 40, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Value received from server in Step 2
encrypted_data 56, 340FE5001002ECCA417B66B66313398CD5E 88DE30ABA18C51884446658AAB84C296 03A173D23FEC9EAB938E6EA4FE3C2D9A DF22A1109C0C8C4700CDE663005E5727 324E769406AA6CB7C2A73E36E30934F3 A6168F18B3E6362B97418FCE0A757BEB B32D31DCC8AB2034BF5075DDABDFD814 5C8EE62D196D1C28C4AA61519322BB45 82F8E5FF7E9016B59926AC4DE2C21658 8571D03BAFADD19BACDBA35CC4AA0B53 4B6EF304F5EDAED54740C93691FC4907 CFAB26D684966EB0EB62195BA4267B9E 447107A684F461A8D047F54C9709B7D3 F4FAC1387ACD97036B58F7F9D755BB36 7D6C9B134A431EFF6D0C1E2C747A8C84 6C02BBF65871C31DDC8239B77F090CF7 3D5ABBC2771A8CD86DF0769ECDE8ECE4 2D3BA68662D89E8DFEBC8D1CC18A0063 2F9CA2B11932AA44AD82F8CBE7F953CC F049ABF3585E920BB20FAEA9A8F0A288 10D5FE9EC711574A4714922220AE980E
1A538A0D
FE5001005165902A5D348855AD4A5B90 EB06E677907D2C8754D830B0BBB01332 E0A8219895DDD28C6405BB6C80F66135 51FCDB8C2A928060914E4637179863B6 B212FB62A59859DA0AF87EB1836DEF45 DC5AD69715050CA8CB2717231CE627ED DB7C58B488C5B166A4D86E2F707AEB02 E89E25F378D95DBB12DCFEC5D7AD4655 2F02AC7C100D97AAAAABBD34537EC4D9 E17C5E5F9E7A12F8035FF3C7ED6E5B23 F793E1F425C0754D1E809C9F599FF546 F14A0123069ECA3C0123967C165CB402 2FFB8C10AF33A2DA267CDD7A67D7EAEF 4659142ABF616E827914C47E0AD7D724 5951CA33293DCE38E2AD99A272A338D4 D0729BA03646FD225EEC136B75BF02EC EE35E7C586EDE223A7F6B89E371FF411 3A3CE5D81022907BB73AB91EDE25ABAF 78DC00B6FEC9BA809153570101ACC766 655A170FC904A88E2991F18531DAF189 1F9A8A693E2143A2BC31C4B8D241BF61
6C7300E1
Encrypted client_DH_inner_data generated previously, serialized as a TL byte string
@@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + @@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + - +
message_id 8, 801B0D5D1A78A6D6601E889EFFD8E6D66 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 444000000 (68 in decimal)AC000000 (172 in decimal) Message body length
nonce 24, 1620FDE6084230CC5C8DCCF89631946497A07A5AEC88BEABB121CA05C795474957 Value generated by client in Step 1
server_nonce 40, 1693284FB9DDC495D2EACDBD8F1281EC509DEFAA9F2F399532653F46E0258FD307 Value received from server in Step 2
new_nonce_hash1 56, 16648A71799DAD645FE28F6DF3CA8451AEF8B6220AA1C419E48FA20A26F4453B73 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.