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
c87665bdd4
commit
c0c1ec7213
99 changed files with 339 additions and 415 deletions
|
@ -231,7 +231,7 @@ This allows the server to filter messages based on a text query, and even on the
|
|||
<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>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars. </p>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>. </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>
|
||||
|
@ -249,6 +249,8 @@ This allows the server to filter messages based on a text query, and even on the
|
|||
<h3><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h3>
|
||||
<p>Telegram has one of the <strong>most generous reward systems</strong> in the history of social media. Telegram channel owners can now receive <strong>50%</strong> of the revenue from ads displayed in their channels.</p>
|
||||
<p>This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats. </p>
|
||||
<h3><a class="anchor" href="#fact-checks" id="fact-checks" name="fact-checks"><i class="anchor-icon"></i></a><a href="/api/factcheck">Fact-checks</a></h3>
|
||||
<p>Telegram clients support displaying fact-checks added to messages by independent fact-checkers.</p>
|
||||
<h3><a class="anchor" href="#contacts" id="contacts" name="contacts"><i class="anchor-icon"></i></a><a href="/api/contacts">Contacts</a></h3>
|
||||
<p>Working with contacts in the API.</p>
|
||||
<h3><a class="anchor" href="#blocklist" id="blocklist" name="blocklist"><i class="anchor-icon"></i></a><a href="/api/block">Blocklist</a></h3>
|
||||
|
|
|
@ -231,7 +231,7 @@ This allows the server to filter messages based on a text query, and even on the
|
|||
<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>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars. </p>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>. </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>
|
||||
|
@ -249,6 +249,8 @@ This allows the server to filter messages based on a text query, and even on the
|
|||
<h3><a class="anchor" href="#channel-ad-revenue" id="channel-ad-revenue" name="channel-ad-revenue"><i class="anchor-icon"></i></a><a href="/api/revenue">Channel ad revenue</a></h3>
|
||||
<p>Telegram has one of the <strong>most generous reward systems</strong> in the history of social media. Telegram channel owners can now receive <strong>50%</strong> of the revenue from ads displayed in their channels.</p>
|
||||
<p>This page describes the methods used to withdraw channel ad revenue, as well as view detailed revenue stats. </p>
|
||||
<h3><a class="anchor" href="#fact-checks" id="fact-checks" name="fact-checks"><i class="anchor-icon"></i></a><a href="/api/factcheck">Fact-checks</a></h3>
|
||||
<p>Telegram clients support displaying fact-checks added to messages by independent fact-checkers.</p>
|
||||
<h3><a class="anchor" href="#contacts" id="contacts" name="contacts"><i class="anchor-icon"></i></a><a href="/api/contacts">Contacts</a></h3>
|
||||
<p>Working with contacts in the API.</p>
|
||||
<h3><a class="anchor" href="#blocklist" id="blocklist" name="blocklist"><i class="anchor-icon"></i></a><a href="/api/block">Blocklist</a></h3>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<li>Added <a href="/constructor/starsTransactionPeer">starsTransactionPeer</a> - Describes a <a href="/api/stars">Telegram Star</a> transaction with another peer (usually a bot or a channel).</li>
|
||||
<li>Added <a href="/constructor/inputStorePaymentStars">inputStorePaymentStars</a> - </li>
|
||||
<li>Added <a href="/constructor/starsTopupOption">starsTopupOption</a> - <a href="/api/stars">Telegram Stars topup option</a>.</li>
|
||||
<li>Added <a href="/constructor/inputInvoiceStars">inputInvoiceStars</a> - </li>
|
||||
<li>Added <a href="/constructor/inputInvoiceStars">inputInvoiceStars</a> - Used to top up the current account's <a href="/api/stars">Telegram Stars</a> balance.</li>
|
||||
<li>Added <a href="/constructor/starsTransaction">starsTransaction</a> - Represents a <a href="/api/stars">Telegram Stars transaction »</a>.</li>
|
||||
<li>Added <a href="/constructor/payments.starsStatus">payments.starsStatus</a> - Info about the current <a href="/api/stars#balance-and-transaction-history">Telegram Star balance and transaction history »</a>.</li>
|
||||
<li>Added <a href="/constructor/updateStarsBalance">updateStarsBalance</a> - </li>
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>Telegram Stars</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="This page describes the methods used to buy and withdraw Telegram Stars, as well as view detailed revenue stats and make purchases using Telegram Stars.">
|
||||
<meta property="description" content="Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by Telegram bots or Telegram channels.">
|
||||
<meta property="og:title" content="Telegram Stars">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="This page describes the methods used to buy and withdraw Telegram Stars, as well as view detailed revenue stats and make purchases using Telegram Stars.">
|
||||
<meta property="og:description" content="Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by Telegram bots or Telegram channels.">
|
||||
<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">
|
||||
|
@ -44,6 +44,7 @@
|
|||
|
||||
<div id="dev_page_content"><!-- scroll_nav -->
|
||||
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>. </p>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars. </p>
|
||||
<h3><a class="anchor" href="#balance-and-transaction-history" id="balance-and-transaction-history" name="balance-and-transaction-history"><i class="anchor-icon"></i></a>Balance and transaction history</h3>
|
||||
<pre><code><a href='/constructor/starsTransactionPeerAppStore'>starsTransactionPeerAppStore</a>#b457b375 = <a href='/type/StarsTransactionPeer'>StarsTransactionPeer</a>;
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>statuses</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>ringtones</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>themes</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>wallpapers</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>bots</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>document_id</strong></td>
|
||||
|
|
|
@ -4,32 +4,24 @@
|
|||
<meta charset="utf-8">
|
||||
<title>factCheck</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
<meta property="description" content="Represents a fact-check » created by an independent fact-checker.
|
||||
Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
need_check
|
||||
flags.0?true
|
||||
|
||||
country
|
||||
flags.1?string…">
|
||||
Flags, see TL…">
|
||||
<meta property="og:title" content="factCheck">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
<meta property="og:description" content="Represents a fact-check » created by an independent fact-checker.
|
||||
Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
need_check
|
||||
flags.0?true
|
||||
|
||||
country
|
||||
flags.1?string…">
|
||||
Flags, see TL…">
|
||||
<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">
|
||||
|
@ -64,7 +56,8 @@ flags.1?string…">
|
|||
<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="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/factCheck" >factCheck</a></li></ul></div>
|
||||
<h1 id="dev_page_title">factCheck</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Represents a <a href="/api/factcheck">fact-check »</a> created by an independent fact-checker.</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>
|
||||
|
@ -100,17 +93,17 @@ flags.1?string…">
|
|||
<tr>
|
||||
<td><strong>country</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/string">string</a></td>
|
||||
<td> </td>
|
||||
<td>A two-letter ISO 3166-1 alpha-2 country code of the country for which the fact-check should be shown.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>text</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/TextWithEntities">TextWithEntities</a></td>
|
||||
<td> </td>
|
||||
<td>The fact-check.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>config</strong></td>
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>countries_langs</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>colors</strong></td>
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -4,26 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>inputInvoiceStars</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
option
|
||||
StarsTopupOption
|
||||
|
||||
Type
|
||||
InputInvoice">
|
||||
<meta property="description" content="Used to top up the current account's Telegram Stars balance.">
|
||||
<meta property="og:title" content="inputInvoiceStars">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
option
|
||||
StarsTopupOption
|
||||
|
||||
Type
|
||||
InputInvoice">
|
||||
<meta property="og:description" content="Used to top up the current account's Telegram Stars balance.">
|
||||
<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 @@ InputInvoice">
|
|||
<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="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/inputInvoiceStars" >inputInvoiceStars</a></li></ul></div>
|
||||
<h1 id="dev_page_title">inputInvoiceStars</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Used to top up the current account's <a href="/api/stars">Telegram Stars</a> balance.</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>
|
||||
|
@ -84,12 +69,15 @@ InputInvoice">
|
|||
<tr>
|
||||
<td><strong>option</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/StarsTopupOption">StarsTopupOption</a></td>
|
||||
<td> </td>
|
||||
<td>Top up option, obtained as described <a href="/api/stars#buying-stars">here »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
|
||||
<p><a href="/type/InputInvoice">InputInvoice</a></p></div>
|
||||
<p><a href="/type/InputInvoice">InputInvoice</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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>sets</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>effects</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>reactions</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>groups</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>packs</strong></td>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>count</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>sets</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>reactions</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>packs</strong></td>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>gifs</strong></td>
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>stickers</strong></td>
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
<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="#paymentsgetstarstransactions" id="paymentsgetstarstransactions" name="paymentsgetstarstransactions"><i class="anchor-icon"></i></a><a href="/method/payments.getStarsTransactions">payments.getStarsTransactions</a></h4>
|
||||
<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>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
<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="#bot-payments-api" id="bot-payments-api" name="bot-payments-api"><i class="anchor-icon"></i></a><a href="/bots/payments">Bot Payments API</a></h4>
|
||||
<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>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -117,7 +117,7 @@
|
|||
<p><a href="/type/StarsTransaction">StarsTransaction</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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<p><a href="/type/StarsTransactionPeer">StarsTransactionPeer</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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<p><a href="/type/StarsTransactionPeer">StarsTransactionPeer</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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<p><a href="/type/StarsTransactionPeer">StarsTransactionPeer</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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<p><a href="/type/StarsTransactionPeer">StarsTransactionPeer</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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<p><a href="/type/StarsTransactionPeer">StarsTransactionPeer</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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>date</strong></td>
|
||||
|
|
|
@ -94,7 +94,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>type</strong></td>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.emojiStatuses">account.emojiStatuses</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.emojiStatuses">account.emojiStatuses</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.themes">account.themes</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.themes">account.themes</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.emojiStatuses">account.emojiStatuses</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.emojiStatuses">account.emojiStatuses</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.emojiStatuses">account.emojiStatuses</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.emojiStatuses">account.emojiStatuses</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.savedRingtones">account.savedRingtones</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.savedRingtones">account.savedRingtones</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.themes">account.themes</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.themes">account.themes</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.wallPapers">account.wallPapers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/account.wallPapers">account.wallPapers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -71,7 +71,7 @@ Returns an array of Telegram user IDs for all contacts (0 if a contact does not
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br>Note that the hash is computed <a href="/api/offsets#hash-generation">using the usual algorithm</a>, passing to the algorithm first the previously returned <a href="/constructor/contacts.contacts">contacts.contacts</a>.<code>saved_count</code> field, then max <code>100000</code> sorted user IDs from the contact list, including the ID of the currently logged in user if it is saved as a contact. <br>Example: <a href="https://github.com/tdlib/td/blob/63c7d0301825b78c30dc7307f1f1466be049eb79/td/telegram/UserManager.cpp#L5754">tdlib implementation</a>.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br>Note that the hash is computed <a href="/api/offsets#hash-generation">using the usual algorithm</a>, passing to the algorithm first the previously returned <a href="/constructor/contacts.contacts">contacts.contacts</a>.<code>saved_count</code> field, then max <code>100000</code> sorted user IDs from the contact list, including the ID of the currently logged in user if it is saved as a contact. <br>Example: <a href="https://github.com/tdlib/td/blob/63c7d0301825b78c30dc7307f1f1466be049eb79/td/telegram/UserManager.cpp#L5754">tdlib implementation</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -128,7 +128,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.appConfig">help.appConfig</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.appConfig">help.appConfig</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.countriesList">help.countriesList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.countriesList">help.countriesList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.passportConfig">help.passportConfig</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.passportConfig">help.passportConfig</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.peerColors">help.peerColors</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.peerColors">help.peerColors</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.peerColors">help.peerColors</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.peerColors">help.peerColors</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.timezonesList">help.timezonesList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/help.timezonesList">help.timezonesList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -4,42 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messages.deleteFactCheck</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
peer
|
||||
InputPeer
|
||||
|
||||
msg_id
|
||||
int
|
||||
|
||||
Result
|
||||
Updates
|
||||
Possible errors
|
||||
Code
|
||||
Type
|
||||
Description
|
||||
400…">
|
||||
<meta property="description" content="Delete a fact-check from a message; can only be used by independent fact-checkers as specified by the appConfig.can_edit_factcheck…">
|
||||
<meta property="og:title" content="messages.deleteFactCheck">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
peer
|
||||
InputPeer
|
||||
|
||||
msg_id
|
||||
int
|
||||
|
||||
Result
|
||||
Updates
|
||||
Possible errors
|
||||
Code
|
||||
Type
|
||||
Description
|
||||
400…">
|
||||
<meta property="og:description" content="Delete a fact-check from a message; can only be used by independent fact-checkers as specified by the appConfig.can_edit_factcheck…">
|
||||
<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">
|
||||
|
@ -74,7 +42,8 @@ Description
|
|||
<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/messages.deleteFactCheck" >messages.deleteFactCheck</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messages.deleteFactCheck</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Delete a <a href="/api/factcheck">fact-check</a> from a message; can only be used by independent fact-checkers as specified by the <a href="/api/config#can-edit-factcheck">appConfig.can_edit_factcheck</a> configuration flag. </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>
|
||||
|
@ -108,12 +77,12 @@ Description
|
|||
<tr>
|
||||
<td><strong>peer</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
|
||||
<td> </td>
|
||||
<td>Peer where the message was sent.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>msg_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Message ID</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -4,42 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messages.editFactCheck</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
peer
|
||||
InputPeer
|
||||
|
||||
msg_id
|
||||
int
|
||||
|
||||
text
|
||||
TextWithEntities
|
||||
|
||||
Result
|
||||
Updates
|
||||
Possible errors
|
||||
Code…">
|
||||
<meta property="description" content="Edit/create a fact-check on a message; can only be used by independent fact-checkers as specified by the appConfig.can_edit_factcheck…">
|
||||
<meta property="og:title" content="messages.editFactCheck">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
peer
|
||||
InputPeer
|
||||
|
||||
msg_id
|
||||
int
|
||||
|
||||
text
|
||||
TextWithEntities
|
||||
|
||||
Result
|
||||
Updates
|
||||
Possible errors
|
||||
Code…">
|
||||
<meta property="og:description" content="Edit/create a fact-check on a message; can only be used by independent fact-checkers as specified by the appConfig.can_edit_factcheck…">
|
||||
<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">
|
||||
|
@ -74,7 +42,8 @@ Code…">
|
|||
<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/messages.editFactCheck" >messages.editFactCheck</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messages.editFactCheck</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Edit/create a <a href="/api/factcheck">fact-check</a> on a message; can only be used by independent fact-checkers as specified by the <a href="/api/config#can-edit-factcheck">appConfig.can_edit_factcheck</a> configuration flag. </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>
|
||||
|
@ -108,17 +77,17 @@ Code…">
|
|||
<tr>
|
||||
<td><strong>peer</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
|
||||
<td> </td>
|
||||
<td>Peer where the message was sent</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>msg_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Message ID</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>text</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/TextWithEntities">TextWithEntities</a></td>
|
||||
<td> </td>
|
||||
<td>Fact-check (maximum UTF-8 length specified in <a href="/api/config#factcheck-length-limit">appConfig.factcheck_length_limit</a>).</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.allStickers">messages.allStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.allStickers">messages.allStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/attachMenuBots">attachMenuBots</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/attachMenuBots">attachMenuBots</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.availableEffects">messages.availableEffects</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.availableEffects">messages.availableEffects</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.availableReactions">messages.availableReactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.availableReactions">messages.availableReactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.reactions">messages.reactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.reactions">messages.reactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.emojiGroups">messages.emojiGroups</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.allStickers">messages.allStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.allStickers">messages.allStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.favedStickers">messages.favedStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.favedStickers">messages.favedStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.allStickers">messages.allStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.allStickers">messages.allStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.featuredStickers">messages.featuredStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.reactions">messages.reactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.reactions">messages.reactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.recentStickers">messages.recentStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.recentStickers">messages.recentStickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -72,7 +72,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.savedGifs">messages.savedGifs</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.savedGifs">messages.savedGifs</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.savedReactionTags">messages.savedReactionTags</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.savedReactionTags">messages.savedReactionTags</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.stickers">messages.stickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.stickers">messages.stickers</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.reactions">messages.reactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.reactions">messages.reactions</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/emojiList">emojiList</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.foundStickerSets">messages.foundStickerSets</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.foundStickerSets">messages.foundStickerSets</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -87,7 +87,7 @@
|
|||
<tr>
|
||||
<td><strong>hash</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash for pagination, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.foundStickerSets">messages.foundStickerSets</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
<td><a href="/api/offsets#hash-generation">Hash used for caching, for more info click here</a>.<br><strong>Note</strong>: the usual hash generation algorithm cannot be used in this case, please re-use the <a href="/constructor/messages.foundStickerSets">messages.foundStickerSets</a>.<code>hash</code> field returned by a previous call to the method, or pass 0 if this is the first call.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -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 48 B9 0D 00 00 F2 97 66
|
||||
0010 | 14 00 00 00 F1 8E 7E BE 58 8B 84 C8 30 54 02 E3
|
||||
0020 | 20 7B 86 FB 84 3D C2 3B</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 2C 9F 0E 00 DD F5 97 66
|
||||
0010 | 14 00 00 00 F1 8E 7E BE 3C 1F 9C 91 82 5B 8A F9
|
||||
0020 | CC B5 9F 7A A7 F7 5B 65</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>48B90D0000F29766</code></td>
|
||||
<td><code>2C9F0E00DDF59766</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>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</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 9C F8 07 01 F2 97 66
|
||||
0010 | C0 00 00 00 63 24 16 05 58 8B 84 C8 30 54 02 E3
|
||||
0020 | 20 7B 86 FB 84 3D C2 3B 2B 49 1A 73 88 12 57 1E
|
||||
0030 | AF BF 27 CB 91 54 C3 D3 08 2A 3D 75 73 27 F0 17
|
||||
0040 | 01 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 2C 0C 9F DD F5 97 66
|
||||
0010 | B8 00 00 00 63 24 16 05 3C 1F 9C 91 82 5B 8A F9
|
||||
0020 | CC B5 9F 7A A7 F7 5B 65 C6 72 0A 3E AC A6 68 3F
|
||||
0030 | 66 1D 8D 9C 0F 39 59 C6 08 20 53 B5 3C A8 5D EA
|
||||
0040 | 71 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>019CF80701F29766</code></td>
|
||||
<td><code>012C0C9FDDF59766</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>C0000000</code> (192 in decimal)</td>
|
||||
<td><code>B8000000</code> (184 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -150,19 +150,19 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Server-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pq</td>
|
||||
<td>56, 12</td>
|
||||
<td><code>082A3D757327F01701000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 3043718060624058113</td>
|
||||
<td><code>082053B53CA85DEA71000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 2329404704408070769</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 = 3043718060624058113</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>3043718060624058113 = 1719393119 * 1770228127</code></p>
|
||||
<pre><code>p = 1719393119
|
||||
q = 1770228127</code></pre>
|
||||
<pre><code>pq = 2329404704408070769</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>2329404704408070769 = 1230964717 * 1892340757</code></p>
|
||||
<pre><code>p = 1230964717
|
||||
q = 1892340757</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 2A 3D 75 73 27 F0 17 01 00 00 00
|
||||
0010 | 04 66 7B DB 5F 00 00 00 04 69 83 89 9F 00 00 00
|
||||
0020 | 58 8B 84 C8 30 54 02 E3 20 7B 86 FB 84 3D C2 3B
|
||||
0030 | 2B 49 1A 73 88 12 57 1E AF BF 27 CB 91 54 C3 D3
|
||||
0040 | 2D 0F F7 E8 EF B4 50 82 CE 82 D7 59 B8 A3 A0 72
|
||||
0050 | 9D B9 16 E7 C6 4A 18 E3 52 13 DF 4A 2A 27 A4 A0
|
||||
<pre><code>0000 | 95 5F F5 A9 08 20 53 B5 3C A8 5D EA 71 00 00 00
|
||||
0010 | 04 49 5F 07 ED 00 00 00 04 70 CA D4 15 00 00 00
|
||||
0020 | 3C 1F 9C 91 82 5B 8A F9 CC B5 9F 7A A7 F7 5B 65
|
||||
0030 | C6 72 0A 3E AC A6 68 3F 66 1D 8D 9C 0F 39 59 C6
|
||||
0040 | D8 2B 7C C7 FB A8 48 45 AA E4 4E D2 99 5F F8 22
|
||||
0050 | 68 E1 48 8E DA B8 15 CD C4 7C F2 E1 C4 0E 1C 6A
|
||||
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 = 1770228127</code></pre>
|
|||
<tr>
|
||||
<td>pq</td>
|
||||
<td>4, 12</td>
|
||||
<td><code>082A3D757327F01701000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 3043718060624058113</td>
|
||||
<td><code>082053B53CA85DEA71000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 2329404704408070769</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>04667BDB5F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1719393119</td>
|
||||
<td><code>04495F07ED000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1230964717</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>046983899F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1770228127</td>
|
||||
<td><code>0470CAD415000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1892340757</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>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>48, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce</td>
|
||||
<td>64, 32</td>
|
||||
<td><code>2D0FF7E8EFB45082CE82D759B8A3A072</code> <code>9DB916E7C64A18E35213DF4A2A27A4A0</code></td>
|
||||
<td><code>D82B7CC7FBA84845AAE44ED2995FF822</code> <code>68E1488EDAB815CDC47CF2E1C40E1C6A</code></td>
|
||||
<td>Client-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -291,39 +291,39 @@ q = 1770228127</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 = 955FF5A9082A3D757327F0170100000004667BDB5F000000046983899F000000588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D32D0FF7E8EFB45082CE82D759B8A3A0729DB916E7C64A18E35213DF4A2A27A4A002000000
|
||||
random_padding_bytes = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C60148486E40FA00E3AF035DF367D82A75EC72F68EF18D3026DC6453595D8A01B46F78C71981D9A2497E9FDE0B87C255982067416928BD7896977781368E4EEE</code></pre>
|
||||
<pre><code>data = 955FF5A9082053B53CA85DEA7100000004495F07ED0000000470CAD4150000003C1F9C91825B8AF9CCB59F7AA7F75B65C6720A3EACA6683F661D8D9C0F3959C6D82B7CC7FBA84845AAE44ED2995FF82268E1488EDAB815CDC47CF2E1C40E1C6A02000000
|
||||
random_padding_bytes = 5896FE8F5CCE704BE31AF0159C33CFCCCF3B01E342DC3F9BA86DA1597E18ECE81C243BEDE9B9318CC4F5C86E745CB98C4124E20136E397D73A66298C2911D95C75D885F099C0A07BAE0CA3059FD6DDD6789F2E166DF612E26FF4BF1B</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 = CE8357B68743EC555AB91050C1EE285799577FEE72D51BF8CF50CFC95378725826A96FA38E616C2CCAC2BE11CFDA031DE33BE7D165DB1DE91F41AD5224AE3F3574DBD28460488020B68B714D82D320433DAD21309E0AE7D1DA91B2E51C15B8F1D0F332DF7FD6BE15D1BC09F0EB875B356DA2425F930964918A74924FB01511F35022D8F8079947776F494D83047DDD1BBB62E139300B3867DAFCD3E318EAA9DBD2E7619FB314168F69F57C43B172DBA4D207ACCB07EF8EA060A2D15F684331925886CCE372A14B6C497B600B180E174E3992FD83A6D5FC4B29863618AC239952C7D03338A0D70AF83E972A63D9E2C35C67BFBA275138CAF1C0206321E0696C68</code></pre>
|
||||
<pre><code>encrypted_data = 6BF19FA579AC5162BEC041F380C5972A3213ADDE2F922F32902E74F523368D70A56022AA83E7A7F1475F14A060C4EFDCB6D2AA35CE3F839D36A9F8DBC4F6C1F3CFD602AFD58128879F7E14F097C7CFA6F4CB56325395CC1168625EAFBFF7172FACFE6F42F2B97200BB38D25E7A9625149A9BECAF7B16CF7642D04FA527EFE9BB7DD9E8E7455BF311E85D3851297897AD034DDA505A7F5B05745A5047E3A1237856614EC99C8D588ECA8D920389CE5778C23B8210CCD7E9EFCA1A005EE63DC7FBE28360996E4A76A8A4E724248A92DD9785905AF1A849E2B8AD222FB61E2F8E0D9543C9EAB03079765A72A63C3205C095B289F2F96E9A3EE5F1829E84CF4A33D7</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 94 BD 02 00 01 F2 97 66
|
||||
0010 | 40 01 00 00 BE E4 12 D7 58 8B 84 C8 30 54 02 E3
|
||||
0020 | 20 7B 86 FB 84 3D C2 3B 2B 49 1A 73 88 12 57 1E
|
||||
0030 | AF BF 27 CB 91 54 C3 D3 04 66 7B DB 5F 00 00 00
|
||||
0040 | 04 69 83 89 9F 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 CE 83 57 B6 87 43 EC 55 5A B9 10 50
|
||||
0060 | C1 EE 28 57 99 57 7F EE 72 D5 1B F8 CF 50 CF C9
|
||||
0070 | 53 78 72 58 26 A9 6F A3 8E 61 6C 2C CA C2 BE 11
|
||||
0080 | CF DA 03 1D E3 3B E7 D1 65 DB 1D E9 1F 41 AD 52
|
||||
0090 | 24 AE 3F 35 74 DB D2 84 60 48 80 20 B6 8B 71 4D
|
||||
00A0 | 82 D3 20 43 3D AD 21 30 9E 0A E7 D1 DA 91 B2 E5
|
||||
00B0 | 1C 15 B8 F1 D0 F3 32 DF 7F D6 BE 15 D1 BC 09 F0
|
||||
00C0 | EB 87 5B 35 6D A2 42 5F 93 09 64 91 8A 74 92 4F
|
||||
00D0 | B0 15 11 F3 50 22 D8 F8 07 99 47 77 6F 49 4D 83
|
||||
00E0 | 04 7D DD 1B BB 62 E1 39 30 0B 38 67 DA FC D3 E3
|
||||
00F0 | 18 EA A9 DB D2 E7 61 9F B3 14 16 8F 69 F5 7C 43
|
||||
0100 | B1 72 DB A4 D2 07 AC CB 07 EF 8E A0 60 A2 D1 5F
|
||||
0110 | 68 43 31 92 58 86 CC E3 72 A1 4B 6C 49 7B 60 0B
|
||||
0120 | 18 0E 17 4E 39 92 FD 83 A6 D5 FC 4B 29 86 36 18
|
||||
0130 | AC 23 99 52 C7 D0 33 38 A0 D7 0A F8 3E 97 2A 63
|
||||
0140 | D9 E2 C3 5C 67 BF BA 27 51 38 CA F1 C0 20 63 21
|
||||
0150 | E0 69 6C 68</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 30 9F 0E 00 DD F5 97 66
|
||||
0010 | 40 01 00 00 BE E4 12 D7 3C 1F 9C 91 82 5B 8A F9
|
||||
0020 | CC B5 9F 7A A7 F7 5B 65 C6 72 0A 3E AC A6 68 3F
|
||||
0030 | 66 1D 8D 9C 0F 39 59 C6 04 49 5F 07 ED 00 00 00
|
||||
0040 | 04 70 CA D4 15 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 6B F1 9F A5 79 AC 51 62 BE C0 41 F3
|
||||
0060 | 80 C5 97 2A 32 13 AD DE 2F 92 2F 32 90 2E 74 F5
|
||||
0070 | 23 36 8D 70 A5 60 22 AA 83 E7 A7 F1 47 5F 14 A0
|
||||
0080 | 60 C4 EF DC B6 D2 AA 35 CE 3F 83 9D 36 A9 F8 DB
|
||||
0090 | C4 F6 C1 F3 CF D6 02 AF D5 81 28 87 9F 7E 14 F0
|
||||
00A0 | 97 C7 CF A6 F4 CB 56 32 53 95 CC 11 68 62 5E AF
|
||||
00B0 | BF F7 17 2F AC FE 6F 42 F2 B9 72 00 BB 38 D2 5E
|
||||
00C0 | 7A 96 25 14 9A 9B EC AF 7B 16 CF 76 42 D0 4F A5
|
||||
00D0 | 27 EF E9 BB 7D D9 E8 E7 45 5B F3 11 E8 5D 38 51
|
||||
00E0 | 29 78 97 AD 03 4D DA 50 5A 7F 5B 05 74 5A 50 47
|
||||
00F0 | E3 A1 23 78 56 61 4E C9 9C 8D 58 8E CA 8D 92 03
|
||||
0100 | 89 CE 57 78 C2 3B 82 10 CC D7 E9 EF CA 1A 00 5E
|
||||
0110 | E6 3D C7 FB E2 83 60 99 6E 4A 76 A8 A4 E7 24 24
|
||||
0120 | 8A 92 DD 97 85 90 5A F1 A8 49 E2 B8 AD 22 2F B6
|
||||
0130 | 1E 2F 8E 0D 95 43 C9 EA B0 30 79 76 5A 72 A6 3C
|
||||
0140 | 32 05 C0 95 B2 89 F2 F9 6E 9A 3E E5 F1 82 9E 84
|
||||
0150 | CF 4A 33 D7</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 = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>94BD020001F29766</code></td>
|
||||
<td><code>309F0E00DDF59766</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 = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>p</td>
|
||||
<td>56, 8</td>
|
||||
<td><code>04667BDB5F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1719393119</td>
|
||||
<td><code>04495F07ED000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1230964717</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>046983899F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1770228127</td>
|
||||
<td><code>0470CAD415000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1892340757</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 = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C
|
|||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>80, 260</td>
|
||||
<td><code>FE000100CE8357B68743EC555AB91050</code> <code>C1EE285799577FEE72D51BF8CF50CFC9</code> <code>5378725826A96FA38E616C2CCAC2BE11</code> <code>CFDA031DE33BE7D165DB1DE91F41AD52</code> <code>24AE3F3574DBD28460488020B68B714D</code> <code>82D320433DAD21309E0AE7D1DA91B2E5</code> <code>1C15B8F1D0F332DF7FD6BE15D1BC09F0</code> <code>EB875B356DA2425F930964918A74924F</code> <code>B01511F35022D8F8079947776F494D83</code> <code>047DDD1BBB62E139300B3867DAFCD3E3</code> <code>18EAA9DBD2E7619FB314168F69F57C43</code> <code>B172DBA4D207ACCB07EF8EA060A2D15F</code> <code>684331925886CCE372A14B6C497B600B</code> <code>180E174E3992FD83A6D5FC4B29863618</code> <code>AC239952C7D03338A0D70AF83E972A63</code> <code>D9E2C35C67BFBA275138CAF1C0206321</code><br> <code>E0696C68</code></td>
|
||||
<td><code>FE0001006BF19FA579AC5162BEC041F3</code> <code>80C5972A3213ADDE2F922F32902E74F5</code> <code>23368D70A56022AA83E7A7F1475F14A0</code> <code>60C4EFDCB6D2AA35CE3F839D36A9F8DB</code> <code>C4F6C1F3CFD602AFD58128879F7E14F0</code> <code>97C7CFA6F4CB56325395CC1168625EAF</code> <code>BFF7172FACFE6F42F2B97200BB38D25E</code> <code>7A9625149A9BECAF7B16CF7642D04FA5</code> <code>27EFE9BB7DD9E8E7455BF311E85D3851</code> <code>297897AD034DDA505A7F5B05745A5047</code> <code>E3A1237856614EC99C8D588ECA8D9203</code> <code>89CE5778C23B8210CCD7E9EFCA1A005E</code> <code>E63DC7FBE28360996E4A76A8A4E72424</code> <code>8A92DD9785905AF1A849E2B8AD222FB6</code> <code>1E2F8E0D9543C9EAB03079765A72A63C</code> <code>3205C095B289F2F96E9A3EE5F1829E84</code><br> <code>CF4A33D7</code></td>
|
||||
<td>Value generated above</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -402,47 +402,47 @@ random_padding_bytes = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C
|
|||
<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 A4 EC C1 01 F2 97 66
|
||||
0010 | 80 02 00 00 5C 07 E8 D0 58 8B 84 C8 30 54 02 E3
|
||||
0020 | 20 7B 86 FB 84 3D C2 3B 2B 49 1A 73 88 12 57 1E
|
||||
0030 | AF BF 27 CB 91 54 C3 D3 FE 50 02 00 D2 71 C0 80
|
||||
0040 | CD 38 02 1F DA AC B9 DD F5 82 55 BA 07 BB F8 6E
|
||||
0050 | 74 4F 0E E3 61 2C E5 27 BE F2 53 C1 19 74 3A D4
|
||||
0060 | AC 7E 28 8E B8 85 DD 10 4B 20 0A 9E D6 A9 74 09
|
||||
0070 | 84 1B 25 BE 1A 9B 54 30 0C E0 05 99 77 90 4C 90
|
||||
0080 | ED D1 38 AA 8A 83 DB AC 87 4B 07 17 1D 8A A9 2F
|
||||
0090 | C6 DB 9A F9 51 5D 52 BD 93 75 EF 6B 2F 60 DB C2
|
||||
00A0 | 6A A9 21 A0 97 45 66 6A FC 2B 59 CC CD 9C 7D FD
|
||||
00B0 | 43 A7 F0 7E 44 82 12 F4 39 86 B0 68 E4 8D A5 BE
|
||||
00C0 | 2B EF 93 95 70 DC 7A 07 3F 7C 0E 4C B0 73 69 B7
|
||||
00D0 | E8 59 BE 1A 3E C9 17 B6 C4 F6 9D 10 92 0A EE 5F
|
||||
00E0 | ED 99 96 56 62 9F A3 01 50 87 48 4A 29 1E A9 C4
|
||||
00F0 | EF 93 77 5F 84 44 3A CD 80 6A 61 EE 96 0B A0 40
|
||||
0100 | 78 B3 87 4D 9B E2 09 07 51 1F E9 51 32 1B 07 B9
|
||||
0110 | 03 67 F8 0A 24 ED 49 0F 0A 75 9D 3B 19 2C E2 DC
|
||||
0120 | 7E BA 62 74 34 1A E5 65 ED 69 FF 35 C2 D3 AC 63
|
||||
0130 | 82 9D 5B F5 7D A5 B3 49 45 24 17 3E 0B 41 90 D7
|
||||
0140 | 31 95 21 43 18 B5 6B BA 3E 49 1C 65 EE F8 8A E1
|
||||
0150 | 19 EE 6D 21 6B D0 E4 1A 10 E1 9C 69 15 03 CF 71
|
||||
0160 | EE B2 18 9B FB CD 89 B8 97 B8 8A 5C 1B DF 81 7A
|
||||
0170 | 5C 45 C3 CD E9 06 8D 6D 90 23 89 97 81 3E 98 6A
|
||||
0180 | FC 6B FF C7 5D C0 55 A3 F6 04 BD D3 19 63 05 83
|
||||
0190 | 04 FF D4 FE 3B CE 5D 87 6E FF 5F 2F B6 8A 08 AA
|
||||
01A0 | 50 F9 9B E5 57 72 13 64 2D 5E C2 FC 68 6E 5C A8
|
||||
01B0 | BC 7F 48 67 6C 81 B4 7C BE E1 1F 8E 2F 0E 68 FD
|
||||
01C0 | 29 79 1A 95 52 71 D4 D9 55 6E 51 F8 56 0F BE CC
|
||||
01D0 | 23 9D 45 40 9C 07 C3 84 D9 D2 3C D9 E2 90 19 58
|
||||
01E0 | 18 DE F1 29 D2 F8 61 A7 A3 75 9F 34 47 2D A6 EE
|
||||
01F0 | B5 DD EA F7 DF C8 BF C3 A5 10 DE 74 78 19 8D BE
|
||||
0200 | BC 03 BC 8A 53 F3 AD 9D A3 C5 CF D2 9E 41 27 41
|
||||
0210 | FE CC 7A D4 9F 72 43 6D E3 82 BA 06 C2 02 65 4A
|
||||
0220 | 8F 9A 9A 79 C9 63 C8 68 E0 8A 93 B3 ED 13 62 CA
|
||||
0230 | 7A B7 83 B3 DE 82 72 FD 13 E7 A7 43 E0 75 D4 31
|
||||
0240 | 69 CC F3 F1 8E 50 1B 4A 77 70 5A 3C 12 3B 64 49
|
||||
0250 | 66 F8 3A EE FF 9B F5 FB 89 B2 17 49 E2 7F B2 B7
|
||||
0260 | 4A 83 59 1E 8C 9B 03 CD CA 63 45 76 59 AA E8 6B
|
||||
0270 | F6 D3 13 FA 33 DF 42 72 A9 E7 2B B3 68 DB E0 9E
|
||||
0280 | 1B 2B B8 28 DE 92 FF C0 1C B3 DA 62</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 84 20 7E DE F5 97 66
|
||||
0010 | B4 02 00 00 5C 07 E8 D0 3C 1F 9C 91 82 5B 8A F9
|
||||
0020 | CC B5 9F 7A A7 F7 5B 65 C6 72 0A 3E AC A6 68 3F
|
||||
0030 | 66 1D 8D 9C 0F 39 59 C6 FE 50 02 00 DF 62 0E BF
|
||||
0040 | 2D 29 4A 0B 94 0B 8B 8D 2F 6D 08 7C 1A 08 20 FB
|
||||
0050 | FA 04 85 7E B3 31 F2 05 CC 10 4C 80 0A 5E FF 20
|
||||
0060 | 5F 6A 69 5F 36 91 C6 AD C4 E9 30 42 A3 D9 09 5B
|
||||
0070 | 74 37 83 4C 15 D2 84 1B 6C F5 52 AF B9 4B D3 59
|
||||
0080 | C2 98 11 E7 07 27 0B 1B 99 DA BB C2 18 F8 11 54
|
||||
0090 | 27 43 87 72 6F E8 0A F0 FA 61 A3 25 9B 54 B9 17
|
||||
00A0 | 65 4B 83 92 33 3B CA 38 02 6D 46 CF 61 C9 60 9D
|
||||
00B0 | 09 DC 0B 5F C1 B2 C2 F4 B8 DB E8 78 C4 7C 82 F2
|
||||
00C0 | E8 93 54 FF 87 F4 C6 ED 37 27 24 2D 61 FE 54 B2
|
||||
00D0 | 26 A4 B1 CE C6 6A 41 ED C7 7B AD 45 70 E9 D0 71
|
||||
00E0 | 37 71 CE 49 A9 E2 EF 53 C9 35 1E 67 DB BE AD 31
|
||||
00F0 | 5C CD F6 D3 74 01 A4 9A 0B 1B 99 FE 80 92 B5 C1
|
||||
0100 | E5 2E 3A BD 25 03 C0 A5 26 EC D4 55 28 88 79 0D
|
||||
0110 | 5B 35 C7 96 F3 16 5C 5D 1E 33 DB 55 E3 BC 15 C4
|
||||
0120 | 21 BE C9 E3 53 2D 1E 3E 57 1F F6 E4 CC 7C DF 18
|
||||
0130 | 3F AA 9C AA E0 A6 06 49 E8 F6 EF F7 9B A7 95 3D
|
||||
0140 | 56 55 9E CA E7 6F 34 93 84 D7 8D 98 3D F8 C8 3B
|
||||
0150 | 16 A7 F5 DB 45 8E 7C 0D 25 77 D1 7A 5E F1 40 85
|
||||
0160 | EC 4D 7A 63 D8 B4 DD E3 8A 82 97 71 57 A6 C1 7D
|
||||
0170 | 84 B0 60 21 0D 46 F9 60 EE F5 45 0D 98 96 38 F9
|
||||
0180 | CE BB 6F AD 76 70 1D 6B ED DE 0A ED 2B 3D 31 7F
|
||||
0190 | 99 96 94 D9 D9 B3 CE E6 14 CE 88 57 7B 1A DD 15
|
||||
01A0 | E4 C3 BB AF 17 F2 E5 D2 66 B5 96 F3 1A 5F 37 C6
|
||||
01B0 | 72 00 7A 10 BA 6C 5C 66 4D A9 F1 40 7B 46 68 51
|
||||
01C0 | 61 1A 2E 4C 6F 64 9F 42 9D 7C 5E 81 93 15 CB 65
|
||||
01D0 | A1 01 BE 3A 86 29 F3 B8 A4 1F DA 21 F6 38 D0 C2
|
||||
01E0 | 2D 76 27 10 89 ED F0 D8 D8 9D 99 E3 50 D3 15 E5
|
||||
01F0 | 84 23 F4 DE 61 E6 65 73 B1 06 B2 5B 4F 7B 29 AD
|
||||
0200 | 11 C2 32 C8 38 DB B9 84 2A 38 F6 42 A3 2B E9 89
|
||||
0210 | 41 83 0A B4 B9 EF D2 A5 4B A6 A0 71 40 69 58 83
|
||||
0220 | 32 EA 22 B7 D3 81 6A F0 A2 4E 9A 8C 85 C2 7B 26
|
||||
0230 | 4B 1B 8E F7 FE 88 E9 C9 12 41 49 55 BA 32 10 B9
|
||||
0240 | CB 80 94 73 E9 78 E9 40 2A CA 53 FD 22 54 87 15
|
||||
0250 | 71 25 09 9F DD CE 43 11 2C 1F B6 DE 52 03 3F E9
|
||||
0260 | A7 06 F9 22 A3 AE A3 28 A1 99 BC 39 38 85 9E 5B
|
||||
0270 | BE CB C6 D1 E6 74 FC 96 F5 FA DC 98 09 A3 D9 BD
|
||||
0280 | 61 43 5A 7E 50 14 C5 44 8C EE EE 31</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 = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>01A4ECC101F29766</code></td>
|
||||
<td><code>0184207EDEF59766</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>80020000</code> (640 in decimal)</td>
|
||||
<td><code>B4020000</code> (692 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -482,19 +482,19 @@ random_padding_bytes = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_answer</td>
|
||||
<td>56, 596</td>
|
||||
<td><code>FE500200D271C080CD38021FDAACB9DD</code> <code>F58255BA07BBF86E744F0EE3612CE527</code> <code>BEF253C119743AD4AC7E288EB885DD10</code> <code>4B200A9ED6A97409841B25BE1A9B5430</code> <code>0CE0059977904C90EDD138AA8A83DBAC</code> <code>874B07171D8AA92FC6DB9AF9515D52BD</code> <code>9375EF6B2F60DBC26AA921A09745666A</code> <code>FC2B59CCCD9C7DFD43A7F07E448212F4</code> <code>3986B068E48DA5BE2BEF939570DC7A07</code> <code>3F7C0E4CB07369B7E859BE1A3EC917B6</code> <code>C4F69D10920AEE5FED999656629FA301</code> <code>5087484A291EA9C4EF93775F84443ACD</code> <code>806A61EE960BA04078B3874D9BE20907</code> <code>511FE951321B07B90367F80A24ED490F</code> <code>0A759D3B192CE2DC7EBA6274341AE565</code> <code>ED69FF35C2D3AC63829D5BF57DA5B349</code> <code>4524173E0B4190D73195214318B56BBA</code> <code>3E491C65EEF88AE119EE6D216BD0E41A</code> <code>10E19C691503CF71EEB2189BFBCD89B8</code> <code>97B88A5C1BDF817A5C45C3CDE9068D6D</code> <code>90238997813E986AFC6BFFC75DC055A3</code> <code>F604BDD31963058304FFD4FE3BCE5D87</code> <code>6EFF5F2FB68A08AA50F99BE557721364</code> <code>2D5EC2FC686E5CA8BC7F48676C81B47C</code> <code>BEE11F8E2F0E68FD29791A955271D4D9</code> <code>556E51F8560FBECC239D45409C07C384</code> <code>D9D23CD9E290195818DEF129D2F861A7</code> <code>A3759F34472DA6EEB5DDEAF7DFC8BFC3</code> <code>A510DE7478198DBEBC03BC8A53F3AD9D</code> <code>A3C5CFD29E412741FECC7AD49F72436D</code> <code>E382BA06C202654A8F9A9A79C963C868</code> <code>E08A93B3ED1362CA7AB783B3DE8272FD</code> <code>13E7A743E075D43169CCF3F18E501B4A</code> <code>77705A3C123B644966F83AEEFF9BF5FB</code> <code>89B21749E27FB2B74A83591E8C9B03CD</code> <code>CA63457659AAE86BF6D313FA33DF4272</code> <code>A9E72BB368DBE09E1B2BB828DE92FFC0</code><br> <code>1CB3DA62</code></td>
|
||||
<td><code>FE500200DF620EBF2D294A0B940B8B8D</code> <code>2F6D087C1A0820FBFA04857EB331F205</code> <code>CC104C800A5EFF205F6A695F3691C6AD</code> <code>C4E93042A3D9095B7437834C15D2841B</code> <code>6CF552AFB94BD359C29811E707270B1B</code> <code>99DABBC218F81154274387726FE80AF0</code> <code>FA61A3259B54B917654B8392333BCA38</code> <code>026D46CF61C9609D09DC0B5FC1B2C2F4</code> <code>B8DBE878C47C82F2E89354FF87F4C6ED</code> <code>3727242D61FE54B226A4B1CEC66A41ED</code> <code>C77BAD4570E9D0713771CE49A9E2EF53</code> <code>C9351E67DBBEAD315CCDF6D37401A49A</code> <code>0B1B99FE8092B5C1E52E3ABD2503C0A5</code> <code>26ECD4552888790D5B35C796F3165C5D</code> <code>1E33DB55E3BC15C421BEC9E3532D1E3E</code> <code>571FF6E4CC7CDF183FAA9CAAE0A60649</code> <code>E8F6EFF79BA7953D56559ECAE76F3493</code> <code>84D78D983DF8C83B16A7F5DB458E7C0D</code> <code>2577D17A5EF14085EC4D7A63D8B4DDE3</code> <code>8A82977157A6C17D84B060210D46F960</code> <code>EEF5450D989638F9CEBB6FAD76701D6B</code> <code>EDDE0AED2B3D317F999694D9D9B3CEE6</code> <code>14CE88577B1ADD15E4C3BBAF17F2E5D2</code> <code>66B596F31A5F37C672007A10BA6C5C66</code> <code>4DA9F1407B466851611A2E4C6F649F42</code> <code>9D7C5E819315CB65A101BE3A8629F3B8</code> <code>A41FDA21F638D0C22D76271089EDF0D8</code> <code>D89D99E350D315E58423F4DE61E66573</code> <code>B106B25B4F7B29AD11C232C838DBB984</code> <code>2A38F642A32BE98941830AB4B9EFD2A5</code> <code>4BA6A0714069588332EA22B7D3816AF0</code> <code>A24E9A8C85C27B264B1B8EF7FE88E9C9</code> <code>12414955BA3210B9CB809473E978E940</code> <code>2ACA53FD225487157125099FDDCE4311</code> <code>2C1FB6DE52033FE9A706F922A3AEA328</code> <code>A199BC3938859E5BBECBC6D1E674FC96</code> <code>F5FADC9809A3D9BD61435A7E5014C544</code><br> <code>8CEEEE31</code></td>
|
||||
<td>See below</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -502,20 +502,20 @@ random_padding_bytes = 14DC707E96069E0CF0769A03A3AD8A94353D321766260A2FFBE746B9C
|
|||
<!-- 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 = D271C080CD38021FDAACB9DDF58255BA07BBF86E744F0EE3612CE527BEF253C119743AD4AC7E288EB885DD104B200A9ED6A97409841B25BE1A9B54300CE0059977904C90EDD138AA8A83DBAC874B07171D8AA92FC6DB9AF9515D52BD9375EF6B2F60DBC26AA921A09745666AFC2B59CCCD9C7DFD43A7F07E448212F43986B068E48DA5BE2BEF939570DC7A073F7C0E4CB07369B7E859BE1A3EC917B6C4F69D10920AEE5FED999656629FA3015087484A291EA9C4EF93775F84443ACD806A61EE960BA04078B3874D9BE20907511FE951321B07B90367F80A24ED490F0A759D3B192CE2DC7EBA6274341AE565ED69FF35C2D3AC63829D5BF57DA5B3494524173E0B4190D73195214318B56BBA3E491C65EEF88AE119EE6D216BD0E41A10E19C691503CF71EEB2189BFBCD89B897B88A5C1BDF817A5C45C3CDE9068D6D90238997813E986AFC6BFFC75DC055A3F604BDD31963058304FFD4FE3BCE5D876EFF5F2FB68A08AA50F99BE5577213642D5EC2FC686E5CA8BC7F48676C81B47CBEE11F8E2F0E68FD29791A955271D4D9556E51F8560FBECC239D45409C07C384D9D23CD9E290195818DEF129D2F861A7A3759F34472DA6EEB5DDEAF7DFC8BFC3A510DE7478198DBEBC03BC8A53F3AD9DA3C5CFD29E412741FECC7AD49F72436DE382BA06C202654A8F9A9A79C963C868E08A93B3ED1362CA7AB783B3DE8272FD13E7A743E075D43169CCF3F18E501B4A77705A3C123B644966F83AEEFF9BF5FB89B21749E27FB2B74A83591E8C9B03CDCA63457659AAE86BF6D313FA33DF4272A9E72BB368DBE09E1B2BB828DE92FFC01CB3DA62
|
||||
tmp_aes_key = 091FA4A78FBFD6A7FF34B13B41FEF77DF4B00FDDBF543D36B5E2B6D51E178928
|
||||
tmp_aes_iv = 23369DF79805704C479CC014FA2DE3019B013290F146BD48413E65E32D0FF7E8</code></pre>
|
||||
<pre><code>encrypted_answer = DF620EBF2D294A0B940B8B8D2F6D087C1A0820FBFA04857EB331F205CC104C800A5EFF205F6A695F3691C6ADC4E93042A3D9095B7437834C15D2841B6CF552AFB94BD359C29811E707270B1B99DABBC218F81154274387726FE80AF0FA61A3259B54B917654B8392333BCA38026D46CF61C9609D09DC0B5FC1B2C2F4B8DBE878C47C82F2E89354FF87F4C6ED3727242D61FE54B226A4B1CEC66A41EDC77BAD4570E9D0713771CE49A9E2EF53C9351E67DBBEAD315CCDF6D37401A49A0B1B99FE8092B5C1E52E3ABD2503C0A526ECD4552888790D5B35C796F3165C5D1E33DB55E3BC15C421BEC9E3532D1E3E571FF6E4CC7CDF183FAA9CAAE0A60649E8F6EFF79BA7953D56559ECAE76F349384D78D983DF8C83B16A7F5DB458E7C0D2577D17A5EF14085EC4D7A63D8B4DDE38A82977157A6C17D84B060210D46F960EEF5450D989638F9CEBB6FAD76701D6BEDDE0AED2B3D317F999694D9D9B3CEE614CE88577B1ADD15E4C3BBAF17F2E5D266B596F31A5F37C672007A10BA6C5C664DA9F1407B466851611A2E4C6F649F429D7C5E819315CB65A101BE3A8629F3B8A41FDA21F638D0C22D76271089EDF0D8D89D99E350D315E58423F4DE61E66573B106B25B4F7B29AD11C232C838DBB9842A38F642A32BE98941830AB4B9EFD2A54BA6A0714069588332EA22B7D3816AF0A24E9A8C85C27B264B1B8EF7FE88E9C912414955BA3210B9CB809473E978E9402ACA53FD225487157125099FDDCE43112C1FB6DE52033FE9A706F922A3AEA328A199BC3938859E5BBECBC6D1E674FC96F5FADC9809A3D9BD61435A7E5014C5448CEEEE31
|
||||
tmp_aes_key = 7147862BD7CAC01A5C9951FBE5A0B4FCF5966DF5825B7D5819DAD32B457949C5
|
||||
tmp_aes_iv = DBF5DC1EF3E86A680C8F43FB1230D0739AB122B4441191E9119DF945D82B7CC7</code></pre>
|
||||
<!-- end server_DH_inner_data_input -->
|
||||
<p>Yielding:</p>
|
||||
<!-- start server_DH_inner_data_output -->
|
||||
<pre><code>answer_with_hash = 428D45B8E98D46E35803C4F152CCD4807DCE7D22BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009AF8957313EE6EDFF37F7DCAD47878A32BB5A3E9826C0706620228CB0239618416FC3EFC932710F9DF4726173D10A2129ADCE81AF9220A2105C201FF0B7623B37B02D577F781F04CE9F4D67AD751D27AB15402A176F5D942648167BD089345B8774C0048B6CBCC458652384C581339BAA852BF3996334A6F11F99CDEFDF55AA1CE40DF9AE6E7BCA454A603A543ECB59DAAD545FDC7FFB81296EC5604E18212CD2581F766A7AF10009C0947B701E20CCE63C26CF00958DC4F9DFEAAF1200DE3BCA53D9AFE484902C9A323BC6D6F8B027D3084A76DBB97C717BC8FD65442A992B3F0B403CFAF8913BC67128658A75302E48A572821E3F9F436CC4E5624D8B0EDF301F297666A24F19E2D6C8FA8
|
||||
answer = BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009AF8957313EE6EDFF37F7DCAD47878A32BB5A3E9826C0706620228CB0239618416FC3EFC932710F9DF4726173D10A2129ADCE81AF9220A2105C201FF0B7623B37B02D577F781F04CE9F4D67AD751D27AB15402A176F5D942648167BD089345B8774C0048B6CBCC458652384C581339BAA852BF3996334A6F11F99CDEFDF55AA1CE40DF9AE6E7BCA454A603A543ECB59DAAD545FDC7FFB81296EC5604E18212CD2581F766A7AF10009C0947B701E20CCE63C26CF00958DC4F9DFEAAF1200DE3BCA53D9AFE484902C9A323BC6D6F8B027D3084A76DBB97C717BC8FD65442A992B3F0B403CFAF8913BC67128658A75302E48A572821E3F9F436CC4E5624D8B0EDF301F297666A24F19E2D6C8FA8</code></pre>
|
||||
<pre><code>answer_with_hash = 7568EA7425D5C99741817620FF24C2CCE3D0E66BBA0D89B53C1F9C91825B8AF9CCB59F7AA7F75B65C6720A3EACA6683F661D8D9C0F3959C603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100C4E4B51FFE042BA317EFFDE322208A747D3D8A14A9699DC4ADB30B553F575FFB780F87B74673048110E0B2BDB9B65FBA984B793619050C2944A85D28C241B33ACAF1A41FD038C4EE66B0D6B3B569E5E407315D867ABD66005F64FE2247E9EB8A54B15D22A431DE14B098C80FCCCD1037864DF24617112B9DD9A1E83C905DB8953067E82422E540A220705632B7B59314AC951A02B4AA61816A4437A2FE2D0814A11EA4B76329159739A3C5928CE78166FF3455D855635AA985C4F68F3C16ABC98AC49AEE7F353646C708BADE8EDCD89894E2FE4C1BAFBC47C371A51564565D4961C236E928E8F638597C3C200828A98A864DE2186312D2D30D6DBB2282AA021FDEF5976652A8CE1354B6FE80
|
||||
answer = BA0D89B53C1F9C91825B8AF9CCB59F7AA7F75B65C6720A3EACA6683F661D8D9C0F3959C603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100C4E4B51FFE042BA317EFFDE322208A747D3D8A14A9699DC4ADB30B553F575FFB780F87B74673048110E0B2BDB9B65FBA984B793619050C2944A85D28C241B33ACAF1A41FD038C4EE66B0D6B3B569E5E407315D867ABD66005F64FE2247E9EB8A54B15D22A431DE14B098C80FCCCD1037864DF24617112B9DD9A1E83C905DB8953067E82422E540A220705632B7B59314AC951A02B4AA61816A4437A2FE2D0814A11EA4B76329159739A3C5928CE78166FF3455D855635AA985C4F68F3C16ABC98AC49AEE7F353646C708BADE8EDCD89894E2FE4C1BAFBC47C371A51564565D4961C236E928E8F638597C3C200828A98A864DE2186312D2D30D6DBB2282AA021FDEF5976652A8CE1354B6FE80</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 58 8B 84 C8 30 54 02 E3 20 7B 86 FB
|
||||
0010 | 84 3D C2 3B 2B 49 1A 73 88 12 57 1E AF BF 27 CB
|
||||
0020 | 91 54 C3 D3 03 00 00 00 FE 00 01 00 C7 1C AE B9
|
||||
<pre><code>0000 | BA 0D 89 B5 3C 1F 9C 91 82 5B 8A F9 CC B5 9F 7A
|
||||
0010 | A7 F7 5B 65 C6 72 0A 3E AC A6 68 3F 66 1D 8D 9C
|
||||
0020 | 0F 39 59 C6 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 = BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D
|
|||
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 | 9A F8 95 73 13 EE 6E DF F3 7F 7D CA D4 78 78 A3
|
||||
0140 | 2B B5 A3 E9 82 6C 07 06 62 02 28 CB 02 39 61 84
|
||||
0150 | 16 FC 3E FC 93 27 10 F9 DF 47 26 17 3D 10 A2 12
|
||||
0160 | 9A DC E8 1A F9 22 0A 21 05 C2 01 FF 0B 76 23 B3
|
||||
0170 | 7B 02 D5 77 F7 81 F0 4C E9 F4 D6 7A D7 51 D2 7A
|
||||
0180 | B1 54 02 A1 76 F5 D9 42 64 81 67 BD 08 93 45 B8
|
||||
0190 | 77 4C 00 48 B6 CB CC 45 86 52 38 4C 58 13 39 BA
|
||||
01A0 | A8 52 BF 39 96 33 4A 6F 11 F9 9C DE FD F5 5A A1
|
||||
01B0 | CE 40 DF 9A E6 E7 BC A4 54 A6 03 A5 43 EC B5 9D
|
||||
01C0 | AA D5 45 FD C7 FF B8 12 96 EC 56 04 E1 82 12 CD
|
||||
01D0 | 25 81 F7 66 A7 AF 10 00 9C 09 47 B7 01 E2 0C CE
|
||||
01E0 | 63 C2 6C F0 09 58 DC 4F 9D FE AA F1 20 0D E3 BC
|
||||
01F0 | A5 3D 9A FE 48 49 02 C9 A3 23 BC 6D 6F 8B 02 7D
|
||||
0200 | 30 84 A7 6D BB 97 C7 17 BC 8F D6 54 42 A9 92 B3
|
||||
0210 | F0 B4 03 CF AF 89 13 BC 67 12 86 58 A7 53 02 E4
|
||||
0220 | 8A 57 28 21 E3 F9 F4 36 CC 4E 56 24 D8 B0 ED F3
|
||||
0230 | 01 F2 97 66</code></pre>
|
||||
0130 | C4 E4 B5 1F FE 04 2B A3 17 EF FD E3 22 20 8A 74
|
||||
0140 | 7D 3D 8A 14 A9 69 9D C4 AD B3 0B 55 3F 57 5F FB
|
||||
0150 | 78 0F 87 B7 46 73 04 81 10 E0 B2 BD B9 B6 5F BA
|
||||
0160 | 98 4B 79 36 19 05 0C 29 44 A8 5D 28 C2 41 B3 3A
|
||||
0170 | CA F1 A4 1F D0 38 C4 EE 66 B0 D6 B3 B5 69 E5 E4
|
||||
0180 | 07 31 5D 86 7A BD 66 00 5F 64 FE 22 47 E9 EB 8A
|
||||
0190 | 54 B1 5D 22 A4 31 DE 14 B0 98 C8 0F CC CD 10 37
|
||||
01A0 | 86 4D F2 46 17 11 2B 9D D9 A1 E8 3C 90 5D B8 95
|
||||
01B0 | 30 67 E8 24 22 E5 40 A2 20 70 56 32 B7 B5 93 14
|
||||
01C0 | AC 95 1A 02 B4 AA 61 81 6A 44 37 A2 FE 2D 08 14
|
||||
01D0 | A1 1E A4 B7 63 29 15 97 39 A3 C5 92 8C E7 81 66
|
||||
01E0 | FF 34 55 D8 55 63 5A A9 85 C4 F6 8F 3C 16 AB C9
|
||||
01F0 | 8A C4 9A EE 7F 35 36 46 C7 08 BA DE 8E DC D8 98
|
||||
0200 | 94 E2 FE 4C 1B AF BC 47 C3 71 A5 15 64 56 5D 49
|
||||
0210 | 61 C2 36 E9 28 E8 F6 38 59 7C 3C 20 08 28 A9 8A
|
||||
0220 | 86 4D E2 18 63 12 D2 D3 0D 6D BB 22 82 AA 02 1F
|
||||
0230 | DE F5 97 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 = BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -594,13 +594,13 @@ answer = BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D
|
|||
<tr>
|
||||
<td>g_a</td>
|
||||
<td>300, 260</td>
|
||||
<td><code>FE0001009AF8957313EE6EDFF37F7DCA</code> <code>D47878A32BB5A3E9826C0706620228CB</code> <code>0239618416FC3EFC932710F9DF472617</code> <code>3D10A2129ADCE81AF9220A2105C201FF</code> <code>0B7623B37B02D577F781F04CE9F4D67A</code> <code>D751D27AB15402A176F5D942648167BD</code> <code>089345B8774C0048B6CBCC458652384C</code> <code>581339BAA852BF3996334A6F11F99CDE</code> <code>FDF55AA1CE40DF9AE6E7BCA454A603A5</code> <code>43ECB59DAAD545FDC7FFB81296EC5604</code> <code>E18212CD2581F766A7AF10009C0947B7</code> <code>01E20CCE63C26CF00958DC4F9DFEAAF1</code> <code>200DE3BCA53D9AFE484902C9A323BC6D</code> <code>6F8B027D3084A76DBB97C717BC8FD654</code> <code>42A992B3F0B403CFAF8913BC67128658</code> <code>A75302E48A572821E3F9F436CC4E5624</code><br> <code>D8B0EDF3</code></td>
|
||||
<td><code>FE000100C4E4B51FFE042BA317EFFDE3</code> <code>22208A747D3D8A14A9699DC4ADB30B55</code> <code>3F575FFB780F87B74673048110E0B2BD</code> <code>B9B65FBA984B793619050C2944A85D28</code> <code>C241B33ACAF1A41FD038C4EE66B0D6B3</code> <code>B569E5E407315D867ABD66005F64FE22</code> <code>47E9EB8A54B15D22A431DE14B098C80F</code> <code>CCCD1037864DF24617112B9DD9A1E83C</code> <code>905DB8953067E82422E540A220705632</code> <code>B7B59314AC951A02B4AA61816A4437A2</code> <code>FE2D0814A11EA4B76329159739A3C592</code> <code>8CE78166FF3455D855635AA985C4F68F</code> <code>3C16ABC98AC49AEE7F353646C708BADE</code> <code>8EDCD89894E2FE4C1BAFBC47C371A515</code> <code>64565D4961C236E928E8F638597C3C20</code> <code>0828A98A864DE2186312D2D30D6DBB22</code><br> <code>82AA021F</code></td>
|
||||
<td><code>g_a</code> diffie-hellman parameter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_time</td>
|
||||
<td>560, 4</td>
|
||||
<td><code>01F29766</code> (1721233921 in decimal)</td>
|
||||
<td><code>DEF59766</code> (1721234910 in decimal)</td>
|
||||
<td>Server time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -609,34 +609,34 @@ answer = BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D
|
|||
<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 = 1222C4C19574E93D7FB75315BD4E0D273CA8B885DD69CEF03A13F81BDA477E4C10C26D9931E688EAD1D30C569E17116E6B6488A9F578A1C73C698E4005C89B34D8CF23F4CC8819B0A9705B68F7F729F722F2E5A2802E77308D9B49DC60121B21C7071FA23E7E196FAB30E7791E2933A9983752CF9F67501195929DAF9E2BF86DC0BE8ECDBC0B2B5F770BB61F5EBCD3CD8EFEE83C2472CC64D2F035DBA189C4B9314DE78E17F0E3F120D808059D3D21BE3CED8B8AD45EAF6DA4BE4A4C327D7452BC7EB7B980F1D89F0B6959416167DC4A92143CFD2DC6F82B24459486E3E83EFA7D93B992AE5F4009460CAC77DBE71CA8038903343E421C3F134D076C64B33421</code></pre>
|
||||
<pre><code>b = 02EF581F15BDF361B80A3139674DCC6A52131D28A8F5EEE06B2B54FAC00C32D18A591C72F83C8E128C207D90525B1026D9ACF66D880B0048E28FF30E01A7AC10B68DDD5D921C6EC59470AB9849A1857987C5D3F7FE4570776BC578D67F7F2EE743D8AE1E013571931B9915F502D272F510E57A88E6FC5A7AC53583B8BA1F144066DFA22C0A31B1FC52DE1E6D963E8945FBAA416C954E3D901E747558FAC9CFBAC4A73C624879096DEF0914D88DD1E53F741A2BCEE341D9BF6F9921180BF3B5A8CD8F41C9CA15DD76B17B9797549FD44B23C56BB101AEE3AFA84080DF3EFD4AF304C59902456E8A089C88971955327F857A510A03DA21F0687D2176F973E5BB66</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 = 4A6B70855B826CF016122205C2E1E23849FEB8770CE220ED118E05BC7F69D8FED60B7B6B450CF94EFD0553BC786779975434F0ECB79EE35A70AFF3F65AAFB9E2BD9F1B9945C962C844C5957BCDC0B9126F669CA08E2FD30C3CC8268A7C77ECAE049826AA7994262FF1247BE0508EB796E0EF79D42B9FB3522F3C81439632BCF156CA0422BECE41F2F53AA60A5A2942F0DBFC90E39B5DF1BDFC9189C9F5B03F14540FC3C1CDB5030FC9219D154AAD37F9AD9D31619574221070386E73D1E99991902A6AFD77A83FF016AE0E5722D6659C9B6C09A1C6DC80DF2F00FCE767D2A0B00054CAAC5D2E1A3EC7736AE921B675365F96BE91FCC64085AB3A1716E03358B0</code></pre>
|
||||
<pre><code>g_b = 2E8E2A59D19D179F566C2817C04B606F96E4CBDBC4F8834D4FC289F64784ECDA387135E96278C70D1C01AC0C2155C9CD2E93FBE166A519ACE9C5F1E96AF95391E1CE29CB797B53A3AE45F6DCBD0BE3A18F944EAED60C0568B64E1E07BA0270F59DE3F0358AEBEDACC379FCBD1A06D33C1DC100C60C14427A51CB4542E502F0DF0619B1D909864DECDA867DFA37A0EE4F1491F4204D4184BD6BEB1583D9FB60B40A8226AD6F29644B114DB88F200EC586552C01EC21714C63AF447F5B51B6722079A235D3E28761E0934D8CA32C911AE52AD2394981690D76E1A7B8EA13C3E8D8CB03EF889C015995535FFFE48651EF050F4B237532E5427C570AF1E2DE71C500</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 58 8B 84 C8 30 54 02 E3 20 7B 86 FB
|
||||
0010 | 84 3D C2 3B 2B 49 1A 73 88 12 57 1E AF BF 27 CB
|
||||
0020 | 91 54 C3 D3 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 4A 6B 70 85 5B 82 6C F0 16 12 22 05 C2 E1 E2 38
|
||||
0040 | 49 FE B8 77 0C E2 20 ED 11 8E 05 BC 7F 69 D8 FE
|
||||
0050 | D6 0B 7B 6B 45 0C F9 4E FD 05 53 BC 78 67 79 97
|
||||
0060 | 54 34 F0 EC B7 9E E3 5A 70 AF F3 F6 5A AF B9 E2
|
||||
0070 | BD 9F 1B 99 45 C9 62 C8 44 C5 95 7B CD C0 B9 12
|
||||
0080 | 6F 66 9C A0 8E 2F D3 0C 3C C8 26 8A 7C 77 EC AE
|
||||
0090 | 04 98 26 AA 79 94 26 2F F1 24 7B E0 50 8E B7 96
|
||||
00A0 | E0 EF 79 D4 2B 9F B3 52 2F 3C 81 43 96 32 BC F1
|
||||
00B0 | 56 CA 04 22 BE CE 41 F2 F5 3A A6 0A 5A 29 42 F0
|
||||
00C0 | DB FC 90 E3 9B 5D F1 BD FC 91 89 C9 F5 B0 3F 14
|
||||
00D0 | 54 0F C3 C1 CD B5 03 0F C9 21 9D 15 4A AD 37 F9
|
||||
00E0 | AD 9D 31 61 95 74 22 10 70 38 6E 73 D1 E9 99 91
|
||||
00F0 | 90 2A 6A FD 77 A8 3F F0 16 AE 0E 57 22 D6 65 9C
|
||||
0100 | 9B 6C 09 A1 C6 DC 80 DF 2F 00 FC E7 67 D2 A0 B0
|
||||
0110 | 00 54 CA AC 5D 2E 1A 3E C7 73 6A E9 21 B6 75 36
|
||||
0120 | 5F 96 BE 91 FC C6 40 85 AB 3A 17 16 E0 33 58 B0</code></pre>
|
||||
<pre><code>0000 | 54 B6 43 66 3C 1F 9C 91 82 5B 8A F9 CC B5 9F 7A
|
||||
0010 | A7 F7 5B 65 C6 72 0A 3E AC A6 68 3F 66 1D 8D 9C
|
||||
0020 | 0F 39 59 C6 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 2E 8E 2A 59 D1 9D 17 9F 56 6C 28 17 C0 4B 60 6F
|
||||
0040 | 96 E4 CB DB C4 F8 83 4D 4F C2 89 F6 47 84 EC DA
|
||||
0050 | 38 71 35 E9 62 78 C7 0D 1C 01 AC 0C 21 55 C9 CD
|
||||
0060 | 2E 93 FB E1 66 A5 19 AC E9 C5 F1 E9 6A F9 53 91
|
||||
0070 | E1 CE 29 CB 79 7B 53 A3 AE 45 F6 DC BD 0B E3 A1
|
||||
0080 | 8F 94 4E AE D6 0C 05 68 B6 4E 1E 07 BA 02 70 F5
|
||||
0090 | 9D E3 F0 35 8A EB ED AC C3 79 FC BD 1A 06 D3 3C
|
||||
00A0 | 1D C1 00 C6 0C 14 42 7A 51 CB 45 42 E5 02 F0 DF
|
||||
00B0 | 06 19 B1 D9 09 86 4D EC DA 86 7D FA 37 A0 EE 4F
|
||||
00C0 | 14 91 F4 20 4D 41 84 BD 6B EB 15 83 D9 FB 60 B4
|
||||
00D0 | 0A 82 26 AD 6F 29 64 4B 11 4D B8 8F 20 0E C5 86
|
||||
00E0 | 55 2C 01 EC 21 71 4C 63 AF 44 7F 5B 51 B6 72 20
|
||||
00F0 | 79 A2 35 D3 E2 87 61 E0 93 4D 8C A3 2C 91 1A E5
|
||||
0100 | 2A D2 39 49 81 69 0D 76 E1 A7 B8 EA 13 C3 E8 D8
|
||||
0110 | CB 03 EF 88 9C 01 59 95 53 5F FF E4 86 51 EF 05
|
||||
0120 | 0F 4B 23 75 32 E5 42 7C 57 0A F1 E2 DE 71 C5 00</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 = BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>g_b</td>
|
||||
<td>36, 260</td>
|
||||
<td><code>FE0001004A6B70855B826CF016122205</code> <code>C2E1E23849FEB8770CE220ED118E05BC</code> <code>7F69D8FED60B7B6B450CF94EFD0553BC</code> <code>786779975434F0ECB79EE35A70AFF3F6</code> <code>5AAFB9E2BD9F1B9945C962C844C5957B</code> <code>CDC0B9126F669CA08E2FD30C3CC8268A</code> <code>7C77ECAE049826AA7994262FF1247BE0</code> <code>508EB796E0EF79D42B9FB3522F3C8143</code> <code>9632BCF156CA0422BECE41F2F53AA60A</code> <code>5A2942F0DBFC90E39B5DF1BDFC9189C9</code> <code>F5B03F14540FC3C1CDB5030FC9219D15</code> <code>4AAD37F9AD9D31619574221070386E73</code> <code>D1E99991902A6AFD77A83FF016AE0E57</code> <code>22D6659C9B6C09A1C6DC80DF2F00FCE7</code> <code>67D2A0B00054CAAC5D2E1A3EC7736AE9</code> <code>21B675365F96BE91FCC64085AB3A1716</code><br> <code>E03358B0</code></td>
|
||||
<td><code>FE0001002E8E2A59D19D179F566C2817</code> <code>C04B606F96E4CBDBC4F8834D4FC289F6</code> <code>4784ECDA387135E96278C70D1C01AC0C</code> <code>2155C9CD2E93FBE166A519ACE9C5F1E9</code> <code>6AF95391E1CE29CB797B53A3AE45F6DC</code> <code>BD0BE3A18F944EAED60C0568B64E1E07</code> <code>BA0270F59DE3F0358AEBEDACC379FCBD</code> <code>1A06D33C1DC100C60C14427A51CB4542</code> <code>E502F0DF0619B1D909864DECDA867DFA</code> <code>37A0EE4F1491F4204D4184BD6BEB1583</code> <code>D9FB60B40A8226AD6F29644B114DB88F</code> <code>200EC586552C01EC21714C63AF447F5B</code> <code>51B6722079A235D3E28761E0934D8CA3</code> <code>2C911AE52AD2394981690D76E1A7B8EA</code> <code>13C3E8D8CB03EF889C015995535FFFE4</code> <code>8651EF050F4B237532E5427C570AF1E2</code><br> <code>DE71C500</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 = BA0D89B5588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D
|
|||
<!-- 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 = 54B64366588B84C8305402E3207B86FB843DC23B2B491A738812571EAFBF27CB9154C3D30000000000000000FE0001004A6B70855B826CF016122205C2E1E23849FEB8770CE220ED118E05BC7F69D8FED60B7B6B450CF94EFD0553BC786779975434F0ECB79EE35A70AFF3F65AAFB9E2BD9F1B9945C962C844C5957BCDC0B9126F669CA08E2FD30C3CC8268A7C77ECAE049826AA7994262FF1247BE0508EB796E0EF79D42B9FB3522F3C81439632BCF156CA0422BECE41F2F53AA60A5A2942F0DBFC90E39B5DF1BDFC9189C9F5B03F14540FC3C1CDB5030FC9219D154AAD37F9AD9D31619574221070386E73D1E99991902A6AFD77A83FF016AE0E5722D6659C9B6C09A1C6DC80DF2F00FCE767D2A0B00054CAAC5D2E1A3EC7736AE921B675365F96BE91FCC64085AB3A1716E03358B0
|
||||
padding = 685774C7835324D3FAAF7732
|
||||
tmp_aes_key = 091FA4A78FBFD6A7FF34B13B41FEF77DF4B00FDDBF543D36B5E2B6D51E178928
|
||||
tmp_aes_iv = 23369DF79805704C479CC014FA2DE3019B013290F146BD48413E65E32D0FF7E8</code></pre>
|
||||
<pre><code>data = 54B643663C1F9C91825B8AF9CCB59F7AA7F75B65C6720A3EACA6683F661D8D9C0F3959C60000000000000000FE0001002E8E2A59D19D179F566C2817C04B606F96E4CBDBC4F8834D4FC289F64784ECDA387135E96278C70D1C01AC0C2155C9CD2E93FBE166A519ACE9C5F1E96AF95391E1CE29CB797B53A3AE45F6DCBD0BE3A18F944EAED60C0568B64E1E07BA0270F59DE3F0358AEBEDACC379FCBD1A06D33C1DC100C60C14427A51CB4542E502F0DF0619B1D909864DECDA867DFA37A0EE4F1491F4204D4184BD6BEB1583D9FB60B40A8226AD6F29644B114DB88F200EC586552C01EC21714C63AF447F5B51B6722079A235D3E28761E0934D8CA32C911AE52AD2394981690D76E1A7B8EA13C3E8D8CB03EF889C015995535FFFE48651EF050F4B237532E5427C570AF1E2DE71C500
|
||||
padding = 80D1491B60B0CA090CD0FAE2
|
||||
tmp_aes_key = 7147862BD7CAC01A5C9951FBE5A0B4FCF5966DF5825B7D5819DAD32B457949C5
|
||||
tmp_aes_iv = DBF5DC1EF3E86A680C8F43FB1230D0739AB122B4441191E9119DF945D82B7CC7</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 = 20BE113065E8384EE4A14DCBAF3F1761BDA0DCC31E40FFCD177BAA3D1A8445EA9981EA98FE97865AF139250C4E17CE4D5EDC4589F6CEFFA823DC9C94A3515EB1597E49EE4F0E1C0765792B67B96DC07C5588BB28F086C562D18EC531B6E7A7D0DD5313913A430EF5626613FF08EC5DA6DAD3B13A4F70FCC7086435C8495E973D50AE4256F02C842EE4E681F823B4EDE0EF40F58C90F0A14DD75481F90B41742A0EF1BB2F86B8C6B9711AB1FEEF3F9180ABC87B2852E238924129DB45A0ACCCDD583482363E21EC18A80A2B358DF1C4F973597446F44F141E7CFC4560E195A5B44EA440BAF7D73FB59FF2D7EFCA63536957556B8AC54089627D9030BFF08A64E12A562F059D8B2F2E6CC200BB76D2A9D1B2108A5B0837728D7AF22667D3C46CBFE00AFC0FA772467C014378BBC833A423FE49870556EA7FF9C24BA30109D379383294079E548C38F3B8DC716E2D226B8B</code></pre>
|
||||
<pre><code>encrypted_data = 9CBE1B6FBAD616B6D8C8D241DA793472965A4D4CA4DECE2D55722A5DC4552DEC3290A7CF56129185BD8A98877B837DBB4CA9F21D1C87B5A80A6F1D3B8355E385B16012B29836746FE1787335D2A2B9C476EE671DBD4D209A17F3D64C15EC46944FA0E16105AF2E629543CF6796E744F893ED3915B34602782F8FDAA06EC865CF8324DA8BBEF57DE7165EE89317CB654A70B1A4D9926D10488242E703B0F7A9AE1DBEE2BE79D69B8BB6F5F034449824773E36035D27DE023B025A922BFED812C915E3272497EEB998B7FC91244428030FD043BCB47997E84B6E0D4AD9FEECF0679195BDC4A30351023F6AE3EB567F97B48C6499F117FA9745EF46EAD331D0A609C994E6D3177452EBF9F2F966B60553B658C7630948D4BB41BF14913445CAF883269331D1D981DB4A422DF202A3321670C47E8DDB995ED32CC31CA49D7F936CA88219172F5111320CDB81BFF3A7C43240</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 98 BD 02 00 01 F2 97 66
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 58 8B 84 C8 30 54 02 E3
|
||||
0020 | 20 7B 86 FB 84 3D C2 3B 2B 49 1A 73 88 12 57 1E
|
||||
0030 | AF BF 27 CB 91 54 C3 D3 FE 50 01 00 20 BE 11 30
|
||||
0040 | 65 E8 38 4E E4 A1 4D CB AF 3F 17 61 BD A0 DC C3
|
||||
0050 | 1E 40 FF CD 17 7B AA 3D 1A 84 45 EA 99 81 EA 98
|
||||
0060 | FE 97 86 5A F1 39 25 0C 4E 17 CE 4D 5E DC 45 89
|
||||
0070 | F6 CE FF A8 23 DC 9C 94 A3 51 5E B1 59 7E 49 EE
|
||||
0080 | 4F 0E 1C 07 65 79 2B 67 B9 6D C0 7C 55 88 BB 28
|
||||
0090 | F0 86 C5 62 D1 8E C5 31 B6 E7 A7 D0 DD 53 13 91
|
||||
00A0 | 3A 43 0E F5 62 66 13 FF 08 EC 5D A6 DA D3 B1 3A
|
||||
00B0 | 4F 70 FC C7 08 64 35 C8 49 5E 97 3D 50 AE 42 56
|
||||
00C0 | F0 2C 84 2E E4 E6 81 F8 23 B4 ED E0 EF 40 F5 8C
|
||||
00D0 | 90 F0 A1 4D D7 54 81 F9 0B 41 74 2A 0E F1 BB 2F
|
||||
00E0 | 86 B8 C6 B9 71 1A B1 FE EF 3F 91 80 AB C8 7B 28
|
||||
00F0 | 52 E2 38 92 41 29 DB 45 A0 AC CC DD 58 34 82 36
|
||||
0100 | 3E 21 EC 18 A8 0A 2B 35 8D F1 C4 F9 73 59 74 46
|
||||
0110 | F4 4F 14 1E 7C FC 45 60 E1 95 A5 B4 4E A4 40 BA
|
||||
0120 | F7 D7 3F B5 9F F2 D7 EF CA 63 53 69 57 55 6B 8A
|
||||
0130 | C5 40 89 62 7D 90 30 BF F0 8A 64 E1 2A 56 2F 05
|
||||
0140 | 9D 8B 2F 2E 6C C2 00 BB 76 D2 A9 D1 B2 10 8A 5B
|
||||
0150 | 08 37 72 8D 7A F2 26 67 D3 C4 6C BF E0 0A FC 0F
|
||||
0160 | A7 72 46 7C 01 43 78 BB C8 33 A4 23 FE 49 87 05
|
||||
0170 | 56 EA 7F F9 C2 4B A3 01 09 D3 79 38 32 94 07 9E
|
||||
0180 | 54 8C 38 F3 B8 DC 71 6E 2D 22 6B 8B</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 74 73 03 00 DE F5 97 66
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 3C 1F 9C 91 82 5B 8A F9
|
||||
0020 | CC B5 9F 7A A7 F7 5B 65 C6 72 0A 3E AC A6 68 3F
|
||||
0030 | 66 1D 8D 9C 0F 39 59 C6 FE 50 01 00 9C BE 1B 6F
|
||||
0040 | BA D6 16 B6 D8 C8 D2 41 DA 79 34 72 96 5A 4D 4C
|
||||
0050 | A4 DE CE 2D 55 72 2A 5D C4 55 2D EC 32 90 A7 CF
|
||||
0060 | 56 12 91 85 BD 8A 98 87 7B 83 7D BB 4C A9 F2 1D
|
||||
0070 | 1C 87 B5 A8 0A 6F 1D 3B 83 55 E3 85 B1 60 12 B2
|
||||
0080 | 98 36 74 6F E1 78 73 35 D2 A2 B9 C4 76 EE 67 1D
|
||||
0090 | BD 4D 20 9A 17 F3 D6 4C 15 EC 46 94 4F A0 E1 61
|
||||
00A0 | 05 AF 2E 62 95 43 CF 67 96 E7 44 F8 93 ED 39 15
|
||||
00B0 | B3 46 02 78 2F 8F DA A0 6E C8 65 CF 83 24 DA 8B
|
||||
00C0 | BE F5 7D E7 16 5E E8 93 17 CB 65 4A 70 B1 A4 D9
|
||||
00D0 | 92 6D 10 48 82 42 E7 03 B0 F7 A9 AE 1D BE E2 BE
|
||||
00E0 | 79 D6 9B 8B B6 F5 F0 34 44 98 24 77 3E 36 03 5D
|
||||
00F0 | 27 DE 02 3B 02 5A 92 2B FE D8 12 C9 15 E3 27 24
|
||||
0100 | 97 EE B9 98 B7 FC 91 24 44 28 03 0F D0 43 BC B4
|
||||
0110 | 79 97 E8 4B 6E 0D 4A D9 FE EC F0 67 91 95 BD C4
|
||||
0120 | A3 03 51 02 3F 6A E3 EB 56 7F 97 B4 8C 64 99 F1
|
||||
0130 | 17 FA 97 45 EF 46 EA D3 31 D0 A6 09 C9 94 E6 D3
|
||||
0140 | 17 74 52 EB F9 F2 F9 66 B6 05 53 B6 58 C7 63 09
|
||||
0150 | 48 D4 BB 41 BF 14 91 34 45 CA F8 83 26 93 31 D1
|
||||
0160 | D9 81 DB 4A 42 2D F2 02 A3 32 16 70 C4 7E 8D DB
|
||||
0170 | 99 5E D3 2C C3 1C A4 9D 7F 93 6C A8 82 19 17 2F
|
||||
0180 | 51 11 32 0C DB 81 BF F3 A7 C4 32 40</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>98BD020001F29766</code></td>
|
||||
<td><code>74730300DEF59766</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>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>56, 340</td>
|
||||
<td><code>FE50010020BE113065E8384EE4A14DCB</code> <code>AF3F1761BDA0DCC31E40FFCD177BAA3D</code> <code>1A8445EA9981EA98FE97865AF139250C</code> <code>4E17CE4D5EDC4589F6CEFFA823DC9C94</code> <code>A3515EB1597E49EE4F0E1C0765792B67</code> <code>B96DC07C5588BB28F086C562D18EC531</code> <code>B6E7A7D0DD5313913A430EF5626613FF</code> <code>08EC5DA6DAD3B13A4F70FCC7086435C8</code> <code>495E973D50AE4256F02C842EE4E681F8</code> <code>23B4EDE0EF40F58C90F0A14DD75481F9</code> <code>0B41742A0EF1BB2F86B8C6B9711AB1FE</code> <code>EF3F9180ABC87B2852E238924129DB45</code> <code>A0ACCCDD583482363E21EC18A80A2B35</code> <code>8DF1C4F973597446F44F141E7CFC4560</code> <code>E195A5B44EA440BAF7D73FB59FF2D7EF</code> <code>CA63536957556B8AC54089627D9030BF</code> <code>F08A64E12A562F059D8B2F2E6CC200BB</code> <code>76D2A9D1B2108A5B0837728D7AF22667</code> <code>D3C46CBFE00AFC0FA772467C014378BB</code> <code>C833A423FE49870556EA7FF9C24BA301</code> <code>09D379383294079E548C38F3B8DC716E</code><br> <code>2D226B8B</code></td>
|
||||
<td><code>FE5001009CBE1B6FBAD616B6D8C8D241</code> <code>DA793472965A4D4CA4DECE2D55722A5D</code> <code>C4552DEC3290A7CF56129185BD8A9887</code> <code>7B837DBB4CA9F21D1C87B5A80A6F1D3B</code> <code>8355E385B16012B29836746FE1787335</code> <code>D2A2B9C476EE671DBD4D209A17F3D64C</code> <code>15EC46944FA0E16105AF2E629543CF67</code> <code>96E744F893ED3915B34602782F8FDAA0</code> <code>6EC865CF8324DA8BBEF57DE7165EE893</code> <code>17CB654A70B1A4D9926D10488242E703</code> <code>B0F7A9AE1DBEE2BE79D69B8BB6F5F034</code> <code>449824773E36035D27DE023B025A922B</code> <code>FED812C915E3272497EEB998B7FC9124</code> <code>4428030FD043BCB47997E84B6E0D4AD9</code> <code>FEECF0679195BDC4A30351023F6AE3EB</code> <code>567F97B48C6499F117FA9745EF46EAD3</code> <code>31D0A609C994E6D3177452EBF9F2F966</code> <code>B60553B658C7630948D4BB41BF149134</code> <code>45CAF883269331D1D981DB4A422DF202</code> <code>A3321670C47E8DDB995ED32CC31CA49D</code> <code>7F936CA88219172F5111320CDB81BFF3</code><br> <code>A7C43240</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 = 64D42E2B7B9B875A91903BBF0405154CA5703A16605B8AB06BBC26320648EB9ECDA5690F194204262C283D9B4130C2D259AEDBF214DDD575AD8E49C622299B843A4EFD8A47A0ADA94822FEAC763AF0B3AC7635964433B5AB82477C58958E37FEE48E0BB8EB9FC73F60A48C2C0EC67E0DC637A82C3A52F994D2EA2A560BFE3FD925648BF1754F637CD60D2C3AA5E2CD76916058D2EF6FC79098F826FBB9E435C2496123AF3293E3AF7B4A272D5A9BF03F2E3F83664088C20BB5054E0F4FB4571A8393EF84898C4121D94D7A9BA4AE64028491003B90D1CD94609EE00B96FFDD3332343066E7B2F516AA215B442DA9004F56A9F72D782388D87BD65CF22FCA17FC</code></pre>
|
||||
<pre><code>auth_key = 7FE442146F6CBBC4AF6DD012AC13ED1115523DBAC3EA0572844C0E2D808C132495B763AF8E655EBED8EFA5F5AA0C52DFD70FAD40E0E066705DE25BDD04A9841852115A5DC8460953FE9DFB296705D86FB1B2321768C398466DC71A353A01D7B82A4B0D5FE8BA600D8D1D82326FF92235D44CBF7A7B5C354312017BA4A739350180405AAE49E748CE73421B3B6033A95E0DF6F79C439EFF01C5946A81D9534A00CB27390D5801EFC505718521409FCF5DEF37BCF5AB6DB0836E1E3B8BF0D1E85022CD6D3B68CD58AAA269B449F20FE041E09B4B373074E1DC323A9998E996BBF9D968414199C09367FB5A98DC117C324D25F3A00741393029F43D242E4A94FCF8</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 C0 5E 47 02 F2 97 66
|
||||
0010 | 6C 00 00 00 34 F7 CB 3B 58 8B 84 C8 30 54 02 E3
|
||||
0020 | 20 7B 86 FB 84 3D C2 3B 2B 49 1A 73 88 12 57 1E
|
||||
0030 | AF BF 27 CB 91 54 C3 D3 9E 56 8C 9A 17 B4 85 74
|
||||
0040 | 68 7C 89 F8 A4 A9 F6 A8</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 5C E3 B6 DF F5 97 66
|
||||
0010 | 74 00 00 00 34 F7 CB 3B 3C 1F 9C 91 82 5B 8A F9
|
||||
0020 | CC B5 9F 7A A7 F7 5B 65 C6 72 0A 3E AC A6 68 3F
|
||||
0030 | 66 1D 8D 9C 0F 39 59 C6 AF EB CB 80 4A D6 BD 93
|
||||
0040 | 48 CE 90 E2 1C F2 FC B7</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>01C05E4702F29766</code></td>
|
||||
<td><code>015CE3B6DFF59766</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>6C000000</code> (108 in decimal)</td>
|
||||
<td><code>74000000</code> (116 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>588B84C8305402E3207B86FB843DC23B</code></td>
|
||||
<td><code>3C1F9C91825B8AF9CCB59F7AA7F75B65</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>2B491A738812571EAFBF27CB9154C3D3</code></td>
|
||||
<td><code>C6720A3EACA6683F661D8D9C0F3959C6</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce_hash1</td>
|
||||
<td>56, 16</td>
|
||||
<td><code>9E568C9A17B48574687C89F8A4A9F6A8</code></td>
|
||||
<td><code>AFEBCB804AD6BD9348CE90E21CF2FCB7</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>
|
||||
|
|
|
@ -82,7 +82,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/inputInvoiceStars">inputInvoiceStars</a></td>
|
||||
<td> </td>
|
||||
<td>Used to top up the current account's <a href="/api/stars">Telegram Stars</a> balance.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
</table>
|
||||
<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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
</table>
|
||||
<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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
</table>
|
||||
<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="#telegram-stars" id="telegram-stars" name="telegram-stars"><i class="anchor-icon"></i></a><a href="/api/stars">Telegram Stars</a></h4>
|
||||
<p>This page describes the methods used to buy and withdraw <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#rewards-for-content-creators-and-developers">Telegram Stars</a>, as well as view detailed revenue stats and make purchases using Telegram Stars.</p></div>
|
||||
<p>Telegram Stars are an in-app currency that allows the user to pay for digital goods and services offered by <a href="https://telegram.org/blog/telegram-stars">Telegram bots</a> or <a href="https://telegram.org/blog/mini-app-bar-paid-media-and-more#pay-for-content-with-telegram-stars">Telegram channels</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue