mirror of
https://github.com/MarshalX/telegram-crawler.git
synced 2025-02-26 22:58:25 +01:00
Update content of files
This commit is contained in:
parent
b1287132bb
commit
fa310a4d00
9 changed files with 488 additions and 374 deletions
|
@ -230,6 +230,9 @@ This allows the server to filter messages based on a text query, and even on the
|
|||
<h4><a class="anchor" href="#telegram-business" id="telegram-business" name="telegram-business"><i class="anchor-icon"></i></a><a href="/api/business">Telegram Business</a></h4>
|
||||
<p>Users can turn their Telegram account into a <strong>business account</strong>, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p>
|
||||
<p>For the moment, all Telegram Business features are available for free to <a href="/api/premium">Telegram Premium</a> subscribers. </p>
|
||||
<h4><a class="anchor" href="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>Mini app developers and content creators can use the Telegram Stars they've earned to <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">receive rewards in Toncoin</a> – or buy <strong>Telegram Ads</strong> at <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#subsidized-ads-for-creators-and-developers">special discounted rates</a>.</p>
|
||||
<p>This page describes the methods used to buy and withdraw Telegram Stars, as well as view detailed revenue stats. </p>
|
||||
<h4><a class="anchor" href="#channel-and-supergroup-boosts" id="channel-and-supergroup-boosts" name="channel-and-supergroup-boosts"><i class="anchor-icon"></i></a><a href="/api/boost">Channel and supergroup boosts</a></h4>
|
||||
<p><a href="/api/premium">Telegram Premium</a> users can grant their favorite channels additional features like the ability to post <a href="/api/stories">stories</a> by giving them <strong>boosts</strong>. </p>
|
||||
<h4><a class="anchor" href="#giveaways-amp-gifts" id="giveaways-amp-gifts" name="giveaways-amp-gifts"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways & gifts</a></h4>
|
||||
|
|
|
@ -230,6 +230,9 @@ This allows the server to filter messages based on a text query, and even on the
|
|||
<h4><a class="anchor" href="#telegram-business" id="telegram-business" name="telegram-business"><i class="anchor-icon"></i></a><a href="/api/business">Telegram Business</a></h4>
|
||||
<p>Users can turn their Telegram account into a <strong>business account</strong>, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p>
|
||||
<p>For the moment, all Telegram Business features are available for free to <a href="/api/premium">Telegram Premium</a> subscribers. </p>
|
||||
<h4><a class="anchor" href="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>Mini app developers and content creators can use the Telegram Stars they've earned to <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">receive rewards in Toncoin</a> – or buy <strong>Telegram Ads</strong> at <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#subsidized-ads-for-creators-and-developers">special discounted rates</a>.</p>
|
||||
<p>This page describes the methods used to buy and withdraw Telegram Stars, as well as view detailed revenue stats. </p>
|
||||
<h4><a class="anchor" href="#channel-and-supergroup-boosts" id="channel-and-supergroup-boosts" name="channel-and-supergroup-boosts"><i class="anchor-icon"></i></a><a href="/api/boost">Channel and supergroup boosts</a></h4>
|
||||
<p><a href="/api/premium">Telegram Premium</a> users can grant their favorite channels additional features like the ability to post <a href="/api/stories">stories</a> by giving them <strong>boosts</strong>. </p>
|
||||
<h4><a class="anchor" href="#giveaways-amp-gifts" id="giveaways-amp-gifts" name="giveaways-amp-gifts"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways & gifts</a></h4>
|
||||
|
|
|
@ -207,8 +207,8 @@
|
|||
<ul>
|
||||
<li>Added <a href="/method/account.toggleSponsoredMessages">account.toggleSponsoredMessages</a> - </li>
|
||||
<li>Added <a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a> - Pin some stories to the top of the profile, see <a href="/api/stories#pinned-or-archived-stories">here »</a> for more info.</li>
|
||||
<li>Added <a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a> - </li>
|
||||
<li>Added <a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a> - </li>
|
||||
<li>Added <a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a> - Get the current <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</li>
|
||||
<li>Added <a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a> - Change the <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</li>
|
||||
</ul>
|
||||
<h5><a class="anchor" href="#changed-methods" id="changed-methods" name="changed-methods"><i class="anchor-icon"></i></a>Changed Methods</h5>
|
||||
<ul>
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
<html class="">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>Page not found</title>
|
||||
<title>Telegram Stars</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="">
|
||||
<meta property="og:title" content="Page not found">
|
||||
<meta property="description" content="Mini app developers and content creators can use the Telegram Stars they've earned to receive rewards in Toncoin – or buy Telegram Ads at special discounted rates. This page describes the methods used to buy and withdraw Telegram Stars, as well as view detailed revenue stats.">
|
||||
<meta property="og:title" content="Telegram Stars">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="">
|
||||
<meta property="og:description" content="Mini app developers and content creators can use the Telegram Stars they've earned to receive rewards in Toncoin – or buy Telegram Ads at special discounted rates. This page describes the methods used to buy and withdraw Telegram Stars, as well as view detailed revenue stats.">
|
||||
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
||||
|
@ -39,10 +39,41 @@
|
|||
<div class="container clearfix">
|
||||
<div class="dev_page">
|
||||
<div id="dev_page_content_wrap" class=" ">
|
||||
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li></li></ul></div>
|
||||
<h1 id="dev_page_title">Page not found</h1>
|
||||
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/stars" >Telegram Stars</a></li></ul></div>
|
||||
<h1 id="dev_page_title">Telegram Stars</h1>
|
||||
|
||||
<div id="dev_page_content">The page has not been saved</div>
|
||||
<div id="dev_page_content"><!-- scroll_nav -->
|
||||
|
||||
<p>Mini app developers and content creators can use the Telegram Stars they've earned to <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">receive rewards in Toncoin</a> – or buy <strong>Telegram Ads</strong> at <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#subsidized-ads-for-creators-and-developers">special discounted rates</a>.</p>
|
||||
<p>This page describes the methods used to buy and withdraw Telegram Stars, as well as view detailed revenue stats. </p>
|
||||
<h3><a class="anchor" href="#buying-telegram-stars" id="buying-telegram-stars" name="buying-telegram-stars"><i class="anchor-icon"></i></a>Buying Telegram Stars</h3>
|
||||
<h3><a class="anchor" href="#using-telegram-stars" id="using-telegram-stars" name="using-telegram-stars"><i class="anchor-icon"></i></a>Using Telegram Stars</h3>
|
||||
<h3><a class="anchor" href="#withdrawing-telegram-stars" id="withdrawing-telegram-stars" name="withdrawing-telegram-stars"><i class="anchor-icon"></i></a>Withdrawing Telegram Stars</h3>
|
||||
<pre><code><a href='/constructor/stats.broadcastRevenueWithdrawalUrl'>stats.broadcastRevenueWithdrawalUrl</a>#ec659737 url:<a href='/type/string'>string</a> = <a href='/type/stats.BroadcastRevenueWithdrawalUrl'>stats.BroadcastRevenueWithdrawalUrl</a>;
|
||||
|
||||
---functions---
|
||||
|
||||
<a href='/method/stats.getBroadcastRevenueWithdrawalUrl'>stats.getBroadcastRevenueWithdrawalUrl</a>#2a65ef73 channel:<a href='/type/InputChannel'>InputChannel</a> password:<a href='/type/InputCheckPasswordSRP'>InputCheckPasswordSRP</a> = <a href='/type/stats.BroadcastRevenueWithdrawalUrl'>stats.BroadcastRevenueWithdrawalUrl</a>;</code></pre>
|
||||
<h3><a class="anchor" href="#telegram-stars-revenue-statistics" id="telegram-stars-revenue-statistics" name="telegram-stars-revenue-statistics"><i class="anchor-icon"></i></a>Telegram Stars revenue statistics</h3>
|
||||
<pre><code><a href='/constructor/channelFull'>channelFull</a>#bbab348d flags:<a href='/type/%23'>#</a> can_view_participants:flags.3?<a href='/constructor/true'>true</a> can_set_username:flags.6?<a href='/constructor/true'>true</a> can_set_stickers:flags.7?<a href='/constructor/true'>true</a> hidden_prehistory:flags.10?<a href='/constructor/true'>true</a> can_set_location:flags.16?<a href='/constructor/true'>true</a> has_scheduled:flags.19?<a href='/constructor/true'>true</a> can_view_stats:flags.20?<a href='/constructor/true'>true</a> blocked:flags.22?<a href='/constructor/true'>true</a> flags2:<a href='/type/%23'>#</a> can_delete_channel:flags2.0?<a href='/constructor/true'>true</a> antispam:flags2.1?<a href='/constructor/true'>true</a> participants_hidden:flags2.2?<a href='/constructor/true'>true</a> translations_disabled:flags2.3?<a href='/constructor/true'>true</a> stories_pinned_available:flags2.5?<a href='/constructor/true'>true</a> view_forum_as_messages:flags2.6?<a href='/constructor/true'>true</a> restricted_sponsored:flags2.11?<a href='/constructor/true'>true</a> can_view_revenue:flags2.12?<a href='/constructor/true'>true</a> id:<a href='/type/long'>long</a> about:<a href='/type/string'>string</a> participants_count:flags.0?<a href='/type/int'>int</a> admins_count:flags.1?<a href='/type/int'>int</a> kicked_count:flags.2?<a href='/type/int'>int</a> banned_count:flags.2?<a href='/type/int'>int</a> online_count:flags.13?<a href='/type/int'>int</a> read_inbox_max_id:<a href='/type/int'>int</a> read_outbox_max_id:<a href='/type/int'>int</a> unread_count:<a href='/type/int'>int</a> chat_photo:<a href='/type/Photo'>Photo</a> notify_settings:<a href='/type/PeerNotifySettings'>PeerNotifySettings</a> exported_invite:flags.23?<a href='/type/ExportedChatInvite'>ExportedChatInvite</a> bot_info:<a href='/type/Vector%20t'>Vector</a><<a href='/type/BotInfo'>BotInfo</a>> migrated_from_chat_id:flags.4?<a href='/type/long'>long</a> migrated_from_max_id:flags.4?<a href='/type/int'>int</a> pinned_msg_id:flags.5?<a href='/type/int'>int</a> stickerset:flags.8?<a href='/type/StickerSet'>StickerSet</a> available_min_id:flags.9?<a href='/type/int'>int</a> folder_id:flags.11?<a href='/type/int'>int</a> linked_chat_id:flags.14?<a href='/type/long'>long</a> location:flags.15?<a href='/type/ChannelLocation'>ChannelLocation</a> slowmode_seconds:flags.17?<a href='/type/int'>int</a> slowmode_next_send_date:flags.18?<a href='/type/int'>int</a> stats_dc:flags.12?<a href='/type/int'>int</a> pts:<a href='/type/int'>int</a> call:flags.21?<a href='/type/InputGroupCall'>InputGroupCall</a> ttl_period:flags.24?<a href='/type/int'>int</a> pending_suggestions:flags.25?<a href='/type/Vector%20t'>Vector</a><<a href='/type/string'>string</a>> groupcall_default_join_as:flags.26?<a href='/type/Peer'>Peer</a> theme_emoticon:flags.27?<a href='/type/string'>string</a> requests_pending:flags.28?<a href='/type/int'>int</a> recent_requesters:flags.28?<a href='/type/Vector%20t'>Vector</a><<a href='/type/long'>long</a>> default_send_as:flags.29?<a href='/type/Peer'>Peer</a> available_reactions:flags.30?<a href='/type/ChatReactions'>ChatReactions</a> reactions_limit:flags2.13?<a href='/type/int'>int</a> stories:flags2.4?<a href='/type/PeerStories'>PeerStories</a> wallpaper:flags2.7?<a href='/type/WallPaper'>WallPaper</a> boosts_applied:flags2.8?<a href='/type/int'>int</a> boosts_unrestrict:flags2.9?<a href='/type/int'>int</a> emojiset:flags2.10?<a href='/type/StickerSet'>StickerSet</a> = <a href='/type/ChatFull'>ChatFull</a>;
|
||||
|
||||
<a href='/constructor/broadcastRevenueBalances'>broadcastRevenueBalances</a>#8438f1c6 current_balance:<a href='/type/long'>long</a> available_balance:<a href='/type/long'>long</a> overall_revenue:<a href='/type/long'>long</a> = <a href='/type/BroadcastRevenueBalances'>BroadcastRevenueBalances</a>;
|
||||
|
||||
<a href='/constructor/updateBroadcastRevenueTransactions'>updateBroadcastRevenueTransactions</a>#dfd961f5 peer:<a href='/type/Peer'>Peer</a> balances:<a href='/type/BroadcastRevenueBalances'>BroadcastRevenueBalances</a> = <a href='/type/Update'>Update</a>;
|
||||
|
||||
<a href='/constructor/stats.broadcastRevenueStats'>stats.broadcastRevenueStats</a>#5407e297 top_hours_graph:<a href='/type/StatsGraph'>StatsGraph</a> revenue_graph:<a href='/type/StatsGraph'>StatsGraph</a> balances:<a href='/type/BroadcastRevenueBalances'>BroadcastRevenueBalances</a> usd_rate:<a href='/type/double'>double</a> = <a href='/type/stats.BroadcastRevenueStats'>stats.BroadcastRevenueStats</a>;
|
||||
|
||||
<a href='/constructor/broadcastRevenueTransactionProceeds'>broadcastRevenueTransactionProceeds</a>#557e2cc4 amount:<a href='/type/long'>long</a> from_date:<a href='/type/int'>int</a> to_date:<a href='/type/int'>int</a> = <a href='/type/BroadcastRevenueTransaction'>BroadcastRevenueTransaction</a>;
|
||||
<a href='/constructor/broadcastRevenueTransactionWithdrawal'>broadcastRevenueTransactionWithdrawal</a>#5a590978 flags:<a href='/type/%23'>#</a> pending:flags.0?<a href='/constructor/true'>true</a> failed:flags.2?<a href='/constructor/true'>true</a> amount:<a href='/type/long'>long</a> date:<a href='/type/int'>int</a> provider:<a href='/type/string'>string</a> transaction_date:flags.1?<a href='/type/int'>int</a> transaction_url:flags.1?<a href='/type/string'>string</a> = <a href='/type/BroadcastRevenueTransaction'>BroadcastRevenueTransaction</a>;
|
||||
<a href='/constructor/broadcastRevenueTransactionRefund'>broadcastRevenueTransactionRefund</a>#42d30d2e amount:<a href='/type/long'>long</a> date:<a href='/type/int'>int</a> provider:<a href='/type/string'>string</a> = <a href='/type/BroadcastRevenueTransaction'>BroadcastRevenueTransaction</a>;
|
||||
|
||||
<a href='/constructor/stats.broadcastRevenueTransactions'>stats.broadcastRevenueTransactions</a>#87158466 count:<a href='/type/int'>int</a> transactions:<a href='/type/Vector%20t'>Vector</a><<a href='/type/BroadcastRevenueTransaction'>BroadcastRevenueTransaction</a>> = <a href='/type/stats.BroadcastRevenueTransactions'>stats.BroadcastRevenueTransactions</a>;
|
||||
|
||||
---functions---
|
||||
|
||||
<a href='/method/stats.getBroadcastRevenueStats'>stats.getBroadcastRevenueStats</a>#75dfb671 flags:<a href='/type/%23'>#</a> dark:flags.0?<a href='/constructor/true'>true</a> channel:<a href='/type/InputChannel'>InputChannel</a> = <a href='/type/stats.BroadcastRevenueStats'>stats.BroadcastRevenueStats</a>;
|
||||
|
||||
<a href='/method/stats.getBroadcastRevenueTransactions'>stats.getBroadcastRevenueTransactions</a>#69280f channel:<a href='/type/InputChannel'>InputChannel</a> offset:<a href='/type/int'>int</a> limit:<a href='/type/int'>int</a> = <a href='/type/stats.BroadcastRevenueTransactions'>stats.BroadcastRevenueTransactions</a>;</code></pre></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
@ -109,8 +140,11 @@
|
|||
</div>
|
||||
</div>
|
||||
<script src="/js/main.js?47"></script>
|
||||
|
||||
<script>backToTopInit("Go up");
|
||||
<script src="/js/jquery.min.js?1"></script>
|
||||
<script src="/js/bootstrap.min.js?1"></script>
|
||||
|
||||
<script>window.initDevPageNav&&initDevPageNav();
|
||||
backToTopInit("Go up");
|
||||
removePreloadInit();
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -4,16 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>account.getReactionsNotifySettings</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Result
|
||||
ReactionsNotifySettings">
|
||||
<meta property="description" content="Get the current reaction notification settings ».">
|
||||
<meta property="og:title" content="account.getReactionsNotifySettings">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Result
|
||||
ReactionsNotifySettings">
|
||||
<meta property="og:description" content="Get the current reaction notification settings ».">
|
||||
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
||||
|
@ -48,7 +42,8 @@ ReactionsNotifySettings">
|
|||
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/account.getReactionsNotifySettings" >account.getReactionsNotifySettings</a></li></ul></div>
|
||||
<h1 id="dev_page_title">account.getReactionsNotifySettings</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Get the current <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</p>
|
||||
<p><div class="clearfix">
|
||||
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
|
||||
|
@ -66,7 +61,10 @@ ReactionsNotifySettings">
|
|||
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
|
||||
<p>This constructor does not require any parameters.</p>
|
||||
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
|
||||
<p><a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a></p></div>
|
||||
<p><a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a></p>
|
||||
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
|
||||
<h4><a class="anchor" href="#message-reactions" id="message-reactions" name="message-reactions"><i class="anchor-icon"></i></a><a href="/api/reactions">Message reactions</a></h4>
|
||||
<p>Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,26 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>account.setReactionsNotifySettings</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
settings
|
||||
ReactionsNotifySettings
|
||||
|
||||
Result
|
||||
ReactionsNotifySettings">
|
||||
<meta property="description" content="Change the reaction notification settings ».">
|
||||
<meta property="og:title" content="account.setReactionsNotifySettings">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
settings
|
||||
ReactionsNotifySettings
|
||||
|
||||
Result
|
||||
ReactionsNotifySettings">
|
||||
<meta property="og:description" content="Change the reaction notification settings ».">
|
||||
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
||||
|
@ -58,7 +42,8 @@ ReactionsNotifySettings">
|
|||
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/account.setReactionsNotifySettings" >account.setReactionsNotifySettings</a></li></ul></div>
|
||||
<h1 id="dev_page_title">account.setReactionsNotifySettings</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Change the <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</p>
|
||||
<p><div class="clearfix">
|
||||
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
|
||||
|
@ -86,12 +71,15 @@ ReactionsNotifySettings">
|
|||
<tr>
|
||||
<td><strong>settings</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a></td>
|
||||
<td> </td>
|
||||
<td>New reaction notification settings.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
|
||||
<p><a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a></p></div>
|
||||
<p><a href="/type/ReactionsNotifySettings">ReactionsNotifySettings</a></p>
|
||||
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
|
||||
<h4><a class="anchor" href="#message-reactions" id="message-reactions" name="message-reactions"><i class="anchor-icon"></i></a><a href="/api/reactions">Message reactions</a></h4>
|
||||
<p>Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -339,6 +339,45 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-sms-jobs" id="working-with-sms-jobs" name="working-with-sms-jobs"><i class="anchor-icon"></i></a>Working with SMS jobs</h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.isEligibleToJoin">smsjobs.isEligibleToJoin</a></td>
|
||||
<td>Check if we can process SMS jobs (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.join">smsjobs.join</a></td>
|
||||
<td>Enable SMS jobs (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.leave">smsjobs.leave</a></td>
|
||||
<td>Disable SMS jobs (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.updateSettings">smsjobs.updateSettings</a></td>
|
||||
<td>Update SMS job settings (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.getStatus">smsjobs.getStatus</a></td>
|
||||
<td>Get SMS jobs status (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.getSmsJob">smsjobs.getSmsJob</a></td>
|
||||
<td>Get info about an SMS job (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.finishJob">smsjobs.finishJob</a></td>
|
||||
<td>Finish an SMS job (official clients only).</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-tsf-internal-use-only" id="working-with-tsf-internal-use-only" name="working-with-tsf-internal-use-only"><i class="anchor-icon"></i></a>Working with TSF (internal use only)</h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -474,6 +513,91 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-telegram-business-connected-bots-" id="working-with-telegram-business-connected-bots-" name="working-with-telegram-business-connected-bots-"><i class="anchor-icon"></i></a>Working with <a href="/api/business#connected-bots">Telegram Business connected bots »</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/account.updateConnectedBot">account.updateConnectedBot</a></td>
|
||||
<td>Connect a <a href="/api/business#connected-bots">business bot »</a> to the current account, or to change the current connection settings.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.getConnectedBots">account.getConnectedBots</a></td>
|
||||
<td>List all currently connected <a href="/api/business#connected-bots">business bots »</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.toggleConnectedBotPaused">account.toggleConnectedBotPaused</a></td>
|
||||
<td>Pause or unpause a specific chat, temporarily disconnecting it from all <a href="/api/business#connected-bots">business bots »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/invokeWithBusinessConnection">invokeWithBusinessConnection</a></td>
|
||||
<td>Invoke a method using a <a href="/api/business#connected-bots">Telegram Business Bot connection, see here » for more info, including a list of the methods that can be wrapped in this constructor</a>.<br><br>Make sure to always send queries wrapped in a <code>invokeWithBusinessConnection</code> to the datacenter ID, specified in the <code>dc_id</code> field of the <a href="/constructor/botBusinessConnection">botBusinessConnection</a> that is being used.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-telegram-business-opening-hours-" id="working-with-telegram-business-opening-hours-" name="working-with-telegram-business-opening-hours-"><i class="anchor-icon"></i></a>Working with <a href="/api/business#opening-hours">Telegram Business opening hours »</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/account.updateBusinessWorkHours">account.updateBusinessWorkHours</a></td>
|
||||
<td>Specify a set of <a href="/api/business#opening-hours">Telegram Business opening hours</a>. <br>This info will be contained in <a href="/constructor/userFull">userFull</a>.<code>business_work_hours</code>.<br><br>To remove all opening hours, invoke the method without setting the <code>business_work_hours</code> field.<br><br>Note that the opening hours specified by the user must be appropriately validated and transformed before invoking the method, as specified <a href="/api/business#opening-hours">here »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-telegram-business-quick-reply-shortcuts-" id="working-with-telegram-business-quick-reply-shortcuts-" name="working-with-telegram-business-quick-reply-shortcuts-"><i class="anchor-icon"></i></a>Working with <a href="/api/business#quick-reply-shortcuts">Telegram Business quick reply shortcuts »</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getQuickReplies">messages.getQuickReplies</a></td>
|
||||
<td>Fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a></td>
|
||||
<td>Reorder <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.<br><br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a></td>
|
||||
<td>Before offering the user the choice to add a message to a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>, to make sure that none of the limits specified <a href="/api/business#quick-reply-shortcuts">here »</a> were reached.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a></td>
|
||||
<td>Rename a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a></td>
|
||||
<td>Completely delete a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will also emit an <a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a> update to other logged-in sessions (and <em>no</em> <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> updates, even if all the messages in the shortcuts are also deleted by this method).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getQuickReplyMessages">messages.getQuickReplyMessages</a></td>
|
||||
<td>Fetch (a subset or all) messages in a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a></td>
|
||||
<td>Send a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a></td>
|
||||
<td>Delete one or more messages from a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. This will also emit an <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> update.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-voip-calls" id="working-with-voip-calls" name="working-with-voip-calls"><i class="anchor-icon"></i></a>Working with <a href="/api/end-to-end/voice-calls">VoIP calls</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -881,6 +1005,10 @@ Look for updates of telegram's terms of service…">
|
|||
<td><a href="/method/channels.convertToGigagroup">channels.convertToGigagroup</a></td>
|
||||
<td>Convert a <a href="/api/channel">supergroup</a> to a <a href="/api/channel">gigagroup</a>, when requested by <a href="/api/config#channel-suggestions">channel suggestions</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/channels.setEmojiStickers">channels.setEmojiStickers</a></td>
|
||||
<td>Set a <a href="/api/custom-emoji">custom emoji stickerset</a> for supergroups. Only usable after reaching at least the <a href="/api/boost">boost level »</a> specified in the <a href="/api/config#group-emoji-stickers-level-min"><code>group_emoji_stickers_level_min</code> »</a> config parameter.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-cloud-themes" id="working-with-cloud-themes" name="working-with-cloud-themes"><i class="anchor-icon"></i></a>Working with <a href="/api/themes">cloud themes</a></h3>
|
||||
|
@ -952,18 +1080,6 @@ Look for updates of telegram's terms of service…">
|
|||
<td>Gets featured custom emoji stickersets.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiGroups">messages.getEmojiGroups</a></td>
|
||||
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting <a href="/api/custom-emoji">custom emojis</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiStatusGroups">messages.getEmojiStatusGroups</a></td>
|
||||
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting custom emojis to set as <a href="/api">custom emoji status</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiProfilePhotoGroups">messages.getEmojiProfilePhotoGroups</a></td>
|
||||
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting custom emojis to set as <a href="/api/files#sticker-profile-pictures">profile picture</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.searchCustomEmoji">messages.searchCustomEmoji</a></td>
|
||||
<td>Look for <a href="/api/custom-emoji">custom emojis</a> associated to a UTF8 emoji</td>
|
||||
</tr>
|
||||
|
@ -1000,6 +1116,33 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-emoji-categories" id="working-with-emoji-categories" name="working-with-emoji-categories"><i class="anchor-icon"></i></a>Working with <a href="/api/emoji-categories">emoji categories</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiStickerGroups">messages.getEmojiStickerGroups</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiGroups">messages.getEmojiGroups</a></td>
|
||||
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting <a href="/api/custom-emoji">custom emojis</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiStatusGroups">messages.getEmojiStatusGroups</a></td>
|
||||
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting custom emojis to set as <a href="/api">custom emoji status</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiProfilePhotoGroups">messages.getEmojiProfilePhotoGroups</a></td>
|
||||
<td>Represents a list of <a href="/api/custom-emoji#emoji-categories">emoji categories</a>, to be used when selecting custom emojis to set as <a href="/api/files#sticker-profile-pictures">profile picture</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-emoji-keywords" id="working-with-emoji-keywords" name="working-with-emoji-keywords"><i class="anchor-icon"></i></a>Working with <a href="/api/custom-emoji#emoji-keywords">emoji keywords</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -1405,6 +1548,25 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-reaction-notification-settings-" id="working-with-reaction-notification-settings-" name="working-with-reaction-notification-settings-"><i class="anchor-icon"></i></a>Working with <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a></td>
|
||||
<td>Get the current <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a></td>
|
||||
<td>Change the <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-saved-message-dialogs-" id="working-with-saved-message-dialogs-" name="working-with-saved-message-dialogs-"><i class="anchor-icon"></i></a>Working with <a href="/api/saved-messages">saved message dialogs »</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -1440,6 +1602,29 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-saved-message-tags-" id="working-with-saved-message-tags-" name="working-with-saved-message-tags-"><i class="anchor-icon"></i></a>Working with <a href="/api/saved-messages#tags">saved message tags »</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getSavedReactionTags">messages.getSavedReactionTags</a></td>
|
||||
<td>Fetch the full list of <a href="/api/saved-messages#tags">saved message tags</a> created by the user.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.updateSavedReactionTag">messages.updateSavedReactionTag</a></td>
|
||||
<td>Update the <a href="/api/saved-messages#tags">description of a saved message tag »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getDefaultTagReactions">messages.getDefaultTagReactions</a></td>
|
||||
<td>Fetch a default recommended list of <a href="/api/saved-messages#tags">saved message tag reactions</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-secret-chats" id="working-with-secret-chats" name="working-with-secret-chats"><i class="anchor-icon"></i></a>Working with <a href="/api/end-to-end">secret chats</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -3089,6 +3274,21 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-timezones" id="working-with-timezones" name="working-with-timezones"><i class="anchor-icon"></i></a>Working with timezones</h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/help.getTimezonesList">help.getTimezonesList</a></td>
|
||||
<td>Returns timezone information that may be used elsewhere in the API, such as to set <a href="/api/business#opening-hours">Telegram Business opening hours »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-user-profile-pictures" id="working-with-user-profile-pictures" name="working-with-user-profile-pictures"><i class="anchor-icon"></i></a>Working with user profile pictures</h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -3161,18 +3361,6 @@ Look for updates of telegram's terms of service…">
|
|||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getSavedReactionTags">messages.getSavedReactionTags</a></td>
|
||||
<td>Fetch the full list of <a href="/api/saved-messages#tags">saved message tags</a> created by the user.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.updateSavedReactionTag">messages.updateSavedReactionTag</a></td>
|
||||
<td>Update the <a href="/api/saved-messages#tags">description of a saved message tag »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getDefaultTagReactions">messages.getDefaultTagReactions</a></td>
|
||||
<td>Fetch a default recommended list of <a href="/api/saved-messages#tags">saved message tag reactions</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getOutboxReadDate">messages.getOutboxReadDate</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
@ -3185,46 +3373,6 @@ Look for updates of telegram's terms of service…">
|
|||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/channels.setEmojiStickers">channels.setEmojiStickers</a></td>
|
||||
<td>Set a <a href="/api/custom-emoji">custom emoji stickerset</a> for supergroups. Only usable after reaching at least the <a href="/api/boost">boost level »</a> specified in the <a href="/api/config#group-emoji-stickers-level-min"><code>group_emoji_stickers_level_min</code> »</a> config parameter.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.isEligibleToJoin">smsjobs.isEligibleToJoin</a></td>
|
||||
<td>Check if we can process SMS jobs (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.join">smsjobs.join</a></td>
|
||||
<td>Enable SMS jobs (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.leave">smsjobs.leave</a></td>
|
||||
<td>Disable SMS jobs (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.updateSettings">smsjobs.updateSettings</a></td>
|
||||
<td>Update SMS job settings (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.getStatus">smsjobs.getStatus</a></td>
|
||||
<td>Get SMS jobs status (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.getSmsJob">smsjobs.getSmsJob</a></td>
|
||||
<td>Get info about an SMS job (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/smsjobs.finishJob">smsjobs.finishJob</a></td>
|
||||
<td>Finish an SMS job (official clients only).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/help.getTimezonesList">help.getTimezonesList</a></td>
|
||||
<td>Returns timezone information that may be used elsewhere in the API, such as to set <a href="/api/business#opening-hours">Telegram Business opening hours »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.updateBusinessWorkHours">account.updateBusinessWorkHours</a></td>
|
||||
<td>Specify a set of <a href="/api/business#opening-hours">Telegram Business opening hours</a>. <br>This info will be contained in <a href="/constructor/userFull">userFull</a>.<code>business_work_hours</code>.<br><br>To remove all opening hours, invoke the method without setting the <code>business_work_hours</code> field.<br><br>Note that the opening hours specified by the user must be appropriately validated and transformed before invoking the method, as specified <a href="/api/business#opening-hours">here »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.updateBusinessLocation">account.updateBusinessLocation</a></td>
|
||||
<td><a href="/api/business#location">Businesses »</a> may advertise their location using this method, see <a href="/api/business#location">here »</a> for more info.<br><br>To remove business location information invoke the method without setting any of the parameters.</td>
|
||||
</tr>
|
||||
|
@ -3237,54 +3385,10 @@ Look for updates of telegram's terms of service…">
|
|||
<td>Set a list of <a href="/api/business#away-messages">Telegram Business away messages</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getQuickReplies">messages.getQuickReplies</a></td>
|
||||
<td>Fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a></td>
|
||||
<td>Reorder <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.<br><br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a></td>
|
||||
<td>Before offering the user the choice to add a message to a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>, to make sure that none of the limits specified <a href="/api/business#quick-reply-shortcuts">here »</a> were reached.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a></td>
|
||||
<td>Rename a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a></td>
|
||||
<td>Completely delete a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will also emit an <a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a> update to other logged-in sessions (and <em>no</em> <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> updates, even if all the messages in the shortcuts are also deleted by this method).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getQuickReplyMessages">messages.getQuickReplyMessages</a></td>
|
||||
<td>Fetch (a subset or all) messages in a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a></td>
|
||||
<td>Send a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a></td>
|
||||
<td>Delete one or more messages from a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. This will also emit an <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> update.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.updateConnectedBot">account.updateConnectedBot</a></td>
|
||||
<td>Connect a <a href="/api/business#connected-bots">business bot »</a> to the current account, or to change the current connection settings.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.getConnectedBots">account.getConnectedBots</a></td>
|
||||
<td>List all currently connected <a href="/api/business#connected-bots">business bots »</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.toggleDialogFilterTags">messages.toggleDialogFilterTags</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/invokeWithBusinessConnection">invokeWithBusinessConnection</a></td>
|
||||
<td>Invoke a method using a <a href="/api/business#connected-bots">Telegram Business Bot connection, see here » for more info, including a list of the methods that can be wrapped in this constructor</a>.<br><br>Make sure to always send queries wrapped in a <code>invokeWithBusinessConnection</code> to the datacenter ID, specified in the <code>dc_id</code> field of the <a href="/constructor/botBusinessConnection">botBusinessConnection</a> that is being used.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.getBotBusinessConnection">account.getBotBusinessConnection</a></td>
|
||||
<td>Bots may invoke this method to re-fetch the <a href="/constructor/updateBotBusinessConnect">updateBotBusinessConnect</a> constructor associated with a specific <a href="/api/business#connected-bots">business <code>connection_id</code>, see here »</a> for more info on connected business bots. <br>This is needed for example for freshly logged in bots that are receiving some <a href="/constructor/updateBotNewBusinessMessage">updateBotNewBusinessMessage</a>, etc. updates because some users have already connected to the bot before it could login. <br>In this case, the bot is receiving messages from the business connection, but it hasn't cached the associated <a href="/constructor/updateBotBusinessConnect">updateBotBusinessConnect</a> with info about the connection (can it reply to messages? etc.) yet, and cannot receive the old ones because they were sent when the bot wasn't logged into the session yet. <br>This method can be used to fetch info about a not-yet-cached business connection, and should not be invoked if the info is already cached or to fetch changes, as eventual changes will automatically be sent as new <a href="/constructor/updateBotBusinessConnect">updateBotBusinessConnect</a> updates to the bot using the usual <a href="/api/updates">update delivery methods »</a>.</td>
|
||||
</tr>
|
||||
|
@ -3305,10 +3409,6 @@ Look for updates of telegram's terms of service…">
|
|||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.toggleConnectedBotPaused">account.toggleConnectedBotPaused</a></td>
|
||||
<td>Pause or unpause a specific chat, temporarily disconnecting it from all <a href="/api/business#connected-bots">business bots »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.disablePeerConnectedBot">account.disablePeerConnectedBot</a></td>
|
||||
<td>Permanently disconnect a specific chat from all <a href="/api/business#connected-bots">business bots »</a> (equivalent to specifying it in <code>recipients.exclude_users</code> during initial configuration with <a href="/method/account.updateConnectedBot">account.updateConnectedBot »</a>); to reconnect of a chat disconnected using this method the user must reconnect the entire bot by invoking <a href="/method/account.updateConnectedBot">account.updateConnectedBot »</a>.</td>
|
||||
</tr>
|
||||
|
@ -3373,22 +3473,10 @@ Look for updates of telegram's terms of service…">
|
|||
<td>Pin some stories to the top of the profile, see <a href="/api/stories#pinned-or-archived-stories">here »</a> for more info.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/auth.reportMissingCode">auth.reportMissingCode</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/messages.getEmojiStickerGroups">messages.getEmojiStickerGroups</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/invokeWithGooglePlayIntegrity">invokeWithGooglePlayIntegrity</a></td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
|
|
|
@ -53,9 +53,9 @@
|
|||
<h5><a class="anchor" href="#1-client-sends-query-to-server" id="1-client-sends-query-to-server" name="1-client-sends-query-to-server"><i class="anchor-icon"></i></a>1) Client sends query to server</h5>
|
||||
<!-- start req_pq_multi -->
|
||||
<p>Sent payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 04 A6 0C 00 51 C7 93 66
|
||||
0010 | 14 00 00 00 F1 8E 7E BE F3 37 16 0C 19 9F 9C AA
|
||||
0020 | 53 58 53 DB 57 2E 50 F7</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 9C 78 0D 00 ED 0C 94 66
|
||||
0010 | 14 00 00 00 F1 8E 7E BE 97 54 B5 97 0F EC 0D 63
|
||||
0020 | 16 2C 80 52 33 C8 E5 18</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>04A60C0051C79366</code></td>
|
||||
<td><code>9C780D00ED0C9466</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -95,7 +95,7 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Random number</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -104,11 +104,11 @@
|
|||
<h5><a class="anchor" href="#2-server-sends-response-of-the-form" id="2-server-sends-response-of-the-form" name="2-server-sends-response-of-the-form"><i class="anchor-icon"></i></a>2) Server sends response of the form</h5>
|
||||
<!-- start resPQ -->
|
||||
<p>Received payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 20 02 C8 51 C7 93 66
|
||||
0010 | B4 00 00 00 63 24 16 05 F3 37 16 0C 19 9F 9C AA
|
||||
0020 | 53 58 53 DB 57 2E 50 F7 D1 3D 8D A2 85 73 BA 19
|
||||
0030 | 6E AE F2 94 2F 4E 87 3E 08 19 CF C6 5C 4B B8 5F
|
||||
0040 | E9 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 D0 92 D9 ED 0C 94 66
|
||||
0010 | 80 00 00 00 63 24 16 05 97 54 B5 97 0F EC 0D 63
|
||||
0020 | 16 2C 80 52 33 C8 E5 18 8A C0 CE 2C D5 BD D5 93
|
||||
0030 | 86 26 E2 71 F7 E5 65 0E 08 13 14 F7 66 64 11 E5
|
||||
0040 | 69 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</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
|
@ -132,13 +132,13 @@
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>012002C851C79366</code></td>
|
||||
<td><code>01D092D9ED0C9466</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>B4000000</code> (180 in decimal)</td>
|
||||
<td><code>80000000</code> (128 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -150,19 +150,19 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Server-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pq</td>
|
||||
<td>56, 12</td>
|
||||
<td><code>0819CFC65C4BB85FE9000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1859923270836969449</td>
|
||||
<td><code>081314F7666411E569000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1374995805392463209</td>
|
||||
<td>Single-byte prefix denoting length, an 8-byte string, and three bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -208,22 +208,22 @@
|
|||
<h4><a class="anchor" href="#proof-of-work" id="proof-of-work" name="proof-of-work"><i class="anchor-icon"></i></a>Proof of work</h4>
|
||||
<h5><a class="anchor" href="#3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" id="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" name="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q"><i class="anchor-icon"></i></a>3) Client decomposes pq into prime factors such that p < q.</h5>
|
||||
<!-- start pq -->
|
||||
<pre><code>pq = 1859923270836969449</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>1859923270836969449 = 1119173987 * 1661871427</code></p>
|
||||
<pre><code>p = 1119173987
|
||||
q = 1661871427</code></pre>
|
||||
<pre><code>pq = 1374995805392463209</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>1374995805392463209 = 1171537639 * 1173667631</code></p>
|
||||
<pre><code>p = 1171537639
|
||||
q = 1173667631</code></pre>
|
||||
<!-- end pq -->
|
||||
<h4><a class="anchor" href="#presenting-proof-of-work-server-authentication" id="presenting-proof-of-work-server-authentication" name="presenting-proof-of-work-server-authentication"><i class="anchor-icon"></i></a>Presenting proof of work; Server authentication</h4>
|
||||
<h5><a class="anchor" href="#4-encrypted-data-payload-generation" id="4-encrypted-data-payload-generation" name="4-encrypted-data-payload-generation"><i class="anchor-icon"></i></a>4) <code>encrypted_data</code> payload generation</h5>
|
||||
<p>First of all, generate an <code>encrypted_data</code> payload as follows:</p>
|
||||
<!-- start p_q_inner_data_dc -->
|
||||
<p>Generated payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 95 5F F5 A9 08 19 CF C6 5C 4B B8 5F E9 00 00 00
|
||||
0010 | 04 42 B5 3D 63 00 00 00 04 63 0E 25 43 00 00 00
|
||||
0020 | F3 37 16 0C 19 9F 9C AA 53 58 53 DB 57 2E 50 F7
|
||||
0030 | D1 3D 8D A2 85 73 BA 19 6E AE F2 94 2F 4E 87 3E
|
||||
0040 | 08 44 DD AD 1D 70 DE 0E 77 77 D0 44 8E 0B BC 9B
|
||||
0050 | F8 19 81 6F AB F0 B2 07 3A 44 30 61 B4 40 CE 82
|
||||
<pre><code>0000 | 95 5F F5 A9 08 13 14 F7 66 64 11 E5 69 00 00 00
|
||||
0010 | 04 45 D4 3E E7 00 00 00 04 45 F4 BF 2F 00 00 00
|
||||
0020 | 97 54 B5 97 0F EC 0D 63 16 2C 80 52 33 C8 E5 18
|
||||
0030 | 8A C0 CE 2C D5 BD D5 93 86 26 E2 71 F7 E5 65 0E
|
||||
0040 | 20 DF 2E C3 22 9D 8D 8D 49 13 98 26 C2 28 48 89
|
||||
0050 | 13 7C E6 05 6B 73 1E D8 F1 9C F4 31 7A 02 F5 C1
|
||||
0060 | 02 00 00 00</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>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;</code></pre>
|
||||
|
@ -246,37 +246,37 @@ q = 1661871427</code></pre>
|
|||
<tr>
|
||||
<td>pq</td>
|
||||
<td>4, 12</td>
|
||||
<td><code>0819CFC65C4BB85FE9000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1859923270836969449</td>
|
||||
<td><code>081314F7666411E569000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1374995805392463209</td>
|
||||
<td>Single-byte prefix denoting length, 8-byte string, and three bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>p</td>
|
||||
<td>16, 8</td>
|
||||
<td><code>0442B53D63000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1119173987</td>
|
||||
<td><code>0445D43EE7000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1171537639</td>
|
||||
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>q</td>
|
||||
<td>24, 8</td>
|
||||
<td><code>04630E2543000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1661871427</td>
|
||||
<td><code>0445F4BF2F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1173667631</td>
|
||||
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>32, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>48, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce</td>
|
||||
<td>64, 32</td>
|
||||
<td><code>0844DDAD1D70DE0E7777D0448E0BBC9B</code> <code>F819816FABF0B2073A443061B440CE82</code></td>
|
||||
<td><code>20DF2EC3229D8D8D49139826C2284889</code> <code>137CE6056B731ED8F19CF4317A02F5C1</code></td>
|
||||
<td>Client-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -291,39 +291,39 @@ q = 1661871427</code></pre>
|
|||
<p>The serialization of <em>P_Q_inner_data</em> produces <strong>data</strong>, which is used to generate <strong>encrypted_data</strong> as specified in <a href="/mtproto/auth_key">step 4.1</a>.<br>
|
||||
These are the inputs to the algorithm specified in <a href="/mtproto/auth_key">step 4.1</a>:</p>
|
||||
<!-- start p_q_inner_data_input -->
|
||||
<pre><code>data = 955FF5A90819CFC65C4BB85FE90000000442B53D6300000004630E2543000000F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873E0844DDAD1D70DE0E7777D0448E0BBC9BF819816FABF0B2073A443061B440CE8202000000
|
||||
random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5860FA9D26DEDA81B3C11D53CDC5678016E315E7599E6A73A10EF03D59AD12EB24E16C4180BCA1CF7FD2CDB4AA6907EAB577C8D523E42E6F06CC2A85CD7BEEBF</code></pre>
|
||||
<pre><code>data = 955FF5A9081314F7666411E5690000000445D43EE70000000445F4BF2F0000009754B5970FEC0D63162C805233C8E5188AC0CE2CD5BDD5938626E271F7E5650E20DF2EC3229D8D8D49139826C2284889137CE6056B731ED8F19CF4317A02F5C102000000
|
||||
random_padding_bytes = 9F5DE315552DEDDFB4BB2AA7D4FBBF6558CB75342792DD51EC17B9CD3B3E7CDBD8F85EDCF96CA01B6763ADF76B5003649C512B09AA609DB0AB44AE3DCCE2468BDA517FD1BD9DD975B514782C42EBF96803A89F19D06854A7B65F21E1</code></pre>
|
||||
<!-- end p_q_inner_data_input -->
|
||||
<p>And this is the output:</p>
|
||||
<!-- start p_q_inner_data_output -->
|
||||
<pre><code>encrypted_data = 64E271BF386687E6ADEC37485DB0F8CBDF67344B7F05B36124CB75E3DF6BE01AF164BDB246C102E9840F8389BBC5D6F82581AD90959E00EB9C1ECBBF440F3638495BF078EA127F8CCED1DD6E8C3E8F42E2FB974152A56C6700F172D4173A22D66A7DD836721084E130D7D6716A202990EDD0164510EAEFAF319121861E3B6D6FD3FCB90233AA85B01B99E3596B0B4173CE255AAA13AA08A089AD4EE121DFC531204A8D0114321B9D1EF75EDA89F0C9C31DE395153A5ADC434881C04F0541C98668947CA88096D8CA32D47F2073168B9579423A7A89873ADE02BD9C7BAD72776C3600E86A0B7ED686199F22388142FDB26C77F311D3A2323120DD3852C650B5AD</code></pre>
|
||||
<pre><code>encrypted_data = B9CEB5287698BDE5FC2C853ED3E5316AD7DB814D430AB517B268CA9173195061AA8CB5E70DC7DEFABD2676ECBCFB48B6D5381EB43CD5B1353974ABBDB9721C4E2ADEE49A7C045B9B87A74FF941AC57730C9CE5932FA9BCC9870BEEEB2BD91CD312829CD45ABD85E17EF5FDC449260DD22FC6DA898C4DDEC071A1FF5C67509644C91F8FD7B0D6B06736690D1F9AEB2E023752AE61BD7D4FE825452E84032FB91F719174BC2E59A51987B8B84BED1DEE8094B628600ED30174FFAD63269F236F9AD50E971E3DC98A5D05276DD3D85EDA1509BAEFCB317A6790A685BA582FEC25FB493253DA30DE78D1A84B2F892103EE6B551D91FD125971EFCDF086FBF97F8185</code></pre>
|
||||
<!-- end p_q_inner_data_output -->
|
||||
<p>The length of the final string is 256 bytes.</p>
|
||||
<h5><a class="anchor" href="#5-send-req-dh-params-query-with-generated-encrypted-data" id="5-send-req-dh-params-query-with-generated-encrypted-data" name="5-send-req-dh-params-query-with-generated-encrypted-data"><i class="anchor-icon"></i></a>5) Send req_DH_params query with generated <code>encrypted_data</code></h5>
|
||||
<!-- start req_DH_params -->
|
||||
<p>Sent payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 08 A6 0C 00 51 C7 93 66
|
||||
0010 | 40 01 00 00 BE E4 12 D7 F3 37 16 0C 19 9F 9C AA
|
||||
0020 | 53 58 53 DB 57 2E 50 F7 D1 3D 8D A2 85 73 BA 19
|
||||
0030 | 6E AE F2 94 2F 4E 87 3E 04 42 B5 3D 63 00 00 00
|
||||
0040 | 04 63 0E 25 43 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 64 E2 71 BF 38 66 87 E6 AD EC 37 48
|
||||
0060 | 5D B0 F8 CB DF 67 34 4B 7F 05 B3 61 24 CB 75 E3
|
||||
0070 | DF 6B E0 1A F1 64 BD B2 46 C1 02 E9 84 0F 83 89
|
||||
0080 | BB C5 D6 F8 25 81 AD 90 95 9E 00 EB 9C 1E CB BF
|
||||
0090 | 44 0F 36 38 49 5B F0 78 EA 12 7F 8C CE D1 DD 6E
|
||||
00A0 | 8C 3E 8F 42 E2 FB 97 41 52 A5 6C 67 00 F1 72 D4
|
||||
00B0 | 17 3A 22 D6 6A 7D D8 36 72 10 84 E1 30 D7 D6 71
|
||||
00C0 | 6A 20 29 90 ED D0 16 45 10 EA EF AF 31 91 21 86
|
||||
00D0 | 1E 3B 6D 6F D3 FC B9 02 33 AA 85 B0 1B 99 E3 59
|
||||
00E0 | 6B 0B 41 73 CE 25 5A AA 13 AA 08 A0 89 AD 4E E1
|
||||
00F0 | 21 DF C5 31 20 4A 8D 01 14 32 1B 9D 1E F7 5E DA
|
||||
0100 | 89 F0 C9 C3 1D E3 95 15 3A 5A DC 43 48 81 C0 4F
|
||||
0110 | 05 41 C9 86 68 94 7C A8 80 96 D8 CA 32 D4 7F 20
|
||||
0120 | 73 16 8B 95 79 42 3A 7A 89 87 3A DE 02 BD 9C 7B
|
||||
0130 | AD 72 77 6C 36 00 E8 6A 0B 7E D6 86 19 9F 22 38
|
||||
0140 | 81 42 FD B2 6C 77 F3 11 D3 A2 32 31 20 DD 38 52
|
||||
0150 | C6 50 B5 AD</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 20 4E 03 00 EE 0C 94 66
|
||||
0010 | 40 01 00 00 BE E4 12 D7 97 54 B5 97 0F EC 0D 63
|
||||
0020 | 16 2C 80 52 33 C8 E5 18 8A C0 CE 2C D5 BD D5 93
|
||||
0030 | 86 26 E2 71 F7 E5 65 0E 04 45 D4 3E E7 00 00 00
|
||||
0040 | 04 45 F4 BF 2F 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 B9 CE B5 28 76 98 BD E5 FC 2C 85 3E
|
||||
0060 | D3 E5 31 6A D7 DB 81 4D 43 0A B5 17 B2 68 CA 91
|
||||
0070 | 73 19 50 61 AA 8C B5 E7 0D C7 DE FA BD 26 76 EC
|
||||
0080 | BC FB 48 B6 D5 38 1E B4 3C D5 B1 35 39 74 AB BD
|
||||
0090 | B9 72 1C 4E 2A DE E4 9A 7C 04 5B 9B 87 A7 4F F9
|
||||
00A0 | 41 AC 57 73 0C 9C E5 93 2F A9 BC C9 87 0B EE EB
|
||||
00B0 | 2B D9 1C D3 12 82 9C D4 5A BD 85 E1 7E F5 FD C4
|
||||
00C0 | 49 26 0D D2 2F C6 DA 89 8C 4D DE C0 71 A1 FF 5C
|
||||
00D0 | 67 50 96 44 C9 1F 8F D7 B0 D6 B0 67 36 69 0D 1F
|
||||
00E0 | 9A EB 2E 02 37 52 AE 61 BD 7D 4F E8 25 45 2E 84
|
||||
00F0 | 03 2F B9 1F 71 91 74 BC 2E 59 A5 19 87 B8 B8 4B
|
||||
0100 | ED 1D EE 80 94 B6 28 60 0E D3 01 74 FF AD 63 26
|
||||
0110 | 9F 23 6F 9A D5 0E 97 1E 3D C9 8A 5D 05 27 6D D3
|
||||
0120 | D8 5E DA 15 09 BA EF CB 31 7A 67 90 A6 85 BA 58
|
||||
0130 | 2F EC 25 FB 49 32 53 DA 30 DE 78 D1 A8 4B 2F 89
|
||||
0140 | 21 03 EE 6B 55 1D 91 FD 12 59 71 EF CD F0 86 FB
|
||||
0150 | F9 7F 81 85</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -345,7 +345,7 @@ random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>08A60C0051C79366</code></td>
|
||||
<td><code>204E0300EE0C9466</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -363,25 +363,25 @@ random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>p</td>
|
||||
<td>56, 8</td>
|
||||
<td><code>0442B53D63000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1119173987</td>
|
||||
<td><code>0445D43EE7000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1171537639</td>
|
||||
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>q</td>
|
||||
<td>64, 8</td>
|
||||
<td><code>04630E2543000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1661871427</td>
|
||||
<td><code>0445F4BF2F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1173667631</td>
|
||||
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -393,7 +393,7 @@ random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5
|
|||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>80, 260</td>
|
||||
<td><code>FE00010064E271BF386687E6ADEC3748</code> <code>5DB0F8CBDF67344B7F05B36124CB75E3</code> <code>DF6BE01AF164BDB246C102E9840F8389</code> <code>BBC5D6F82581AD90959E00EB9C1ECBBF</code> <code>440F3638495BF078EA127F8CCED1DD6E</code> <code>8C3E8F42E2FB974152A56C6700F172D4</code> <code>173A22D66A7DD836721084E130D7D671</code> <code>6A202990EDD0164510EAEFAF31912186</code> <code>1E3B6D6FD3FCB90233AA85B01B99E359</code> <code>6B0B4173CE255AAA13AA08A089AD4EE1</code> <code>21DFC531204A8D0114321B9D1EF75EDA</code> <code>89F0C9C31DE395153A5ADC434881C04F</code> <code>0541C98668947CA88096D8CA32D47F20</code> <code>73168B9579423A7A89873ADE02BD9C7B</code> <code>AD72776C3600E86A0B7ED686199F2238</code> <code>8142FDB26C77F311D3A2323120DD3852</code><br> <code>C650B5AD</code></td>
|
||||
<td><code>FE000100B9CEB5287698BDE5FC2C853E</code> <code>D3E5316AD7DB814D430AB517B268CA91</code> <code>73195061AA8CB5E70DC7DEFABD2676EC</code> <code>BCFB48B6D5381EB43CD5B1353974ABBD</code> <code>B9721C4E2ADEE49A7C045B9B87A74FF9</code> <code>41AC57730C9CE5932FA9BCC9870BEEEB</code> <code>2BD91CD312829CD45ABD85E17EF5FDC4</code> <code>49260DD22FC6DA898C4DDEC071A1FF5C</code> <code>67509644C91F8FD7B0D6B06736690D1F</code> <code>9AEB2E023752AE61BD7D4FE825452E84</code> <code>032FB91F719174BC2E59A51987B8B84B</code> <code>ED1DEE8094B628600ED30174FFAD6326</code> <code>9F236F9AD50E971E3DC98A5D05276DD3</code> <code>D85EDA1509BAEFCB317A6790A685BA58</code> <code>2FEC25FB493253DA30DE78D1A84B2F89</code> <code>2103EE6B551D91FD125971EFCDF086FB</code><br> <code>F97F8185</code></td>
|
||||
<td>Value generated above</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -402,47 +402,47 @@ random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5
|
|||
<h5><a class="anchor" href="#6-server-responds-with" id="6-server-responds-with" name="6-server-responds-with"><i class="anchor-icon"></i></a>6) Server responds with:</h5>
|
||||
<!-- start server_DH_params_ok -->
|
||||
<p>Received payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 F0 21 97 52 C7 93 66
|
||||
0010 | A4 02 00 00 5C 07 E8 D0 F3 37 16 0C 19 9F 9C AA
|
||||
0020 | 53 58 53 DB 57 2E 50 F7 D1 3D 8D A2 85 73 BA 19
|
||||
0030 | 6E AE F2 94 2F 4E 87 3E FE 50 02 00 D5 A3 6D 46
|
||||
0040 | AC 04 17 78 6B D9 F1 99 A5 EA F6 4B BA 6D 50 53
|
||||
0050 | 28 92 C8 BC 04 AB 9E DD 4D 97 BD EC 0A F2 3D F1
|
||||
0060 | 17 48 EC 1D 74 9C 7D BA 83 C2 71 65 99 8E 9A AC
|
||||
0070 | D4 86 79 EF 58 02 7D 79 3E C9 F1 94 64 AF FB C1
|
||||
0080 | 8E 40 BD 5D F7 D2 D1 95 33 AA B5 77 19 06 09 5D
|
||||
0090 | 07 60 56 20 2A F7 EB 04 A4 30 71 AD 6D 6D 07 27
|
||||
00A0 | CA 73 04 5D 38 5A A4 DA AE 8F C7 54 F0 77 2B BD
|
||||
00B0 | 88 40 BA FA D2 AF CF 96 0C D3 7E 28 38 3A E1 96
|
||||
00C0 | 77 48 4B 46 51 31 E4 50 A5 F8 CB 02 B7 F9 DA 32
|
||||
00D0 | 3E 7E 36 19 FF 5D E8 1C A8 A2 61 B5 E0 02 1B 02
|
||||
00E0 | ED 03 A4 A7 2A 03 85 8F 37 F0 DD 2C 52 6F 69 AC
|
||||
00F0 | EB 05 50 9E 24 0D 76 87 C0 7E 12 B5 49 44 C8 FE
|
||||
0100 | 03 68 60 22 D2 A3 40 4C 4C 14 E6 6A 1F F1 99 B4
|
||||
0110 | F1 5F B2 C0 D6 EC 9D C6 6A F3 A3 65 DB 72 D6 1B
|
||||
0120 | A9 4C A3 CF 47 34 CB 61 A8 10 1C 50 FC 85 C9 CE
|
||||
0130 | 44 0E DA 71 7B FB 04 E5 C2 3F EE 0E CE 6E 9E 08
|
||||
0140 | 35 48 12 40 9E F6 0E AC 62 E7 8C 41 4D E7 56 39
|
||||
0150 | 7C 26 E8 64 A1 17 AD 21 4C A5 66 AE 5A DA 63 9A
|
||||
0160 | 76 40 BE 28 39 4D AE 32 88 28 56 E3 6D 03 66 44
|
||||
0170 | DC 3E B6 C4 3A 20 CC 50 2A 66 44 E4 FF 4F 46 1C
|
||||
0180 | 0D 77 5A D5 35 5A 27 D9 30 B7 EC 84 AD 31 68 88
|
||||
0190 | 53 8B 65 CF 4A 07 C6 BE 53 AD 0F 81 90 F6 E4 CE
|
||||
01A0 | 80 48 13 AA A6 43 B1 3C DC 3D 7F A5 6C 0D 84 20
|
||||
01B0 | AB F6 C6 2A F0 C4 19 F4 C5 94 4D FD 7A A8 1B FD
|
||||
01C0 | D2 67 AA 68 FB 26 BF 66 DC 31 1A C6 34 3B 4A 91
|
||||
01D0 | E7 D1 F8 48 23 DA DC 5B 16 61 D1 D4 60 83 66 B0
|
||||
01E0 | 55 9D 33 37 59 76 82 A7 56 C7 18 19 27 BD 8B 1D
|
||||
01F0 | E7 45 0E 08 EC 82 0C 9D 6C 8B 22 E3 47 11 17 50
|
||||
0200 | B3 B9 A3 01 34 2B 5B F4 C1 6C E0 0D 4D 04 B2 00
|
||||
0210 | 73 F5 02 3F D7 18 FF 73 C8 EC 2E 89 00 A6 0E 2D
|
||||
0220 | 7F 0F 93 F9 E2 61 FE AB 28 48 E3 AA FF BA 08 EE
|
||||
0230 | 21 94 F6 CA E1 84 E9 10 75 01 D4 9B 16 54 4C B3
|
||||
0240 | 0B F2 F4 77 19 38 50 9F E3 36 3B CB 9B 60 DF A8
|
||||
0250 | 0E F9 7B 01 D7 72 C6 D1 4B 5E C0 8C E7 12 C0 5E
|
||||
0260 | EB 4B A1 A7 1E A1 AE 32 C8 A9 6E 13 89 67 65 B4
|
||||
0270 | C6 F9 D7 C8 A5 BC 77 56 CE 49 90 2D 54 C3 A4 87
|
||||
0280 | FC 21 71 3D A8 24 49 D1 7B C7 64 3B</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 DC 80 AC EE 0C 94 66
|
||||
0010 | B8 02 00 00 5C 07 E8 D0 97 54 B5 97 0F EC 0D 63
|
||||
0020 | 16 2C 80 52 33 C8 E5 18 8A C0 CE 2C D5 BD D5 93
|
||||
0030 | 86 26 E2 71 F7 E5 65 0E FE 50 02 00 12 C7 D6 BD
|
||||
0040 | B2 5E 31 63 80 12 46 05 DC BC 05 31 2C 36 8D 4A
|
||||
0050 | CE FA 8C 48 86 CB F4 A7 E5 55 C3 FF 83 0E 94 F2
|
||||
0060 | 58 73 EF 43 33 35 DE B7 26 68 44 12 C8 77 02 4B
|
||||
0070 | 4F C8 3B F8 B9 07 71 88 A1 ED 8C 1F A0 EA 21 18
|
||||
0080 | CF 8C 47 C9 AD A3 10 E8 3A 2C 14 AD D3 A3 12 38
|
||||
0090 | 97 12 7D AE 69 97 19 FD 48 AC A3 1B 90 64 B1 41
|
||||
00A0 | 1B 73 65 68 63 68 83 EC BF 3F EA C5 39 37 4A 37
|
||||
00B0 | 31 F0 DB B5 80 8D 02 34 1A 0F 5C C9 AF 5A E9 09
|
||||
00C0 | 38 1E 1D 0B 93 89 9C 51 F6 F0 1D CD 8D 1F 05 3F
|
||||
00D0 | D9 ED 88 96 54 EA 40 EC 79 7F 56 D1 B8 60 3D A4
|
||||
00E0 | 70 BB C4 EC B1 43 9B D8 67 AF 2E A9 BE C9 0C 2D
|
||||
00F0 | E5 7C D9 0D C1 8B 76 0A 4E DE E3 41 E5 5A 16 C7
|
||||
0100 | 59 B9 30 49 47 9E 2B 8C 9B A0 52 F5 17 53 0A CE
|
||||
0110 | C1 D8 1C CC 3E 3C 5B BB 6A A3 B3 72 27 E7 2A 57
|
||||
0120 | CD DD DD 8A 23 E8 95 78 88 1B 2C F6 40 C0 EA 1D
|
||||
0130 | 12 D0 6C 1B 1B 31 B9 35 1C 5D C5 9A 9A 11 1D 89
|
||||
0140 | F3 54 C1 FE 9B A6 C8 EC 98 B9 65 A5 BB B2 FC A0
|
||||
0150 | 03 E1 3C 5E E5 42 16 9F AF 7E 98 95 74 F6 B3 09
|
||||
0160 | CB 4D CB BD 00 74 67 B5 36 BE FC 6D C2 F5 65 39
|
||||
0170 | 13 90 64 DF 34 31 9F D8 5A F0 7C 2F 1B 5D 30 B2
|
||||
0180 | CB 3A 55 64 D9 4A ED D2 AE E1 11 A1 67 3A 1A 1E
|
||||
0190 | B5 8B E3 10 6D 3A 87 EC 21 18 37 F6 85 71 D5 32
|
||||
01A0 | 8F 42 7A 73 F7 3C 82 5A 12 AB 5F 9C 13 0A 0B 71
|
||||
01B0 | 6A 30 37 DD EE C2 CF 2F 1D 1B 14 76 3D 13 47 3B
|
||||
01C0 | BF 5A 56 0C 64 58 CF A3 12 F5 0F A2 38 60 7C 1C
|
||||
01D0 | 25 02 0C 63 34 0D B3 E5 4F B6 11 12 50 F2 A7 0B
|
||||
01E0 | BB A5 BF 41 12 D9 1E BE 48 5F 30 73 47 DD DB 76
|
||||
01F0 | 76 D2 5C 0A 4F 25 7F 37 38 2A 1D BA 7D A2 FE EE
|
||||
0200 | DC D4 B9 FF D0 98 B4 F4 9D B0 75 A8 D9 AB AE EC
|
||||
0210 | 98 AD E5 01 4B 25 AF 1A EB 6E E2 83 21 1A 12 8C
|
||||
0220 | E3 B9 30 43 EC 7F 0D 5F 36 07 D4 64 B4 09 EE 43
|
||||
0230 | 26 98 4D 73 B7 E1 0F 58 64 63 53 1B 07 55 07 BF
|
||||
0240 | C5 D7 A7 31 07 75 36 8E FB 7C 53 D8 81 55 90 50
|
||||
0250 | EC 1B E2 98 6D A2 D7 AB F4 06 E6 90 34 57 F4 94
|
||||
0260 | FD 19 E3 F9 CE 08 FB 64 F3 8B 6C BC E8 46 C8 34
|
||||
0270 | 41 22 12 C3 53 02 82 94 57 78 49 79 92 67 8D 0A
|
||||
0280 | 96 E4 F5 45 D3 9E 60 96 51 CA 16 1A</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -464,13 +464,13 @@ random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>01F0219752C79366</code></td>
|
||||
<td><code>01DC80ACEE0C9466</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>A4020000</code> (676 in decimal)</td>
|
||||
<td><code>B8020000</code> (696 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -482,19 +482,19 @@ random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_answer</td>
|
||||
<td>56, 596</td>
|
||||
<td><code>FE500200D5A36D46AC0417786BD9F199</code> <code>A5EAF64BBA6D50532892C8BC04AB9EDD</code> <code>4D97BDEC0AF23DF11748EC1D749C7DBA</code> <code>83C27165998E9AACD48679EF58027D79</code> <code>3EC9F19464AFFBC18E40BD5DF7D2D195</code> <code>33AAB5771906095D076056202AF7EB04</code> <code>A43071AD6D6D0727CA73045D385AA4DA</code> <code>AE8FC754F0772BBD8840BAFAD2AFCF96</code> <code>0CD37E28383AE19677484B465131E450</code> <code>A5F8CB02B7F9DA323E7E3619FF5DE81C</code> <code>A8A261B5E0021B02ED03A4A72A03858F</code> <code>37F0DD2C526F69ACEB05509E240D7687</code> <code>C07E12B54944C8FE03686022D2A3404C</code> <code>4C14E66A1FF199B4F15FB2C0D6EC9DC6</code> <code>6AF3A365DB72D61BA94CA3CF4734CB61</code> <code>A8101C50FC85C9CE440EDA717BFB04E5</code> <code>C23FEE0ECE6E9E08354812409EF60EAC</code> <code>62E78C414DE756397C26E864A117AD21</code> <code>4CA566AE5ADA639A7640BE28394DAE32</code> <code>882856E36D036644DC3EB6C43A20CC50</code> <code>2A6644E4FF4F461C0D775AD5355A27D9</code> <code>30B7EC84AD316888538B65CF4A07C6BE</code> <code>53AD0F8190F6E4CE804813AAA643B13C</code> <code>DC3D7FA56C0D8420ABF6C62AF0C419F4</code> <code>C5944DFD7AA81BFDD267AA68FB26BF66</code> <code>DC311AC6343B4A91E7D1F84823DADC5B</code> <code>1661D1D4608366B0559D3337597682A7</code> <code>56C7181927BD8B1DE7450E08EC820C9D</code> <code>6C8B22E347111750B3B9A301342B5BF4</code> <code>C16CE00D4D04B20073F5023FD718FF73</code> <code>C8EC2E8900A60E2D7F0F93F9E261FEAB</code> <code>2848E3AAFFBA08EE2194F6CAE184E910</code> <code>7501D49B16544CB30BF2F4771938509F</code> <code>E3363BCB9B60DFA80EF97B01D772C6D1</code> <code>4B5EC08CE712C05EEB4BA1A71EA1AE32</code> <code>C8A96E13896765B4C6F9D7C8A5BC7756</code> <code>CE49902D54C3A487FC21713DA82449D1</code><br> <code>7BC7643B</code></td>
|
||||
<td><code>FE50020012C7D6BDB25E316380124605</code> <code>DCBC05312C368D4ACEFA8C4886CBF4A7</code> <code>E555C3FF830E94F25873EF433335DEB7</code> <code>26684412C877024B4FC83BF8B9077188</code> <code>A1ED8C1FA0EA2118CF8C47C9ADA310E8</code> <code>3A2C14ADD3A3123897127DAE699719FD</code> <code>48ACA31B9064B1411B736568636883EC</code> <code>BF3FEAC539374A3731F0DBB5808D0234</code> <code>1A0F5CC9AF5AE909381E1D0B93899C51</code> <code>F6F01DCD8D1F053FD9ED889654EA40EC</code> <code>797F56D1B8603DA470BBC4ECB1439BD8</code> <code>67AF2EA9BEC90C2DE57CD90DC18B760A</code> <code>4EDEE341E55A16C759B93049479E2B8C</code> <code>9BA052F517530ACEC1D81CCC3E3C5BBB</code> <code>6AA3B37227E72A57CDDDDD8A23E89578</code> <code>881B2CF640C0EA1D12D06C1B1B31B935</code> <code>1C5DC59A9A111D89F354C1FE9BA6C8EC</code> <code>98B965A5BBB2FCA003E13C5EE542169F</code> <code>AF7E989574F6B309CB4DCBBD007467B5</code> <code>36BEFC6DC2F56539139064DF34319FD8</code> <code>5AF07C2F1B5D30B2CB3A5564D94AEDD2</code> <code>AEE111A1673A1A1EB58BE3106D3A87EC</code> <code>211837F68571D5328F427A73F73C825A</code> <code>12AB5F9C130A0B716A3037DDEEC2CF2F</code> <code>1D1B14763D13473BBF5A560C6458CFA3</code> <code>12F50FA238607C1C25020C63340DB3E5</code> <code>4FB6111250F2A70BBBA5BF4112D91EBE</code> <code>485F307347DDDB7676D25C0A4F257F37</code> <code>382A1DBA7DA2FEEEDCD4B9FFD098B4F4</code> <code>9DB075A8D9ABAEEC98ADE5014B25AF1A</code> <code>EB6EE283211A128CE3B93043EC7F0D5F</code> <code>3607D464B409EE4326984D73B7E10F58</code> <code>6463531B075507BFC5D7A7310775368E</code> <code>FB7C53D881559050EC1BE2986DA2D7AB</code> <code>F406E6903457F494FD19E3F9CE08FB64</code> <code>F38B6CBCE846C834412212C353028294</code> <code>5778497992678D0A96E4F545D39E6096</code><br> <code>51CA161A</code></td>
|
||||
<td>See below</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -502,20 +502,20 @@ random_padding_bytes = 12D240776B287ED0AEA435CCF24E9F38F0E82C700D48BE6B894405BF5
|
|||
<!-- end server_DH_params_ok -->
|
||||
<p>Decrypt <code>encrypted_answer</code> using the reverse of the process specified in <a href="/mtproto/auth_key#6-server-responds-with">step 6</a>:</p>
|
||||
<!-- start server_DH_inner_data_input -->
|
||||
<pre><code>encrypted_answer = D5A36D46AC0417786BD9F199A5EAF64BBA6D50532892C8BC04AB9EDD4D97BDEC0AF23DF11748EC1D749C7DBA83C27165998E9AACD48679EF58027D793EC9F19464AFFBC18E40BD5DF7D2D19533AAB5771906095D076056202AF7EB04A43071AD6D6D0727CA73045D385AA4DAAE8FC754F0772BBD8840BAFAD2AFCF960CD37E28383AE19677484B465131E450A5F8CB02B7F9DA323E7E3619FF5DE81CA8A261B5E0021B02ED03A4A72A03858F37F0DD2C526F69ACEB05509E240D7687C07E12B54944C8FE03686022D2A3404C4C14E66A1FF199B4F15FB2C0D6EC9DC66AF3A365DB72D61BA94CA3CF4734CB61A8101C50FC85C9CE440EDA717BFB04E5C23FEE0ECE6E9E08354812409EF60EAC62E78C414DE756397C26E864A117AD214CA566AE5ADA639A7640BE28394DAE32882856E36D036644DC3EB6C43A20CC502A6644E4FF4F461C0D775AD5355A27D930B7EC84AD316888538B65CF4A07C6BE53AD0F8190F6E4CE804813AAA643B13CDC3D7FA56C0D8420ABF6C62AF0C419F4C5944DFD7AA81BFDD267AA68FB26BF66DC311AC6343B4A91E7D1F84823DADC5B1661D1D4608366B0559D3337597682A756C7181927BD8B1DE7450E08EC820C9D6C8B22E347111750B3B9A301342B5BF4C16CE00D4D04B20073F5023FD718FF73C8EC2E8900A60E2D7F0F93F9E261FEAB2848E3AAFFBA08EE2194F6CAE184E9107501D49B16544CB30BF2F4771938509FE3363BCB9B60DFA80EF97B01D772C6D14B5EC08CE712C05EEB4BA1A71EA1AE32C8A96E13896765B4C6F9D7C8A5BC7756CE49902D54C3A487FC21713DA82449D17BC7643B
|
||||
tmp_aes_key = 70BCC211C7FA9B9C4BB4125FB60EE21DA8F45E5271D759DDEECE1108787AEECF
|
||||
tmp_aes_iv = 94C61F4FE781457C93DECE378CA3D1C4FFE334120F063E688F3458670844DDAD</code></pre>
|
||||
<pre><code>encrypted_answer = 12C7D6BDB25E316380124605DCBC05312C368D4ACEFA8C4886CBF4A7E555C3FF830E94F25873EF433335DEB726684412C877024B4FC83BF8B9077188A1ED8C1FA0EA2118CF8C47C9ADA310E83A2C14ADD3A3123897127DAE699719FD48ACA31B9064B1411B736568636883ECBF3FEAC539374A3731F0DBB5808D02341A0F5CC9AF5AE909381E1D0B93899C51F6F01DCD8D1F053FD9ED889654EA40EC797F56D1B8603DA470BBC4ECB1439BD867AF2EA9BEC90C2DE57CD90DC18B760A4EDEE341E55A16C759B93049479E2B8C9BA052F517530ACEC1D81CCC3E3C5BBB6AA3B37227E72A57CDDDDD8A23E89578881B2CF640C0EA1D12D06C1B1B31B9351C5DC59A9A111D89F354C1FE9BA6C8EC98B965A5BBB2FCA003E13C5EE542169FAF7E989574F6B309CB4DCBBD007467B536BEFC6DC2F56539139064DF34319FD85AF07C2F1B5D30B2CB3A5564D94AEDD2AEE111A1673A1A1EB58BE3106D3A87EC211837F68571D5328F427A73F73C825A12AB5F9C130A0B716A3037DDEEC2CF2F1D1B14763D13473BBF5A560C6458CFA312F50FA238607C1C25020C63340DB3E54FB6111250F2A70BBBA5BF4112D91EBE485F307347DDDB7676D25C0A4F257F37382A1DBA7DA2FEEEDCD4B9FFD098B4F49DB075A8D9ABAEEC98ADE5014B25AF1AEB6EE283211A128CE3B93043EC7F0D5F3607D464B409EE4326984D73B7E10F586463531B075507BFC5D7A7310775368EFB7C53D881559050EC1BE2986DA2D7ABF406E6903457F494FD19E3F9CE08FB64F38B6CBCE846C834412212C3530282945778497992678D0A96E4F545D39E609651CA161A
|
||||
tmp_aes_key = C2F7580474D179EC4E8C6B6ADCF2E5AF59786052BAFB36DEFADC6C3761698BDB
|
||||
tmp_aes_iv = 1452BE5DDAFB78E9269B4B2546C35B6E64B19D446BEF6AF35E9323B120DF2EC3</code></pre>
|
||||
<!-- end server_DH_inner_data_input -->
|
||||
<p>Yielding:</p>
|
||||
<!-- start server_DH_inner_data_output -->
|
||||
<pre><code>answer_with_hash = 6D88489BF2099547551EF0149C34197C83E16612BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010076056AD0A66EBB0B411EFBAC47EC3788B2382CC325439AE02F59BF65270CE71505984E0F5320A6888A02711DF0F662C816E95AA263BF7869BDBB0EAD6FBE079B0124F0881EE90A28392D03904F7F6A268B853DB39EC9B94F526D941B7783CE0A41CFD2CD99B771BDC8F2A2402C8B9D392A1E553A2CCD55EDC472A4A4082C84F1F121746DD353C99ADBC010133E4550595148B9FD9BC5902D571E716679D6279338908A88CC4C8744720F65EA313D7DB5FB65A84EFC5BD462637BF1F83E1C83EB5533B3B91CF3C4D6778E208B7AFADB76EBAB2706AAC5C2484A366F6230D00CBFD3D1ECEA7F2B639A1C93CDBE4F2F262955F12CADAE4E61B626F0D9E7A91DDEC452C79366D6821ADF5DA007A5
|
||||
answer = BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010076056AD0A66EBB0B411EFBAC47EC3788B2382CC325439AE02F59BF65270CE71505984E0F5320A6888A02711DF0F662C816E95AA263BF7869BDBB0EAD6FBE079B0124F0881EE90A28392D03904F7F6A268B853DB39EC9B94F526D941B7783CE0A41CFD2CD99B771BDC8F2A2402C8B9D392A1E553A2CCD55EDC472A4A4082C84F1F121746DD353C99ADBC010133E4550595148B9FD9BC5902D571E716679D6279338908A88CC4C8744720F65EA313D7DB5FB65A84EFC5BD462637BF1F83E1C83EB5533B3B91CF3C4D6778E208B7AFADB76EBAB2706AAC5C2484A366F6230D00CBFD3D1ECEA7F2B639A1C93CDBE4F2F262955F12CADAE4E61B626F0D9E7A91DDEC452C79366D6821ADF5DA007A5</code></pre>
|
||||
<pre><code>answer_with_hash = CF44C94027F7AFE77C81FB73FCDBC7579528F779BA0D89B59754B5970FEC0D63162C805233C8E5188AC0CE2CD5BDD5938626E271F7E5650E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001003CA1615FD7A12DC9D02243706D597F835B13EFF48469894F79C512C489DDFB44EEFC424AB23E68CD2F2F030BA38114BEED05CB5E7458DA3DC56AA07D4CAAB7FFD6AE1F9E2B6C219B77A76A87D994B18D6B5D51F6514E7D9D0E5AEDEEAB1957E4DB20A069682DD71C59292567A10EB3C8CFF560045F64ACCAF18721EF98730918CEBBC4D4B57272307DB6D07DF3932B50104A372DBC6EB165406C2C3C75FB777C12A00DD9327A04F3B7874CF8EA013C68224579584FED1751E1BBA7EBB1CE1A6453DE82E1F40D8B225F19361FE501E13C8E5F06C8C46BCBC1D47607C5F38178541987F060A7DA482DA5166DFEA05BC6DE4B7A796E337F87FC932C348BE7494780EE0C9466409A3DC7D5D0608A
|
||||
answer = BA0D89B59754B5970FEC0D63162C805233C8E5188AC0CE2CD5BDD5938626E271F7E5650E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001003CA1615FD7A12DC9D02243706D597F835B13EFF48469894F79C512C489DDFB44EEFC424AB23E68CD2F2F030BA38114BEED05CB5E7458DA3DC56AA07D4CAAB7FFD6AE1F9E2B6C219B77A76A87D994B18D6B5D51F6514E7D9D0E5AEDEEAB1957E4DB20A069682DD71C59292567A10EB3C8CFF560045F64ACCAF18721EF98730918CEBBC4D4B57272307DB6D07DF3932B50104A372DBC6EB165406C2C3C75FB777C12A00DD9327A04F3B7874CF8EA013C68224579584FED1751E1BBA7EBB1CE1A6453DE82E1F40D8B225F19361FE501E13C8E5F06C8C46BCBC1D47607C5F38178541987F060A7DA482DA5166DFEA05BC6DE4B7A796E337F87FC932C348BE7494780EE0C9466409A3DC7D5D0608A</code></pre>
|
||||
<!-- end server_DH_inner_data_output -->
|
||||
<!-- start server_DH_inner_data -->
|
||||
<p>Generated payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | BA 0D 89 B5 F3 37 16 0C 19 9F 9C AA 53 58 53 DB
|
||||
0010 | 57 2E 50 F7 D1 3D 8D A2 85 73 BA 19 6E AE F2 94
|
||||
0020 | 2F 4E 87 3E 03 00 00 00 FE 00 01 00 C7 1C AE B9
|
||||
<pre><code>0000 | BA 0D 89 B5 97 54 B5 97 0F EC 0D 63 16 2C 80 52
|
||||
0010 | 33 C8 E5 18 8A C0 CE 2C D5 BD D5 93 86 26 E2 71
|
||||
0020 | F7 E5 65 0E 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 = BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873
|
|||
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 | 76 05 6A D0 A6 6E BB 0B 41 1E FB AC 47 EC 37 88
|
||||
0140 | B2 38 2C C3 25 43 9A E0 2F 59 BF 65 27 0C E7 15
|
||||
0150 | 05 98 4E 0F 53 20 A6 88 8A 02 71 1D F0 F6 62 C8
|
||||
0160 | 16 E9 5A A2 63 BF 78 69 BD BB 0E AD 6F BE 07 9B
|
||||
0170 | 01 24 F0 88 1E E9 0A 28 39 2D 03 90 4F 7F 6A 26
|
||||
0180 | 8B 85 3D B3 9E C9 B9 4F 52 6D 94 1B 77 83 CE 0A
|
||||
0190 | 41 CF D2 CD 99 B7 71 BD C8 F2 A2 40 2C 8B 9D 39
|
||||
01A0 | 2A 1E 55 3A 2C CD 55 ED C4 72 A4 A4 08 2C 84 F1
|
||||
01B0 | F1 21 74 6D D3 53 C9 9A DB C0 10 13 3E 45 50 59
|
||||
01C0 | 51 48 B9 FD 9B C5 90 2D 57 1E 71 66 79 D6 27 93
|
||||
01D0 | 38 90 8A 88 CC 4C 87 44 72 0F 65 EA 31 3D 7D B5
|
||||
01E0 | FB 65 A8 4E FC 5B D4 62 63 7B F1 F8 3E 1C 83 EB
|
||||
01F0 | 55 33 B3 B9 1C F3 C4 D6 77 8E 20 8B 7A FA DB 76
|
||||
0200 | EB AB 27 06 AA C5 C2 48 4A 36 6F 62 30 D0 0C BF
|
||||
0210 | D3 D1 EC EA 7F 2B 63 9A 1C 93 CD BE 4F 2F 26 29
|
||||
0220 | 55 F1 2C AD AE 4E 61 B6 26 F0 D9 E7 A9 1D DE C4
|
||||
0230 | 52 C7 93 66</code></pre>
|
||||
0130 | 3C A1 61 5F D7 A1 2D C9 D0 22 43 70 6D 59 7F 83
|
||||
0140 | 5B 13 EF F4 84 69 89 4F 79 C5 12 C4 89 DD FB 44
|
||||
0150 | EE FC 42 4A B2 3E 68 CD 2F 2F 03 0B A3 81 14 BE
|
||||
0160 | ED 05 CB 5E 74 58 DA 3D C5 6A A0 7D 4C AA B7 FF
|
||||
0170 | D6 AE 1F 9E 2B 6C 21 9B 77 A7 6A 87 D9 94 B1 8D
|
||||
0180 | 6B 5D 51 F6 51 4E 7D 9D 0E 5A ED EE AB 19 57 E4
|
||||
0190 | DB 20 A0 69 68 2D D7 1C 59 29 25 67 A1 0E B3 C8
|
||||
01A0 | CF F5 60 04 5F 64 AC CA F1 87 21 EF 98 73 09 18
|
||||
01B0 | CE BB C4 D4 B5 72 72 30 7D B6 D0 7D F3 93 2B 50
|
||||
01C0 | 10 4A 37 2D BC 6E B1 65 40 6C 2C 3C 75 FB 77 7C
|
||||
01D0 | 12 A0 0D D9 32 7A 04 F3 B7 87 4C F8 EA 01 3C 68
|
||||
01E0 | 22 45 79 58 4F ED 17 51 E1 BB A7 EB B1 CE 1A 64
|
||||
01F0 | 53 DE 82 E1 F4 0D 8B 22 5F 19 36 1F E5 01 E1 3C
|
||||
0200 | 8E 5F 06 C8 C4 6B CB C1 D4 76 07 C5 F3 81 78 54
|
||||
0210 | 19 87 F0 60 A7 DA 48 2D A5 16 6D FE A0 5B C6 DE
|
||||
0220 | 4B 7A 79 6E 33 7F 87 FC 93 2C 34 8B E7 49 47 80
|
||||
0230 | EE 0C 94 66</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>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;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -570,13 +570,13 @@ answer = BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -594,13 +594,13 @@ answer = BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873
|
|||
<tr>
|
||||
<td>g_a</td>
|
||||
<td>300, 260</td>
|
||||
<td><code>FE00010076056AD0A66EBB0B411EFBAC</code> <code>47EC3788B2382CC325439AE02F59BF65</code> <code>270CE71505984E0F5320A6888A02711D</code> <code>F0F662C816E95AA263BF7869BDBB0EAD</code> <code>6FBE079B0124F0881EE90A28392D0390</code> <code>4F7F6A268B853DB39EC9B94F526D941B</code> <code>7783CE0A41CFD2CD99B771BDC8F2A240</code> <code>2C8B9D392A1E553A2CCD55EDC472A4A4</code> <code>082C84F1F121746DD353C99ADBC01013</code> <code>3E4550595148B9FD9BC5902D571E7166</code> <code>79D6279338908A88CC4C8744720F65EA</code> <code>313D7DB5FB65A84EFC5BD462637BF1F8</code> <code>3E1C83EB5533B3B91CF3C4D6778E208B</code> <code>7AFADB76EBAB2706AAC5C2484A366F62</code> <code>30D00CBFD3D1ECEA7F2B639A1C93CDBE</code> <code>4F2F262955F12CADAE4E61B626F0D9E7</code><br> <code>A91DDEC4</code></td>
|
||||
<td><code>FE0001003CA1615FD7A12DC9D0224370</code> <code>6D597F835B13EFF48469894F79C512C4</code> <code>89DDFB44EEFC424AB23E68CD2F2F030B</code> <code>A38114BEED05CB5E7458DA3DC56AA07D</code> <code>4CAAB7FFD6AE1F9E2B6C219B77A76A87</code> <code>D994B18D6B5D51F6514E7D9D0E5AEDEE</code> <code>AB1957E4DB20A069682DD71C59292567</code> <code>A10EB3C8CFF560045F64ACCAF18721EF</code> <code>98730918CEBBC4D4B57272307DB6D07D</code> <code>F3932B50104A372DBC6EB165406C2C3C</code> <code>75FB777C12A00DD9327A04F3B7874CF8</code> <code>EA013C68224579584FED1751E1BBA7EB</code> <code>B1CE1A6453DE82E1F40D8B225F19361F</code> <code>E501E13C8E5F06C8C46BCBC1D47607C5</code> <code>F38178541987F060A7DA482DA5166DFE</code> <code>A05BC6DE4B7A796E337F87FC932C348B</code><br> <code>E7494780</code></td>
|
||||
<td><code>g_a</code> diffie-hellman parameter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_time</td>
|
||||
<td>560, 4</td>
|
||||
<td><code>52C79366</code> (1720960850 in decimal)</td>
|
||||
<td><code>EE0C9466</code> (1720978670 in decimal)</td>
|
||||
<td>Server time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -609,34 +609,34 @@ answer = BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873
|
|||
<h5><a class="anchor" href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" id="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" name="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message"><i class="anchor-icon"></i></a>7) Client computes random 2048-bit number <em>b</em> (using a sufficient amount of entropy) and sends the server a message</h5>
|
||||
<p>First, generate a secure random 2048-bit number b:</p>
|
||||
<!-- start b -->
|
||||
<pre><code>b = 9F5016C1AE42399DBC9A81494FC3490959F56E870D35CD49C34A713DBE1E264696B76EA9AD052BB25BE285DC969D11A6733318561B2B760ACF3852F12C871E5FCA237060BAC007B068BBA5D82515D64B4346AC2D6CF8F9AF4FDA66DB93F4C5A26CD9ECEFEDD4AE4E7C8C6C2F0BC8D9B1376D07FD0B309C8A6E8AC39B5F2304AC78F0DEC79874795329F3AC070AC7C8018B78AE180C8E6610B9BDEEDBAC9A945AF7FE9D9BF2BE9EBF93D03CECA384BF1CE891CD46AA2ACC4B567FAB0B1DDE84ECE010C4C6D441126F7EB51ECDC7E097E3A3D27FE293EB8D09C050F5AD93D5F44C65CF84B87C01B42C56700B58AD25ACB36ABFBCA1DC336904DA86EE6676A5D62D</code></pre>
|
||||
<pre><code>b = 3E6C90B1A0D6814B1535DA33E11C044D8B515D4AE77D5F07013D630DF93DA84F7AB8B474C55A78118259993FCF6261B3825F2A70F1145E315B4F96DD098A53F20CF97FE09F537A341BE10EF9A12DB2FBB8E8AEA5D8E45CA4B03B77BCED83DFEE5CE8C48348688CB5BDA1951FE87CD54D7D0C3B9E907AA74ED7A5E29A9EE18236C4222299FBB2431D9E2F56E6A8D2235ADEB0EBFBED64731375936C536ED5B06BBBA394894A1519876B5A521658761F41B9CA2E8BB485407314BD13B39C2DD3E2D0467D4E82809E359BF4D6677CA22B1BA2D04B884AD49274D8FD8EC3CCAD321DE4257700F26384983A6AD2C06D8613544A0F091184B2BBDBFF8268C36641B809</code></pre>
|
||||
<!-- end b -->
|
||||
<p>Then compute <code>g_b = pow(g, b) mod dh_prime</code></p>
|
||||
<!-- start g_b -->
|
||||
<pre><code>g_b = 1D17194A577BFC517552058DFB3DBD68023E2D009E995DBC0A48E0D2690E275CF3E992F534418CFED20AFCE7CE477C04CB33FA73E8DF2C18C3FCE55ABF2D774567DCA3CC5503439DCE15CD72A5E33C3995EE0EF3D1F635C3EB41A09E8DA93A43CC9CFBD38F007F5000BACE33492365A44B6B8B782D9E12E430ECCBA85C524307444911A5241F35DD7D35459479350A7887CC7A7D2EA69DC5AEFDE67AB5880560FB1EBD57DE74FF04B04FD9906E53F474E9A3AAD6FE5C08E43A19FC84AF5E0CE3EF2B61FBB487B1811377453B0F668A9A81EF26F0F951B8061008361AD8F27A5928FDD3427B5C32728F9E3B8B941771EC2D90821632A73FEFCA194886ED6FEAC8</code></pre>
|
||||
<pre><code>g_b = ACDC3D0F5170015A9A0EC15B3635DE252A49F4E5AEDA12395A26FA7FF1D10BB63D827C53189E32B433EE621024C9323052A1661964F8C5B03A5292736C9EF3532859371200DAF09122B69D8FE865E9182EFE7324A71A01031CAF150FD371020CB02D102BC933D8F9B8B62093E09A08414C8297E46CF34CA728345F2ADDFC044F6931B277665256C139026A0C8A1D8B24908CAD49D596B49ACE3EEA09B4AA1A658E9E23E051C535C363D31A5DC5C2FE8BF1ED5BF69EB626FDDC402FBA340A57078D0D30A54FE7AE0E75BB46F7B0E03E947163E17AA7FABE01B34E04A630287C4CA9E46F160DA7F62F41575823C94A7ADE46DBB162BEA1503942CDEAE1A371A93C</code></pre>
|
||||
<!-- end g_b -->
|
||||
<h6>7.1) generation of encrypted_data</h6>
|
||||
<!-- start client_DH_inner_data -->
|
||||
<p>Generated payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 54 B6 43 66 F3 37 16 0C 19 9F 9C AA 53 58 53 DB
|
||||
0010 | 57 2E 50 F7 D1 3D 8D A2 85 73 BA 19 6E AE F2 94
|
||||
0020 | 2F 4E 87 3E 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 1D 17 19 4A 57 7B FC 51 75 52 05 8D FB 3D BD 68
|
||||
0040 | 02 3E 2D 00 9E 99 5D BC 0A 48 E0 D2 69 0E 27 5C
|
||||
0050 | F3 E9 92 F5 34 41 8C FE D2 0A FC E7 CE 47 7C 04
|
||||
0060 | CB 33 FA 73 E8 DF 2C 18 C3 FC E5 5A BF 2D 77 45
|
||||
0070 | 67 DC A3 CC 55 03 43 9D CE 15 CD 72 A5 E3 3C 39
|
||||
0080 | 95 EE 0E F3 D1 F6 35 C3 EB 41 A0 9E 8D A9 3A 43
|
||||
0090 | CC 9C FB D3 8F 00 7F 50 00 BA CE 33 49 23 65 A4
|
||||
00A0 | 4B 6B 8B 78 2D 9E 12 E4 30 EC CB A8 5C 52 43 07
|
||||
00B0 | 44 49 11 A5 24 1F 35 DD 7D 35 45 94 79 35 0A 78
|
||||
00C0 | 87 CC 7A 7D 2E A6 9D C5 AE FD E6 7A B5 88 05 60
|
||||
00D0 | FB 1E BD 57 DE 74 FF 04 B0 4F D9 90 6E 53 F4 74
|
||||
00E0 | E9 A3 AA D6 FE 5C 08 E4 3A 19 FC 84 AF 5E 0C E3
|
||||
00F0 | EF 2B 61 FB B4 87 B1 81 13 77 45 3B 0F 66 8A 9A
|
||||
0100 | 81 EF 26 F0 F9 51 B8 06 10 08 36 1A D8 F2 7A 59
|
||||
0110 | 28 FD D3 42 7B 5C 32 72 8F 9E 3B 8B 94 17 71 EC
|
||||
0120 | 2D 90 82 16 32 A7 3F EF CA 19 48 86 ED 6F EA C8</code></pre>
|
||||
<pre><code>0000 | 54 B6 43 66 97 54 B5 97 0F EC 0D 63 16 2C 80 52
|
||||
0010 | 33 C8 E5 18 8A C0 CE 2C D5 BD D5 93 86 26 E2 71
|
||||
0020 | F7 E5 65 0E 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | AC DC 3D 0F 51 70 01 5A 9A 0E C1 5B 36 35 DE 25
|
||||
0040 | 2A 49 F4 E5 AE DA 12 39 5A 26 FA 7F F1 D1 0B B6
|
||||
0050 | 3D 82 7C 53 18 9E 32 B4 33 EE 62 10 24 C9 32 30
|
||||
0060 | 52 A1 66 19 64 F8 C5 B0 3A 52 92 73 6C 9E F3 53
|
||||
0070 | 28 59 37 12 00 DA F0 91 22 B6 9D 8F E8 65 E9 18
|
||||
0080 | 2E FE 73 24 A7 1A 01 03 1C AF 15 0F D3 71 02 0C
|
||||
0090 | B0 2D 10 2B C9 33 D8 F9 B8 B6 20 93 E0 9A 08 41
|
||||
00A0 | 4C 82 97 E4 6C F3 4C A7 28 34 5F 2A DD FC 04 4F
|
||||
00B0 | 69 31 B2 77 66 52 56 C1 39 02 6A 0C 8A 1D 8B 24
|
||||
00C0 | 90 8C AD 49 D5 96 B4 9A CE 3E EA 09 B4 AA 1A 65
|
||||
00D0 | 8E 9E 23 E0 51 C5 35 C3 63 D3 1A 5D C5 C2 FE 8B
|
||||
00E0 | F1 ED 5B F6 9E B6 26 FD DC 40 2F BA 34 0A 57 07
|
||||
00F0 | 8D 0D 30 A5 4F E7 AE 0E 75 BB 46 F7 B0 E0 3E 94
|
||||
0100 | 71 63 E1 7A A7 FA BE 01 B3 4E 04 A6 30 28 7C 4C
|
||||
0110 | A9 E4 6F 16 0D A7 F6 2F 41 57 58 23 C9 4A 7A DE
|
||||
0120 | 46 DB B1 62 BE A1 50 39 42 CD EA E1 A3 71 A9 3C</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -658,19 +658,19 @@ answer = BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>g_b</td>
|
||||
<td>36, 260</td>
|
||||
<td><code>FE0001001D17194A577BFC517552058D</code> <code>FB3DBD68023E2D009E995DBC0A48E0D2</code> <code>690E275CF3E992F534418CFED20AFCE7</code> <code>CE477C04CB33FA73E8DF2C18C3FCE55A</code> <code>BF2D774567DCA3CC5503439DCE15CD72</code> <code>A5E33C3995EE0EF3D1F635C3EB41A09E</code> <code>8DA93A43CC9CFBD38F007F5000BACE33</code> <code>492365A44B6B8B782D9E12E430ECCBA8</code> <code>5C524307444911A5241F35DD7D354594</code> <code>79350A7887CC7A7D2EA69DC5AEFDE67A</code> <code>B5880560FB1EBD57DE74FF04B04FD990</code> <code>6E53F474E9A3AAD6FE5C08E43A19FC84</code> <code>AF5E0CE3EF2B61FBB487B1811377453B</code> <code>0F668A9A81EF26F0F951B8061008361A</code> <code>D8F27A5928FDD3427B5C32728F9E3B8B</code> <code>941771EC2D90821632A73FEFCA194886</code><br> <code>ED6FEAC8</code></td>
|
||||
<td><code>FE000100ACDC3D0F5170015A9A0EC15B</code> <code>3635DE252A49F4E5AEDA12395A26FA7F</code> <code>F1D10BB63D827C53189E32B433EE6210</code> <code>24C9323052A1661964F8C5B03A529273</code> <code>6C9EF3532859371200DAF09122B69D8F</code> <code>E865E9182EFE7324A71A01031CAF150F</code> <code>D371020CB02D102BC933D8F9B8B62093</code> <code>E09A08414C8297E46CF34CA728345F2A</code> <code>DDFC044F6931B277665256C139026A0C</code> <code>8A1D8B24908CAD49D596B49ACE3EEA09</code> <code>B4AA1A658E9E23E051C535C363D31A5D</code> <code>C5C2FE8BF1ED5BF69EB626FDDC402FBA</code> <code>340A57078D0D30A54FE7AE0E75BB46F7</code> <code>B0E03E947163E17AA7FABE01B34E04A6</code> <code>30287C4CA9E46F160DA7F62F41575823</code> <code>C94A7ADE46DBB162BEA1503942CDEAE1</code><br> <code>A371A93C</code></td>
|
||||
<td>Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -684,47 +684,47 @@ answer = BA0D89B5F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873
|
|||
<!-- end client_DH_inner_data -->
|
||||
<p>The serialization of <em>Client_DH_Inner_Data</em> produces a string <strong>data</strong>. This is used to generate <strong>encrypted_data</strong> as specified in <a href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message">step 6</a>, using the following inputs:</p>
|
||||
<!-- start client_DH_inner_data_input -->
|
||||
<pre><code>data = 54B64366F337160C199F9CAA535853DB572E50F7D13D8DA28573BA196EAEF2942F4E873E0000000000000000FE0001001D17194A577BFC517552058DFB3DBD68023E2D009E995DBC0A48E0D2690E275CF3E992F534418CFED20AFCE7CE477C04CB33FA73E8DF2C18C3FCE55ABF2D774567DCA3CC5503439DCE15CD72A5E33C3995EE0EF3D1F635C3EB41A09E8DA93A43CC9CFBD38F007F5000BACE33492365A44B6B8B782D9E12E430ECCBA85C524307444911A5241F35DD7D35459479350A7887CC7A7D2EA69DC5AEFDE67AB5880560FB1EBD57DE74FF04B04FD9906E53F474E9A3AAD6FE5C08E43A19FC84AF5E0CE3EF2B61FBB487B1811377453B0F668A9A81EF26F0F951B8061008361AD8F27A5928FDD3427B5C32728F9E3B8B941771EC2D90821632A73FEFCA194886ED6FEAC8
|
||||
padding = 167395E0F0147E766DCA8022
|
||||
tmp_aes_key = 70BCC211C7FA9B9C4BB4125FB60EE21DA8F45E5271D759DDEECE1108787AEECF
|
||||
tmp_aes_iv = 94C61F4FE781457C93DECE378CA3D1C4FFE334120F063E688F3458670844DDAD</code></pre>
|
||||
<pre><code>data = 54B643669754B5970FEC0D63162C805233C8E5188AC0CE2CD5BDD5938626E271F7E5650E0000000000000000FE000100ACDC3D0F5170015A9A0EC15B3635DE252A49F4E5AEDA12395A26FA7FF1D10BB63D827C53189E32B433EE621024C9323052A1661964F8C5B03A5292736C9EF3532859371200DAF09122B69D8FE865E9182EFE7324A71A01031CAF150FD371020CB02D102BC933D8F9B8B62093E09A08414C8297E46CF34CA728345F2ADDFC044F6931B277665256C139026A0C8A1D8B24908CAD49D596B49ACE3EEA09B4AA1A658E9E23E051C535C363D31A5DC5C2FE8BF1ED5BF69EB626FDDC402FBA340A57078D0D30A54FE7AE0E75BB46F7B0E03E947163E17AA7FABE01B34E04A630287C4CA9E46F160DA7F62F41575823C94A7ADE46DBB162BEA1503942CDEAE1A371A93C
|
||||
padding = A25D98376FAAB9CE3B14A04B
|
||||
tmp_aes_key = C2F7580474D179EC4E8C6B6ADCF2E5AF59786052BAFB36DEFADC6C3761698BDB
|
||||
tmp_aes_iv = 1452BE5DDAFB78E9269B4B2546C35B6E64B19D446BEF6AF35E9323B120DF2EC3</code></pre>
|
||||
<!-- end client_DH_inner_data_input -->
|
||||
<p>Process:</p>
|
||||
<pre><code>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);</code></pre>
|
||||
<p>Output:</p>
|
||||
<!-- start client_DH_inner_data_output -->
|
||||
<pre><code>encrypted_data = C58C61FBD50E99A2853166591272284EF4F453D137D650CCE2140DAB29790FB0ED86952DA606CDCE2C234274F7CBF4C274041CA6D2DFEF35F368AF84FEC311F7662A3169DFA676462E950E70CD5143D358C0906910F3565530FA8541D607451C379482D19FD94A416638F4ACD4B09E7DD9C4C2E2CE429D4DAB8D020DBC4E7729AA057195C1D6517F6D6D821C9A694A3B02F45DF398E9A628AB841DB3A990FB3AFBF35A2FBF79174583042CA2949114F2E0C401597D7C6BCD73BCEEF767C739B120D874F0FD015771F42248F97FD155E27654673FC21C09B5022BC95934C9CF23A20425B0459AA6C8D5BDCBA3B5FEDAFA1BC6D5A8019F2142E0163D1AA981A5DCD5800FC4D1C3D08C77B13BD5F4B404DAD32A533CA963FAEFA123CA9E3D2A070A06F915C650EF2D86785C88CF56ED472FA57BDBDD8DE688EE8BE9970E92210F4055A7E60E17594BB8BC68A25ACEE33B81</code></pre>
|
||||
<pre><code>encrypted_data = F37BDA2D8FFC21837991270CD09B7E3109FE3B75F3322C1E8C38EE8B236CB8E4EB6D29F9BCB3EAC06BDD6C8FDD565B39C8ADD0ED8D13BC05FA4A5230A8F0DCE405448805AE408B4DC8411A11F38F65D3B8681711ABB03A4BCC3D448656E1FEBDF0261A1BA088E94E979ACA41B57D6457F30D4692D70FF2FB550D911893A1290029581E03A956E58D5935EFCABD47C3F592D253767712FA499E988D0B3904DAA11F519529F3C43EEC681777DA3C549DC559FBB1952254D6C7B9ECDBB03000FB67E55D15CA04E637C09B559C408D80D99486011E4003CC854AAF2CF11D831D0201B7EEBD7B672F82C98FC5B1B98D1A83A35C0517566CA9C3A4FA143B7FB2DD96B42D05D577C61BA7832A4B8EC1C33F5FFB14A24D00E73816B6B2BFC75C367DC4B3096D40AC670D26FDA5DFDC89766C7A87A03E946E776575F4F27F8902A069D8998AD54D9F3FDC416EE13F279EA6EFBE19</code></pre>
|
||||
<!-- end client_DH_inner_data_output -->
|
||||
<p>The length of the final string is 336 bytes.</p>
|
||||
<h6>7.2) set_client_DH_params query</h6>
|
||||
<!-- start set_client_DH_params -->
|
||||
<p>Sent payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 70 73 06 00 52 C7 93 66
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 F3 37 16 0C 19 9F 9C AA
|
||||
0020 | 53 58 53 DB 57 2E 50 F7 D1 3D 8D A2 85 73 BA 19
|
||||
0030 | 6E AE F2 94 2F 4E 87 3E FE 50 01 00 C5 8C 61 FB
|
||||
0040 | D5 0E 99 A2 85 31 66 59 12 72 28 4E F4 F4 53 D1
|
||||
0050 | 37 D6 50 CC E2 14 0D AB 29 79 0F B0 ED 86 95 2D
|
||||
0060 | A6 06 CD CE 2C 23 42 74 F7 CB F4 C2 74 04 1C A6
|
||||
0070 | D2 DF EF 35 F3 68 AF 84 FE C3 11 F7 66 2A 31 69
|
||||
0080 | DF A6 76 46 2E 95 0E 70 CD 51 43 D3 58 C0 90 69
|
||||
0090 | 10 F3 56 55 30 FA 85 41 D6 07 45 1C 37 94 82 D1
|
||||
00A0 | 9F D9 4A 41 66 38 F4 AC D4 B0 9E 7D D9 C4 C2 E2
|
||||
00B0 | CE 42 9D 4D AB 8D 02 0D BC 4E 77 29 AA 05 71 95
|
||||
00C0 | C1 D6 51 7F 6D 6D 82 1C 9A 69 4A 3B 02 F4 5D F3
|
||||
00D0 | 98 E9 A6 28 AB 84 1D B3 A9 90 FB 3A FB F3 5A 2F
|
||||
00E0 | BF 79 17 45 83 04 2C A2 94 91 14 F2 E0 C4 01 59
|
||||
00F0 | 7D 7C 6B CD 73 BC EE F7 67 C7 39 B1 20 D8 74 F0
|
||||
0100 | FD 01 57 71 F4 22 48 F9 7F D1 55 E2 76 54 67 3F
|
||||
0110 | C2 1C 09 B5 02 2B C9 59 34 C9 CF 23 A2 04 25 B0
|
||||
0120 | 45 9A A6 C8 D5 BD CB A3 B5 FE DA FA 1B C6 D5 A8
|
||||
0130 | 01 9F 21 42 E0 16 3D 1A A9 81 A5 DC D5 80 0F C4
|
||||
0140 | D1 C3 D0 8C 77 B1 3B D5 F4 B4 04 DA D3 2A 53 3C
|
||||
0150 | A9 63 FA EF A1 23 CA 9E 3D 2A 07 0A 06 F9 15 C6
|
||||
0160 | 50 EF 2D 86 78 5C 88 CF 56 ED 47 2F A5 7B DB DD
|
||||
0170 | 8D E6 88 EE 8B E9 97 0E 92 21 0F 40 55 A7 E6 0E
|
||||
0180 | 17 59 4B B8 BC 68 A2 5A CE E3 3B 81</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 18 C8 08 00 EE 0C 94 66
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 97 54 B5 97 0F EC 0D 63
|
||||
0020 | 16 2C 80 52 33 C8 E5 18 8A C0 CE 2C D5 BD D5 93
|
||||
0030 | 86 26 E2 71 F7 E5 65 0E FE 50 01 00 F3 7B DA 2D
|
||||
0040 | 8F FC 21 83 79 91 27 0C D0 9B 7E 31 09 FE 3B 75
|
||||
0050 | F3 32 2C 1E 8C 38 EE 8B 23 6C B8 E4 EB 6D 29 F9
|
||||
0060 | BC B3 EA C0 6B DD 6C 8F DD 56 5B 39 C8 AD D0 ED
|
||||
0070 | 8D 13 BC 05 FA 4A 52 30 A8 F0 DC E4 05 44 88 05
|
||||
0080 | AE 40 8B 4D C8 41 1A 11 F3 8F 65 D3 B8 68 17 11
|
||||
0090 | AB B0 3A 4B CC 3D 44 86 56 E1 FE BD F0 26 1A 1B
|
||||
00A0 | A0 88 E9 4E 97 9A CA 41 B5 7D 64 57 F3 0D 46 92
|
||||
00B0 | D7 0F F2 FB 55 0D 91 18 93 A1 29 00 29 58 1E 03
|
||||
00C0 | A9 56 E5 8D 59 35 EF CA BD 47 C3 F5 92 D2 53 76
|
||||
00D0 | 77 12 FA 49 9E 98 8D 0B 39 04 DA A1 1F 51 95 29
|
||||
00E0 | F3 C4 3E EC 68 17 77 DA 3C 54 9D C5 59 FB B1 95
|
||||
00F0 | 22 54 D6 C7 B9 EC DB B0 30 00 FB 67 E5 5D 15 CA
|
||||
0100 | 04 E6 37 C0 9B 55 9C 40 8D 80 D9 94 86 01 1E 40
|
||||
0110 | 03 CC 85 4A AF 2C F1 1D 83 1D 02 01 B7 EE BD 7B
|
||||
0120 | 67 2F 82 C9 8F C5 B1 B9 8D 1A 83 A3 5C 05 17 56
|
||||
0130 | 6C A9 C3 A4 FA 14 3B 7F B2 DD 96 B4 2D 05 D5 77
|
||||
0140 | C6 1B A7 83 2A 4B 8E C1 C3 3F 5F FB 14 A2 4D 00
|
||||
0150 | E7 38 16 B6 B2 BF C7 5C 36 7D C4 B3 09 6D 40 AC
|
||||
0160 | 67 0D 26 FD A5 DF DC 89 76 6C 7A 87 A0 3E 94 6E
|
||||
0170 | 77 65 75 F4 F2 7F 89 02 A0 69 D8 99 8A D5 4D 9F
|
||||
0180 | 3F DC 41 6E E1 3F 27 9E A6 EF BE 19</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>7073060052C79366</code></td>
|
||||
<td><code>18C80800EE0C9466</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>56, 340</td>
|
||||
<td><code>FE500100C58C61FBD50E99A285316659</code> <code>1272284EF4F453D137D650CCE2140DAB</code> <code>29790FB0ED86952DA606CDCE2C234274</code> <code>F7CBF4C274041CA6D2DFEF35F368AF84</code> <code>FEC311F7662A3169DFA676462E950E70</code> <code>CD5143D358C0906910F3565530FA8541</code> <code>D607451C379482D19FD94A416638F4AC</code> <code>D4B09E7DD9C4C2E2CE429D4DAB8D020D</code> <code>BC4E7729AA057195C1D6517F6D6D821C</code> <code>9A694A3B02F45DF398E9A628AB841DB3</code> <code>A990FB3AFBF35A2FBF79174583042CA2</code> <code>949114F2E0C401597D7C6BCD73BCEEF7</code> <code>67C739B120D874F0FD015771F42248F9</code> <code>7FD155E27654673FC21C09B5022BC959</code> <code>34C9CF23A20425B0459AA6C8D5BDCBA3</code> <code>B5FEDAFA1BC6D5A8019F2142E0163D1A</code> <code>A981A5DCD5800FC4D1C3D08C77B13BD5</code> <code>F4B404DAD32A533CA963FAEFA123CA9E</code> <code>3D2A070A06F915C650EF2D86785C88CF</code> <code>56ED472FA57BDBDD8DE688EE8BE9970E</code> <code>92210F4055A7E60E17594BB8BC68A25A</code><br> <code>CEE33B81</code></td>
|
||||
<td><code>FE500100F37BDA2D8FFC21837991270C</code> <code>D09B7E3109FE3B75F3322C1E8C38EE8B</code> <code>236CB8E4EB6D29F9BCB3EAC06BDD6C8F</code> <code>DD565B39C8ADD0ED8D13BC05FA4A5230</code> <code>A8F0DCE405448805AE408B4DC8411A11</code> <code>F38F65D3B8681711ABB03A4BCC3D4486</code> <code>56E1FEBDF0261A1BA088E94E979ACA41</code> <code>B57D6457F30D4692D70FF2FB550D9118</code> <code>93A1290029581E03A956E58D5935EFCA</code> <code>BD47C3F592D253767712FA499E988D0B</code> <code>3904DAA11F519529F3C43EEC681777DA</code> <code>3C549DC559FBB1952254D6C7B9ECDBB0</code> <code>3000FB67E55D15CA04E637C09B559C40</code> <code>8D80D99486011E4003CC854AAF2CF11D</code> <code>831D0201B7EEBD7B672F82C98FC5B1B9</code> <code>8D1A83A35C0517566CA9C3A4FA143B7F</code> <code>B2DD96B42D05D577C61BA7832A4B8EC1</code> <code>C33F5FFB14A24D00E73816B6B2BFC75C</code> <code>367DC4B3096D40AC670D26FDA5DFDC89</code> <code>766C7A87A03E946E776575F4F27F8902</code> <code>A069D8998AD54D9F3FDC416EE13F279E</code><br> <code>A6EFBE19</code></td>
|
||||
<td>Encrypted client_DH_inner_data generated previously, serialized as a TL byte string</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
|
|||
<h5><a class="anchor" href="#8-auth-key-generation" id="8-auth-key-generation" name="8-auth-key-generation"><i class="anchor-icon"></i></a>8) Auth key generation</h5>
|
||||
<p>The client computes the auth_key using formula <code>g_a^b mod dh_prime</code>:</p>
|
||||
<!-- start auth_key -->
|
||||
<pre><code>auth_key = 03776F250AF75EC0D9091AA5380C7DA3B66DC03ED85F2C7D546DF4425BF89E7608D5774B6C99B3F0AC8CC8CAAE3C30B3B045281D1F9C952BCB1293284D62379DF9F5AE78886CD942585148412A55FE50FA7161FC0D5833D6BC9F1FDFE97BFD70EFCFE745DF0698531FDD715D97A99CC8023EBE3EFC80C7EB62AB8ECE0587626E4BAF03CDD88BC8261BDAA5C31F1618EA7AB035AA9F110C4314E6DFDA8E810BB744422B5BAB27949E9FEB4B3F5DCB7D1E14F5216C7A5E38D1444F051C9ADFFCDBEC3792328BEF0255C35508BF3CF78442BE08E29B0D483E7BE1C94A5088DC72AF93BA7CA9E128E64FF4B6062762FCBD82CC50F70A18BAD44CB85443A03DAF7786</code></pre>
|
||||
<pre><code>auth_key = 86C147B995EB749E972A41376A31C68B87C834DC5216F4032985DF07A87D53762E2F424C6459256F7FAF1C8AF3B95DECAB09343911AA184F23BF4CEE54B96FAD326754F8B92BEFAAF4D6542C2B83A53847C5679EFC2F242FB20A46F8AC0E4C4687402E3E1D9D93BBFB28EB66CA7E3AA1B7181F590AD50F3A1AD3BC30C6C65F2DF1E36BA36CD34C30E83661299B6A4E9376E21E9549468969F0862B9E6BEA6032B63230619B05D2888F2C7440F6088F82659062D36FA646B8E759516D07040CAE3FE559A1157245E85A270C8507035603D18ECE79D3D6D94C7CFF9C39707F30D202E8C7801ED70FDA72C016C78288F3F0CE337BA60A7DA37A369642EC98FEC574</code></pre>
|
||||
<!-- end auth_key -->
|
||||
<h5><a class="anchor" href="#9-final-server-reply" id="9-final-server-reply" name="9-final-server-reply"><i class="anchor-icon"></i></a>9) Final server reply</h5>
|
||||
<p>The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:</p>
|
||||
<!-- start dh_gen_ok -->
|
||||
<p>Received payload (excluding transport headers/trailers):</p>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 6C 26 34 53 C7 93 66
|
||||
0010 | 68 00 00 00 34 F7 CB 3B F3 37 16 0C 19 9F 9C AA
|
||||
0020 | 53 58 53 DB 57 2E 50 F7 D1 3D 8D A2 85 73 BA 19
|
||||
0030 | 6E AE F2 94 2F 4E 87 3E 26 6B FE 27 48 AE 2D DC
|
||||
0040 | 9E BD 4B 3F C9 DF 3D 48</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 B8 CD 7A EF 0C 94 66
|
||||
0010 | A0 00 00 00 34 F7 CB 3B 97 54 B5 97 0F EC 0D 63
|
||||
0020 | 16 2C 80 52 33 C8 E5 18 8A C0 CE 2C D5 BD D5 93
|
||||
0030 | 86 26 E2 71 F7 E5 65 0E 98 4B F9 30 75 A4 6E 30
|
||||
0040 | 02 4C EE E3 56 C7 39 C2</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>016C263453C79366</code></td>
|
||||
<td><code>01B8CD7AEF0C9466</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>68000000</code> (104 in decimal)</td>
|
||||
<td><code>A0000000</code> (160 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>F337160C199F9CAA535853DB572E50F7</code></td>
|
||||
<td><code>9754B5970FEC0D63162C805233C8E518</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D13D8DA28573BA196EAEF2942F4E873E</code></td>
|
||||
<td><code>8AC0CE2CD5BDD5938626E271F7E5650E</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce_hash1</td>
|
||||
<td>56, 16</td>
|
||||
<td><code>266BFE2748AE2DDC9EBD4B3FC9DF3D48</code></td>
|
||||
<td><code>984BF93075A46E30024CEEE356C739C2</code></td>
|
||||
<td>The 128 lower-order bits of SHA1 of the byte string derived from the <code>new_nonce</code> string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with <code>auth_key_aux_hash</code>. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
|
|
@ -94,11 +94,11 @@ Reaction notification settings, see here » for more info.…">
|
|||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a></td>
|
||||
<td> </td>
|
||||
<td>Get the current <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a></td>
|
||||
<td> </td>
|
||||
<td>Change the <a href="/api/reactions#notifications-about-reactions">reaction notification settings »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
Loading…
Add table
Reference in a new issue