Update content of files

This commit is contained in:
GitHub Action 2024-07-17 18:51:28 +00:00
parent 2f4b04f93a
commit 6b3decdbe5
6 changed files with 241 additions and 272 deletions

View file

@ -302,7 +302,7 @@
<li>Added <a href="/constructor/botBusinessConnection">botBusinessConnection</a> - Contains info about a <a href="/api/business#connected-bots">bot business connection</a>.</li>
<li>Added <a href="/constructor/inputBusinessIntro">inputBusinessIntro</a> - <a href="/api/business#business-introduction">Telegram Business introduction »</a>.</li>
<li>Added <a href="/constructor/businessIntro">businessIntro</a> - <a href="/api/business#business-introduction">Telegram Business introduction »</a>.</li>
<li>Added <a href="/constructor/messages.myStickers">messages.myStickers</a> - </li>
<li>Added <a href="/constructor/messages.myStickers">messages.myStickers</a> - The list of <a href="/api/stickers">stickersets owned by the current account »</a>.</li>
<li>Added <a href="/constructor/inputCollectibleUsername">inputCollectibleUsername</a> - Represents a <a href="/api/fragment">username fragment collectible</a></li>
<li>Added <a href="/constructor/inputCollectiblePhone">inputCollectiblePhone</a> - Represents a <a href="/api/fragment">phone number fragment collectible</a></li>
<li>Added <a href="/constructor/fragment.collectibleInfo">fragment.collectibleInfo</a> - Info about a <a href="/api/fragment">fragment collectible</a>.</li>

View file

@ -104,7 +104,9 @@ sponsoredMessage#bdedf566 flags:# recommended:flags.5?true can_report:flags.12?t
</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>;
<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>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; 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/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>&lt;<a href='/type/SponsoredMessageReportOption'>SponsoredMessageReportOption</a>&gt; = <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>;
@ -114,6 +116,7 @@ sponsoredMessage#bdedf566 flags:# recommended:flags.5?true can_report:flags.12?t
<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>Note that only sponsored messages with the <a href="/constructor/sponsoredMessage">sponsoredMessage</a>.<code>can_report</code> flag set may be reported. </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>
@ -128,6 +131,9 @@ The <code>title</code> field of <a href="/constructor/channels.sponsoredMessageR
</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>
<h4><a class="anchor" href="#withdrawing-ad-revenue-as-a-channel-owner" id="withdrawing-ad-revenue-as-a-channel-owner" name="withdrawing-ad-revenue-as-a-channel-owner"><i class="anchor-icon"></i></a>Withdrawing ad revenue as a channel owner</h4>
<p>Telegram has one of the <strong>most generous reward systems</strong> in the history of social media. Telegram channel owners can now receive <strong>50%</strong> of the revenue from ads displayed in their channels.</p>
<p><a href="/api/revenue">See here »</a> for more info on how to withdraw channel ad revenue, as well as view detailed revenue stats. </p>
<hr>
<h4><a class="anchor" href="#sponsored-messages-in-third-party-apps" id="sponsored-messages-in-third-party-apps" name="sponsored-messages-in-third-party-apps"><i class="anchor-icon"></i></a>Sponsored messages in third-party apps</h4>
<p>Telegram continues to grow worldwide, in part thanks to third-party apps using the Telegram API. To cover the increasing costs that come with this growth, Telegram added <a href="https://promote.telegram.org">sponsored messages</a> a paid <a href="https://t.me/durov/172">privacy-friendly way</a> to promote <strong>bots and channels</strong>. </p>

View file

@ -4,32 +4,10 @@
<meta charset="utf-8">
<title>messages.myStickers</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
count
int
 
sets
Vector&lt;StickerSetCovered&gt;
 
Type
messages.MyStickers">
<meta property="description" content="The list of stickersets owned by the current account ».">
<meta property="og:title" content="messages.myStickers">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
count
int
 
sets
Vector&lt;StickerSetCovered&gt;
 
Type
messages.MyStickers">
<meta property="og:description" content="The list of stickersets owned by the current account ».">
<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 @@ messages.MyStickers">
<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.myStickers" >messages.myStickers</a></li></ul></div>
<h1 id="dev_page_title">messages.myStickers</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>The list of <a href="/api/stickers">stickersets owned by the current account »</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,20 @@ messages.MyStickers">
<tr>
<td><strong>count</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>Total number of owned stickersets.</td>
</tr>
<tr>
<td><strong>sets</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StickerSetCovered">StickerSetCovered</a>&gt;</td>
<td> </td>
<td>Stickersets</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.MyStickers">messages.MyStickers</a></p></div>
<p><a href="/type/messages.MyStickers">messages.MyStickers</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="#stickers" id="stickers" name="stickers"><i class="anchor-icon"></i></a><a href="/api/stickers">Stickers</a></h4>
<p>Telegram clients support displaying static and animated stickers.</p></div>
</div>

View file

@ -4,32 +4,26 @@
<meta charset="utf-8">
<title>stats.broadcastRevenueStats</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
<meta property="description" content="Channel revenue ad statistics, see here » for more info.
Parameters
Name
Type
Description
top_hours_graph
StatsGraph
 
revenue_graph
StatsGraph
 
balances
BroadcastRevenueBalances…">
revenue_graph…">
<meta property="og:title" content="stats.broadcastRevenueStats">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
<meta property="og:description" content="Channel revenue ad statistics, see here » for more info.
Parameters
Name
Type
Description
top_hours_graph
StatsGraph
 
revenue_graph
StatsGraph
 
balances
BroadcastRevenueBalances…">
revenue_graph…">
<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 +58,8 @@ BroadcastRevenueBalances…">
<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/stats.broadcastRevenueStats" >stats.broadcastRevenueStats</a></li></ul></div>
<h1 id="dev_page_title">stats.broadcastRevenueStats</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p><a href="/api/revenue">Channel revenue ad statistics, see here »</a> for more info. </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>

View file

