mirror of
https://github.com/MarshalX/telegram-crawler.git
synced 2025-01-21 00:17:06 +01:00
Update content of files
This commit is contained in:
parent
57765b2beb
commit
2f4b04f93a
16 changed files with 339 additions and 424 deletions
|
@ -275,7 +275,7 @@
|
|||
<li>Added <a href="/method/account.getBusinessChatLinks">account.getBusinessChatLinks</a> - List all created <a href="/api/business#business-chat-links">business chat deep links »</a>.</li>
|
||||
<li>Added <a href="/method/account.resolveBusinessChatLink">account.resolveBusinessChatLink</a> - Resolve a <a href="/api/business#business-chat-links">business chat deep link »</a>.</li>
|
||||
<li>Added <a href="/method/account.updatePersonalChannel">account.updatePersonalChannel</a> - Associate (or remove) a personal <a href="/api/channel">channel »</a>, that will be listed on our personal <a href="/api/profile#personal-channel">profile page »</a>.</li>
|
||||
<li>Added <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a> - </li>
|
||||
<li>Added <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a> - Report a <a href="/api/sponsored-messages">sponsored message »</a>, see <a href="/api/sponsored-messages#reporting-sponsored-messages">here »</a> for more info on the full flow.</li>
|
||||
<li>Added <a href="/method/stats.getBroadcastRevenueStats">stats.getBroadcastRevenueStats</a> - Get <a href="/api/revenue">channel ad revenue statistics »</a>.</li>
|
||||
<li>Added <a href="/method/stats.getBroadcastRevenueWithdrawalUrl">stats.getBroadcastRevenueWithdrawalUrl</a> - Withdraw funds from a channel's <a href="/api/revenue">ad revenue balance »</a>.</li>
|
||||
<li>Added <a href="/method/stats.getBroadcastRevenueTransactions">stats.getBroadcastRevenueTransactions</a> - Fetch <a href="/api/revenue">channel ad revenue transaction history »</a>.</li>
|
||||
|
@ -325,10 +325,10 @@
|
|||
<li>Added <a href="/constructor/requestedPeerChannel">requestedPeerChannel</a> - </li>
|
||||
<li>Added <a href="/constructor/messageActionRequestedPeerSentMe">messageActionRequestedPeerSentMe</a> - </li>
|
||||
<li>Added <a href="/constructor/inputKeyboardButtonRequestPeer">inputKeyboardButtonRequestPeer</a> - </li>
|
||||
<li>Added <a href="/constructor/sponsoredMessageReportOption">sponsoredMessageReportOption</a> - </li>
|
||||
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultChooseOption">channels.sponsoredMessageReportResultChooseOption</a> - </li>
|
||||
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultAdsHidden">channels.sponsoredMessageReportResultAdsHidden</a> - </li>
|
||||
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultReported">channels.sponsoredMessageReportResultReported</a> - </li>
|
||||
<li>Added <a href="/constructor/sponsoredMessageReportOption">sponsoredMessageReportOption</a> - A <a href="/api/sponsored-messages#reporting-sponsored-messages">report option for a sponsored message »</a>.</li>
|
||||
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultChooseOption">channels.sponsoredMessageReportResultChooseOption</a> - The user must choose a report option from the localized options available in <code>options</code>, and after selection, <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a> must be invoked again, passing the option's <code>option</code> field to the <code>option</code> param of the method.</li>
|
||||
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultAdsHidden">channels.sponsoredMessageReportResultAdsHidden</a> - Sponsored messages were hidden for the user in all chats.</li>
|
||||
<li>Added <a href="/constructor/channels.sponsoredMessageReportResultReported">channels.sponsoredMessageReportResultReported</a> - The sponsored message was reported successfully.</li>
|
||||
<li>Added <a href="/constructor/stats.broadcastRevenueStats">stats.broadcastRevenueStats</a> - </li>
|
||||
<li>Added <a href="/constructor/stats.broadcastRevenueWithdrawalUrl">stats.broadcastRevenueWithdrawalUrl</a> - </li>
|
||||
<li>Added <a href="/constructor/broadcastRevenueTransactionProceeds">broadcastRevenueTransactionProceeds</a> - Describes earnings from sponsored messages in a channel in some time frame, see <a href="/api/revenue">here »</a> for more info.</li>
|
||||
|
@ -491,7 +491,7 @@
|
|||
<li>Added <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> - One or more messages in a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a> were deleted.</li>
|
||||
<li>Added <a href="/constructor/connectedBot">connectedBot</a> - Contains info about a <a href="/api/business#connected-bots">connected business bot »</a>.</li>
|
||||
<li>Added <a href="/constructor/account.connectedBots">account.connectedBots</a> - Info about currently connected <a href="/api/business#connected-bots">business bots</a>.</li>
|
||||
<li>Added <a href="/constructor/messages.dialogFilters">messages.dialogFilters</a> - </li>
|
||||
<li>Added <a href="/constructor/messages.dialogFilters">messages.dialogFilters</a> - <a href="/api/folders">Folder</a> information</li>
|
||||
</ul>
|
||||
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
|
||||
<ul>
|
||||
|
|
|
@ -5,11 +5,13 @@
|
|||
<title>Sponsored messages</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Related TL schema:
|
||||
sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;…">
|
||||
Getting sponsored messages
|
||||
sponsoredMessage#bdedf566 flags:# recommended:flags.5?true can_report:flags.12?true…">
|
||||
<meta property="og:title" content="Sponsored messages">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Related TL schema:
|
||||
sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;…">
|
||||
Getting sponsored messages
|
||||
sponsoredMessage#bdedf566 flags:# recommended:flags.5?true can_report:flags.12?true…">
|
||||
<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,19 +46,17 @@ sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Phot
|
|||
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/api/sponsored-messages" >Sponsored messages</a></li></ul></div>
|
||||
<h1 id="dev_page_title">Sponsored messages</h1>
|
||||
|
||||
<div id="dev_page_content"><p>Related TL schema:</p>
|
||||
<pre><code>sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Photo = SponsoredWebPage;
|
||||
<div id="dev_page_content"><!-- scroll_nav -->
|
||||
|
||||
<a href='/constructor/sponsoredMessage'>sponsoredMessage</a>#bdedf566 flags:<a href='/type/%23'>#</a> recommended:flags.5?<a href='/constructor/true'>true</a> can_report:flags.12?<a href='/constructor/true'>true</a> random_id:<a href='/type/bytes'>bytes</a> url:<a href='/type/string'>string</a> title:<a href='/type/string'>string</a> message:<a href='/type/string'>string</a> entities:flags.1?<a href='/type/Vector%20t'>Vector</a><<a href='/type/MessageEntity'>MessageEntity</a>> photo:flags.6?<a href='/type/Photo'>Photo</a> color:flags.13?<a href='/type/PeerColor'>PeerColor</a> button_text:<a href='/type/string'>string</a> sponsor_info:flags.7?<a href='/type/string'>string</a> additional_info:flags.8?<a href='/type/string'>string</a> = <a href='/type/SponsoredMessage'>SponsoredMessage</a>;
|
||||
<p>Related TL schema:</p>
|
||||
<h4><a class="anchor" href="#getting-sponsored-messages" id="getting-sponsored-messages" name="getting-sponsored-messages"><i class="anchor-icon"></i></a>Getting sponsored messages</h4>
|
||||
<pre><code><a href='/constructor/sponsoredMessage'>sponsoredMessage</a>#bdedf566 flags:<a href='/type/%23'>#</a> recommended:flags.5?<a href='/constructor/true'>true</a> can_report:flags.12?<a href='/constructor/true'>true</a> random_id:<a href='/type/bytes'>bytes</a> url:<a href='/type/string'>string</a> title:<a href='/type/string'>string</a> message:<a href='/type/string'>string</a> entities:flags.1?<a href='/type/Vector%20t'>Vector</a><<a href='/type/MessageEntity'>MessageEntity</a>> photo:flags.6?<a href='/type/Photo'>Photo</a> color:flags.13?<a href='/type/PeerColor'>PeerColor</a> button_text:<a href='/type/string'>string</a> sponsor_info:flags.7?<a href='/type/string'>string</a> additional_info:flags.8?<a href='/type/string'>string</a> = <a href='/type/SponsoredMessage'>SponsoredMessage</a>;
|
||||
|
||||
<a href='/constructor/messages.sponsoredMessages'>messages.sponsoredMessages</a>#c9ee1d87 flags:<a href='/type/%23'>#</a> posts_between:flags.0?<a href='/type/int'>int</a> messages:<a href='/type/Vector%20t'>Vector</a><<a href='/type/SponsoredMessage'>SponsoredMessage</a>> chats:<a href='/type/Vector%20t'>Vector</a><<a href='/type/Chat'>Chat</a>> users:<a href='/type/Vector%20t'>Vector</a><<a href='/type/User'>User</a>> = <a href='/type/messages.SponsoredMessages'>messages.SponsoredMessages</a>;
|
||||
|
||||
---functions---
|
||||
|
||||
<a href='/method/channels.getSponsoredMessages'>channels.getSponsoredMessages</a>#ec210fbf channel:<a href='/type/InputChannel'>InputChannel</a> = <a href='/type/messages.SponsoredMessages'>messages.SponsoredMessages</a>;
|
||||
<a href='/method/channels.viewSponsoredMessage'>channels.viewSponsoredMessage</a>#beaedb94 channel:<a href='/type/InputChannel'>InputChannel</a> random_id:<a href='/type/bytes'>bytes</a> = <a href='/type/Bool'>Bool</a>;
|
||||
<a href='/method/channels.clickSponsoredMessage'>channels.clickSponsoredMessage</a>#18afbc93 channel:<a href='/type/InputChannel'>InputChannel</a> random_id:<a href='/type/bytes'>bytes</a> = <a href='/type/Bool'>Bool</a>;</code></pre>
|
||||
<h4><a class="anchor" href="#getting-sponsored-messages" id="getting-sponsored-messages" name="getting-sponsored-messages"><i class="anchor-icon"></i></a>Getting sponsored messages</h4>
|
||||
<a href='/method/channels.getSponsoredMessages'>channels.getSponsoredMessages</a>#ec210fbf channel:<a href='/type/InputChannel'>InputChannel</a> = <a href='/type/messages.SponsoredMessages'>messages.SponsoredMessages</a>;</code></pre>
|
||||
<p>Each time the user opens a channel, <code>channels.getSponsoredMessages</code> must be called to receive <a href="https://promote.telegram.org">sponsored messages</a> available for this channel. The result must be cached for <strong>5 minutes</strong>.</p>
|
||||
<blockquote>
|
||||
<p><a href="https://t.me/durov/172">More about sponsored messages on Telegram</a></p>
|
||||
|
@ -88,8 +88,14 @@ sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Phot
|
|||
</ul>
|
||||
<p>If the <code>sponsor_info</code> or <code>additional_info</code> flags are set, an additional "Sponsor info" menu item must be present in the message context menu (the menu that pops up when clicking on a button), that when clicked, displays the contents of the flags. </p>
|
||||
<h4><a class="anchor" href="#counting-sponsored-message-views" id="counting-sponsored-message-views" name="counting-sponsored-message-views"><i class="anchor-icon"></i></a>Counting sponsored message views</h4>
|
||||
<pre><code>---functions---
|
||||
|
||||
<a href='/method/channels.viewSponsoredMessage'>channels.viewSponsoredMessage</a>#beaedb94 channel:<a href='/type/InputChannel'>InputChannel</a> random_id:<a href='/type/bytes'>bytes</a> = <a href='/type/Bool'>Bool</a>;</code></pre>
|
||||
<p>Once the entire text is shown on the screen (excluding the button), <a href="/method/channels.viewSponsoredMessage">channels.viewSponsoredMessage</a> must be called with the <code>random_id</code> of the sponsored message.</p>
|
||||
<h4><a class="anchor" href="#clicking-on-sponsored-messages" id="clicking-on-sponsored-messages" name="clicking-on-sponsored-messages"><i class="anchor-icon"></i></a>Clicking on sponsored messages</h4>
|
||||
<pre><code>---functions---
|
||||
|
||||
<a href='/method/channels.clickSponsoredMessage'>channels.clickSponsoredMessage</a>#18afbc93 channel:<a href='/type/InputChannel'>InputChannel</a> random_id:<a href='/type/bytes'>bytes</a> = <a href='/type/Bool'>Bool</a>;</code></pre>
|
||||
<p>If the user either:</p>
|
||||
<ul>
|
||||
<li>Clicks on a link in the sponsored message</li>
|
||||
|
@ -97,6 +103,29 @@ sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Phot
|
|||
<li>Opens the sponsored chat via the sponsored message name, the sponsored message photo, or a mention in the sponsored message</li>
|
||||
</ul>
|
||||
<p><a href="/method/channels.clickSponsoredMessage">channels.clickSponsoredMessage</a> must be called with the <code>random_id</code> of the sponsored message.</p>
|
||||
<h4><a class="anchor" href="#reporting-sponsored-messages" id="reporting-sponsored-messages" name="reporting-sponsored-messages"><i class="anchor-icon"></i></a>Reporting sponsored messages</h4>
|
||||
<pre><code><a href='/constructor/sponsoredMessageReportOption'>sponsoredMessageReportOption</a>#430d3150 text:<a href='/type/string'>string</a> option:<a href='/type/bytes'>bytes</a> = <a href='/type/SponsoredMessageReportOption'>SponsoredMessageReportOption</a>;
|
||||
|
||||
<a href='/constructor/channels.sponsoredMessageReportResultChooseOption'>channels.sponsoredMessageReportResultChooseOption</a>#846f9e42 title:<a href='/type/string'>string</a> options:<a href='/type/Vector%20t'>Vector</a><<a href='/type/SponsoredMessageReportOption'>SponsoredMessageReportOption</a>> = <a href='/type/channels.SponsoredMessageReportResult'>channels.SponsoredMessageReportResult</a>;
|
||||
<a href='/constructor/channels.sponsoredMessageReportResultAdsHidden'>channels.sponsoredMessageReportResultAdsHidden</a>#3e3bcf2f = <a href='/type/channels.SponsoredMessageReportResult'>channels.SponsoredMessageReportResult</a>;
|
||||
<a href='/constructor/channels.sponsoredMessageReportResultReported'>channels.sponsoredMessageReportResultReported</a>#ad798849 = <a href='/type/channels.SponsoredMessageReportResult'>channels.SponsoredMessageReportResult</a>;
|
||||
|
||||
---functions---
|
||||
|
||||
<a href='/method/channels.reportSponsoredMessage'>channels.reportSponsoredMessage</a>#af8ff6b9 channel:<a href='/type/InputChannel'>InputChannel</a> random_id:<a href='/type/bytes'>bytes</a> option:<a href='/type/bytes'>bytes</a> = <a href='/type/channels.SponsoredMessageReportResult'>channels.SponsoredMessageReportResult</a>;</code></pre>
|
||||
<p>To report a sponsored message to Telegram's moderators, invoke <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a>, passing the channel ID, the <code>random_id</code> of the sponsored message and an empty <code>option</code> field. </p>
|
||||
<p>Then, if the result is:</p>
|
||||
<ul>
|
||||
<li>A <a href="/constructor/channels.sponsoredMessageReportResultChooseOption">channels.sponsoredMessageReportResultChooseOption</a> constructor, the user must choose a report option from the localized options available in <code>options</code>, and after selection, the method must be invoked again, passing the option's <code>option</code> field to the <code>option</code> parameter of <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a>.<br>
|
||||
The <code>title</code> field of <a href="/constructor/channels.sponsoredMessageReportResultChooseOption">channels.sponsoredMessageReportResultChooseOption</a> must be used as title of the option selection popup. </li>
|
||||
<li>A <a href="/constructor/channels.sponsoredMessageReportResultAdsHidden">channels.sponsoredMessageReportResultAdsHidden</a> constructor, sponsored messages were hidden for the user in all chats. </li>
|
||||
<li>A <a href="/constructor/channels.sponsoredMessageReportResultReported">channels.sponsoredMessageReportResultReported</a> constructor, the sponsored message was reported successfully. </li>
|
||||
</ul>
|
||||
<p>The method may also return:</p>
|
||||
<ul>
|
||||
<li>An <code>AD_EXPIRED</code> RPC error, for expired (too old or not found) ads</li>
|
||||
<li>A <code>PREMIUM_ACCOUNT_REQUIRED</code> RPC error, if the user asked to hide sponsored messages in the chosen option, but Telegram Premium is required for this action. </li>
|
||||
</ul>
|
||||
<h4><a class="anchor" href="#testing-sponsored-messages" id="testing-sponsored-messages" name="testing-sponsored-messages"><i class="anchor-icon"></i></a>Testing sponsored messages</h4>
|
||||
<p>For the channel <a href="https://t.me/SecretAdTestChannel">https://t.me/SecretAdTestChannel</a> the system will <strong>always</strong> return a sponsored message: promoting either a channel, a particular message in a channel, or a bot with a start parameter.</p>
|
||||
<hr>
|
||||
|
@ -170,8 +199,11 @@ sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Phot
|
|||
</div>
|
||||
</div>
|
||||
<script src="/js/main.js?47"></script>
|
||||
|
||||
<script>backToTopInit("Go up");
|
||||
<script src="/js/jquery.min.js?1"></script>
|
||||
<script src="/js/bootstrap.min.js?1"></script>
|
||||
|
||||
<script>window.initDevPageNav&&initDevPageNav();
|
||||
backToTopInit("Go up");
|
||||
removePreloadInit();
|
||||
</script>
|
||||
</body>
|
||||
|
|
|
@ -79,7 +79,7 @@
|
|||
<tr>
|
||||
<td><strong>play_integrity_nonce</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/bytes">bytes</a></td>
|
||||
<td> </td>
|
||||
<td>Play Integrity API nonce</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>receipt</strong></td>
|
||||
|
|
|
@ -4,16 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>channels.sponsoredMessageReportResultAdsHidden</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Type
|
||||
channels.SponsoredMessageReportResult">
|
||||
<meta property="description" content="Sponsored messages were hidden for the user in all chats.">
|
||||
<meta property="og:title" content="channels.sponsoredMessageReportResultAdsHidden">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Type
|
||||
channels.SponsoredMessageReportResult">
|
||||
<meta property="og:description" content="Sponsored messages were hidden for the user in all chats.">
|
||||
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
||||
|
@ -48,7 +42,8 @@ channels.SponsoredMessageReportResult">
|
|||
<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/channels.sponsoredMessageReportResultAdsHidden" >channels.sponsoredMessageReportResultAdsHidden</a></li></ul></div>
|
||||
<h1 id="dev_page_title">channels.sponsoredMessageReportResultAdsHidden</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Sponsored messages were hidden for the user in all chats.</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>
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>channels.sponsoredMessageReportResultChooseOption</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
title
|
||||
string
|
||||
|
||||
options
|
||||
Vector<SponsoredMessageReportOption>
|
||||
|
||||
Type
|
||||
channels.Sponsored…">
|
||||
<meta property="description" content="The user must choose a report option from the localized options available in options, and after selection, channels.reportSponsoredMessage must be invoked again, passing the option's option field to the option param of the method.">
|
||||
<meta property="og:title" content="channels.sponsoredMessageReportResultChooseOption">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
title
|
||||
string
|
||||
|
||||
options
|
||||
Vector<SponsoredMessageReportOption>
|
||||
|
||||
Type
|
||||
channels.Sponsored…">
|
||||
<meta property="og:description" content="The user must choose a report option from the localized options available in options, and after selection, channels.reportSponsoredMessage must be invoked again, passing the option's option field to the option param of the method.">
|
||||
<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 +42,8 @@ channels.Sponsored…">
|
|||
<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/channels.sponsoredMessageReportResultChooseOption" >channels.sponsoredMessageReportResultChooseOption</a></li></ul></div>
|
||||
<h1 id="dev_page_title">channels.sponsoredMessageReportResultChooseOption</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>The user must choose a report option from the localized options available in <code>options</code>, and after selection, <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a> must be invoked again, passing the option's <code>option</code> field to the <code>option</code> param of the method.</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>
|
||||
|
@ -90,17 +69,20 @@ channels.Sponsored…">
|
|||
<tr>
|
||||
<td><strong>title</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/string">string</a></td>
|
||||
<td> </td>
|
||||
<td>Title of the option selection popup.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>options</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a><<a href="/type/SponsoredMessageReportOption">SponsoredMessageReportOption</a>></td>
|
||||
<td> </td>
|
||||
<td>Localized list of options.</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/channels.SponsoredMessageReportResult">channels.SponsoredMessageReportResult</a></p></div>
|
||||
<p><a href="/type/channels.SponsoredMessageReportResult">channels.SponsoredMessageReportResult</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="#channelsreportsponsoredmessage" id="channelsreportsponsoredmessage" name="channelsreportsponsoredmessage"><i class="anchor-icon"></i></a><a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a></h4>
|
||||
<p>Report a <a href="/api/sponsored-messages">sponsored message »</a>, see <a href="/api/sponsored-messages#reporting-sponsored-messages">here »</a> for more info on the full flow.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,16 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>channels.sponsoredMessageReportResultReported</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Type
|
||||
channels.SponsoredMessageReportResult">
|
||||
<meta property="description" content="The sponsored message was reported successfully.">
|
||||
<meta property="og:title" content="channels.sponsoredMessageReportResultReported">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Type
|
||||
channels.SponsoredMessageReportResult">
|
||||
<meta property="og:description" content="The sponsored message was reported successfully.">
|
||||
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
||||
|
@ -48,7 +42,8 @@ channels.SponsoredMessageReportResult">
|
|||
<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/channels.sponsoredMessageReportResultReported" >channels.sponsoredMessageReportResultReported</a></li></ul></div>
|
||||
<h1 id="dev_page_title">channels.sponsoredMessageReportResultReported</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>The sponsored message was reported successfully.</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>
|
||||
|
|
|
@ -264,7 +264,7 @@
|
|||
<tr>
|
||||
<td><strong>factcheck</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags2</a>.3?<a href="/type/FactCheck">FactCheck</a></td>
|
||||
<td> </td>
|
||||
<td>Represents a <a href="/api/factcheck">fact-check »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -296,7 +296,9 @@
|
|||
<h4><a class="anchor" href="#uploading-and-downloading-files" id="uploading-and-downloading-files" name="uploading-and-downloading-files"><i class="anchor-icon"></i></a><a href="/api/files">Uploading and Downloading Files</a></h4>
|
||||
<p>How to transfer large data batches correctly.</p>
|
||||
<h4><a class="anchor" href="#animated-message-effects" id="animated-message-effects" name="animated-message-effects"><i class="anchor-icon"></i></a><a href="/api/effects">Animated message effects</a></h4>
|
||||
<p>Telegram allows adding spectacular <strong>animated effects</strong> to messages you send.</p></div>
|
||||
<p>Telegram allows adding spectacular <strong>animated effects</strong> to messages you send.</p>
|
||||
<h4><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></h4>
|
||||
<p>Telegram clients support displaying fact-checks added to messages by independent fact-checkers.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messages.dialogFilters</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
tags_enabled
|
||||
flags.0?true
|
||||
|
||||
filters
|
||||
Vector<DialogFilter>…">
|
||||
<meta property="description" content="Folder information">
|
||||
<meta property="og:title" content="messages.dialogFilters">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
tags_enabled
|
||||
flags.0?true
|
||||
|
||||
filters
|
||||
Vector<DialogFilter>…">
|
||||
<meta property="og:description" content="Folder information">
|
||||
<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 +42,8 @@ Vector<DialogFilter>…">
|
|||
<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/messages.dialogFilters" >messages.dialogFilters</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messages.dialogFilters</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p><a href="/api/folders">Folder</a> information</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,12 +79,15 @@ Vector<DialogFilter>…">
|
|||
<tr>
|
||||
<td><strong>filters</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a><<a href="/type/DialogFilter">DialogFilter</a>></td>
|
||||
<td> </td>
|
||||
<td>Folders.</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/messages.DialogFilters">messages.DialogFilters</a></p></div>
|
||||
<p><a href="/type/messages.DialogFilters">messages.DialogFilters</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="#folders" id="folders" name="folders"><i class="anchor-icon"></i></a><a href="/api/folders">Folders</a></h4>
|
||||
<p>Telegram allows placing chats into folders, based on their type, mute status, or other custom criteria, thanks to folder blacklists and whitelists.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>sponsoredMessageReportOption</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
text
|
||||
string
|
||||
|
||||
option
|
||||
bytes
|
||||
|
||||
Type
|
||||
SponsoredMessageReportOption">
|
||||
<meta property="description" content="A report option for a sponsored message ».">
|
||||
<meta property="og:title" content="sponsoredMessageReportOption">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
text
|
||||
string
|
||||
|
||||
option
|
||||
bytes
|
||||
|
||||
Type
|
||||
SponsoredMessageReportOption">
|
||||
<meta property="og:description" content="A report option for a sponsored message ».">
|
||||
<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 +42,8 @@ SponsoredMessageReportOption">
|
|||
<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/sponsoredMessageReportOption" >sponsoredMessageReportOption</a></li></ul></div>
|
||||
<h1 id="dev_page_title">sponsoredMessageReportOption</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>A <a href="/api/sponsored-messages#reporting-sponsored-messages">report option for a sponsored message »</a>.</p>
|
||||
<p><div class="clearfix">
|
||||
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
|
||||
|
@ -90,17 +69,21 @@ SponsoredMessageReportOption">
|
|||
<tr>
|
||||
<td><strong>text</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/string">string</a></td>
|
||||
<td> </td>
|
||||
<td>Localized description of the option.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>option</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/bytes">bytes</a></td>
|
||||
<td> </td>
|
||||
<td>Option identifier to pass to <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</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/SponsoredMessageReportOption">SponsoredMessageReportOption</a></p></div>
|
||||
<p><a href="/type/SponsoredMessageReportOption">SponsoredMessageReportOption</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="#channelsreportsponsoredmessage" id="channelsreportsponsoredmessage" name="channelsreportsponsoredmessage"><i class="anchor-icon"></i></a><a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a></h4>
|
||||
<p>Report a <a href="/api/sponsored-messages">sponsored message »</a>, see <a href="/api/sponsored-messages#reporting-sponsored-messages">here »</a> for more info on the full flow.</p>
|
||||
<h4><a class="anchor" href="#sponsored-messages" id="sponsored-messages" name="sponsored-messages"><i class="anchor-icon"></i></a><a href="/api/sponsored-messages">Sponsored messages</a></h4></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,38 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>channels.reportSponsoredMessage</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
channel
|
||||
InputChannel
|
||||
|
||||
random_id
|
||||
bytes
|
||||
|
||||
option
|
||||
bytes
|
||||
|
||||
Result
|
||||
channels.SponsoredMessageReportResult…">
|
||||
<meta property="description" content="Report a sponsored message », see here » for more info on the full flow.">
|
||||
<meta property="og:title" content="channels.reportSponsoredMessage">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
channel
|
||||
InputChannel
|
||||
|
||||
random_id
|
||||
bytes
|
||||
|
||||
option
|
||||
bytes
|
||||
|
||||
Result
|
||||
channels.SponsoredMessageReportResult…">
|
||||
<meta property="og:description" content="Report a sponsored message », see here » for more info on the full flow.">
|
||||
<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">
|
||||
|
@ -70,7 +42,8 @@ channels.SponsoredMessageReportResult…">
|
|||
<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/channels.reportSponsoredMessage" >channels.reportSponsoredMessage</a></li></ul></div>
|
||||
<h1 id="dev_page_title">channels.reportSponsoredMessage</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Report a <a href="/api/sponsored-messages">sponsored message »</a>, see <a href="/api/sponsored-messages#reporting-sponsored-messages">here »</a> for more info on the full flow.</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 +73,17 @@ channels.SponsoredMessageReportResult…">
|
|||
<tr>
|
||||
<td><strong>channel</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/InputChannel">InputChannel</a></td>
|
||||
<td> </td>
|
||||
<td>The channel where the sponsored message can be seen.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>random_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/bytes">bytes</a></td>
|
||||
<td> </td>
|
||||
<td>ID of the sponsored message.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>option</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/bytes">bytes</a></td>
|
||||
<td> </td>
|
||||
<td>Chosen report option, initially an empty string, see <a href="/api/sponsored-messages#reporting-sponsored-messages">here »</a> for more info on the full flow.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -132,7 +105,9 @@ channels.SponsoredMessageReportResult…">
|
|||
<td>The provided channel is invalid.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</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="#sponsored-messages" id="sponsored-messages" name="sponsored-messages"><i class="anchor-icon"></i></a><a href="/api/sponsored-messages">Sponsored messages</a></h4></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -3273,7 +3273,7 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a></td>
|
||||
<td> </td>
|
||||
<td>Report a <a href="/api/sponsored-messages">sponsored message »</a>, see <a href="/api/sponsored-messages#reporting-sponsored-messages">here »</a> for more info on the full flow.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/channels.restrictSponsoredMessages">channels.restrictSponsoredMessages</a></td>
|
||||
|
|
|
@ -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 C4 D0 01 00 5D 09 98 66
|
||||
0010 | 14 00 00 00 F1 8E 7E BE 6A 7C BA 77 6C DF 92 4D
|
||||
0020 | F7 1F C0 C9 6F 16 DB 7D</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 C4 0C 02 00 8A 0F 98 66
|
||||
0010 | 14 00 00 00 F1 8E 7E BE AE F5 C9 39 CB 22 E0 B2
|
||||
0020 | 78 B3 7F 70 A0 A1 33 4C</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>C4D001005D099866</code></td>
|
||||
<td><code>C40C02008A0F9866</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>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Random number</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -104,10 +104,10 @@
|
|||
<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 A0 A4 CA 5D 09 98 66
|
||||
0010 | 64 00 00 00 63 24 16 05 6A 7C BA 77 6C DF 92 4D
|
||||
0020 | F7 1F C0 C9 6F 16 DB 7D F6 F6 2F 29 D7 2E F7 08
|
||||
0030 | 30 00 91 24 F7 63 6A A9 08 14 A4 53 42 3E C8 5D
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 FC E4 AB 8A 0F 98 66
|
||||
0010 | CC 00 00 00 63 24 16 05 AE F5 C9 39 CB 22 E0 B2
|
||||
0020 | 78 B3 7F 70 A0 A1 33 4C 67 C5 07 B5 A7 4F 60 B6
|
||||
0030 | 61 13 30 AB 03 09 00 F5 08 29 19 48 C5 40 AD F5
|
||||
0040 | AF 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>
|
||||
|
@ -132,13 +132,13 @@
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>01A0A4CA5D099866</code></td>
|
||||
<td><code>01FCE4AB8A0F9866</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>64000000</code> (100 in decimal)</td>
|
||||
<td><code>CC000000</code> (204 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -150,19 +150,19 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Server-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pq</td>
|
||||
<td>56, 12</td>
|
||||
<td><code>0814A453423EC85DAF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1487405320925371823</td>
|
||||
<td><code>08291948C540ADF5AF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 2961478242003711407</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 = 1487405320925371823</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>1487405320925371823 = 1088038111 * 1367052593</code></p>
|
||||
<pre><code>p = 1088038111
|
||||
q = 1367052593</code></pre>
|
||||
<pre><code>pq = 2961478242003711407</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>2961478242003711407 = 1481228653 * 1999339019</code></p>
|
||||
<pre><code>p = 1481228653
|
||||
q = 1999339019</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 14 A4 53 42 3E C8 5D AF 00 00 00
|
||||
0010 | 04 40 DA 24 DF 00 00 00 04 51 7B 91 31 00 00 00
|
||||
0020 | 6A 7C BA 77 6C DF 92 4D F7 1F C0 C9 6F 16 DB 7D
|
||||
0030 | F6 F6 2F 29 D7 2E F7 08 30 00 91 24 F7 63 6A A9
|
||||
0040 | E5 54 4E F5 6D 1C D7 79 C3 70 A1 00 7C A1 26 E8
|
||||
0050 | 00 7F EC 35 5B B0 51 6A 66 61 6F 66 F4 87 0F 2D
|
||||
<pre><code>0000 | 95 5F F5 A9 08 29 19 48 C5 40 AD F5 AF 00 00 00
|
||||
0010 | 04 58 49 C1 6D 00 00 00 04 77 2B 7E 0B 00 00 00
|
||||
0020 | AE F5 C9 39 CB 22 E0 B2 78 B3 7F 70 A0 A1 33 4C
|
||||
0030 | 67 C5 07 B5 A7 4F 60 B6 61 13 30 AB 03 09 00 F5
|
||||
0040 | 7F 23 F4 00 43 87 4E 11 20 28 7B BC 7D 30 F3 84
|
||||
0050 | 34 9F 0F 87 43 08 D1 19 24 5C 36 A3 15 DB E1 F6
|
||||
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 = 1367052593</code></pre>
|
|||
<tr>
|
||||
<td>pq</td>
|
||||
<td>4, 12</td>
|
||||
<td><code>0814A453423EC85DAF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1487405320925371823</td>
|
||||
<td><code>08291948C540ADF5AF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 2961478242003711407</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>0440DA24DF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1088038111</td>
|
||||
<td><code>045849C16D000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1481228653</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>04517B9131000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1367052593</td>
|
||||
<td><code>04772B7E0B000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1999339019</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>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>48, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce</td>
|
||||
<td>64, 32</td>
|
||||
<td><code>E5544EF56D1CD779C370A1007CA126E8</code> <code>007FEC355BB0516A66616F66F4870F2D</code></td>
|
||||
<td><code>7F23F40043874E1120287BBC7D30F384</code> <code>349F0F874308D119245C36A315DBE1F6</code></td>
|
||||
<td>Client-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -291,39 +291,39 @@ q = 1367052593</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 = 955FF5A90814A453423EC85DAF0000000440DA24DF00000004517B91310000006A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA9E5544EF56D1CD779C370A1007CA126E8007FEC355BB0516A66616F66F4870F2D02000000
|
||||
random_padding_bytes = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E667FA8D6DBABADB84C74E2612EADCD78387ED842EC8CA8E15834A432F300CD5DBFD9EC278F975957AF2004DEF3EFDEF5D8281911F871F8669E2B50C0E376EEB1</code></pre>
|
||||
<pre><code>data = 955FF5A908291948C540ADF5AF000000045849C16D00000004772B7E0B000000AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F57F23F40043874E1120287BBC7D30F384349F0F874308D119245C36A315DBE1F602000000
|
||||
random_padding_bytes = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D1B908B09AA1A8C077709FFE25DA3D132577FA2031C8DE27DEE0C07FB54056D196CCE647D8C042BE19424A842CADCD0830B5CD2AD8F1C3816F65908A0E3465EF</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 = 905B422FF07C827F453B0EE9164C0CE1BD9C17588362ACBD24BB5397C7887608AA1A5B3D90189EACFE5C3F33153F4998184B44AAB1C1DBD98B4DDE7D1DFDCA8E4A626C667B09A4E59CC524DA1647F864E5DFAD7973417662A890E2A9D1558A65BF1482C085ACE12A61A841EC242165D417A7B571AE2E476CC4DF0D11C8B0F8B6EE4D705F6EA672B1DBEBF227B69189B909F0BAE353C3252A98AC133F96A362DDB53829339A9731A5B7344A86EDE794DDFC4A37F350ADB72153FE1130F2EBC7DCA689BE1772E30145A126197D1487954AB621CBA66BFE7C0F7FC4E7A40F3939013439A8C7643E4193B030B4FCFF3E2B77A95227B4A54899668CA5FE7A1ED24722</code></pre>
|
||||
<pre><code>encrypted_data = BD15E8436C64F4488ADE14AEAE2289863D05B15521D983494A5BB955DB14C0F40708A8821E623FF1A004B4BBB35FD74FC084C5F120282962F20526ABAAB1A8AF2FBDB8B1260A73C3ED159831DA11A4B9C5AB89AB64C9B79518AA5BF1A301440AE54CDB556CADB5FF29A314578E31452A0130D74D5ADAFCF83B85E873D4043C0D4850AE3CD698DD8873FBD5CDF2E9E5C93AE2732C55E6BA86739275F325EB8192F5D00278D639D2C049902B4B162076B56B3800C3A7ECC97FD19728752B844678F4A35FFBDFE97C876B85DCDF85CEA53D147A80792B28DDED54D3F95551E875B04894A744AE232472677C1BA8058D975C51FD253687AA6976D4E1035327A557FC</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 40 73 03 00 5D 09 98 66
|
||||
0010 | 40 01 00 00 BE E4 12 D7 6A 7C BA 77 6C DF 92 4D
|
||||
0020 | F7 1F C0 C9 6F 16 DB 7D F6 F6 2F 29 D7 2E F7 08
|
||||
0030 | 30 00 91 24 F7 63 6A A9 04 40 DA 24 DF 00 00 00
|
||||
0040 | 04 51 7B 91 31 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 90 5B 42 2F F0 7C 82 7F 45 3B 0E E9
|
||||
0060 | 16 4C 0C E1 BD 9C 17 58 83 62 AC BD 24 BB 53 97
|
||||
0070 | C7 88 76 08 AA 1A 5B 3D 90 18 9E AC FE 5C 3F 33
|
||||
0080 | 15 3F 49 98 18 4B 44 AA B1 C1 DB D9 8B 4D DE 7D
|
||||
0090 | 1D FD CA 8E 4A 62 6C 66 7B 09 A4 E5 9C C5 24 DA
|
||||
00A0 | 16 47 F8 64 E5 DF AD 79 73 41 76 62 A8 90 E2 A9
|
||||
00B0 | D1 55 8A 65 BF 14 82 C0 85 AC E1 2A 61 A8 41 EC
|
||||
00C0 | 24 21 65 D4 17 A7 B5 71 AE 2E 47 6C C4 DF 0D 11
|
||||
00D0 | C8 B0 F8 B6 EE 4D 70 5F 6E A6 72 B1 DB EB F2 27
|
||||
00E0 | B6 91 89 B9 09 F0 BA E3 53 C3 25 2A 98 AC 13 3F
|
||||
00F0 | 96 A3 62 DD B5 38 29 33 9A 97 31 A5 B7 34 4A 86
|
||||
0100 | ED E7 94 DD FC 4A 37 F3 50 AD B7 21 53 FE 11 30
|
||||
0110 | F2 EB C7 DC A6 89 BE 17 72 E3 01 45 A1 26 19 7D
|
||||
0120 | 14 87 95 4A B6 21 CB A6 6B FE 7C 0F 7F C4 E7 A4
|
||||
0130 | 0F 39 39 01 34 39 A8 C7 64 3E 41 93 B0 30 B4 FC
|
||||
0140 | FF 3E 2B 77 A9 52 27 B4 A5 48 99 66 8C A5 FE 7A
|
||||
0150 | 1E D2 47 22</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 C8 0C 02 00 8A 0F 98 66
|
||||
0010 | 40 01 00 00 BE E4 12 D7 AE F5 C9 39 CB 22 E0 B2
|
||||
0020 | 78 B3 7F 70 A0 A1 33 4C 67 C5 07 B5 A7 4F 60 B6
|
||||
0030 | 61 13 30 AB 03 09 00 F5 04 58 49 C1 6D 00 00 00
|
||||
0040 | 04 77 2B 7E 0B 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 BD 15 E8 43 6C 64 F4 48 8A DE 14 AE
|
||||
0060 | AE 22 89 86 3D 05 B1 55 21 D9 83 49 4A 5B B9 55
|
||||
0070 | DB 14 C0 F4 07 08 A8 82 1E 62 3F F1 A0 04 B4 BB
|
||||
0080 | B3 5F D7 4F C0 84 C5 F1 20 28 29 62 F2 05 26 AB
|
||||
0090 | AA B1 A8 AF 2F BD B8 B1 26 0A 73 C3 ED 15 98 31
|
||||
00A0 | DA 11 A4 B9 C5 AB 89 AB 64 C9 B7 95 18 AA 5B F1
|
||||
00B0 | A3 01 44 0A E5 4C DB 55 6C AD B5 FF 29 A3 14 57
|
||||
00C0 | 8E 31 45 2A 01 30 D7 4D 5A DA FC F8 3B 85 E8 73
|
||||
00D0 | D4 04 3C 0D 48 50 AE 3C D6 98 DD 88 73 FB D5 CD
|
||||
00E0 | F2 E9 E5 C9 3A E2 73 2C 55 E6 BA 86 73 92 75 F3
|
||||
00F0 | 25 EB 81 92 F5 D0 02 78 D6 39 D2 C0 49 90 2B 4B
|
||||
0100 | 16 20 76 B5 6B 38 00 C3 A7 EC C9 7F D1 97 28 75
|
||||
0110 | 2B 84 46 78 F4 A3 5F FB DF E9 7C 87 6B 85 DC DF
|
||||
0120 | 85 CE A5 3D 14 7A 80 79 2B 28 DD ED 54 D3 F9 55
|
||||
0130 | 51 E8 75 B0 48 94 A7 44 AE 23 24 72 67 7C 1B A8
|
||||
0140 | 05 8D 97 5C 51 FD 25 36 87 AA 69 76 D4 E1 03 53
|
||||
0150 | 27 A5 57 FC</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 = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E6
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>407303005D099866</code></td>
|
||||
<td><code>C80C02008A0F9866</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 = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E6
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>p</td>
|
||||
<td>56, 8</td>
|
||||
<td><code>0440DA24DF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1088038111</td>
|
||||
<td><code>045849C16D000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1481228653</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>04517B9131000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1367052593</td>
|
||||
<td><code>04772B7E0B000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1999339019</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 = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E6
|
|||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>80, 260</td>
|
||||
<td><code>FE000100905B422FF07C827F453B0EE9</code> <code>164C0CE1BD9C17588362ACBD24BB5397</code> <code>C7887608AA1A5B3D90189EACFE5C3F33</code> <code>153F4998184B44AAB1C1DBD98B4DDE7D</code> <code>1DFDCA8E4A626C667B09A4E59CC524DA</code> <code>1647F864E5DFAD7973417662A890E2A9</code> <code>D1558A65BF1482C085ACE12A61A841EC</code> <code>242165D417A7B571AE2E476CC4DF0D11</code> <code>C8B0F8B6EE4D705F6EA672B1DBEBF227</code> <code>B69189B909F0BAE353C3252A98AC133F</code> <code>96A362DDB53829339A9731A5B7344A86</code> <code>EDE794DDFC4A37F350ADB72153FE1130</code> <code>F2EBC7DCA689BE1772E30145A126197D</code> <code>1487954AB621CBA66BFE7C0F7FC4E7A4</code> <code>0F3939013439A8C7643E4193B030B4FC</code> <code>FF3E2B77A95227B4A54899668CA5FE7A</code><br> <code>1ED24722</code></td>
|
||||
<td><code>FE000100BD15E8436C64F4488ADE14AE</code> <code>AE2289863D05B15521D983494A5BB955</code> <code>DB14C0F40708A8821E623FF1A004B4BB</code> <code>B35FD74FC084C5F120282962F20526AB</code> <code>AAB1A8AF2FBDB8B1260A73C3ED159831</code> <code>DA11A4B9C5AB89AB64C9B79518AA5BF1</code> <code>A301440AE54CDB556CADB5FF29A31457</code> <code>8E31452A0130D74D5ADAFCF83B85E873</code> <code>D4043C0D4850AE3CD698DD8873FBD5CD</code> <code>F2E9E5C93AE2732C55E6BA86739275F3</code> <code>25EB8192F5D00278D639D2C049902B4B</code> <code>162076B56B3800C3A7ECC97FD1972875</code> <code>2B844678F4A35FFBDFE97C876B85DCDF</code> <code>85CEA53D147A80792B28DDED54D3F955</code> <code>51E875B04894A744AE232472677C1BA8</code> <code>058D975C51FD253687AA6976D4E10353</code><br> <code>27A557FC</code></td>
|
||||
<td>Value generated above</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -402,47 +402,47 @@ random_padding_bytes = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E6
|
|||
<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 68 22 8A 5E 09 98 66
|
||||
0010 | E0 02 00 00 5C 07 E8 D0 6A 7C BA 77 6C DF 92 4D
|
||||
0020 | F7 1F C0 C9 6F 16 DB 7D F6 F6 2F 29 D7 2E F7 08
|
||||
0030 | 30 00 91 24 F7 63 6A A9 FE 50 02 00 85 AB 24 21
|
||||
0040 | 83 DC 7D 1E DC B9 EC 61 DA E9 97 D7 12 C2 79 88
|
||||
0050 | 6C FC B0 48 90 C5 D3 97 DB 2E 98 0C 28 D8 7B 65
|
||||
0060 | 32 BD 31 3F BD F7 29 F8 30 21 8F 6F BE 38 F1 45
|
||||
0070 | F1 25 5E F1 5D 9A 96 DB A5 E3 3B 11 8D DC A9 98
|
||||
0080 | 77 1E 9B DC 4A BD 7F 5E AF 81 74 FE 17 95 52 6D
|
||||
0090 | 8A D4 2F CE B3 48 6D 8C 91 EB BF 65 A3 AA 2E 7E
|
||||
00A0 | B4 55 C7 8B 6D 06 18 78 3B 4D 81 B3 BA 01 F8 F3
|
||||
00B0 | CB BE 12 08 19 BD 14 C9 2B DE EB 1A 25 36 49 8A
|
||||
00C0 | 60 29 88 19 0C E1 94 1E 4F 7C 44 05 3F BB B2 77
|
||||
00D0 | E7 F7 02 F4 9F E4 61 9D 19 36 50 7A AF 2E 74 67
|
||||
00E0 | 5E AE DE 18 74 15 C4 F4 61 C9 86 87 C9 FC 8B D3
|
||||
00F0 | 3B 06 FA 54 4E 3A 8E EB F2 95 F3 1B 2D D1 B1 57
|
||||
0100 | 2E B1 19 A0 31 7A C1 AC 99 B3 E2 78 A8 77 52 9A
|
||||
0110 | 84 C8 EF FB 30 B4 00 6E 1B BD A7 5B E4 51 DE 02
|
||||
0120 | D0 AC 46 E7 C3 C7 CC 56 E9 C5 29 EF D6 6C 27 B0
|
||||
0130 | ED 3E C8 87 56 2D F2 FA 55 FC 8F 88 DF BC 4A 8F
|
||||
0140 | 18 3B AF BA AA 46 1B 8C 07 34 1B 05 4A 61 17 C9
|
||||
0150 | 7E 61 F9 6E 22 B7 4A AC 3E 71 8E F5 89 2D B5 3B
|
||||
0160 | 52 B6 5B 93 93 BA 3F DF EE 05 0A 2E 5E 83 02 0F
|
||||
0170 | 7C F1 7A 76 BD E5 13 48 5E 5C 6C FB FA CB E7 1C
|
||||
0180 | A0 90 D5 A6 99 26 CF 1E BA 5A 45 FE 77 6B 75 1B
|
||||
0190 | 6B 74 77 0A 0F 5A 46 32 C2 F8 06 2C B6 BE 7B 31
|
||||
01A0 | 19 81 B7 59 72 6A 64 A0 6D 25 A4 DD 2C BE 04 4B
|
||||
01B0 | 64 9D 6F FA 29 86 C1 B0 41 0A 7D 4C 34 F6 63 A5
|
||||
01C0 | C8 B1 A3 FC 80 84 EE 8D 38 84 A7 01 40 3A 6E 28
|
||||
01D0 | 3B 47 39 A1 BB 3A 80 21 33 FD A3 14 2E C7 E2 35
|
||||
01E0 | 81 BA 66 C0 B2 7C C4 DD 19 2E F0 B2 05 0C 04 CC
|
||||
01F0 | 37 3D 3E 25 FF 27 76 5A B7 DF D6 99 2C E5 0D 52
|
||||
0200 | FF 75 B6 2E 1D BF B4 1B 76 41 B5 D0 0C F7 41 BF
|
||||
0210 | 27 D2 3E 25 82 94 40 3D 92 DA 8C 16 1E 82 F6 55
|
||||
0220 | 8F DF DE BF 02 69 ED 56 AC 8B EC CA 7E 42 B4 3E
|
||||
0230 | D4 AB 51 14 3B 43 EC F4 18 DF 82 5E D6 D6 5C ED
|
||||
0240 | DE 3C 9F 35 84 88 54 11 7A 5A BC C7 CD 60 23 7C
|
||||
0250 | A5 B0 10 8B 45 E4 BE 29 01 F8 86 C3 66 1B A3 C0
|
||||
0260 | 45 8A 95 52 48 B0 70 2A 38 38 77 DB 0A 34 CB B9
|
||||
0270 | D5 C8 B7 7C 41 DB 58 28 B3 2E EE 45 D5 5D 0A 48
|
||||
0280 | DC E9 19 0E AF 18 12 1E 58 79 22 59</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 58 6D 7A 8B 0F 98 66
|
||||
0010 | 78 02 00 00 5C 07 E8 D0 AE F5 C9 39 CB 22 E0 B2
|
||||
0020 | 78 B3 7F 70 A0 A1 33 4C 67 C5 07 B5 A7 4F 60 B6
|
||||
0030 | 61 13 30 AB 03 09 00 F5 FE 50 02 00 C9 A5 0F EB
|
||||
0040 | 24 DD 6B 14 85 C7 DF 4E 5E A9 B8 3E 1C 2D 58 18
|
||||
0050 | 69 85 35 43 99 AA F6 13 42 B9 CE 9F 9C A2 4E D1
|
||||
0060 | AA 55 54 35 4B 1F 78 66 A6 21 44 AD F3 F5 66 D7
|
||||
0070 | 05 0D 41 06 6B 56 62 B6 7B 08 5C 9B DE 0C 2A 78
|
||||
0080 | B0 24 4C 15 F1 4C ED 14 C4 2B C8 8A 0C F0 6A 87
|
||||
0090 | 9E 7E 8F 24 95 5A C3 91 C4 8C B3 48 C3 04 FD 16
|
||||
00A0 | 42 DD 0E C3 A7 79 7D 0A E6 E3 A9 7B C0 FD 2F B2
|
||||
00B0 | EC 5D C7 37 45 8A 6B D7 01 1E D7 BA 57 29 2E 0B
|
||||
00C0 | DE DC C2 2B C5 3E AF A5 8A EE 45 17 D2 EE 03 CC
|
||||
00D0 | 1C 77 66 FE 30 68 2C 1F 5C 5A 2F FF 23 F6 02 D0
|
||||
00E0 | 81 93 0C 07 30 20 1F D5 EC 2E C3 E7 9F 4D 35 96
|
||||
00F0 | 72 A6 89 9B D6 64 3C 21 8A 2E D5 62 97 78 ED 9C
|
||||
0100 | 17 54 AA F9 5D C6 86 FD 37 38 D6 D3 DB BD BE 95
|
||||
0110 | F4 87 30 EC 61 07 E2 44 51 DB 89 32 08 68 15 5A
|
||||
0120 | 74 8D 97 CC 09 F3 BB 76 ED 05 65 83 0B 21 2C B1
|
||||
0130 | 27 C6 E0 72 8E 53 A1 67 69 0D 6D FF 06 19 8A 96
|
||||
0140 | FB 52 02 CB 0C D2 ED 82 42 83 78 42 DB 62 10 56
|
||||
0150 | E9 78 C1 49 93 60 B2 13 B2 FA 03 81 46 8D B2 AB
|
||||
0160 | D8 52 0F 5F FA 10 D4 AE 62 50 FB 85 F3 28 CC 7D
|
||||
0170 | 8C FD 9D 65 7B D8 11 72 BE 4E 07 38 85 BB 84 B2
|
||||
0180 | F9 DB DD 2B EF A3 FE D0 FB 0D CE 8D 30 52 27 00
|
||||
0190 | 10 A8 B8 EC AE C6 A6 AB 09 33 4C E4 F8 B4 11 88
|
||||
01A0 | 32 23 B5 1D 8A 9D 24 AF 02 B6 8A 7D 17 81 7E 4C
|
||||
01B0 | D9 ED 92 DA BB 3A 6C 70 4F EF B7 EF 42 FB E4 F3
|
||||
01C0 | F2 D3 2A FF C2 86 C3 23 A0 3B 45 8D 70 DB 77 29
|
||||
01D0 | 77 D1 4C 65 B0 40 23 BA 3F 6E 7B 64 4B 57 91 9A
|
||||
01E0 | 37 91 63 85 E3 2B 46 4C FE ED AB EA 28 0A 96 71
|
||||
01F0 | 13 0B 3C E7 93 07 EF 5F 41 51 A2 83 4F 5D D7 9A
|
||||
0200 | 79 5F 8D 1F BE 60 68 9B CA 2B E0 B4 0F 06 93 7B
|
||||
0210 | 0B 7F 8F 95 A3 A9 A2 6A D5 38 4D F4 50 0D C5 48
|
||||
0220 | 61 9C F0 CB 72 6B 44 42 77 6B C2 70 AA 2C B9 E5
|
||||
0230 | 50 36 81 E0 11 35 BE 05 8D 7F 30 3B 09 7F CD 8B
|
||||
0240 | 0F 9C BF 50 47 92 EA FB 29 A7 38 07 52 B3 70 8A
|
||||
0250 | D8 AF 0E F7 60 7F 0E 0B 43 B0 AC 22 F4 85 24 69
|
||||
0260 | BD 9A 2E AE 32 11 C8 56 A2 18 AB 60 E5 4C 76 C0
|
||||
0270 | C1 F0 E1 EC C3 68 10 AF F9 57 84 74 65 D2 21 41
|
||||
0280 | 20 5E CF C3 1E 2D CB EC C8 D1 BE 1B</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 = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E6
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>0168228A5E099866</code></td>
|
||||
<td><code>01586D7A8B0F9866</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>E0020000</code> (736 in decimal)</td>
|
||||
<td><code>78020000</code> (632 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -482,19 +482,19 @@ random_padding_bytes = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E6
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_answer</td>
|
||||
<td>56, 596</td>
|
||||
<td><code>FE50020085AB242183DC7D1EDCB9EC61</code> <code>DAE997D712C279886CFCB04890C5D397</code> <code>DB2E980C28D87B6532BD313FBDF729F8</code> <code>30218F6FBE38F145F1255EF15D9A96DB</code> <code>A5E33B118DDCA998771E9BDC4ABD7F5E</code> <code>AF8174FE1795526D8AD42FCEB3486D8C</code> <code>91EBBF65A3AA2E7EB455C78B6D061878</code> <code>3B4D81B3BA01F8F3CBBE120819BD14C9</code> <code>2BDEEB1A2536498A602988190CE1941E</code> <code>4F7C44053FBBB277E7F702F49FE4619D</code> <code>1936507AAF2E74675EAEDE187415C4F4</code> <code>61C98687C9FC8BD33B06FA544E3A8EEB</code> <code>F295F31B2DD1B1572EB119A0317AC1AC</code> <code>99B3E278A877529A84C8EFFB30B4006E</code> <code>1BBDA75BE451DE02D0AC46E7C3C7CC56</code> <code>E9C529EFD66C27B0ED3EC887562DF2FA</code> <code>55FC8F88DFBC4A8F183BAFBAAA461B8C</code> <code>07341B054A6117C97E61F96E22B74AAC</code> <code>3E718EF5892DB53B52B65B9393BA3FDF</code> <code>EE050A2E5E83020F7CF17A76BDE51348</code> <code>5E5C6CFBFACBE71CA090D5A69926CF1E</code> <code>BA5A45FE776B751B6B74770A0F5A4632</code> <code>C2F8062CB6BE7B311981B759726A64A0</code> <code>6D25A4DD2CBE044B649D6FFA2986C1B0</code> <code>410A7D4C34F663A5C8B1A3FC8084EE8D</code> <code>3884A701403A6E283B4739A1BB3A8021</code> <code>33FDA3142EC7E23581BA66C0B27CC4DD</code> <code>192EF0B2050C04CC373D3E25FF27765A</code> <code>B7DFD6992CE50D52FF75B62E1DBFB41B</code> <code>7641B5D00CF741BF27D23E258294403D</code> <code>92DA8C161E82F6558FDFDEBF0269ED56</code> <code>AC8BECCA7E42B43ED4AB51143B43ECF4</code> <code>18DF825ED6D65CEDDE3C9F3584885411</code> <code>7A5ABCC7CD60237CA5B0108B45E4BE29</code> <code>01F886C3661BA3C0458A955248B0702A</code> <code>383877DB0A34CBB9D5C8B77C41DB5828</code> <code>B32EEE45D55D0A48DCE9190EAF18121E</code><br> <code>58792259</code></td>
|
||||
<td><code>FE500200C9A50FEB24DD6B1485C7DF4E</code> <code>5EA9B83E1C2D58186985354399AAF613</code> <code>42B9CE9F9CA24ED1AA5554354B1F7866</code> <code>A62144ADF3F566D7050D41066B5662B6</code> <code>7B085C9BDE0C2A78B0244C15F14CED14</code> <code>C42BC88A0CF06A879E7E8F24955AC391</code> <code>C48CB348C304FD1642DD0EC3A7797D0A</code> <code>E6E3A97BC0FD2FB2EC5DC737458A6BD7</code> <code>011ED7BA57292E0BDEDCC22BC53EAFA5</code> <code>8AEE4517D2EE03CC1C7766FE30682C1F</code> <code>5C5A2FFF23F602D081930C0730201FD5</code> <code>EC2EC3E79F4D359672A6899BD6643C21</code> <code>8A2ED5629778ED9C1754AAF95DC686FD</code> <code>3738D6D3DBBDBE95F48730EC6107E244</code> <code>51DB89320868155A748D97CC09F3BB76</code> <code>ED0565830B212CB127C6E0728E53A167</code> <code>690D6DFF06198A96FB5202CB0CD2ED82</code> <code>42837842DB621056E978C1499360B213</code> <code>B2FA0381468DB2ABD8520F5FFA10D4AE</code> <code>6250FB85F328CC7D8CFD9D657BD81172</code> <code>BE4E073885BB84B2F9DBDD2BEFA3FED0</code> <code>FB0DCE8D3052270010A8B8ECAEC6A6AB</code> <code>09334CE4F8B411883223B51D8A9D24AF</code> <code>02B68A7D17817E4CD9ED92DABB3A6C70</code> <code>4FEFB7EF42FBE4F3F2D32AFFC286C323</code> <code>A03B458D70DB772977D14C65B04023BA</code> <code>3F6E7B644B57919A37916385E32B464C</code> <code>FEEDABEA280A9671130B3CE79307EF5F</code> <code>4151A2834F5DD79A795F8D1FBE60689B</code> <code>CA2BE0B40F06937B0B7F8F95A3A9A26A</code> <code>D5384DF4500DC548619CF0CB726B4442</code> <code>776BC270AA2CB9E5503681E01135BE05</code> <code>8D7F303B097FCD8B0F9CBF504792EAFB</code> <code>29A7380752B3708AD8AF0EF7607F0E0B</code> <code>43B0AC22F4852469BD9A2EAE3211C856</code> <code>A218AB60E54C76C0C1F0E1ECC36810AF</code> <code>F957847465D22141205ECFC31E2DCBEC</code><br> <code>C8D1BE1B</code></td>
|
||||
<td>See below</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -502,20 +502,20 @@ random_padding_bytes = 5025FACE526009736DFA33F195AEEB2A7B17F2F2133A4FEBEA9FFD0E6
|
|||
<!-- 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 = 85AB242183DC7D1EDCB9EC61DAE997D712C279886CFCB04890C5D397DB2E980C28D87B6532BD313FBDF729F830218F6FBE38F145F1255EF15D9A96DBA5E33B118DDCA998771E9BDC4ABD7F5EAF8174FE1795526D8AD42FCEB3486D8C91EBBF65A3AA2E7EB455C78B6D0618783B4D81B3BA01F8F3CBBE120819BD14C92BDEEB1A2536498A602988190CE1941E4F7C44053FBBB277E7F702F49FE4619D1936507AAF2E74675EAEDE187415C4F461C98687C9FC8BD33B06FA544E3A8EEBF295F31B2DD1B1572EB119A0317AC1AC99B3E278A877529A84C8EFFB30B4006E1BBDA75BE451DE02D0AC46E7C3C7CC56E9C529EFD66C27B0ED3EC887562DF2FA55FC8F88DFBC4A8F183BAFBAAA461B8C07341B054A6117C97E61F96E22B74AAC3E718EF5892DB53B52B65B9393BA3FDFEE050A2E5E83020F7CF17A76BDE513485E5C6CFBFACBE71CA090D5A69926CF1EBA5A45FE776B751B6B74770A0F5A4632C2F8062CB6BE7B311981B759726A64A06D25A4DD2CBE044B649D6FFA2986C1B0410A7D4C34F663A5C8B1A3FC8084EE8D3884A701403A6E283B4739A1BB3A802133FDA3142EC7E23581BA66C0B27CC4DD192EF0B2050C04CC373D3E25FF27765AB7DFD6992CE50D52FF75B62E1DBFB41B7641B5D00CF741BF27D23E258294403D92DA8C161E82F6558FDFDEBF0269ED56AC8BECCA7E42B43ED4AB51143B43ECF418DF825ED6D65CEDDE3C9F35848854117A5ABCC7CD60237CA5B0108B45E4BE2901F886C3661BA3C0458A955248B0702A383877DB0A34CBB9D5C8B77C41DB5828B32EEE45D55D0A48DCE9190EAF18121E58792259
|
||||
tmp_aes_key = 411C254643F3D66D2C906C08F3F6ACF138745F26958F836EE174A652AFB1E7EA
|
||||
tmp_aes_iv = A13209D4A55AB13C6B2FF5875668F5E59E1ACE2F9B095EBE14E37495E5544EF5</code></pre>
|
||||
<pre><code>encrypted_answer = C9A50FEB24DD6B1485C7DF4E5EA9B83E1C2D58186985354399AAF61342B9CE9F9CA24ED1AA5554354B1F7866A62144ADF3F566D7050D41066B5662B67B085C9BDE0C2A78B0244C15F14CED14C42BC88A0CF06A879E7E8F24955AC391C48CB348C304FD1642DD0EC3A7797D0AE6E3A97BC0FD2FB2EC5DC737458A6BD7011ED7BA57292E0BDEDCC22BC53EAFA58AEE4517D2EE03CC1C7766FE30682C1F5C5A2FFF23F602D081930C0730201FD5EC2EC3E79F4D359672A6899BD6643C218A2ED5629778ED9C1754AAF95DC686FD3738D6D3DBBDBE95F48730EC6107E24451DB89320868155A748D97CC09F3BB76ED0565830B212CB127C6E0728E53A167690D6DFF06198A96FB5202CB0CD2ED8242837842DB621056E978C1499360B213B2FA0381468DB2ABD8520F5FFA10D4AE6250FB85F328CC7D8CFD9D657BD81172BE4E073885BB84B2F9DBDD2BEFA3FED0FB0DCE8D3052270010A8B8ECAEC6A6AB09334CE4F8B411883223B51D8A9D24AF02B68A7D17817E4CD9ED92DABB3A6C704FEFB7EF42FBE4F3F2D32AFFC286C323A03B458D70DB772977D14C65B04023BA3F6E7B644B57919A37916385E32B464CFEEDABEA280A9671130B3CE79307EF5F4151A2834F5DD79A795F8D1FBE60689BCA2BE0B40F06937B0B7F8F95A3A9A26AD5384DF4500DC548619CF0CB726B4442776BC270AA2CB9E5503681E01135BE058D7F303B097FCD8B0F9CBF504792EAFB29A7380752B3708AD8AF0EF7607F0E0B43B0AC22F4852469BD9A2EAE3211C856A218AB60E54C76C0C1F0E1ECC36810AFF957847465D22141205ECFC31E2DCBECC8D1BE1B
|
||||
tmp_aes_key = F3E8463B0BDCF298803067F8400A0362CF49A8A36189C487733347AB3C6A5CF6
|
||||
tmp_aes_iv = DDEE2453ADACAEAA05798DD0F9964BA542CE39E96F83C0962CF8F26F7F23F400</code></pre>
|
||||
<!-- end server_DH_inner_data_input -->
|
||||
<p>Yielding:</p>
|
||||
<!-- start server_DH_inner_data_output -->
|
||||
<pre><code>answer_with_hash = 03784756DB98705A05609ACC2AC89E6F619D4B94BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100288663844CC6FAB87319AD718014A15F5409602532F147CD923412B37FF7C14C3CBC1434FEDEFA4AD83B3DAB7B2D2E83B639586AE91FC622EBE4225DA05E5DDDA0F9218D30F9CEDBA2336793B47974810777006A66676A4CC4371A7A63A2E8F4EB9BB6A4DDD862F9CBF6EA7D8F86C213669924F359DD3647D429BC40A632427587C0336D9A29AB4ABD7CB50B1A5BBF111E35D1F19102E6A3F649A806DDFD58420C0A9908AF6CCF5ADD086B945C78F5D69E8DB3A807E219D18143EA9166F8A00D665797D542327540044124735278E0DBBE054A3D4A40B269CADB9F078F5F15B40C7DEAC07652D8E4E866C1DE9F1DAD5CD2378EFF27A76DC18FBFC52122EC407E5E0998668F587A5D6196B31B
|
||||
answer = BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100288663844CC6FAB87319AD718014A15F5409602532F147CD923412B37FF7C14C3CBC1434FEDEFA4AD83B3DAB7B2D2E83B639586AE91FC622EBE4225DA05E5DDDA0F9218D30F9CEDBA2336793B47974810777006A66676A4CC4371A7A63A2E8F4EB9BB6A4DDD862F9CBF6EA7D8F86C213669924F359DD3647D429BC40A632427587C0336D9A29AB4ABD7CB50B1A5BBF111E35D1F19102E6A3F649A806DDFD58420C0A9908AF6CCF5ADD086B945C78F5D69E8DB3A807E219D18143EA9166F8A00D665797D542327540044124735278E0DBBE054A3D4A40B269CADB9F078F5F15B40C7DEAC07652D8E4E866C1DE9F1DAD5CD2378EFF27A76DC18FBFC52122EC407E5E0998668F587A5D6196B31B</code></pre>
|
||||
<pre><code>answer_with_hash = 5B6B8F2F8F7AF3143E970F1BBDB5481B04E3A173BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F503000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001005A5303467C52DB13BDB16FE0DF315CB3199C74790CA2B46E82B2A1333826AC4C82FEC8BBC859DEF0ED834105BA4C668CFFBF18B75099EB29B5438DB89F410796934CE9098B57689672C6C0AE12587172566B98C859EBA954BD84895AE2D16DF5F1C02B132C2B10787A6EB560E32D247F1151F62DF339CD99F8ABFCB3F05E5DD25E23B3308CDEEA1AF368E79954975312CB307C91388F3865C45797AB4D531BBAAC7A3541A57DA9CDB4CE32B7CC12F6C611D88D39ACD0164336750A427B3E47B6CC2137A0218FD062A530852E482DF4009E27ABABA0850576B1B30DE65C60D9232C8093E436AF4325A9874F65122EC30B04C687123A4BEA6C5FEB98C42EA4C8AD8B0F9866F089AA7F6F022393
|
||||
answer = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F503000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001005A5303467C52DB13BDB16FE0DF315CB3199C74790CA2B46E82B2A1333826AC4C82FEC8BBC859DEF0ED834105BA4C668CFFBF18B75099EB29B5438DB89F410796934CE9098B57689672C6C0AE12587172566B98C859EBA954BD84895AE2D16DF5F1C02B132C2B10787A6EB560E32D247F1151F62DF339CD99F8ABFCB3F05E5DD25E23B3308CDEEA1AF368E79954975312CB307C91388F3865C45797AB4D531BBAAC7A3541A57DA9CDB4CE32B7CC12F6C611D88D39ACD0164336750A427B3E47B6CC2137A0218FD062A530852E482DF4009E27ABABA0850576B1B30DE65C60D9232C8093E436AF4325A9874F65122EC30B04C687123A4BEA6C5FEB98C42EA4C8AD8B0F9866F089AA7F6F022393</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 6A 7C BA 77 6C DF 92 4D F7 1F C0 C9
|
||||
0010 | 6F 16 DB 7D F6 F6 2F 29 D7 2E F7 08 30 00 91 24
|
||||
0020 | F7 63 6A A9 03 00 00 00 FE 00 01 00 C7 1C AE B9
|
||||
<pre><code>0000 | BA 0D 89 B5 AE F5 C9 39 CB 22 E0 B2 78 B3 7F 70
|
||||
0010 | A0 A1 33 4C 67 C5 07 B5 A7 4F 60 B6 61 13 30 AB
|
||||
0020 | 03 09 00 F5 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 = BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA
|
|||
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 | 28 86 63 84 4C C6 FA B8 73 19 AD 71 80 14 A1 5F
|
||||
0140 | 54 09 60 25 32 F1 47 CD 92 34 12 B3 7F F7 C1 4C
|
||||
0150 | 3C BC 14 34 FE DE FA 4A D8 3B 3D AB 7B 2D 2E 83
|
||||
0160 | B6 39 58 6A E9 1F C6 22 EB E4 22 5D A0 5E 5D DD
|
||||
0170 | A0 F9 21 8D 30 F9 CE DB A2 33 67 93 B4 79 74 81
|
||||
0180 | 07 77 00 6A 66 67 6A 4C C4 37 1A 7A 63 A2 E8 F4
|
||||
0190 | EB 9B B6 A4 DD D8 62 F9 CB F6 EA 7D 8F 86 C2 13
|
||||
01A0 | 66 99 24 F3 59 DD 36 47 D4 29 BC 40 A6 32 42 75
|
||||
01B0 | 87 C0 33 6D 9A 29 AB 4A BD 7C B5 0B 1A 5B BF 11
|
||||
01C0 | 1E 35 D1 F1 91 02 E6 A3 F6 49 A8 06 DD FD 58 42
|
||||
01D0 | 0C 0A 99 08 AF 6C CF 5A DD 08 6B 94 5C 78 F5 D6
|
||||
01E0 | 9E 8D B3 A8 07 E2 19 D1 81 43 EA 91 66 F8 A0 0D
|
||||
01F0 | 66 57 97 D5 42 32 75 40 04 41 24 73 52 78 E0 DB
|
||||
0200 | BE 05 4A 3D 4A 40 B2 69 CA DB 9F 07 8F 5F 15 B4
|
||||
0210 | 0C 7D EA C0 76 52 D8 E4 E8 66 C1 DE 9F 1D AD 5C
|
||||
0220 | D2 37 8E FF 27 A7 6D C1 8F BF C5 21 22 EC 40 7E
|
||||
0230 | 5E 09 98 66</code></pre>
|
||||
0130 | 5A 53 03 46 7C 52 DB 13 BD B1 6F E0 DF 31 5C B3
|
||||
0140 | 19 9C 74 79 0C A2 B4 6E 82 B2 A1 33 38 26 AC 4C
|
||||
0150 | 82 FE C8 BB C8 59 DE F0 ED 83 41 05 BA 4C 66 8C
|
||||
0160 | FF BF 18 B7 50 99 EB 29 B5 43 8D B8 9F 41 07 96
|
||||
0170 | 93 4C E9 09 8B 57 68 96 72 C6 C0 AE 12 58 71 72
|
||||
0180 | 56 6B 98 C8 59 EB A9 54 BD 84 89 5A E2 D1 6D F5
|
||||
0190 | F1 C0 2B 13 2C 2B 10 78 7A 6E B5 60 E3 2D 24 7F
|
||||
01A0 | 11 51 F6 2D F3 39 CD 99 F8 AB FC B3 F0 5E 5D D2
|
||||
01B0 | 5E 23 B3 30 8C DE EA 1A F3 68 E7 99 54 97 53 12
|
||||
01C0 | CB 30 7C 91 38 8F 38 65 C4 57 97 AB 4D 53 1B BA
|
||||
01D0 | AC 7A 35 41 A5 7D A9 CD B4 CE 32 B7 CC 12 F6 C6
|
||||
01E0 | 11 D8 8D 39 AC D0 16 43 36 75 0A 42 7B 3E 47 B6
|
||||
01F0 | CC 21 37 A0 21 8F D0 62 A5 30 85 2E 48 2D F4 00
|
||||
0200 | 9E 27 AB AB A0 85 05 76 B1 B3 0D E6 5C 60 D9 23
|
||||
0210 | 2C 80 93 E4 36 AF 43 25 A9 87 4F 65 12 2E C3 0B
|
||||
0220 | 04 C6 87 12 3A 4B EA 6C 5F EB 98 C4 2E A4 C8 AD
|
||||
0230 | 8B 0F 98 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 = BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -594,13 +594,13 @@ answer = BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA
|
|||
<tr>
|
||||
<td>g_a</td>
|
||||
<td>300, 260</td>
|
||||
<td><code>FE000100288663844CC6FAB87319AD71</code> <code>8014A15F5409602532F147CD923412B3</code> <code>7FF7C14C3CBC1434FEDEFA4AD83B3DAB</code> <code>7B2D2E83B639586AE91FC622EBE4225D</code> <code>A05E5DDDA0F9218D30F9CEDBA2336793</code> <code>B47974810777006A66676A4CC4371A7A</code> <code>63A2E8F4EB9BB6A4DDD862F9CBF6EA7D</code> <code>8F86C213669924F359DD3647D429BC40</code> <code>A632427587C0336D9A29AB4ABD7CB50B</code> <code>1A5BBF111E35D1F19102E6A3F649A806</code> <code>DDFD58420C0A9908AF6CCF5ADD086B94</code> <code>5C78F5D69E8DB3A807E219D18143EA91</code> <code>66F8A00D665797D54232754004412473</code> <code>5278E0DBBE054A3D4A40B269CADB9F07</code> <code>8F5F15B40C7DEAC07652D8E4E866C1DE</code> <code>9F1DAD5CD2378EFF27A76DC18FBFC521</code><br> <code>22EC407E</code></td>
|
||||
<td><code>FE0001005A5303467C52DB13BDB16FE0</code> <code>DF315CB3199C74790CA2B46E82B2A133</code> <code>3826AC4C82FEC8BBC859DEF0ED834105</code> <code>BA4C668CFFBF18B75099EB29B5438DB8</code> <code>9F410796934CE9098B57689672C6C0AE</code> <code>12587172566B98C859EBA954BD84895A</code> <code>E2D16DF5F1C02B132C2B10787A6EB560</code> <code>E32D247F1151F62DF339CD99F8ABFCB3</code> <code>F05E5DD25E23B3308CDEEA1AF368E799</code> <code>54975312CB307C91388F3865C45797AB</code> <code>4D531BBAAC7A3541A57DA9CDB4CE32B7</code> <code>CC12F6C611D88D39ACD0164336750A42</code> <code>7B3E47B6CC2137A0218FD062A530852E</code> <code>482DF4009E27ABABA0850576B1B30DE6</code> <code>5C60D9232C8093E436AF4325A9874F65</code> <code>122EC30B04C687123A4BEA6C5FEB98C4</code><br> <code>2EA4C8AD</code></td>
|
||||
<td><code>g_a</code> diffie-hellman parameter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_time</td>
|
||||
<td>560, 4</td>
|
||||
<td><code>5E099866</code> (1721239902 in decimal)</td>
|
||||
<td><code>8B0F9866</code> (1721241483 in decimal)</td>
|
||||
<td>Server time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -609,34 +609,34 @@ answer = BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA
|
|||
<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 = C2F6DE50828EAAD8D28559B1A3E0B231BB4A2E9A24C5207FEB5ED99BF51738167BDF9B350CC6A10B1241867208759305747EEF7BC8BA219DF1A3E179B09BE39BDAC0D5202C959878FBA32C88186CAAFD0724B8E550BCF7B9637E60F8B2A34710C06B759621A15FA973E3D2A794EA3405B2D081BE16A4C7005B090B47EDE9A559B8F8D23D6E46962B03BD036450C1131049796B91E21464E8C698221BC86566DA2FEA301A7D9F804CB4F099755718E7514B3C7ED32DAA97545AE3410BA09035EDA769A5142E19BECE16CE89296B1E779A8FA83CE32A8F31C563C74C340FBED8A67FBBC3C2DA59116CC52313E82BDC62EAE67CAF35EB67EB4F5ED5B970486DB552</code></pre>
|
||||
<pre><code>b = D25BBDE2A75A189CDF7A88434F64494373B5290B50FFFF207E4A18BF2C1830C0E167F55F6C17F4B15CF104FF5843B85146817C90D9888D391C1FF104B781B28F6FA6675BB7DE1101E754D5F34C8F0E10308327131C7ABFD5C69937CBC6DA45AC30449F2552DA002C50A81BE4FB43A4E03446A8BC85BA275FE06792EB4673BAD71036742E4B4CA0152DEAFFA6ADAD7543342A5A737C6532831970C3525C301A692A81C9009590B87EB9A4BB9AF887475508FCF5CF7034DD3E4FBF83E3A099162FD0E50808A7D7F293C841217FD2EC69E55124D5FAF753F28E93DFA363C949D05E92600A92E2A6FB5407010D20AB98583BE0324D26A3244A21AFF9EF99DA366524</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 = 929B50F63A6B9FA2C9F02F8FD8101665C937F0ECC0D06EC450AA8C949CF37A9EC04E6CB7A9AD8D339E8C728C0B4436D6570CFB6635E310DEC3A37A916E7BC41F6E2070022ED7A1E515F6A962B19E2CF87675CD8902E0DEA114FFFB2FE7B3DDC99B09CA708E6620BD87DF31AA04286C808B965E28D35690DFA3148BA314C271203BFB8A4839DE127D0A2C93A17D74192D14C4972E67A68786A76FEBE7D00C35F000A3778AF5BF9FEB8C2FCEF7451468B195E28D76C85A5EB99A85A3AABFCFDB39319537D6799EDB1A2DAC14AA83E442619303BCE9C205A545A44B943F5E4979B4BD947DF09F46BAC791B10D63CE10861A04D9B23EA3B30F0BE665619CB2CDE50D</code></pre>
|
||||
<pre><code>g_b = 97B3B2463054432E5369F7DFADF0F179252D247101B4CF3FD7980514F4A85B459E63822AEE47A980CF6D72EBFC192F99D475767F7DC6CE1E1E891F7ADF0A507160446D20A0009592922630E31A392006709F2232E268718EA45CA41AFB127811425EEBB24CC2218F7E5D67E0EA8A9BF83AEAE95D5A0E223F2E10C2C23BDAA00189B2F2B475626123D792C8E4DFDF4FABCF9DCEDBBDFB164284F95C040283E26154573111AF3FFFFAC386BA9375554843CBD3141983E5C7DAC98E04B00FE2CB8AFA869D2EE3535E89E413EA8F4C82D33C8C5F1F0B599BCD69948ECC5B51B2E30CE9A40BE558B85B86A2609A9E66F9EB0E94E38B306CBAEC797653DEDCA3AEAC1F</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 6A 7C BA 77 6C DF 92 4D F7 1F C0 C9
|
||||
0010 | 6F 16 DB 7D F6 F6 2F 29 D7 2E F7 08 30 00 91 24
|
||||
0020 | F7 63 6A A9 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 92 9B 50 F6 3A 6B 9F A2 C9 F0 2F 8F D8 10 16 65
|
||||
0040 | C9 37 F0 EC C0 D0 6E C4 50 AA 8C 94 9C F3 7A 9E
|
||||
0050 | C0 4E 6C B7 A9 AD 8D 33 9E 8C 72 8C 0B 44 36 D6
|
||||
0060 | 57 0C FB 66 35 E3 10 DE C3 A3 7A 91 6E 7B C4 1F
|
||||
0070 | 6E 20 70 02 2E D7 A1 E5 15 F6 A9 62 B1 9E 2C F8
|
||||
0080 | 76 75 CD 89 02 E0 DE A1 14 FF FB 2F E7 B3 DD C9
|
||||
0090 | 9B 09 CA 70 8E 66 20 BD 87 DF 31 AA 04 28 6C 80
|
||||
00A0 | 8B 96 5E 28 D3 56 90 DF A3 14 8B A3 14 C2 71 20
|
||||
00B0 | 3B FB 8A 48 39 DE 12 7D 0A 2C 93 A1 7D 74 19 2D
|
||||
00C0 | 14 C4 97 2E 67 A6 87 86 A7 6F EB E7 D0 0C 35 F0
|
||||
00D0 | 00 A3 77 8A F5 BF 9F EB 8C 2F CE F7 45 14 68 B1
|
||||
00E0 | 95 E2 8D 76 C8 5A 5E B9 9A 85 A3 AA BF CF DB 39
|
||||
00F0 | 31 95 37 D6 79 9E DB 1A 2D AC 14 AA 83 E4 42 61
|
||||
0100 | 93 03 BC E9 C2 05 A5 45 A4 4B 94 3F 5E 49 79 B4
|
||||
0110 | BD 94 7D F0 9F 46 BA C7 91 B1 0D 63 CE 10 86 1A
|
||||
0120 | 04 D9 B2 3E A3 B3 0F 0B E6 65 61 9C B2 CD E5 0D</code></pre>
|
||||
<pre><code>0000 | 54 B6 43 66 AE F5 C9 39 CB 22 E0 B2 78 B3 7F 70
|
||||
0010 | A0 A1 33 4C 67 C5 07 B5 A7 4F 60 B6 61 13 30 AB
|
||||
0020 | 03 09 00 F5 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 97 B3 B2 46 30 54 43 2E 53 69 F7 DF AD F0 F1 79
|
||||
0040 | 25 2D 24 71 01 B4 CF 3F D7 98 05 14 F4 A8 5B 45
|
||||
0050 | 9E 63 82 2A EE 47 A9 80 CF 6D 72 EB FC 19 2F 99
|
||||
0060 | D4 75 76 7F 7D C6 CE 1E 1E 89 1F 7A DF 0A 50 71
|
||||
0070 | 60 44 6D 20 A0 00 95 92 92 26 30 E3 1A 39 20 06
|
||||
0080 | 70 9F 22 32 E2 68 71 8E A4 5C A4 1A FB 12 78 11
|
||||
0090 | 42 5E EB B2 4C C2 21 8F 7E 5D 67 E0 EA 8A 9B F8
|
||||
00A0 | 3A EA E9 5D 5A 0E 22 3F 2E 10 C2 C2 3B DA A0 01
|
||||
00B0 | 89 B2 F2 B4 75 62 61 23 D7 92 C8 E4 DF DF 4F AB
|
||||
00C0 | CF 9D CE DB BD FB 16 42 84 F9 5C 04 02 83 E2 61
|
||||
00D0 | 54 57 31 11 AF 3F FF FA C3 86 BA 93 75 55 48 43
|
||||
00E0 | CB D3 14 19 83 E5 C7 DA C9 8E 04 B0 0F E2 CB 8A
|
||||
00F0 | FA 86 9D 2E E3 53 5E 89 E4 13 EA 8F 4C 82 D3 3C
|
||||
0100 | 8C 5F 1F 0B 59 9B CD 69 94 8E CC 5B 51 B2 E3 0C
|
||||
0110 | E9 A4 0B E5 58 B8 5B 86 A2 60 9A 9E 66 F9 EB 0E
|
||||
0120 | 94 E3 8B 30 6C BA EC 79 76 53 DE DC A3 AE AC 1F</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 = BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>g_b</td>
|
||||
<td>36, 260</td>
|
||||
<td><code>FE000100929B50F63A6B9FA2C9F02F8F</code> <code>D8101665C937F0ECC0D06EC450AA8C94</code> <code>9CF37A9EC04E6CB7A9AD8D339E8C728C</code> <code>0B4436D6570CFB6635E310DEC3A37A91</code> <code>6E7BC41F6E2070022ED7A1E515F6A962</code> <code>B19E2CF87675CD8902E0DEA114FFFB2F</code> <code>E7B3DDC99B09CA708E6620BD87DF31AA</code> <code>04286C808B965E28D35690DFA3148BA3</code> <code>14C271203BFB8A4839DE127D0A2C93A1</code> <code>7D74192D14C4972E67A68786A76FEBE7</code> <code>D00C35F000A3778AF5BF9FEB8C2FCEF7</code> <code>451468B195E28D76C85A5EB99A85A3AA</code> <code>BFCFDB39319537D6799EDB1A2DAC14AA</code> <code>83E442619303BCE9C205A545A44B943F</code> <code>5E4979B4BD947DF09F46BAC791B10D63</code> <code>CE10861A04D9B23EA3B30F0BE665619C</code><br> <code>B2CDE50D</code></td>
|
||||
<td><code>FE00010097B3B2463054432E5369F7DF</code> <code>ADF0F179252D247101B4CF3FD7980514</code> <code>F4A85B459E63822AEE47A980CF6D72EB</code> <code>FC192F99D475767F7DC6CE1E1E891F7A</code> <code>DF0A507160446D20A0009592922630E3</code> <code>1A392006709F2232E268718EA45CA41A</code> <code>FB127811425EEBB24CC2218F7E5D67E0</code> <code>EA8A9BF83AEAE95D5A0E223F2E10C2C2</code> <code>3BDAA00189B2F2B475626123D792C8E4</code> <code>DFDF4FABCF9DCEDBBDFB164284F95C04</code> <code>0283E26154573111AF3FFFFAC386BA93</code> <code>75554843CBD3141983E5C7DAC98E04B0</code> <code>0FE2CB8AFA869D2EE3535E89E413EA8F</code> <code>4C82D33C8C5F1F0B599BCD69948ECC5B</code> <code>51B2E30CE9A40BE558B85B86A2609A9E</code> <code>66F9EB0E94E38B306CBAEC797653DEDC</code><br> <code>A3AEAC1F</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 = BA0D89B56A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA
|
|||
<!-- 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 = 54B643666A7CBA776CDF924DF71FC0C96F16DB7DF6F62F29D72EF70830009124F7636AA90000000000000000FE000100929B50F63A6B9FA2C9F02F8FD8101665C937F0ECC0D06EC450AA8C949CF37A9EC04E6CB7A9AD8D339E8C728C0B4436D6570CFB6635E310DEC3A37A916E7BC41F6E2070022ED7A1E515F6A962B19E2CF87675CD8902E0DEA114FFFB2FE7B3DDC99B09CA708E6620BD87DF31AA04286C808B965E28D35690DFA3148BA314C271203BFB8A4839DE127D0A2C93A17D74192D14C4972E67A68786A76FEBE7D00C35F000A3778AF5BF9FEB8C2FCEF7451468B195E28D76C85A5EB99A85A3AABFCFDB39319537D6799EDB1A2DAC14AA83E442619303BCE9C205A545A44B943F5E4979B4BD947DF09F46BAC791B10D63CE10861A04D9B23EA3B30F0BE665619CB2CDE50D
|
||||
padding = 89E2713E4A6084BB39BB2C95
|
||||
tmp_aes_key = 411C254643F3D66D2C906C08F3F6ACF138745F26958F836EE174A652AFB1E7EA
|
||||
tmp_aes_iv = A13209D4A55AB13C6B2FF5875668F5E59E1ACE2F9B095EBE14E37495E5544EF5</code></pre>
|
||||
<pre><code>data = 54B64366AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F50000000000000000FE00010097B3B2463054432E5369F7DFADF0F179252D247101B4CF3FD7980514F4A85B459E63822AEE47A980CF6D72EBFC192F99D475767F7DC6CE1E1E891F7ADF0A507160446D20A0009592922630E31A392006709F2232E268718EA45CA41AFB127811425EEBB24CC2218F7E5D67E0EA8A9BF83AEAE95D5A0E223F2E10C2C23BDAA00189B2F2B475626123D792C8E4DFDF4FABCF9DCEDBBDFB164284F95C040283E26154573111AF3FFFFAC386BA9375554843CBD3141983E5C7DAC98E04B00FE2CB8AFA869D2EE3535E89E413EA8F4C82D33C8C5F1F0B599BCD69948ECC5B51B2E30CE9A40BE558B85B86A2609A9E66F9EB0E94E38B306CBAEC797653DEDCA3AEAC1F
|
||||
padding = 04470E7F9442201835309A22
|
||||
tmp_aes_key = F3E8463B0BDCF298803067F8400A0362CF49A8A36189C487733347AB3C6A5CF6
|
||||
tmp_aes_iv = DDEE2453ADACAEAA05798DD0F9964BA542CE39E96F83C0962CF8F26F7F23F400</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 = 1BAE5F2952AAD57E4822BAFEECA913917698D39C7FA2F500D1A5DB9FD25253D9B34CC700031BEAF228FBB003353079D961E9EA652512A880035E3E0F5BEAC0AC1998EC47DE1198C97A7E1B9FDEB7ED0A08985B193DB90E2684C57A4B9A82E332D7971024461ACA082F0ACF78E0CD45D4744C830F53B3847F1983EA97F02BE46B2E7FFB445E9855E745A99174951F96FB898A7DD6C7F4680B4B9ABF61FB2AF1DD2BE64B3E4DEBC4FF2CDDCCF49B9B610C868779E58E3B270A0DBFAAEE7C510533595FACA779D3F34646F5911BE8086133574C59A69830FAA22C4C608156162371186153A8B839970C6E2117FCE65489BAD2A65FD35B6E939808D28184D04A626090FE4161C18FF6F359A02E6272CCB77F7900B9C8C5D2373BAD2BBC387F32255FE8792B4BF4428959FE6875CE85B569021B79F4F3B81B41C0D36E5102E1CF40A507B43C545487F52C2D610FECBFE4400F</code></pre>
|
||||
<pre><code>encrypted_data = AFA0CCBC15B034A57025E7A0273F30D59ADFC598B909687F7F71D90021A0F91FD6A20854279EE8EFFB646AC483B4076A830FFD7D1A53663A4B055C61956FCBAB074DFF2B9F2B8421EAC39E744E19274FBAD4D17965C416D62A125949E6C22992EC51BE902DF143A9FB57330989378502414E59CF1C7C0023D4890F9C531524659344173CE60912E4DAA224D459E8345EE2D1D4B209DD8EBE7EB983D76216F7AC7F5C310C9F5A54D2F717C49A6A743A8EAFBDCEB2F6C4BA3DD922312FD519BE7F3FE33C2AB8F6E28DD7843F5CFD15EC0E4C22DA070B8FE65E64E5F7585371C06C19AE2F5A98B70B95F068AC5E2C29A73CD3A48DF5711ED11A424C64FAFC81097DBA6FC11603CDEDE3D552504517B6F63CB99414AAE010C044496F6A1683665570E1F9691EE6465416A4C71778C08CB05254368797A9F8D05A5E2EF0647D429AF43707851ADED80751AED224D655DAAE1E</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 28 4E 08 00 5E 09 98 66
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 6A 7C BA 77 6C DF 92 4D
|
||||
0020 | F7 1F C0 C9 6F 16 DB 7D F6 F6 2F 29 D7 2E F7 08
|
||||
0030 | 30 00 91 24 F7 63 6A A9 FE 50 01 00 1B AE 5F 29
|
||||
0040 | 52 AA D5 7E 48 22 BA FE EC A9 13 91 76 98 D3 9C
|
||||
0050 | 7F A2 F5 00 D1 A5 DB 9F D2 52 53 D9 B3 4C C7 00
|
||||
0060 | 03 1B EA F2 28 FB B0 03 35 30 79 D9 61 E9 EA 65
|
||||
0070 | 25 12 A8 80 03 5E 3E 0F 5B EA C0 AC 19 98 EC 47
|
||||
0080 | DE 11 98 C9 7A 7E 1B 9F DE B7 ED 0A 08 98 5B 19
|
||||
0090 | 3D B9 0E 26 84 C5 7A 4B 9A 82 E3 32 D7 97 10 24
|
||||
00A0 | 46 1A CA 08 2F 0A CF 78 E0 CD 45 D4 74 4C 83 0F
|
||||
00B0 | 53 B3 84 7F 19 83 EA 97 F0 2B E4 6B 2E 7F FB 44
|
||||
00C0 | 5E 98 55 E7 45 A9 91 74 95 1F 96 FB 89 8A 7D D6
|
||||
00D0 | C7 F4 68 0B 4B 9A BF 61 FB 2A F1 DD 2B E6 4B 3E
|
||||
00E0 | 4D EB C4 FF 2C DD CC F4 9B 9B 61 0C 86 87 79 E5
|
||||
00F0 | 8E 3B 27 0A 0D BF AA EE 7C 51 05 33 59 5F AC A7
|
||||
0100 | 79 D3 F3 46 46 F5 91 1B E8 08 61 33 57 4C 59 A6
|
||||
0110 | 98 30 FA A2 2C 4C 60 81 56 16 23 71 18 61 53 A8
|
||||
0120 | B8 39 97 0C 6E 21 17 FC E6 54 89 BA D2 A6 5F D3
|
||||
0130 | 5B 6E 93 98 08 D2 81 84 D0 4A 62 60 90 FE 41 61
|
||||
0140 | C1 8F F6 F3 59 A0 2E 62 72 CC B7 7F 79 00 B9 C8
|
||||
0150 | C5 D2 37 3B AD 2B BC 38 7F 32 25 5F E8 79 2B 4B
|
||||
0160 | F4 42 89 59 FE 68 75 CE 85 B5 69 02 1B 79 F4 F3
|
||||
0170 | B8 1B 41 C0 D3 6E 51 02 E1 CF 40 A5 07 B4 3C 54
|
||||
0180 | 54 87 F5 2C 2D 61 0F EC BF E4 40 0F</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 A8 C4 03 00 8C 0F 98 66
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 AE F5 C9 39 CB 22 E0 B2
|
||||
0020 | 78 B3 7F 70 A0 A1 33 4C 67 C5 07 B5 A7 4F 60 B6
|
||||
0030 | 61 13 30 AB 03 09 00 F5 FE 50 01 00 AF A0 CC BC
|
||||
0040 | 15 B0 34 A5 70 25 E7 A0 27 3F 30 D5 9A DF C5 98
|
||||
0050 | B9 09 68 7F 7F 71 D9 00 21 A0 F9 1F D6 A2 08 54
|
||||
0060 | 27 9E E8 EF FB 64 6A C4 83 B4 07 6A 83 0F FD 7D
|
||||
0070 | 1A 53 66 3A 4B 05 5C 61 95 6F CB AB 07 4D FF 2B
|
||||
0080 | 9F 2B 84 21 EA C3 9E 74 4E 19 27 4F BA D4 D1 79
|
||||
0090 | 65 C4 16 D6 2A 12 59 49 E6 C2 29 92 EC 51 BE 90
|
||||
00A0 | 2D F1 43 A9 FB 57 33 09 89 37 85 02 41 4E 59 CF
|
||||
00B0 | 1C 7C 00 23 D4 89 0F 9C 53 15 24 65 93 44 17 3C
|
||||
00C0 | E6 09 12 E4 DA A2 24 D4 59 E8 34 5E E2 D1 D4 B2
|
||||
00D0 | 09 DD 8E BE 7E B9 83 D7 62 16 F7 AC 7F 5C 31 0C
|
||||
00E0 | 9F 5A 54 D2 F7 17 C4 9A 6A 74 3A 8E AF BD CE B2
|
||||
00F0 | F6 C4 BA 3D D9 22 31 2F D5 19 BE 7F 3F E3 3C 2A
|
||||
0100 | B8 F6 E2 8D D7 84 3F 5C FD 15 EC 0E 4C 22 DA 07
|
||||
0110 | 0B 8F E6 5E 64 E5 F7 58 53 71 C0 6C 19 AE 2F 5A
|
||||
0120 | 98 B7 0B 95 F0 68 AC 5E 2C 29 A7 3C D3 A4 8D F5
|
||||
0130 | 71 1E D1 1A 42 4C 64 FA FC 81 09 7D BA 6F C1 16
|
||||
0140 | 03 CD ED E3 D5 52 50 45 17 B6 F6 3C B9 94 14 AA
|
||||
0150 | E0 10 C0 44 49 6F 6A 16 83 66 55 70 E1 F9 69 1E
|
||||
0160 | E6 46 54 16 A4 C7 17 78 C0 8C B0 52 54 36 87 97
|
||||
0170 | A9 F8 D0 5A 5E 2E F0 64 7D 42 9A F4 37 07 85 1A
|
||||
0180 | DE D8 07 51 AE D2 24 D6 55 DA AE 1E</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>284E08005E099866</code></td>
|
||||
<td><code>A8C403008C0F9866</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>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>56, 340</td>
|
||||
<td><code>FE5001001BAE5F2952AAD57E4822BAFE</code> <code>ECA913917698D39C7FA2F500D1A5DB9F</code> <code>D25253D9B34CC700031BEAF228FBB003</code> <code>353079D961E9EA652512A880035E3E0F</code> <code>5BEAC0AC1998EC47DE1198C97A7E1B9F</code> <code>DEB7ED0A08985B193DB90E2684C57A4B</code> <code>9A82E332D7971024461ACA082F0ACF78</code> <code>E0CD45D4744C830F53B3847F1983EA97</code> <code>F02BE46B2E7FFB445E9855E745A99174</code> <code>951F96FB898A7DD6C7F4680B4B9ABF61</code> <code>FB2AF1DD2BE64B3E4DEBC4FF2CDDCCF4</code> <code>9B9B610C868779E58E3B270A0DBFAAEE</code> <code>7C510533595FACA779D3F34646F5911B</code> <code>E8086133574C59A69830FAA22C4C6081</code> <code>56162371186153A8B839970C6E2117FC</code> <code>E65489BAD2A65FD35B6E939808D28184</code> <code>D04A626090FE4161C18FF6F359A02E62</code> <code>72CCB77F7900B9C8C5D2373BAD2BBC38</code> <code>7F32255FE8792B4BF4428959FE6875CE</code> <code>85B569021B79F4F3B81B41C0D36E5102</code> <code>E1CF40A507B43C545487F52C2D610FEC</code><br> <code>BFE4400F</code></td>
|
||||
<td><code>FE500100AFA0CCBC15B034A57025E7A0</code> <code>273F30D59ADFC598B909687F7F71D900</code> <code>21A0F91FD6A20854279EE8EFFB646AC4</code> <code>83B4076A830FFD7D1A53663A4B055C61</code> <code>956FCBAB074DFF2B9F2B8421EAC39E74</code> <code>4E19274FBAD4D17965C416D62A125949</code> <code>E6C22992EC51BE902DF143A9FB573309</code> <code>89378502414E59CF1C7C0023D4890F9C</code> <code>531524659344173CE60912E4DAA224D4</code> <code>59E8345EE2D1D4B209DD8EBE7EB983D7</code> <code>6216F7AC7F5C310C9F5A54D2F717C49A</code> <code>6A743A8EAFBDCEB2F6C4BA3DD922312F</code> <code>D519BE7F3FE33C2AB8F6E28DD7843F5C</code> <code>FD15EC0E4C22DA070B8FE65E64E5F758</code> <code>5371C06C19AE2F5A98B70B95F068AC5E</code> <code>2C29A73CD3A48DF5711ED11A424C64FA</code> <code>FC81097DBA6FC11603CDEDE3D5525045</code> <code>17B6F63CB99414AAE010C044496F6A16</code> <code>83665570E1F9691EE6465416A4C71778</code> <code>C08CB05254368797A9F8D05A5E2EF064</code> <code>7D429AF43707851ADED80751AED224D6</code><br> <code>55DAAE1E</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 = 301CB2661834FDDAECB506FCF69831B7F4CC86808C0240E4AF66597C17350E57F2F4D0AF16E558C6F54EC82BD7E6FB735FEF296B70400CCD5E58D66234FD640D3CD1E11DE4E07B0ADA56F69151E0D7C0936B29D0EB54B916C5FF62BB2FFC696C3817496551C746B4AD5C3389FE28A24090FC31EE623E58C60AC0BA88D78A057CF2D0276E9A4E193ED0894BE28B397FB831ACAA4895F292B8B74DED7762C719DE0590F061F057D0D4078E855A1592CF4DAEB372481F8B2B7F98AEFE05F92B4987191A89100F16A4C3D47B8F7382CC6B94FC3FB0F2F7258742BD4F8BEBC329547FDE6B433D4DC3A43177B73633A166CF7594A7DE8A0A6D626D9B29AD9BCF336AB6</code></pre>
|
||||
<pre><code>auth_key = 9CC4CCB77C8073CB8C4E8912F9A81CFA10EC2C27F85624E3386D6B6DDEBDA504BD96A4476DA3034C3D3A1D48AFBAAF6061F791A7ED54CE7BC6BE39C0A7038A75D074E1AEBD572EDF3684D160F2C49200C5B6572D7752DD3EF1A46D0123C98E9EB0B2A9EA14AE45A294F0E06AE97FFBB13E29C5AC44A09AAAEABFD599A56ED08902BCF859105ECA96149F12BA47A7A2248805576BD58F64D0FD976661804A22829E3E9BE0282691022F0BEAC6E151608DAC94384286F9876131AC05BFB2CAF4E979D9DE2AF80B85FB2B0F178058EF01CD90B4796A320061691B1E140CEC4972B0603DB59F6EF2C279EA58E078908133C759A883B89B27702C69A326BBC8788F7A</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 A0 4C 0C 5F 09 98 66
|
||||
0010 | 68 00 00 00 34 F7 CB 3B 6A 7C BA 77 6C DF 92 4D
|
||||
0020 | F7 1F C0 C9 6F 16 DB 7D F6 F6 2F 29 D7 2E F7 08
|
||||
0030 | 30 00 91 24 F7 63 6A A9 C8 08 7E D3 D8 E1 F1 8B
|
||||
0040 | DC 59 B8 36 10 18 74 4D</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 2C 8C 92 8C 0F 98 66
|
||||
0010 | 80 00 00 00 34 F7 CB 3B AE F5 C9 39 CB 22 E0 B2
|
||||
0020 | 78 B3 7F 70 A0 A1 33 4C 67 C5 07 B5 A7 4F 60 B6
|
||||
0030 | 61 13 30 AB 03 09 00 F5 60 75 12 3B F7 A5 D0 C4
|
||||
0040 | 3B 6F CE 6D 11 81 A4 A2</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>01A04C0C5F099866</code></td>
|
||||
<td><code>012C8C928C0F9866</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>68000000</code> (104 in decimal)</td>
|
||||
<td><code>80000000</code> (128 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>6A7CBA776CDF924DF71FC0C96F16DB7D</code></td>
|
||||
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>F6F62F29D72EF70830009124F7636AA9</code></td>
|
||||
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce_hash1</td>
|
||||
<td>56, 16</td>
|
||||
<td><code>C8087ED3D8E1F18BDC59B8361018744D</code></td>
|
||||
<td><code>6075123BF7A5D0C43B6FCE6D1181A4A2</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>
|
||||
|
|
|
@ -4,18 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>SponsoredMessageReportOption</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Constructors
|
||||
Constructor
|
||||
Description
|
||||
sponsoredMessageReportOption
|
||||
">
|
||||
<meta property="description" content="A report option for a sponsored message ».">
|
||||
<meta property="og:title" content="SponsoredMessageReportOption">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Constructors
|
||||
Constructor
|
||||
Description
|
||||
sponsoredMessageReportOption
|
||||
">
|
||||
<meta property="og:description" content="A report option for a sponsored message ».">
|
||||
<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">
|
||||
|
@ -50,7 +42,8 @@ sponsoredMessageReportOption
|
|||
<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="/type/SponsoredMessageReportOption" >SponsoredMessageReportOption</a></li></ul></div>
|
||||
<h1 id="dev_page_title">SponsoredMessageReportOption</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>A <a href="/api/sponsored-messages#reporting-sponsored-messages">report option for a sponsored message »</a>.</p>
|
||||
<p><div class="clearfix">
|
||||
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
|
||||
|
@ -74,10 +67,12 @@ sponsoredMessageReportOption
|
|||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/constructor/sponsoredMessageReportOption">sponsoredMessageReportOption</a></td>
|
||||
<td> </td>
|
||||
<td>A <a href="/api/sponsored-messages#reporting-sponsored-messages">report option for a sponsored message »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</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="#sponsored-messages" id="sponsored-messages" name="sponsored-messages"><i class="anchor-icon"></i></a><a href="/api/sponsored-messages">Sponsored messages</a></h4></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -8,16 +8,14 @@
|
|||
Constructor
|
||||
Description
|
||||
channels.sponsoredMessageReportResultChooseOption
|
||||
|
||||
channels.sponsoredMessageRepo…">
|
||||
The user must choose a report option…">
|
||||
<meta property="og:title" content="channels.SponsoredMessageReportResult">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Constructors
|
||||
Constructor
|
||||
Description
|
||||
channels.sponsoredMessageReportResultChooseOption
|
||||
|
||||
channels.sponsoredMessageRepo…">
|
||||
The user must choose a report option…">
|
||||
<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">
|
||||
|
@ -82,15 +80,15 @@ channels.sponsoredMessageRepo…">
|
|||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/constructor/channels.sponsoredMessageReportResultChooseOption">channels.sponsoredMessageReportResultChooseOption</a></td>
|
||||
<td> </td>
|
||||
<td>The user must choose a report option from the localized options available in <code>options</code>, and after selection, <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a> must be invoked again, passing the option's <code>option</code> field to the <code>option</code> param of the method.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/channels.sponsoredMessageReportResultAdsHidden">channels.sponsoredMessageReportResultAdsHidden</a></td>
|
||||
<td> </td>
|
||||
<td>Sponsored messages were hidden for the user in all chats.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/channels.sponsoredMessageReportResultReported">channels.sponsoredMessageReportResultReported</a></td>
|
||||
<td> </td>
|
||||
<td>The sponsored message was reported successfully.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -105,7 +103,7 @@ channels.sponsoredMessageRepo…">
|
|||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a></td>
|
||||
<td> </td>
|
||||
<td>Report a <a href="/api/sponsored-messages">sponsored message »</a>, see <a href="/api/sponsored-messages#reporting-sponsored-messages">here »</a> for more info on the full flow.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
|
@ -4,24 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>fragment.CollectibleInfo</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Constructors
|
||||
Constructor
|
||||
Description
|
||||
fragment.collectibleInfo
|
||||
Info about a fragment collectible.
|
||||
Methods
|
||||
Method
|
||||
Description…">
|
||||
<meta property="description" content="Info about a fragment collectible.">
|
||||
<meta property="og:title" content="fragment.CollectibleInfo">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Constructors
|
||||
Constructor
|
||||
Description
|
||||
fragment.collectibleInfo
|
||||
Info about a fragment collectible.
|
||||
Methods
|
||||
Method
|
||||
Description…">
|
||||
<meta property="og:description" content="Info about a fragment collectible.">
|
||||
<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">
|
||||
|
@ -56,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="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/type/fragment.CollectibleInfo" >fragment.CollectibleInfo</a></li></ul></div>
|
||||
<h1 id="dev_page_title">fragment.CollectibleInfo</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Info about a <a href="/api/fragment">fragment collectible</a>.</p>
|
||||
<p><div class="clearfix">
|
||||
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
|
||||
<li class="dropdown">
|
||||
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
|
||||
|
@ -102,7 +89,10 @@ Description…">
|
|||
<td> </td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</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="#collectibles" id="collectibles" name="collectibles"><i class="anchor-icon"></i></a><a href="/api/fragment">Collectibles</a></h4>
|
||||
<p>Telegram users can make it easy for others to contact them or find their public groups and channels via <a href="https://telegram.org/faq#usernames-and-t-me">usernames</a>: clients can also assign multiple <a href="https://fragment.com">Fragment »</a> <strong>collectible usernames</strong> to accounts, supergroups and channels they own; <a href="https://fragment.com">Fragment »</a> also allows purchasing phone number collectibles that can be used to register Telegram accounts.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,28 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messages.DialogFilters</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Constructors
|
||||
Constructor
|
||||
Description
|
||||
messages.dialogFilters
|
||||
|
||||
Methods
|
||||
Method
|
||||
Description
|
||||
messages.getDialogFilters
|
||||
Get…">
|
||||
<meta property="description" content="Folder information">
|
||||
<meta property="og:title" content="messages.DialogFilters">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Constructors
|
||||
Constructor
|
||||
Description
|
||||
messages.dialogFilters
|
||||
|
||||
Methods
|
||||
Method
|
||||
Description
|
||||
messages.getDialogFilters
|
||||
Get…">
|
||||
<meta property="og:description" content="Folder information">
|
||||
<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">
|
||||
|
@ -60,7 +42,8 @@ Get…">
|
|||
<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="/type/messages.DialogFilters" >messages.DialogFilters</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messages.DialogFilters</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p><a href="/api/folders">Folder</a> information</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>
|
||||
|
@ -88,7 +71,7 @@ Get…">
|
|||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/constructor/messages.dialogFilters">messages.dialogFilters</a></td>
|
||||
<td> </td>
|
||||
<td><a href="/api/folders">Folder</a> information</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
@ -106,7 +89,10 @@ Get…">
|
|||
<td>Get <a href="/api/folders">folders</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</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="#folders" id="folders" name="folders"><i class="anchor-icon"></i></a><a href="/api/folders">Folders</a></h4>
|
||||
<p>Telegram allows placing chats into folders, based on their type, mute status, or other custom criteria, thanks to folder blacklists and whitelists.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
Loading…
Reference in a new issue