@ -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 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>
<pre><code>0000 | 00 00 00 00 00 00 00 00 BC 76 09 00 FE 0F 98 66
0010 | 14 00 00 00 F1 8E 7E BE E1 90 78 1B 9B 7E 8F E6
0020 | E0 F1 12 C1 4F 9D 21 82</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>C40C02008A0F9866</code></td>
<td><code>BC760900FE0F9866</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -95,7 +95,7 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Random number</td>
</tr>
</tbody>
@ -104,11 +104,11 @@
<h5><a class="anchor" href="#2-server-sends-response-of-the-form" id="2-server-sends-response-of-the-form" name="2-server-sends-response-of-the-form"><i class="anchor-icon"></i></a>2) Server sends response of the form</h5>
<!-- start resPQ -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 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
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 A4 A9 8D FE 0F 98 66
0010 | B8 00 00 00 63 24 16 05 E1 90 78 1B 9B 7E 8F E6
0020 | E0 F1 12 C1 4F 9D 21 82 EF 3B AC 77 3D 05 90 7F
0030 | 94 DB F3 E8 E7 D1 7A 28 08 19 44 5F 21 89 A8 6F
0040 | 19 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
0050 | 35 5F C3 0B 21 6B E8 6C 02 2B B4 C3 85 FD 64 DE
0060 | 85 1D 9D D0</code></pre>
<p>Payload (de)serialization:</p>
@ -132,13 +132,13 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01FCE4AB8A0F9866</code></td>
<td><code>01A4A98DFE0F9866</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>CC000000</code> (204 in decimal)</td>
<td><code>B8000000</code> (184 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>08291948C540ADF5AF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2961478242003711407</td>
<td><code>0819445F2189A86F19000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1820684747012599577</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 &lt; q.</h5>
<!-- start pq -->
<pre><code>pq = 2961478242003711407</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2961478242003711407 = 1481228653 * 1999339019</code></p>
<pre><code>p = 1481228653
q = 1999339019</code></pre>
<pre><code>pq = 1820684747012599577</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1820684747012599577 = 1328775719 * 1370197183</code></p>
<pre><code>p = 1328775719
q = 1370197183</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 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
<pre><code>0000 | 95 5F F5 A9 08 19 44 5F 21 89 A8 6F 19 00 00 00
0010 | 04 4F 33 82 27 00 00 00 04 51 AB 8C BF 00 00 00
0020 | E1 90 78 1B 9B 7E 8F E6 E0 F1 12 C1 4F 9D 21 82
0030 | EF 3B AC 77 3D 05 90 7F 94 DB F3 E8 E7 D1 7A 28
0040 | C2 FA C5 BA D6 EC BC CA 15 EC 9D F6 74 02 6D C8
0050 | B5 77 9C 08 0C 82 48 DE 99 A1 60 D4 FD 1A 5B 23
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 = 1999339019</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>08291948C540ADF5AF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2961478242003711407</td>
<td><code>0819445F2189A86F19000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1820684747012599577</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>045849C16D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1481228653</td>
<td><code>044F338227000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1328775719</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>04772B7E0B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1999339019</td>
<td><code>0451AB8CBF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1370197183</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>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>7F23F40043874E1120287BBC7D30F384</code> <code>349F0F874308D119245C36A315DBE1F6</code></td>
<td><code>C2FAC5BAD6ECBCCA15EC9DF674026DC8</code> <code>B5779C080C8248DE99A160D4FD1A5B23</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1999339019</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 = 955FF5A908291948C540ADF5AF000000045849C16D00000004772B7E0B000000AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F57F23F40043874E1120287BBC7D30F384349F0F874308D119245C36A315DBE1F602000000
random_padding_bytes = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D1B908B09AA1A8C077709FFE25DA3D132577FA2031C8DE27DEE0C07FB54056D196CCE647D8C042BE19424A842CADCD0830B5CD2AD8F1C3816F65908A0E3465EF</code></pre>
<pre><code>data = 955FF5A90819445F2189A86F19000000044F3382270000000451AB8CBF000000E190781B9B7E8FE6E0F112C14F9D2182EF3BAC773D05907F94DBF3E8E7D17A28C2FAC5BAD6ECBCCA15EC9DF674026DC8B5779C080C8248DE99A160D4FD1A5B2302000000
random_padding_bytes = 684BA7FF81FA9C42327226762CA190014DFBD253A3D2BFDFACC4C88C0C0F7672E64A4415CE2DC80B413043CEB1019577E12DA834EFB6361A3D24EAF3B7E21426ADEA4D878A19631C0864E57353031C57E4FA9A2ACAEE27649D248F8A</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 = BD15E8436C64F4488ADE14AEAE2289863D05B15521D983494A5BB955DB14C0F40708A8821E623FF1A004B4BBB35FD74FC084C5F120282962F20526ABAAB1A8AF2FBDB8B1260A73C3ED159831DA11A4B9C5AB89AB64C9B79518AA5BF1A301440AE54CDB556CADB5FF29A314578E31452A0130D74D5ADAFCF83B85E873D4043C0D4850AE3CD698DD8873FBD5CDF2E9E5C93AE2732C55E6BA86739275F325EB8192F5D00278D639D2C049902B4B162076B56B3800C3A7ECC97FD19728752B844678F4A35FFBDFE97C876B85DCDF85CEA53D147A80792B28DDED54D3F95551E875B04894A744AE232472677C1BA8058D975C51FD253687AA6976D4E1035327A557FC</code></pre>
<pre><code>encrypted_data = A17FB6AD4FF7A325CAE22C23AC96ADF80FC934023F586EBF8D6C42A90869BFDD432748865BDD7C7F126126B17D90B0074EE354AF090B8EAF273358CCAACD09D56586B8C96A9337C57C7A651A4FEA13A6FDD69CD214089A4DB83523D15BF5F43E2C2680E530CBF0F56CB0F0C4AECC9AF25A98E86D526E2EB5239BCC1D828866B13B00F67862FDDCA5058D974C8838764B9A057918D2F6D5A8967926B2323BF974054F08E3417A44619CADC8E40D59D5BFBDDB91EF689F4945946DFE2243BA76B921D6552AE2D5C35D75FC4DA8C06F5531827ED4B9DEBBA9BA4784D6CE19002E75AB7699EB282872C70BD40155A4E4874A68A324E76E7A8B36274BF8BE90F66E9E</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 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>
<pre><code>0000 | 00 00 00 00 00 00 00 00 C0 76 09 00 FE 0F 98 66
0010 | 40 01 00 00 BE E4 12 D7 E1 90 78 1B 9B 7E 8F E6
0020 | E0 F1 12 C1 4F 9D 21 82 EF 3B AC 77 3D 05 90 7F
0030 | 94 DB F3 E8 E7 D1 7A 28 04 4F 33 82 27 00 00 00
0040 | 04 51 AB 8C BF 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 A1 7F B6 AD 4F F7 A3 25 CA E2 2C 23
0060 | AC 96 AD F8 0F C9 34 02 3F 58 6E BF 8D 6C 42 A9
0070 | 08 69 BF DD 43 27 48 86 5B DD 7C 7F 12 61 26 B1
0080 | 7D 90 B0 07 4E E3 54 AF 09 0B 8E AF 27 33 58 CC
0090 | AA CD 09 D5 65 86 B8 C9 6A 93 37 C5 7C 7A 65 1A
00A0 | 4F EA 13 A6 FD D6 9C D2 14 08 9A 4D B8 35 23 D1
00B0 | 5B F5 F4 3E 2C 26 80 E5 30 CB F0 F5 6C B0 F0 C4
00C0 | AE CC 9A F2 5A 98 E8 6D 52 6E 2E B5 23 9B CC 1D
00D0 | 82 88 66 B1 3B 00 F6 78 62 FD DC A5 05 8D 97 4C
00E0 | 88 38 76 4B 9A 05 79 18 D2 F6 D5 A8 96 79 26 B2
00F0 | 32 3B F9 74 05 4F 08 E3 41 7A 44 61 9C AD C8 E4
0100 | 0D 59 D5 BF BD DB 91 EF 68 9F 49 45 94 6D FE 22
0110 | 43 BA 76 B9 21 D6 55 2A E2 D5 C3 5D 75 FC 4D A8
0120 | C0 6F 55 31 82 7E D4 B9 DE BB A9 BA 47 84 D6 CE
0130 | 19 00 2E 75 AB 76 99 EB 28 28 72 C7 0B D4 01 55
0140 | A4 E4 87 4A 68 A3 24 E7 6E 7A 8B 36 27 4B F8 BE
0150 | 90 F6 6E 9E</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 = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>C80C02008A0F9866</code></td>
<td><code>C0760900FE0F9866</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -363,25 +363,25 @@ random_padding_bytes = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>045849C16D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1481228653</td>
<td><code>044F338227000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1328775719</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>04772B7E0B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1999339019</td>
<td><code>0451AB8CBF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1370197183</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 = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D
<tr>
<td>encrypted_data</td>
<td>80, 260</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><code>FE000100A17FB6AD4FF7A325CAE22C23</code> <code>AC96ADF80FC934023F586EBF8D6C42A9</code> <code>0869BFDD432748865BDD7C7F126126B1</code> <code>7D90B0074EE354AF090B8EAF273358CC</code> <code>AACD09D56586B8C96A9337C57C7A651A</code> <code>4FEA13A6FDD69CD214089A4DB83523D1</code> <code>5BF5F43E2C2680E530CBF0F56CB0F0C4</code> <code>AECC9AF25A98E86D526E2EB5239BCC1D</code> <code>828866B13B00F67862FDDCA5058D974C</code> <code>8838764B9A057918D2F6D5A8967926B2</code> <code>323BF974054F08E3417A44619CADC8E4</code> <code>0D59D5BFBDDB91EF689F4945946DFE22</code> <code>43BA76B921D6552AE2D5C35D75FC4DA8</code> <code>C06F5531827ED4B9DEBBA9BA4784D6CE</code> <code>19002E75AB7699EB282872C70BD40155</code> <code>A4E4874A68A324E76E7A8B36274BF8BE</code><br> <code>90F66E9E</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D
<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 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>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 EC AE 56 FF 0F 98 66
0010 | BC 02 00 00 5C 07 E8 D0 E1 90 78 1B 9B 7E 8F E6
0020 | E0 F1 12 C1 4F 9D 21 82 EF 3B AC 77 3D 05 90 7F
0030 | 94 DB F3 E8 E7 D1 7A 28 FE 50 02 00 71 74 82 0D
0040 | E8 63 F0 64 41 26 CE EB C0 4C 4C 90 0E 37 5F DB
0050 | 64 1D F1 98 64 3B 0D D5 BB 6E F1 64 0B B4 CB 10
0060 | 72 1A B5 3F 8E 43 97 6E C9 1A BB A6 38 79 B0 9E
0070 | D2 31 07 BD 71 01 07 B2 AE 08 DB F6 00 12 F1 BC
0080 | F6 EA 5F D0 76 F6 C6 66 2E 30 B4 DA F0 03 DA 66
0090 | 35 6E 8F 60 82 F9 AE 19 E7 50 D9 09 2D 69 92 18
00A0 | 92 6D 53 ED 9F 86 E8 4B 1F A7 FA 8D D9 BC 1D 50
00B0 | 21 0D FB AD CF D0 AC A2 CA 4B 3B 78 22 25 28 AE
00C0 | 70 20 5C 38 07 1D B6 C8 10 50 B9 B1 1F C4 B8 7D
00D0 | 22 32 D0 F3 EA C5 B4 91 24 CA 5B 4E 7B 26 83 50
00E0 | 76 65 C3 2C B2 5B 55 6D C2 51 1F B6 27 DE 62 09
00F0 | 3A 51 40 3D D4 9E 15 0A 4C 18 03 7B BB 3E BB 7A
0100 | BF 2A 9D 58 7D 29 C9 A4 6D F8 19 5B 00 98 85 D9
0110 | BE FC D2 B0 CF 1C CD BC 7B E9 2D 43 87 79 CE BE
0120 | 4D AF E7 CF 78 AA B9 A8 A9 21 CC 23 67 A0 49 2F
0130 | 31 39 CF 6E 10 DC 06 AE 16 A4 6C 6F B6 2B 99 04
0140 | AB DF 17 88 86 D1 BA 19 12 14 97 C0 51 06 B9 1C
0150 | 66 26 1B 0A B3 41 9F FE 99 5D 0C C6 F1 7D 34 E6
0160 | 8E 92 A6 42 C1 F1 FA A3 B4 EF 14 CB A4 59 44 4E
0170 | EA E8 90 5F 39 8C 4A 34 DC 2F 22 BB 50 56 EC 65
0180 | 16 79 BE 76 CE DA 63 0A 96 41 FC 0B ED 51 99 A4
0190 | 95 11 85 10 FA 63 64 8E 6B BE 24 36 BA 46 61 5B
01A0 | 24 34 A3 8C 33 DE 74 A8 D5 45 9E 52 4B 01 85 EB
01B0 | 53 32 1F D0 08 4E C0 02 A4 EF 89 E3 D8 54 CE 0A
01C0 | 01 92 F3 9E 71 9E 00 30 61 58 13 D9 3D 52 43 15
01D0 | FC C3 45 FE 64 FF 02 8D C7 B3 FB 21 51 0D 0A EE
01E0 | 21 AE 8B 1A 64 A7 74 65 B6 1C B5 68 A4 2B 37 B2
01F0 | EB C5 24 A7 90 29 24 F9 0B 6A A9 F3 6A 14 D9 71
0200 | 78 A5 2F AD D0 52 96 E1 FB 19 48 19 C8 B0 CE 31
0210 | BC 84 16 CB AC 99 B3 9C C1 35 1B 91 05 0E EC B9
0220 | 85 7F D0 10 D0 DC 64 4E 9D 13 27 3C 0F 4D 1C 6E
0230 | A5 43 74 83 6B E8 15 DB DD DC F5 62 42 15 6C CC
0240 | 14 76 A7 B8 31 FC 4E 26 E0 1F 87 51 07 FD DA 64
0250 | B3 00 EB 0A A6 8E B9 AD 2D 4C B8 CD AC 36 B9 19
0260 | AA D2 9F 21 4A FD 8C 1E F0 AE 51 F1 CC 8F E5 57
0270 | ED 1D 33 AF C5 7E 86 58 CC C3 84 62 6A 21 9E A6
0280 | 65 8C 84 F9 10 FA 9A 66 37 90 CD 48</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 = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01586D7A8B0F9866</code></td>
<td><code>01ECAE56FF0F9866</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>78020000</code> (632 in decimal)</td>
<td><code>BC020000</code> (700 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</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><code>FE5002007174820DE863F0644126CEEB</code> <code>C04C4C900E375FDB641DF198643B0DD5</code> <code>BB6EF1640BB4CB10721AB53F8E43976E</code> <code>C91ABBA63879B09ED23107BD710107B2</code> <code>AE08DBF60012F1BCF6EA5FD076F6C666</code> <code>2E30B4DAF003DA66356E8F6082F9AE19</code> <code>E750D9092D699218926D53ED9F86E84B</code> <code>1FA7FA8DD9BC1D50210DFBADCFD0ACA2</code> <code>CA4B3B78222528AE70205C38071DB6C8</code> <code>1050B9B11FC4B87D2232D0F3EAC5B491</code> <code>24CA5B4E7B2683507665C32CB25B556D</code> <code>C2511FB627DE62093A51403DD49E150A</code> <code>4C18037BBB3EBB7ABF2A9D587D29C9A4</code> <code>6DF8195B009885D9BEFCD2B0CF1CCDBC</code> <code>7BE92D438779CEBE4DAFE7CF78AAB9A8</code> <code>A921CC2367A0492F3139CF6E10DC06AE</code> <code>16A46C6FB62B9904ABDF178886D1BA19</code> <code>121497C05106B91C66261B0AB3419FFE</code> <code>995D0CC6F17D34E68E92A642C1F1FAA3</code> <code>B4EF14CBA459444EEAE8905F398C4A34</code> <code>DC2F22BB5056EC651679BE76CEDA630A</code> <code>9641FC0BED5199A495118510FA63648E</code> <code>6BBE2436BA46615B2434A38C33DE74A8</code> <code>D5459E524B0185EB53321FD0084EC002</code> <code>A4EF89E3D854CE0A0192F39E719E0030</code> <code>615813D93D524315FCC345FE64FF028D</code> <code>C7B3FB21510D0AEE21AE8B1A64A77465</code> <code>B61CB568A42B37B2EBC524A7902924F9</code> <code>0B6AA9F36A14D97178A52FADD05296E1</code> <code>FB194819C8B0CE31BC8416CBAC99B39C</code> <code>C1351B91050EECB9857FD010D0DC644E</code> <code>9D13273C0F4D1C6EA54374836BE815DB</code> <code>DDDCF56242156CCC1476A7B831FC4E26</code> <code>E01F875107FDDA64B300EB0AA68EB9AD</code> <code>2D4CB8CDAC36B919AAD29F214AFD8C1E</code> <code>F0AE51F1CC8FE557ED1D33AFC57E8658</code> <code>CCC384626A219EA6658C84F910FA9A66</code><br> <code>3790CD48</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 817C4DCF786CDFF5B7D719EB97FA2DBC435B3394129C76AAAEE39495D
<!-- 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 = C9A50FEB24DD6B1485C7DF4E5EA9B83E1C2D58186985354399AAF61342B9CE9F9CA24ED1AA5554354B1F7866A62144ADF3F566D7050D41066B5662B67B085C9BDE0C2A78B0244C15F14CED14C42BC88A0CF06A879E7E8F24955AC391C48CB348C304FD1642DD0EC3A7797D0AE6E3A97BC0FD2FB2EC5DC737458A6BD7011ED7BA57292E0BDEDCC22BC53EAFA58AEE4517D2EE03CC1C7766FE30682C1F5C5A2FFF23F602D081930C0730201FD5EC2EC3E79F4D359672A6899BD6643C218A2ED5629778ED9C1754AAF95DC686FD3738D6D3DBBDBE95F48730EC6107E24451DB89320868155A748D97CC09F3BB76ED0565830B212CB127C6E0728E53A167690D6DFF06198A96FB5202CB0CD2ED8242837842DB621056E978C1499360B213B2FA0381468DB2ABD8520F5FFA10D4AE6250FB85F328CC7D8CFD9D657BD81172BE4E073885BB84B2F9DBDD2BEFA3FED0FB0DCE8D3052270010A8B8ECAEC6A6AB09334CE4F8B411883223B51D8A9D24AF02B68A7D17817E4CD9ED92DABB3A6C704FEFB7EF42FBE4F3F2D32AFFC286C323A03B458D70DB772977D14C65B04023BA3F6E7B644B57919A37916385E32B464CFEEDABEA280A9671130B3CE79307EF5F4151A2834F5DD79A795F8D1FBE60689BCA2BE0B40F06937B0B7F8F95A3A9A26AD5384DF4500DC548619CF0CB726B4442776BC270AA2CB9E5503681E01135BE058D7F303B097FCD8B0F9CBF504792EAFB29A7380752B3708AD8AF0EF7607F0E0B43B0AC22F4852469BD9A2EAE3211C856A218AB60E54C76C0C1F0E1ECC36810AFF957847465D22141205ECFC31E2DCBECC8D1BE1B
tmp_aes_key = F3E8463B0BDCF298803067F8400A0362CF49A8A36189C487733347AB3C6A5CF6
tmp_aes_iv = DDEE2453ADACAEAA05798DD0F9964BA542CE39E96F83C0962CF8F26F7F23F400</code></pre>
<pre><code>encrypted_answer = 7174820DE863F0644126CEEBC04C4C900E375FDB641DF198643B0DD5BB6EF1640BB4CB10721AB53F8E43976EC91ABBA63879B09ED23107BD710107B2AE08DBF60012F1BCF6EA5FD076F6C6662E30B4DAF003DA66356E8F6082F9AE19E750D9092D699218926D53ED9F86E84B1FA7FA8DD9BC1D50210DFBADCFD0ACA2CA4B3B78222528AE70205C38071DB6C81050B9B11FC4B87D2232D0F3EAC5B49124CA5B4E7B2683507665C32CB25B556DC2511FB627DE62093A51403DD49E150A4C18037BBB3EBB7ABF2A9D587D29C9A46DF8195B009885D9BEFCD2B0CF1CCDBC7BE92D438779CEBE4DAFE7CF78AAB9A8A921CC2367A0492F3139CF6E10DC06AE16A46C6FB62B9904ABDF178886D1BA19121497C05106B91C66261B0AB3419FFE995D0CC6F17D34E68E92A642C1F1FAA3B4EF14CBA459444EEAE8905F398C4A34DC2F22BB5056EC651679BE76CEDA630A9641FC0BED5199A495118510FA63648E6BBE2436BA46615B2434A38C33DE74A8D5459E524B0185EB53321FD0084EC002A4EF89E3D854CE0A0192F39E719E0030615813D93D524315FCC345FE64FF028DC7B3FB21510D0AEE21AE8B1A64A77465B61CB568A42B37B2EBC524A7902924F90B6AA9F36A14D97178A52FADD05296E1FB194819C8B0CE31BC8416CBAC99B39CC1351B91050EECB9857FD010D0DC644E9D13273C0F4D1C6EA54374836BE815DBDDDCF56242156CCC1476A7B831FC4E26E01F875107FDDA64B300EB0AA68EB9AD2D4CB8CDAC36B919AAD29F214AFD8C1EF0AE51F1CC8FE557ED1D33AFC57E8658CCC384626A219EA6658C84F910FA9A663790CD48
tmp_aes_key = 5918547CCFD1EF0C14957551261817A7189DB4F68DBDD59459A8260347A6E18B
tmp_aes_iv = 67444E972D9578EB08FC833ABCE9B4F7058A68DFCBD1DCDCFF42776CC2FAC5BA</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = 5B6B8F2F8F7AF3143E970F1BBDB5481B04E3A173BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F503000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001005A5303467C52DB13BDB16FE0DF315CB3199C74790CA2B46E82B2A1333826AC4C82FEC8BBC859DEF0ED834105BA4C668CFFBF18B75099EB29B5438DB89F410796934CE9098B57689672C6C0AE12587172566B98C859EBA954BD84895AE2D16DF5F1C02B132C2B10787A6EB560E32D247F1151F62DF339CD99F8ABFCB3F05E5DD25E23B3308CDEEA1AF368E79954975312CB307C91388F3865C45797AB4D531BBAAC7A3541A57DA9CDB4CE32B7CC12F6C611D88D39ACD0164336750A427B3E47B6CC2137A0218FD062A530852E482DF4009E27ABABA0850576B1B30DE65C60D9232C8093E436AF4325A9874F65122EC30B04C687123A4BEA6C5FEB98C42EA4C8AD8B0F9866F089AA7F6F022393
answer = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F503000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001005A5303467C52DB13BDB16FE0DF315CB3199C74790CA2B46E82B2A1333826AC4C82FEC8BBC859DEF0ED834105BA4C668CFFBF18B75099EB29B5438DB89F410796934CE9098B57689672C6C0AE12587172566B98C859EBA954BD84895AE2D16DF5F1C02B132C2B10787A6EB560E32D247F1151F62DF339CD99F8ABFCB3F05E5DD25E23B3308CDEEA1AF368E79954975312CB307C91388F3865C45797AB4D531BBAAC7A3541A57DA9CDB4CE32B7CC12F6C611D88D39ACD0164336750A427B3E47B6CC2137A0218FD062A530852E482DF4009E27ABABA0850576B1B30DE65C60D9232C8093E436AF4325A9874F65122EC30B04C687123A4BEA6C5FEB98C42EA4C8AD8B0F9866F089AA7F6F022393</code></pre>
<pre><code>answer_with_hash = 8A4CA773F160B3913790E97EDCAB373FD5BF7231BA0D89B5E190781B9B7E8FE6E0F112C14F9D2182EF3BAC773D05907F94DBF3E8E7D17A2803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010040CDCB94DF9F87C25399B060DA1A80A0DCC5C0DC3603FD584E16449FC8360C9FBA5C322DC77DD6FC30B19EAACDB94DFA2155D097359BBEB082760C0FAF9A899188E01F91233D58E59C6E4D17F954D6C83160395FFC52F4407CEBA1EF0A7FB30AC7E81B236807957715BF30DF6C76B15C8CD97F6AFFBCF778C754E2A573427EEED5F7FDAD856F4A972E823DB0073A506E73D3B654B52F130DCB31565AC54EFFF6CCD03BE4ADC2249E62B0430981C87EEDCFA9798A45C9ACED35A4DA86FF5B581D7C85B1AB4CB71F1590664B77AEBE63CBF8CD035481CF31E7D2CA5BAF231554DF175145AAD6DB53BB9F7A740D0C17398852DD1151391222810B2C388B2729B96FFF0F9866044EF86BAA4C7C28
answer = BA0D89B5E190781B9B7E8FE6E0F112C14F9D2182EF3BAC773D05907F94DBF3E8E7D17A2803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010040CDCB94DF9F87C25399B060DA1A80A0DCC5C0DC3603FD584E16449FC8360C9FBA5C322DC77DD6FC30B19EAACDB94DFA2155D097359BBEB082760C0FAF9A899188E01F91233D58E59C6E4D17F954D6C83160395FFC52F4407CEBA1EF0A7FB30AC7E81B236807957715BF30DF6C76B15C8CD97F6AFFBCF778C754E2A573427EEED5F7FDAD856F4A972E823DB0073A506E73D3B654B52F130DCB31565AC54EFFF6CCD03BE4ADC2249E62B0430981C87EEDCFA9798A45C9ACED35A4DA86FF5B581D7C85B1AB4CB71F1590664B77AEBE63CBF8CD035481CF31E7D2CA5BAF231554DF175145AAD6DB53BB9F7A740D0C17398852DD1151391222810B2C388B2729B96FFF0F9866044EF86BAA4C7C28</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 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
<pre><code>0000 | BA 0D 89 B5 E1 90 78 1B 9B 7E 8F E6 E0 F1 12 C1
0010 | 4F 9D 21 82 EF 3B AC 77 3D 05 90 7F 94 DB F3 E8
0020 | E7 D1 7A 28 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 = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F
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 | 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>
0130 | 40 CD CB 94 DF 9F 87 C2 53 99 B0 60 DA 1A 80 A0
0140 | DC C5 C0 DC 36 03 FD 58 4E 16 44 9F C8 36 0C 9F
0150 | BA 5C 32 2D C7 7D D6 FC 30 B1 9E AA CD B9 4D FA
0160 | 21 55 D0 97 35 9B BE B0 82 76 0C 0F AF 9A 89 91
0170 | 88 E0 1F 91 23 3D 58 E5 9C 6E 4D 17 F9 54 D6 C8
0180 | 31 60 39 5F FC 52 F4 40 7C EB A1 EF 0A 7F B3 0A
0190 | C7 E8 1B 23 68 07 95 77 15 BF 30 DF 6C 76 B1 5C
01A0 | 8C D9 7F 6A FF BC F7 78 C7 54 E2 A5 73 42 7E EE
01B0 | D5 F7 FD AD 85 6F 4A 97 2E 82 3D B0 07 3A 50 6E
01C0 | 73 D3 B6 54 B5 2F 13 0D CB 31 56 5A C5 4E FF F6
01D0 | CC D0 3B E4 AD C2 24 9E 62 B0 43 09 81 C8 7E ED
01E0 | CF A9 79 8A 45 C9 AC ED 35 A4 DA 86 FF 5B 58 1D
01F0 | 7C 85 B1 AB 4C B7 1F 15 90 66 4B 77 AE BE 63 CB
0200 | F8 CD 03 54 81 CF 31 E7 D2 CA 5B AF 23 15 54 DF
0210 | 17 51 45 AA D6 DB 53 BB 9F 7A 74 0D 0C 17 39 88
0220 | 52 DD 11 51 39 12 22 81 0B 2C 38 8B 27 29 B9 6F
0230 | FF 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 = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F
<tr>
<td>g_a</td>
<td>300, 260</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>FE00010040CDCB94DF9F87C25399B060</code> <code>DA1A80A0DCC5C0DC3603FD584E16449F</code> <code>C8360C9FBA5C322DC77DD6FC30B19EAA</code> <code>CDB94DFA2155D097359BBEB082760C0F</code> <code>AF9A899188E01F91233D58E59C6E4D17</code> <code>F954D6C83160395FFC52F4407CEBA1EF</code> <code>0A7FB30AC7E81B236807957715BF30DF</code> <code>6C76B15C8CD97F6AFFBCF778C754E2A5</code> <code>73427EEED5F7FDAD856F4A972E823DB0</code> <code>073A506E73D3B654B52F130DCB31565A</code> <code>C54EFFF6CCD03BE4ADC2249E62B04309</code> <code>81C87EEDCFA9798A45C9ACED35A4DA86</code> <code>FF5B581D7C85B1AB4CB71F1590664B77</code> <code>AEBE63CBF8CD035481CF31E7D2CA5BAF</code> <code>231554DF175145AAD6DB53BB9F7A740D</code> <code>0C17398852DD1151391222810B2C388B</code><br> <code>2729B96F</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>8B0F9866</code> (1721241483 in decimal)</td>
<td><code>FF0F9866</code> (1721241599 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F
<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 = D25BBDE2A75A189CDF7A88434F64494373B5290B50FFFF207E4A18BF2C1830C0E167F55F6C17F4B15CF104FF5843B85146817C90D9888D391C1FF104B781B28F6FA6675BB7DE1101E754D5F34C8F0E10308327131C7ABFD5C69937CBC6DA45AC30449F2552DA002C50A81BE4FB43A4E03446A8BC85BA275FE06792EB4673BAD71036742E4B4CA0152DEAFFA6ADAD7543342A5A737C6532831970C3525C301A692A81C9009590B87EB9A4BB9AF887475508FCF5CF7034DD3E4FBF83E3A099162FD0E50808A7D7F293C841217FD2EC69E55124D5FAF753F28E93DFA363C949D05E92600A92E2A6FB5407010D20AB98583BE0324D26A3244A21AFF9EF99DA366524</code></pre>
<pre><code>b = 0424D9CE284E44D63399229B4B168E9245B1DBB446A4ADE4E2DF145EFA8A0BB6B23FDECD90B92BC8626D63E06F5E5BA8B14D227413A80AB2D20F9FEC7A98BD2F858B706018597326773C8C16496778F80BC3BBF229D6AA902F3C44318B7C6DD9CFE899E36A8292E42F9E454E6302373E80BD1B8DA7C063A25167212EAE03A7D95949E6BF288E74F7C95A3399CFB2131344D4F1143A1D8A24562DCCF88957D8DB58F0C178F9AD58B67BC39F9D5BE70267EDB7E67199868348B97152C7BE97879FCF42C8CE3C4B05FF9D706D9E536CEE9FCED96F9E7ADAF3E11F2F2B8C5FF1382F42067ACC7EFB570936FD37F88087584A6EF16E5CB05E64C6A725391BDA3B512D</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 = 97B3B2463054432E5369F7DFADF0F179252D247101B4CF3FD7980514F4A85B459E63822AEE47A980CF6D72EBFC192F99D475767F7DC6CE1E1E891F7ADF0A507160446D20A0009592922630E31A392006709F2232E268718EA45CA41AFB127811425EEBB24CC2218F7E5D67E0EA8A9BF83AEAE95D5A0E223F2E10C2C23BDAA00189B2F2B475626123D792C8E4DFDF4FABCF9DCEDBBDFB164284F95C040283E26154573111AF3FFFFAC386BA9375554843CBD3141983E5C7DAC98E04B00FE2CB8AFA869D2EE3535E89E413EA8F4C82D33C8C5F1F0B599BCD69948ECC5B51B2E30CE9A40BE558B85B86A2609A9E66F9EB0E94E38B306CBAEC797653DEDCA3AEAC1F</code></pre>
<pre><code>g_b = 061876A7301C91A243E316B62928FBFE60B4EAD143BF496A11C5CABCC222DBE3237EA4F35033D42BAC96831F32E3E8DBA8D3BF4E32FAC43AA992DE16C3AA497E70AC43ED623DDD01D269F4486A81624232776A792612961A0A496C42F527835555C838CD4FCDB83583667DC7166D1F94C251273426A5615B9237A96A112792EF218E42C386BF8DA906E398564B82440CB2A0F41A6BA22B4E7B8A1A35F82414D9B322164280937C7EF1C71AF0B3DF086E22E928F40DE3CEC3E7CACB822E4FFFFCE9D6C71B37F8F7247C95BBA5F09A1C70FF90AA315D814091DC5EF663DF0F81495FED577CEEBD9FD36E77153FBE5EE8FE638709E3360F4BF8D31A9DD21F047E12</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 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>
<pre><code>0000 | 54 B6 43 66 E1 90 78 1B 9B 7E 8F E6 E0 F1 12 C1
0010 | 4F 9D 21 82 EF 3B AC 77 3D 05 90 7F 94 DB F3 E8
0020 | E7 D1 7A 28 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 06 18 76 A7 30 1C 91 A2 43 E3 16 B6 29 28 FB FE
0040 | 60 B4 EA D1 43 BF 49 6A 11 C5 CA BC C2 22 DB E3
0050 | 23 7E A4 F3 50 33 D4 2B AC 96 83 1F 32 E3 E8 DB
0060 | A8 D3 BF 4E 32 FA C4 3A A9 92 DE 16 C3 AA 49 7E
0070 | 70 AC 43 ED 62 3D DD 01 D2 69 F4 48 6A 81 62 42
0080 | 32 77 6A 79 26 12 96 1A 0A 49 6C 42 F5 27 83 55
0090 | 55 C8 38 CD 4F CD B8 35 83 66 7D C7 16 6D 1F 94
00A0 | C2 51 27 34 26 A5 61 5B 92 37 A9 6A 11 27 92 EF
00B0 | 21 8E 42 C3 86 BF 8D A9 06 E3 98 56 4B 82 44 0C
00C0 | B2 A0 F4 1A 6B A2 2B 4E 7B 8A 1A 35 F8 24 14 D9
00D0 | B3 22 16 42 80 93 7C 7E F1 C7 1A F0 B3 DF 08 6E
00E0 | 22 E9 28 F4 0D E3 CE C3 E7 CA CB 82 2E 4F FF FC
00F0 | E9 D6 C7 1B 37 F8 F7 24 7C 95 BB A5 F0 9A 1C 70
0100 | FF 90 AA 31 5D 81 40 91 DC 5E F6 63 DF 0F 81 49
0110 | 5F ED 57 7C EE BD 9F D3 6E 77 15 3F BE 5E E8 FE
0120 | 63 87 09 E3 36 0F 4B F8 D3 1A 9D D2 1F 04 7E 12</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 = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</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><code>FE000100061876A7301C91A243E316B6</code> <code>2928FBFE60B4EAD143BF496A11C5CABC</code> <code>C222DBE3237EA4F35033D42BAC96831F</code> <code>32E3E8DBA8D3BF4E32FAC43AA992DE16</code> <code>C3AA497E70AC43ED623DDD01D269F448</code> <code>6A81624232776A792612961A0A496C42</code> <code>F527835555C838CD4FCDB83583667DC7</code> <code>166D1F94C251273426A5615B9237A96A</code> <code>112792EF218E42C386BF8DA906E39856</code> <code>4B82440CB2A0F41A6BA22B4E7B8A1A35</code> <code>F82414D9B322164280937C7EF1C71AF0</code> <code>B3DF086E22E928F40DE3CEC3E7CACB82</code> <code>2E4FFFFCE9D6C71B37F8F7247C95BBA5</code> <code>F09A1C70FF90AA315D814091DC5EF663</code> <code>DF0F81495FED577CEEBD9FD36E77153F</code> <code>BE5EE8FE638709E3360F4BF8D31A9DD2</code><br> <code>1F047E12</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 = BA0D89B5AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F
<!-- 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 = 54B64366AEF5C939CB22E0B278B37F70A0A1334C67C507B5A74F60B6611330AB030900F50000000000000000FE00010097B3B2463054432E5369F7DFADF0F179252D247101B4CF3FD7980514F4A85B459E63822AEE47A980CF6D72EBFC192F99D475767F7DC6CE1E1E891F7ADF0A507160446D20A0009592922630E31A392006709F2232E268718EA45CA41AFB127811425EEBB24CC2218F7E5D67E0EA8A9BF83AEAE95D5A0E223F2E10C2C23BDAA00189B2F2B475626123D792C8E4DFDF4FABCF9DCEDBBDFB164284F95C040283E26154573111AF3FFFFAC386BA9375554843CBD3141983E5C7DAC98E04B00FE2CB8AFA869D2EE3535E89E413EA8F4C82D33C8C5F1F0B599BCD69948ECC5B51B2E30CE9A40BE558B85B86A2609A9E66F9EB0E94E38B306CBAEC797653DEDCA3AEAC1F
padding = 04470E7F9442201835309A22
tmp_aes_key = F3E8463B0BDCF298803067F8400A0362CF49A8A36189C487733347AB3C6A5CF6
tmp_aes_iv = DDEE2453ADACAEAA05798DD0F9964BA542CE39E96F83C0962CF8F26F7F23F400</code></pre>
<pre><code>data = 54B64366E190781B9B7E8FE6E0F112C14F9D2182EF3BAC773D05907F94DBF3E8E7D17A280000000000000000FE000100061876A7301C91A243E316B62928FBFE60B4EAD143BF496A11C5CABCC222DBE3237EA4F35033D42BAC96831F32E3E8DBA8D3BF4E32FAC43AA992DE16C3AA497E70AC43ED623DDD01D269F4486A81624232776A792612961A0A496C42F527835555C838CD4FCDB83583667DC7166D1F94C251273426A5615B9237A96A112792EF218E42C386BF8DA906E398564B82440CB2A0F41A6BA22B4E7B8A1A35F82414D9B322164280937C7EF1C71AF0B3DF086E22E928F40DE3CEC3E7CACB822E4FFFFCE9D6C71B37F8F7247C95BBA5F09A1C70FF90AA315D814091DC5EF663DF0F81495FED577CEEBD9FD36E77153FBE5EE8FE638709E3360F4BF8D31A9DD21F047E12
padding = 9DB0621E0A237DE31C0CF4E6
tmp_aes_key = 5918547CCFD1EF0C14957551261817A7189DB4F68DBDD59459A8260347A6E18B
tmp_aes_iv = 67444E972D9578EB08FC833ABCE9B4F7058A68DFCBD1DCDCFF42776CC2FAC5BA</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 = AFA0CCBC15B034A57025E7A0273F30D59ADFC598B909687F7F71D90021A0F91FD6A20854279EE8EFFB646AC483B4076A830FFD7D1A53663A4B055C61956FCBAB074DFF2B9F2B8421EAC39E744E19274FBAD4D17965C416D62A125949E6C22992EC51BE902DF143A9FB57330989378502414E59CF1C7C0023D4890F9C531524659344173CE60912E4DAA224D459E8345EE2D1D4B209DD8EBE7EB983D76216F7AC7F5C310C9F5A54D2F717C49A6A743A8EAFBDCEB2F6C4BA3DD922312FD519BE7F3FE33C2AB8F6E28DD7843F5CFD15EC0E4C22DA070B8FE65E64E5F7585371C06C19AE2F5A98B70B95F068AC5E2C29A73CD3A48DF5711ED11A424C64FAFC81097DBA6FC11603CDEDE3D552504517B6F63CB99414AAE010C044496F6A1683665570E1F9691EE6465416A4C71778C08CB05254368797A9F8D05A5E2EF0647D429AF43707851ADED80751AED224D655DAAE1E</code></pre>
<pre><code>encrypted_data = 05A842D8F2426610AD02F44D86D2384CB5C7D529897448DA22AF65AE9410359E1C4934467FBD099B78FBC96406204CD1012434C8333C1C76BFE6BB1C5F6DF6E24C0E7FB03EA1AEE6E258A2C5753B039C7EF806824685F8E3C4DFC704FBCA2BB7F7C340CF490EC717C97F063ED15C87BA25DCD4DE71C4813EBF7684A801DFB8B293B704D0082ED65C14D6082A6117A8E16882E2CE59389E77B679D5772C547519C2311FBDC3AB2FE827FAD88DAAC3B4F890A5277F13ABBC78816DC847C41801DCBEEE9CCFF5DD8BFBA3B62CCB8039C8F757EB1DFDE0F19F875CE76CF2E87726D7A2EEFE9238B9C43539C3094AB5BAB3D312D8C9FB5E64B70CE5AE084861F70BBF5B4475CE900B3B04B42B81D9315285E933B59C2C8103529EC0528C451D65C3BA870D1B73EE2243C01F7610F3F72D3BE331D835F3C84001417EF5FDDD9186AB4EEE2D836EAF1438CC12069F5B7EB937A8</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 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>
<pre><code>0000 | 00 00 00 00 00 00 00 00 A4 08 05 00 FF 0F 98 66
0010 | 78 01 00 00 1F 5F 04 F5 E1 90 78 1B 9B 7E 8F E6
0020 | E0 F1 12 C1 4F 9D 21 82 EF 3B AC 77 3D 05 90 7F
0030 | 94 DB F3 E8 E7 D1 7A 28 FE 50 01 00 05 A8 42 D8
0040 | F2 42 66 10 AD 02 F4 4D 86 D2 38 4C B5 C7 D5 29
0050 | 89 74 48 DA 22 AF 65 AE 94 10 35 9E 1C 49 34 46
0060 | 7F BD 09 9B 78 FB C9 64 06 20 4C D1 01 24 34 C8
0070 | 33 3C 1C 76 BF E6 BB 1C 5F 6D F6 E2 4C 0E 7F B0
0080 | 3E A1 AE E6 E2 58 A2 C5 75 3B 03 9C 7E F8 06 82
0090 | 46 85 F8 E3 C4 DF C7 04 FB CA 2B B7 F7 C3 40 CF
00A0 | 49 0E C7 17 C9 7F 06 3E D1 5C 87 BA 25 DC D4 DE
00B0 | 71 C4 81 3E BF 76 84 A8 01 DF B8 B2 93 B7 04 D0
00C0 | 08 2E D6 5C 14 D6 08 2A 61 17 A8 E1 68 82 E2 CE
00D0 | 59 38 9E 77 B6 79 D5 77 2C 54 75 19 C2 31 1F BD
00E0 | C3 AB 2F E8 27 FA D8 8D AA C3 B4 F8 90 A5 27 7F
00F0 | 13 AB BC 78 81 6D C8 47 C4 18 01 DC BE EE 9C CF
0100 | F5 DD 8B FB A3 B6 2C CB 80 39 C8 F7 57 EB 1D FD
0110 | E0 F1 9F 87 5C E7 6C F2 E8 77 26 D7 A2 EE FE 92
0120 | 38 B9 C4 35 39 C3 09 4A B5 BA B3 D3 12 D8 C9 FB
0130 | 5E 64 B7 0C E5 AE 08 48 61 F7 0B BF 5B 44 75 CE
0140 | 90 0B 3B 04 B4 2B 81 D9 31 52 85 E9 33 B5 9C 2C
0150 | 81 03 52 9E C0 52 8C 45 1D 65 C3 BA 87 0D 1B 73
0160 | EE 22 43 C0 1F 76 10 F3 F7 2D 3B E3 31 D8 35 F3
0170 | C8 40 01 41 7E F5 FD DD 91 86 AB 4E EE 2D 83 6E
0180 | AF 14 38 CC 12 06 9F 5B 7E B9 37 A8</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>A8C403008C0F9866</code></td>
<td><code>A4080500FF0F9866</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 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>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</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><code>FE50010005A842D8F2426610AD02F44D</code> <code>86D2384CB5C7D529897448DA22AF65AE</code> <code>9410359E1C4934467FBD099B78FBC964</code> <code>06204CD1012434C8333C1C76BFE6BB1C</code> <code>5F6DF6E24C0E7FB03EA1AEE6E258A2C5</code> <code>753B039C7EF806824685F8E3C4DFC704</code> <code>FBCA2BB7F7C340CF490EC717C97F063E</code> <code>D15C87BA25DCD4DE71C4813EBF7684A8</code> <code>01DFB8B293B704D0082ED65C14D6082A</code> <code>6117A8E16882E2CE59389E77B679D577</code> <code>2C547519C2311FBDC3AB2FE827FAD88D</code> <code>AAC3B4F890A5277F13ABBC78816DC847</code> <code>C41801DCBEEE9CCFF5DD8BFBA3B62CCB</code> <code>8039C8F757EB1DFDE0F19F875CE76CF2</code> <code>E87726D7A2EEFE9238B9C43539C3094A</code> <code>B5BAB3D312D8C9FB5E64B70CE5AE0848</code> <code>61F70BBF5B4475CE900B3B04B42B81D9</code> <code>315285E933B59C2C8103529EC0528C45</code> <code>1D65C3BA870D1B73EE2243C01F7610F3</code> <code>F72D3BE331D835F3C84001417EF5FDDD</code> <code>9186AB4EEE2D836EAF1438CC12069F5B</code><br> <code>7EB937A8</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 = 9CC4CCB77C8073CB8C4E8912F9A81CFA10EC2C27F85624E3386D6B6DDEBDA504BD96A4476DA3034C3D3A1D48AFBAAF6061F791A7ED54CE7BC6BE39C0A7038A75D074E1AEBD572EDF3684D160F2C49200C5B6572D7752DD3EF1A46D0123C98E9EB0B2A9EA14AE45A294F0E06AE97FFBB13E29C5AC44A09AAAEABFD599A56ED08902BCF859105ECA96149F12BA47A7A2248805576BD58F64D0FD976661804A22829E3E9BE0282691022F0BEAC6E151608DAC94384286F9876131AC05BFB2CAF4E979D9DE2AF80B85FB2B0F178058EF01CD90B4796A320061691B1E140CEC4972B0603DB59F6EF2C279EA58E078908133C759A883B89B27702C69A326BBC8788F7A</code></pre>
<pre><code>auth_key = 143E2FAC9B15F6EB83F861D8A9F8E1994CF662FF087632503B54697DB9AA8D577206E60460BAA78049E0636E72C1814F39D6CF1F9DFF3991D1170B5505AB5279943BC5D5F0C47105BFD889B1C08ECF0AA4625466EE8FD038E9233564DF751C7B51E523B8D7D33705393C62DE2C72086753C435220B6FE1B0896DA513F32235A068B827A19746CAFC467A1078203E8AA2A9F23419AC04E003F3A9F3DDA1BB6A9CEAF12AB61BB9A2BC0C50727D0C6BAABD4A27A997FF63E60ED7C9CCB1AB1B19781FA31077AB97CFA8E74929292D5233135EEBB2BFC5B91A27D68090956A62B45870A890A0B65294B588F99E0A9BCD645CA6997E8010A89466582A7D559CDBA807</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 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>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 7C 38 DC FF 0F 98 66
0010 | 34 00 00 00 34 F7 CB 3B E1 90 78 1B 9B 7E 8F E6
0020 | E0 F1 12 C1 4F 9D 21 82 EF 3B AC 77 3D 05 90 7F
0030 | 94 DB F3 E8 E7 D1 7A 28 9E 5F 3E D7 C4 FF 02 E3
0040 | A1 0A 26 15 E3 D9 C8 83</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>012C8C928C0F9866</code></td>
<td><code>017C38DCFF0F9866</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>80000000</code> (128 in decimal)</td>
<td><code>34000000</code> (52 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>AEF5C939CB22E0B278B37F70A0A1334C</code></td>
<td><code>E190781B9B7E8FE6E0F112C14F9D2182</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>67C507B5A74F60B6611330AB030900F5</code></td>
<td><code>EF3BAC773D05907F94DBF3E8E7D17A28</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>6075123BF7A5D0C43B6FCE6D1181A4A2</code></td>
<td><code>9E5F3ED7C4FF02E3A10A2615E3D9C883</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>

View file

@ -4,28 +4,10 @@
<meta charset="utf-8">
<title>messages.MyStickers</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Constructors
Constructor
Description
messages.myStickers
 
Methods
Method
Description
messages.getMyStickers
 ">
<meta property="description" content="The list of stickersets owned by the current account ».">
<meta property="og:title" content="messages.MyStickers">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
messages.myStickers
 
Methods
Method
Description
messages.getMyStickers
 ">
<meta property="og:description" content="The list of stickersets owned by the current account ».">
<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 @@ messages.getMyStickers
<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.MyStickers" >messages.MyStickers</a></li></ul></div>
<h1 id="dev_page_title">messages.MyStickers</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>The list of <a href="/api/stickers">stickersets owned by the current account »</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>
@ -88,7 +71,7 @@ messages.getMyStickers
<tbody>
<tr>
<td><a href="/constructor/messages.myStickers">messages.myStickers</a></td>
<td> </td>
<td>The list of <a href="/api/stickers">stickersets owned by the current account »</a>.</td>
</tr>
</tbody>
</table>
@ -106,7 +89,10 @@ messages.getMyStickers
<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="#stickers" id="stickers" name="stickers"><i class="anchor-icon"></i></a><a href="/api/stickers">Stickers</a></h4>
<p>Telegram clients support displaying static and animated stickers.</p></div>
</div>