Update content of files

This commit is contained in:
GitHub Action 2024-07-10 07:10:14 +00:00
parent a4ce6bcc93
commit d3e81f3fef
8 changed files with 229 additions and 252 deletions

View file

@ -166,7 +166,7 @@
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/auth.sentCodeTypeSmsWord">auth.sentCodeTypeSmsWord</a> - The code was sent via SMS as a secret word, starting with the letter specified in <code>beginning</code></li>
<li>Added <a href="/constructor/auth.sentCodeTypeSmsPhrase">auth.sentCodeTypeSmsPhrase</a> - The code was sent via SMS as a secret phrase starting with the word specified in <code>beginning</code>,</li>
<li>Added <a href="/constructor/auth.sentCodeTypeSmsPhrase">auth.sentCodeTypeSmsPhrase</a> - The code was sent via SMS as a secret phrase starting with the word specified in <code>beginning</code></li>
<li>Added <a href="/constructor/emojiGroupGreeting">emojiGroupGreeting</a> - </li>
<li>Added <a href="/constructor/emojiGroupPremium">emojiGroupPremium</a> - </li>
<li>Added <a href="/constructor/broadcastRevenueBalances">broadcastRevenueBalances</a> - </li>
@ -194,7 +194,7 @@
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
<li>Added <a href="/method/account.toggleSponsoredMessages">account.toggleSponsoredMessages</a> - </li>
<li>Added <a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a> - </li>
<li>Added <a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a> - Pin some stories to the top of the profile, see <a href="/api/stories#pinned-or-archived-stories">here »</a> for more info.</li>
<li>Added <a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a> - </li>
<li>Added <a href="/method/account.setReactionsNotifySettings">account.setReactionsNotifySettings</a> - </li>
</ul>

View file

@ -104,6 +104,7 @@ Note that if any of the conditions changes in the period between the call to <a
---functions---
<a href='/method/stories.togglePinned'>stories.togglePinned</a>#9a75a1ef peer:<a href='/type/InputPeer'>InputPeer</a> id:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt; pinned:<a href='/type/Bool'>Bool</a> = <a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt;;
<a href='/method/stories.togglePinnedToTop'>stories.togglePinnedToTop</a>#b297e9b peer:<a href='/type/InputPeer'>InputPeer</a> id:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/int'>int</a>&gt; = <a href='/type/Bool'>Bool</a>;
<a href='/method/stories.getStoriesArchive'>stories.getStoriesArchive</a>#b4352016 peer:<a href='/type/InputPeer'>InputPeer</a> offset_id:<a href='/type/int'>int</a> limit:<a href='/type/int'>int</a> = <a href='/type/stories.Stories'>stories.Stories</a>;
@ -112,6 +113,8 @@ Note that if any of the conditions changes in the period between the call to <a
<p>Use <a href="/method/stories.getStoriesArchive">stories.getStoriesArchive</a> to fetch stories in the story archive. </p>
<p>Archived stories may then be pinned on the profile, where they may be fetched using <a href="/method/stories.getPinnedStories">stories.getPinnedStories</a> by users who explicitly open your profile: use <a href="/method/stories.togglePinned">stories.togglePinned</a> to pin or unpin one or more stories to your profile. </p>
<p>Stories may also be autopinned upon expiration if the <code>pinned</code> flag is set <a href="#posting-stories">when posting them</a>. </p>
<p>Additionally, stories pinned to a profile may be also pinned to the top of the profile using <a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a>; stories that are pinned to the top of the profile (max <a href="/api/config#stories-pinned-to-top-count-max">stories_pinned_to_top_count_max</a>) should be displayed first when opening the profile.<br>
Stories pinned to the top of the profile will be returned first when invoking <a href="/method/stories.getPinnedStories">stories.getPinnedStories</a> with <code>offset_id=0</code>, and their IDs will also be contained in <a href="/constructor/stories.stories">stories.stories</a>.<code>pinned_to_top</code>. </p>
<h4><a class="anchor" href="#deleting-stories" id="deleting-stories" name="deleting-stories"><i class="anchor-icon"></i></a>Deleting stories</h4>
<pre><code>---functions---

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>auth.sentCodeTypeSmsPhrase</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="The code was sent via SMS as a secret phrase starting with the word specified in beginning,">
<meta property="description" content="The code was sent via SMS as a secret phrase starting with the word specified in beginning">
<meta property="og:title" content="auth.sentCodeTypeSmsPhrase">
<meta property="og:image" content="">
<meta property="og:description" content="The code was sent via SMS as a secret phrase starting with the word specified in beginning,">
<meta property="og:description" content="The code was sent via SMS as a secret phrase starting with the word specified in beginning">
<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">
@ -42,7 +42,7 @@
<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/auth.sentCodeTypeSmsPhrase" >auth.sentCodeTypeSmsPhrase</a></li></ul></div>
<h1 id="dev_page_title">auth.sentCodeTypeSmsPhrase</h1>
<div id="dev_page_content"><p>The code was sent via SMS as a secret phrase starting with the word specified in <code>beginning</code>,</p>
<div id="dev_page_content"><p>The code was sent via SMS as a secret phrase starting with the word specified in <code>beginning</code></p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">

View file

@ -4,42 +4,10 @@
<meta charset="utf-8">
<title>stories.togglePinnedToTop</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
peer
InputPeer
 
id
Vector&lt;int&gt;
 
Result
Bool
Possible errors
Code
Type
Description
400…">
<meta property="description" content="Pin some stories to the top of the profile, see here » for more info.">
<meta property="og:title" content="stories.togglePinnedToTop">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
peer
InputPeer
 
id
Vector&lt;int&gt;
 
Result
Bool
Possible errors
Code
Type
Description
400…">
<meta property="og:description" content="Pin some stories to the top of the profile, see here » for more info.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -74,7 +42,8 @@ Description
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/stories.togglePinnedToTop" >stories.togglePinnedToTop</a></li></ul></div>
<h1 id="dev_page_title">stories.togglePinnedToTop</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Pin some stories to the top of the profile, see <a href="/api/stories#pinned-or-archived-stories">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>
@ -103,12 +72,12 @@ Description
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
<td> </td>
<td>Peer where to pin stories.</td>
</tr>
<tr>
<td><strong>id</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt;</td>
<td> </td>
<td>IDs of the stories to pin (max <a href="/api/config#stories-pinned-to-top-count-max">stories_pinned_to_top_count_max</a>).</td>
</tr>
</tbody>
</table>
@ -130,7 +99,12 @@ Description
<td>The provided peer id 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="#client-configuration" id="client-configuration" name="client-configuration"><i class="anchor-icon"></i></a><a href="/api/config">Client configuration</a></h4>
<p>The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.</p>
<h4><a class="anchor" href="#stories" id="stories" name="stories"><i class="anchor-icon"></i></a><a href="/api/stories">Stories</a></h4>
<p>Telegram users and channels can easily post and view stories through the API.</p></div>
</div>

View file

@ -3370,7 +3370,7 @@ Look for updates of telegram&#39;s terms of service…">
</tr>
<tr>
<td><a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a></td>
<td> </td>
<td>Pin some stories to the top of the profile, see <a href="/api/stories#pinned-or-archived-stories">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/account.getReactionsNotifySettings">account.getReactionsNotifySettings</a></td>

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 0C 4F 0A 00 91 24 8C 66
0010 | 14 00 00 00 F1 8E 7E BE 5E 25 44 1D CD A9 58 CC
0020 | F5 B7 EA 41 05 B7 E0 C6</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 B8 1F 02 00 AD 31 8E 66
0010 | 14 00 00 00 F1 8E 7E BE 37 19 EC 38 7C E6 E1 47
0020 | C8 DE 55 74 1A 20 29 2D</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>0C4F0A0091248C66</code></td>
<td><code>B81F0200AD318E66</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>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</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 0C F6 43 91 24 8C 66
0010 | 9C 00 00 00 63 24 16 05 5E 25 44 1D CD A9 58 CC
0020 | F5 B7 EA 41 05 B7 E0 C6 E1 9A 6A 77 B5 BF 45 7D
0030 | 85 3C CF 17 94 0B 62 C0 08 17 3D 29 59 1E 0C 3D
0040 | 6B 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 AC CE 81 AD 31 8E 66
0010 | CC 00 00 00 63 24 16 05 37 19 EC 38 7C E6 E1 47
0020 | C8 DE 55 74 1A 20 29 2D 71 7E C2 C2 6F 12 7B 54
0030 | 83 C4 A7 A3 55 A6 C6 AF 08 16 34 08 3D 09 2D 06
0040 | 0B 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>010CF64391248C66</code></td>
<td><code>01ACCE81AD318E66</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>9C000000</code> (156 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>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>08173D29591E0C3D6B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1674540099184639339</td>
<td><code>081634083D092D060B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1599912825863341579</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 = 1674540099184639339</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1674540099184639339 = 1287208969 * 1300907731</code></p>
<pre><code>p = 1287208969
q = 1300907731</code></pre>
<pre><code>pq = 1599912825863341579</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1599912825863341579 = 1126645379 * 1420067801</code></p>
<pre><code>p = 1126645379
q = 1420067801</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 17 3D 29 59 1E 0C 3D 6B 00 00 00
0010 | 04 4C B9 40 09 00 00 00 04 4D 8A 46 D3 00 00 00
0020 | 5E 25 44 1D CD A9 58 CC F5 B7 EA 41 05 B7 E0 C6
0030 | E1 9A 6A 77 B5 BF 45 7D 85 3C CF 17 94 0B 62 C0
0040 | 04 E9 ED CC D3 54 84 06 27 82 B8 B5 1E E0 E0 4A
0050 | F0 EB 92 0C 36 C3 85 94 E9 57 E9 63 67 98 98 F7
<pre><code>0000 | 95 5F F5 A9 08 16 34 08 3D 09 2D 06 0B 00 00 00
0010 | 04 43 27 3E 83 00 00 00 04 54 A4 83 D9 00 00 00
0020 | 37 19 EC 38 7C E6 E1 47 C8 DE 55 74 1A 20 29 2D
0030 | 71 7E C2 C2 6F 12 7B 54 83 C4 A7 A3 55 A6 C6 AF
0040 | 52 69 6A 7C 6E 30 04 5B FE 3C B5 9F 8C D1 9C BD
0050 | 96 2E AC 5B BD 82 3F AD 2B EF E9 37 7C EF 00 9D
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 = 1300907731</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>08173D29591E0C3D6B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1674540099184639339</td>
<td><code>081634083D092D060B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1599912825863341579</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>044CB94009000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1287208969</td>
<td><code>0443273E83000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1126645379</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>044D8A46D3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1300907731</td>
<td><code>0454A483D9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1420067801</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>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>04E9EDCCD35484062782B8B51EE0E04A</code> <code>F0EB920C36C38594E957E963679898F7</code></td>
<td><code>52696A7C6E30045BFE3CB59F8CD19CBD</code> <code>962EAC5BBD823FAD2BEFE9377CEF009D</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1300907731</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 = 955FF5A908173D29591E0C3D6B000000044CB94009000000044D8A46D30000005E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C004E9EDCCD35484062782B8B51EE0E04AF0EB920C36C38594E957E963679898F702000000
random_padding_bytes = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4CCCC4AEB71AF957F3E836986173E35F29420D008D2AA21A0EEC0B43A8018B1398812EE21B8EE7A89A8D0E39BF149C15FCB3065B7405EB53A377ECD0BCB419C9</code></pre>
<pre><code>data = 955FF5A9081634083D092D060B0000000443273E830000000454A483D90000003719EC387CE6E147C8DE55741A20292D717EC2C26F127B5483C4A7A355A6C6AF52696A7C6E30045BFE3CB59F8CD19CBD962EAC5BBD823FAD2BEFE9377CEF009D02000000
random_padding_bytes = BEEEBCBED75C9112319952719509E037F01A320D02CAD147F83A8A9138D4F603BC5134025647E888C2D137B6BEAB6ECB84AEBE780143170DAE9C452842D344110C8AF467F391D31114C9000AEEA6A726CAC4EAEC528061F1F56CB37F</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 = 106E7597AC8537688386D3552F5FA8CB1707701B4EF13DB347C44F2D12DE4D1024E2AD1FF45EDD26D140C918582418C5DBDA2D2A493339543D43152ED817C7D9A1830285E890119E04CBA2383E9A7B289216C1888CC66BCA7CE1933EA20FED256BC6064E3209E7BDB3A3E8742C1C88BC0B386576F2FA2DD5C437706A36E0CE08F0C73B6D04744E7555D4B8EA55E93E4E9B4E50BD68CF7A8094E0F8A898B8AE28584A3CD60EF9546BE2DBC1135AD865DFD8436ED22782A54643423F110AC6708FCEF949CB6E0525A38447377AD5623E31EA60625258DFCE5A1CCACEC205E124580AE2B982450EC714F24FDC4D5BD822062F96FABB4F041E868D8C0754B4FF44A6</code></pre>
<pre><code>encrypted_data = D0DE4E32B55801388F73ED87407EEEF2476201E7E0563C9144BDD34DAA6DCE34B8F591EFEA9AD864136157BAC21023CCF3BC96B66F0A95DFF353D152AD1AAF65B89F6C8EF65161AE0BE5033A0DBA166B931A79A4B735AFD61E19DD34E08CE8166B556CE873226F83FF2D0B7EFB27C0713647CDB143054E97959788D10AE125443F7417071729889E67FC9F6A63B7FC4B7EC0473BABB7C11AD17078431470A9C7C399E612B287AAD2CC96CAA1FB1517F3F20F9065D2440D2D56677B4231C9CDFC07046CD2769BF7267F7B1C9F0563D4F6B53513CFAF2C1EC11FE151E5B9E645AC70BBB9072852523AD903EB92FF1C32BDAE9CB78DBF2548A6765EC76A4214A7A6</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 10 4F 0A 00 91 24 8C 66
0010 | 40 01 00 00 BE E4 12 D7 5E 25 44 1D CD A9 58 CC
0020 | F5 B7 EA 41 05 B7 E0 C6 E1 9A 6A 77 B5 BF 45 7D
0030 | 85 3C CF 17 94 0B 62 C0 04 4C B9 40 09 00 00 00
0040 | 04 4D 8A 46 D3 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 10 6E 75 97 AC 85 37 68 83 86 D3 55
0060 | 2F 5F A8 CB 17 07 70 1B 4E F1 3D B3 47 C4 4F 2D
0070 | 12 DE 4D 10 24 E2 AD 1F F4 5E DD 26 D1 40 C9 18
0080 | 58 24 18 C5 DB DA 2D 2A 49 33 39 54 3D 43 15 2E
0090 | D8 17 C7 D9 A1 83 02 85 E8 90 11 9E 04 CB A2 38
00A0 | 3E 9A 7B 28 92 16 C1 88 8C C6 6B CA 7C E1 93 3E
00B0 | A2 0F ED 25 6B C6 06 4E 32 09 E7 BD B3 A3 E8 74
00C0 | 2C 1C 88 BC 0B 38 65 76 F2 FA 2D D5 C4 37 70 6A
00D0 | 36 E0 CE 08 F0 C7 3B 6D 04 74 4E 75 55 D4 B8 EA
00E0 | 55 E9 3E 4E 9B 4E 50 BD 68 CF 7A 80 94 E0 F8 A8
00F0 | 98 B8 AE 28 58 4A 3C D6 0E F9 54 6B E2 DB C1 13
0100 | 5A D8 65 DF D8 43 6E D2 27 82 A5 46 43 42 3F 11
0110 | 0A C6 70 8F CE F9 49 CB 6E 05 25 A3 84 47 37 7A
0120 | D5 62 3E 31 EA 60 62 52 58 DF CE 5A 1C CA CE C2
0130 | 05 E1 24 58 0A E2 B9 82 45 0E C7 14 F2 4F DC 4D
0140 | 5B D8 22 06 2F 96 FA BB 4F 04 1E 86 8D 8C 07 54
0150 | B4 FF 44 A6</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 80 FE 0D 00 AD 31 8E 66
0010 | 40 01 00 00 BE E4 12 D7 37 19 EC 38 7C E6 E1 47
0020 | C8 DE 55 74 1A 20 29 2D 71 7E C2 C2 6F 12 7B 54
0030 | 83 C4 A7 A3 55 A6 C6 AF 04 43 27 3E 83 00 00 00
0040 | 04 54 A4 83 D9 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 D0 DE 4E 32 B5 58 01 38 8F 73 ED 87
0060 | 40 7E EE F2 47 62 01 E7 E0 56 3C 91 44 BD D3 4D
0070 | AA 6D CE 34 B8 F5 91 EF EA 9A D8 64 13 61 57 BA
0080 | C2 10 23 CC F3 BC 96 B6 6F 0A 95 DF F3 53 D1 52
0090 | AD 1A AF 65 B8 9F 6C 8E F6 51 61 AE 0B E5 03 3A
00A0 | 0D BA 16 6B 93 1A 79 A4 B7 35 AF D6 1E 19 DD 34
00B0 | E0 8C E8 16 6B 55 6C E8 73 22 6F 83 FF 2D 0B 7E
00C0 | FB 27 C0 71 36 47 CD B1 43 05 4E 97 95 97 88 D1
00D0 | 0A E1 25 44 3F 74 17 07 17 29 88 9E 67 FC 9F 6A
00E0 | 63 B7 FC 4B 7E C0 47 3B AB B7 C1 1A D1 70 78 43
00F0 | 14 70 A9 C7 C3 99 E6 12 B2 87 AA D2 CC 96 CA A1
0100 | FB 15 17 F3 F2 0F 90 65 D2 44 0D 2D 56 67 7B 42
0110 | 31 C9 CD FC 07 04 6C D2 76 9B F7 26 7F 7B 1C 9F
0120 | 05 63 D4 F6 B5 35 13 CF AF 2C 1E C1 1F E1 51 E5
0130 | B9 E6 45 AC 70 BB B9 07 28 52 52 3A D9 03 EB 92
0140 | FF 1C 32 BD AE 9C B7 8D BF 25 48 A6 76 5E C7 6A
0150 | 42 14 A7 A6</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 = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>104F0A0091248C66</code></td>
<td><code>80FE0D00AD318E66</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 = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>044CB94009000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1287208969</td>
<td><code>0443273E83000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1126645379</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>044D8A46D3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1300907731</td>
<td><code>0454A483D9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1420067801</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 = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE000100106E7597AC8537688386D355</code> <code>2F5FA8CB1707701B4EF13DB347C44F2D</code> <code>12DE4D1024E2AD1FF45EDD26D140C918</code> <code>582418C5DBDA2D2A493339543D43152E</code> <code>D817C7D9A1830285E890119E04CBA238</code> <code>3E9A7B289216C1888CC66BCA7CE1933E</code> <code>A20FED256BC6064E3209E7BDB3A3E874</code> <code>2C1C88BC0B386576F2FA2DD5C437706A</code> <code>36E0CE08F0C73B6D04744E7555D4B8EA</code> <code>55E93E4E9B4E50BD68CF7A8094E0F8A8</code> <code>98B8AE28584A3CD60EF9546BE2DBC113</code> <code>5AD865DFD8436ED22782A54643423F11</code> <code>0AC6708FCEF949CB6E0525A38447377A</code> <code>D5623E31EA60625258DFCE5A1CCACEC2</code> <code>05E124580AE2B982450EC714F24FDC4D</code> <code>5BD822062F96FABB4F041E868D8C0754</code><br> <code>B4FF44A6</code></td>
<td><code>FE000100D0DE4E32B55801388F73ED87</code> <code>407EEEF2476201E7E0563C9144BDD34D</code> <code>AA6DCE34B8F591EFEA9AD864136157BA</code> <code>C21023CCF3BC96B66F0A95DFF353D152</code> <code>AD1AAF65B89F6C8EF65161AE0BE5033A</code> <code>0DBA166B931A79A4B735AFD61E19DD34</code> <code>E08CE8166B556CE873226F83FF2D0B7E</code> <code>FB27C0713647CDB143054E97959788D1</code> <code>0AE125443F7417071729889E67FC9F6A</code> <code>63B7FC4B7EC0473BABB7C11AD1707843</code> <code>1470A9C7C399E612B287AAD2CC96CAA1</code> <code>FB1517F3F20F9065D2440D2D56677B42</code> <code>31C9CDFC07046CD2769BF7267F7B1C9F</code> <code>0563D4F6B53513CFAF2C1EC11FE151E5</code> <code>B9E645AC70BBB9072852523AD903EB92</code> <code>FF1C32BDAE9CB78DBF2548A6765EC76A</code><br> <code>4214A7A6</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4
<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 74 E5 18 92 24 8C 66
0010 | D0 02 00 00 5C 07 E8 D0 5E 25 44 1D CD A9 58 CC
0020 | F5 B7 EA 41 05 B7 E0 C6 E1 9A 6A 77 B5 BF 45 7D
0030 | 85 3C CF 17 94 0B 62 C0 FE 50 02 00 61 D3 16 C0
0040 | EB D2 C3 08 47 DE 15 A6 41 F5 E4 AE C0 A3 D8 ED
0050 | 2C 45 2C 85 FB 78 E8 EA 09 73 4D B6 16 21 B1 EF
0060 | A4 FF 27 D3 2D 6E 4F 34 68 13 6F 94 0C D2 BD 78
0070 | E5 5F A1 D7 F5 BF 23 2D 69 1D EA BD 00 A0 64 2D
0080 | B8 BC 54 60 09 0B 99 8D 65 4D 99 82 81 A4 E5 74
0090 | 10 AC 56 83 6E AD 68 5A F2 79 95 D8 EB 85 D6 C2
00A0 | E9 0F 50 27 E3 06 C7 E5 04 29 4A 05 10 17 56 AD
00B0 | AB 98 33 65 B5 1E 8D 33 E8 31 ED CB 7B 0A 90 AE
00C0 | 7F 8F 4F AD FE A6 49 39 99 80 5A 4A 04 4B 56 D1
00D0 | 14 7E 1D 3D B7 B3 A2 76 26 98 80 20 92 59 94 E3
00E0 | 11 79 C4 E4 4B AA B7 C1 1A 47 9C D5 75 5E EC BA
00F0 | 3E 55 28 E6 C6 14 52 97 58 F8 8E AC 3A 92 D7 EC
0100 | 9D 3E 2E F8 94 B2 60 4E 18 6B 2A 31 B4 65 42 22
0110 | BE 8B 7F F5 71 D8 20 FB B6 AA CD 06 BE 97 20 47
0120 | B6 B1 9C D0 F4 68 FA 13 D2 85 B8 B2 AE 71 A2 14
0130 | 18 10 DA 43 37 56 BF C6 28 2F 1C 7E 5B 06 58 7D
0140 | 60 05 4E 26 8D 7F F0 7A F7 11 FE E4 A8 52 71 6B
0150 | 74 A0 4A F5 DC 93 7C F4 A1 7A 63 43 07 28 E8 0C
0160 | 4E 7E 55 BE 3C A1 59 C4 80 AB DB B8 AA 01 B9 84
0170 | F8 A0 27 2C 20 1F 54 C9 7A 44 3A 18 82 D0 23 AC
0180 | F7 A7 46 98 1D A3 C8 20 DD 46 B8 7D F5 B1 5D 9A
0190 | 6D E6 B0 AC 13 33 C2 99 A5 C2 04 24 10 2A E4 1B
01A0 | B0 C6 27 3D AD F4 94 91 27 F0 98 F3 EB 1F 45 FE
01B0 | 45 D9 20 4C 03 0C FB 15 F3 11 BC FA 58 47 4B 5B
01C0 | D4 56 0B 56 C9 CF 98 E3 55 D1 DD 5D 8C F3 27 1F
01D0 | E3 71 5D 24 BC 2A F6 DC D9 5F 28 05 97 92 2D 2A
01E0 | BD F6 12 D4 DA 88 B8 AC 91 F5 B0 C6 B0 91 FA EE
01F0 | 3B CC E9 73 3E 4F AB 3E C8 B7 15 41 85 EB DF 2B
0200 | 74 9B D6 0C C6 D6 5C ED 8F 1F FF BE D8 AA B7 94
0210 | 3E A4 C6 F0 3C 5E 70 48 67 5C DD A0 74 16 E4 56
0220 | 05 C3 EF E2 1C C2 00 7F 03 01 B8 C5 EA 14 9D 32
0230 | 4D C5 29 B3 70 34 DC 66 1F 3E 13 00 43 36 86 15
0240 | 0B A9 73 DA 7D E4 C8 DA 98 A1 71 24 0B 74 9D 80
0250 | 71 6E 87 5F 32 04 21 49 3D 5D BD DB 0B D7 71 2F
0260 | B9 CE 88 35 14 21 DC E3 20 44 8A D6 46 3D F0 08
0270 | A7 06 7E CC C8 DE E2 6A 11 42 EF F2 BE DB A7 C6
0280 | F2 E1 89 7D A4 1F 3E 12 68 AB 38 A2</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 50 6E 2F AE 31 8E 66
0010 | BC 02 00 00 5C 07 E8 D0 37 19 EC 38 7C E6 E1 47
0020 | C8 DE 55 74 1A 20 29 2D 71 7E C2 C2 6F 12 7B 54
0030 | 83 C4 A7 A3 55 A6 C6 AF FE 50 02 00 CF F0 95 B2
0040 | 6E 0F C7 1E 72 07 DA DD 07 66 CA 7F 19 28 F0 20
0050 | 05 1C BC AD B9 A5 FE 6E B6 8F 1C CF ED 51 EC 0E
0060 | 1E 61 7E 84 EE 38 AC 38 C6 6C 5A 25 73 8C C8 E6
0070 | 9B 65 5C ED B7 21 B5 BB 15 95 6D 05 31 CF 2F 9D
0080 | 4F 8A B8 D2 96 11 C8 24 39 20 02 7D 82 1C 4C D2
0090 | ED 28 11 99 49 A9 4E B7 FB 76 0D F4 54 5F 32 E5
00A0 | DB BF 60 0D 27 B3 3E B3 07 A2 66 F6 CF B6 A0 27
00B0 | BE 3A 7D 37 D3 4D 37 95 57 3A 14 F7 06 5D 1E 73
00C0 | 32 63 43 8C 3E 5E 2A 17 D5 65 F6 FE 24 F1 59 F9
00D0 | 16 3E 92 48 01 C0 DA 9D 9F 0A 1E 22 2F 73 C0 43
00E0 | DD 30 87 82 7D 08 14 CF 53 86 83 79 BE 71 9D AD
00F0 | CF BD F6 D3 55 EE DC AF C1 D4 1E EF B2 8B A8 75
0100 | FA 3B 45 BB 1B E4 76 D1 F4 49 E0 CB 65 1C F4 A7
0110 | A4 05 C7 93 B1 FD 30 B9 1C B1 F4 14 F8 84 0B 1A
0120 | B1 BC 8F 45 8E E0 D5 C2 CF 9F 41 84 B9 CE CE 8B
0130 | 43 BC 07 B2 F4 D2 2E 40 F7 68 32 F2 6E C3 A1 41
0140 | 5A 88 F2 42 36 A6 3E AE 30 E1 05 31 DA 63 D3 09
0150 | FE DE CC EB 81 06 C1 13 F5 C2 2A A5 EF B0 0D 69
0160 | 2D DE C1 47 14 7B 19 A0 15 C5 9A BD 07 93 AC F0
0170 | 74 53 61 80 F9 EB DE 62 3E 4E F8 CE BA 13 C8 B9
0180 | 1C 7C 92 8E C0 1E 20 22 C3 8D 53 D9 1A 27 76 C8
0190 | 57 DF 7F 6E 86 B1 94 9B C8 B2 79 8E CF 37 D8 28
01A0 | B8 AA B2 95 3E A7 AA 67 DC DF 67 C1 D1 F9 66 6D
01B0 | 39 84 83 5E 93 87 C6 8E 09 4B 5F 81 DD 93 C8 3F
01C0 | F5 83 EC 9C E0 DF 37 51 F9 9C 3A EF 93 D5 17 E6
01D0 | A0 FF 8A 09 5F 1C BF 1E 75 D7 53 B0 5F 28 85 A5
01E0 | 6D BA 1D 69 2F 71 EF 07 F3 2B AC 35 3A 83 24 27
01F0 | 11 49 C9 1F D2 7E 50 98 E1 5C C7 D6 C7 2B 8E 20
0200 | F5 E3 17 1A C0 E3 76 56 0A F9 49 B9 8C 18 60 8D
0210 | 51 DB 03 9B 1C 8A 2E 4D 87 6F 8F 7D 02 53 15 6E
0220 | B3 51 D6 5A 48 2F 92 FC 3D F4 8E 9B BD 41 B9 A3
0230 | E0 E2 83 D6 76 E5 61 1F FC 5A A2 84 DF 11 9C F5
0240 | 23 69 0C 0B 06 67 18 6B 32 9B 28 D1 DC 82 F2 2B
0250 | 37 4A 1D 2E DC CF E7 8A 8A FA D0 7E 54 B8 CD 23
0260 | 86 E0 D7 48 BB C9 8A B7 CA 06 15 FE A7 F0 77 23
0270 | 74 F4 A8 8B 83 6B 79 50 29 B7 AC 2C 98 6F ED 1C
0280 | E3 BC 3B 76 15 95 64 25 73 C7 E2 E8</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 = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>0174E51892248C66</code></td>
<td><code>01506E2FAE318E66</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>D0020000</code> (720 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 = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE50020061D316C0EBD2C30847DE15A6</code> <code>41F5E4AEC0A3D8ED2C452C85FB78E8EA</code> <code>09734DB61621B1EFA4FF27D32D6E4F34</code> <code>68136F940CD2BD78E55FA1D7F5BF232D</code> <code>691DEABD00A0642DB8BC5460090B998D</code> <code>654D998281A4E57410AC56836EAD685A</code> <code>F27995D8EB85D6C2E90F5027E306C7E5</code> <code>04294A05101756ADAB983365B51E8D33</code> <code>E831EDCB7B0A90AE7F8F4FADFEA64939</code> <code>99805A4A044B56D1147E1D3DB7B3A276</code> <code>26988020925994E31179C4E44BAAB7C1</code> <code>1A479CD5755EECBA3E5528E6C6145297</code> <code>58F88EAC3A92D7EC9D3E2EF894B2604E</code> <code>186B2A31B4654222BE8B7FF571D820FB</code> <code>B6AACD06BE972047B6B19CD0F468FA13</code> <code>D285B8B2AE71A2141810DA433756BFC6</code> <code>282F1C7E5B06587D60054E268D7FF07A</code> <code>F711FEE4A852716B74A04AF5DC937CF4</code> <code>A17A63430728E80C4E7E55BE3CA159C4</code> <code>80ABDBB8AA01B984F8A0272C201F54C9</code> <code>7A443A1882D023ACF7A746981DA3C820</code> <code>DD46B87DF5B15D9A6DE6B0AC1333C299</code> <code>A5C20424102AE41BB0C6273DADF49491</code> <code>27F098F3EB1F45FE45D9204C030CFB15</code> <code>F311BCFA58474B5BD4560B56C9CF98E3</code> <code>55D1DD5D8CF3271FE3715D24BC2AF6DC</code> <code>D95F280597922D2ABDF612D4DA88B8AC</code> <code>91F5B0C6B091FAEE3BCCE9733E4FAB3E</code> <code>C8B7154185EBDF2B749BD60CC6D65CED</code> <code>8F1FFFBED8AAB7943EA4C6F03C5E7048</code> <code>675CDDA07416E45605C3EFE21CC2007F</code> <code>0301B8C5EA149D324DC529B37034DC66</code> <code>1F3E1300433686150BA973DA7DE4C8DA</code> <code>98A171240B749D80716E875F32042149</code> <code>3D5DBDDB0BD7712FB9CE88351421DCE3</code> <code>20448AD6463DF008A7067ECCC8DEE26A</code> <code>1142EFF2BEDBA7C6F2E1897DA41F3E12</code><br> <code>68AB38A2</code></td>
<td><code>FE500200CFF095B26E0FC71E7207DADD</code> <code>0766CA7F1928F020051CBCADB9A5FE6E</code> <code>B68F1CCFED51EC0E1E617E84EE38AC38</code> <code>C66C5A25738CC8E69B655CEDB721B5BB</code> <code>15956D0531CF2F9D4F8AB8D29611C824</code> <code>3920027D821C4CD2ED28119949A94EB7</code> <code>FB760DF4545F32E5DBBF600D27B33EB3</code> <code>07A266F6CFB6A027BE3A7D37D34D3795</code> <code>573A14F7065D1E733263438C3E5E2A17</code> <code>D565F6FE24F159F9163E924801C0DA9D</code> <code>9F0A1E222F73C043DD3087827D0814CF</code> <code>53868379BE719DADCFBDF6D355EEDCAF</code> <code>C1D41EEFB28BA875FA3B45BB1BE476D1</code> <code>F449E0CB651CF4A7A405C793B1FD30B9</code> <code>1CB1F414F8840B1AB1BC8F458EE0D5C2</code> <code>CF9F4184B9CECE8B43BC07B2F4D22E40</code> <code>F76832F26EC3A1415A88F24236A63EAE</code> <code>30E10531DA63D309FEDECCEB8106C113</code> <code>F5C22AA5EFB00D692DDEC147147B19A0</code> <code>15C59ABD0793ACF074536180F9EBDE62</code> <code>3E4EF8CEBA13C8B91C7C928EC01E2022</code> <code>C38D53D91A2776C857DF7F6E86B1949B</code> <code>C8B2798ECF37D828B8AAB2953EA7AA67</code> <code>DCDF67C1D1F9666D3984835E9387C68E</code> <code>094B5F81DD93C83FF583EC9CE0DF3751</code> <code>F99C3AEF93D517E6A0FF8A095F1CBF1E</code> <code>75D753B05F2885A56DBA1D692F71EF07</code> <code>F32BAC353A8324271149C91FD27E5098</code> <code>E15CC7D6C72B8E20F5E3171AC0E37656</code> <code>0AF949B98C18608D51DB039B1C8A2E4D</code> <code>876F8F7D0253156EB351D65A482F92FC</code> <code>3DF48E9BBD41B9A3E0E283D676E5611F</code> <code>FC5AA284DF119CF523690C0B0667186B</code> <code>329B28D1DC82F22B374A1D2EDCCFE78A</code> <code>8AFAD07E54B8CD2386E0D748BBC98AB7</code> <code>CA0615FEA7F0772374F4A88B836B7950</code> <code>29B7AC2C986FED1CE3BC3B7615956425</code><br> <code>73C7E2E8</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 05FCDA12794F11E8208C4ECC11C9DAB673246A281F3C7FA0627F462A4
<!-- 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 = 61D316C0EBD2C30847DE15A641F5E4AEC0A3D8ED2C452C85FB78E8EA09734DB61621B1EFA4FF27D32D6E4F3468136F940CD2BD78E55FA1D7F5BF232D691DEABD00A0642DB8BC5460090B998D654D998281A4E57410AC56836EAD685AF27995D8EB85D6C2E90F5027E306C7E504294A05101756ADAB983365B51E8D33E831EDCB7B0A90AE7F8F4FADFEA6493999805A4A044B56D1147E1D3DB7B3A27626988020925994E31179C4E44BAAB7C11A479CD5755EECBA3E5528E6C614529758F88EAC3A92D7EC9D3E2EF894B2604E186B2A31B4654222BE8B7FF571D820FBB6AACD06BE972047B6B19CD0F468FA13D285B8B2AE71A2141810DA433756BFC6282F1C7E5B06587D60054E268D7FF07AF711FEE4A852716B74A04AF5DC937CF4A17A63430728E80C4E7E55BE3CA159C480ABDBB8AA01B984F8A0272C201F54C97A443A1882D023ACF7A746981DA3C820DD46B87DF5B15D9A6DE6B0AC1333C299A5C20424102AE41BB0C6273DADF4949127F098F3EB1F45FE45D9204C030CFB15F311BCFA58474B5BD4560B56C9CF98E355D1DD5D8CF3271FE3715D24BC2AF6DCD95F280597922D2ABDF612D4DA88B8AC91F5B0C6B091FAEE3BCCE9733E4FAB3EC8B7154185EBDF2B749BD60CC6D65CED8F1FFFBED8AAB7943EA4C6F03C5E7048675CDDA07416E45605C3EFE21CC2007F0301B8C5EA149D324DC529B37034DC661F3E1300433686150BA973DA7DE4C8DA98A171240B749D80716E875F320421493D5DBDDB0BD7712FB9CE88351421DCE320448AD6463DF008A7067ECCC8DEE26A1142EFF2BEDBA7C6F2E1897DA41F3E1268AB38A2
tmp_aes_key = DBCF1FC91FB69D06743207C365B21B3236C3239BC16D1FA2F1E5737D346365E4
tmp_aes_iv = FEDE50CC239D1D4615DDC024494D93043E25B6DC35107E00A77C687104E9EDCC</code></pre>
<pre><code>encrypted_answer = CFF095B26E0FC71E7207DADD0766CA7F1928F020051CBCADB9A5FE6EB68F1CCFED51EC0E1E617E84EE38AC38C66C5A25738CC8E69B655CEDB721B5BB15956D0531CF2F9D4F8AB8D29611C8243920027D821C4CD2ED28119949A94EB7FB760DF4545F32E5DBBF600D27B33EB307A266F6CFB6A027BE3A7D37D34D3795573A14F7065D1E733263438C3E5E2A17D565F6FE24F159F9163E924801C0DA9D9F0A1E222F73C043DD3087827D0814CF53868379BE719DADCFBDF6D355EEDCAFC1D41EEFB28BA875FA3B45BB1BE476D1F449E0CB651CF4A7A405C793B1FD30B91CB1F414F8840B1AB1BC8F458EE0D5C2CF9F4184B9CECE8B43BC07B2F4D22E40F76832F26EC3A1415A88F24236A63EAE30E10531DA63D309FEDECCEB8106C113F5C22AA5EFB00D692DDEC147147B19A015C59ABD0793ACF074536180F9EBDE623E4EF8CEBA13C8B91C7C928EC01E2022C38D53D91A2776C857DF7F6E86B1949BC8B2798ECF37D828B8AAB2953EA7AA67DCDF67C1D1F9666D3984835E9387C68E094B5F81DD93C83FF583EC9CE0DF3751F99C3AEF93D517E6A0FF8A095F1CBF1E75D753B05F2885A56DBA1D692F71EF07F32BAC353A8324271149C91FD27E5098E15CC7D6C72B8E20F5E3171AC0E376560AF949B98C18608D51DB039B1C8A2E4D876F8F7D0253156EB351D65A482F92FC3DF48E9BBD41B9A3E0E283D676E5611FFC5AA284DF119CF523690C0B0667186B329B28D1DC82F22B374A1D2EDCCFE78A8AFAD07E54B8CD2386E0D748BBC98AB7CA0615FEA7F0772374F4A88B836B795029B7AC2C986FED1CE3BC3B761595642573C7E2E8
tmp_aes_key = 672C272E9B9E62D81596A1E4C82B3383E58BB539EBBB480CA55D06C715CD3FA2
tmp_aes_iv = 9F0AAB8D472F050F73550850995279EDD8DEAAF68371A4413396DA5B52696A7C</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = AD628A05D5D30CA6DD7185E1BEB7F5E9C3AE1075BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010007148DE492382AA5BA4EAAF239DDA648270F0B711489B661209C0002A0483BD86DFC8B4E6784312BFA5713652C00A753FD67412CD30A7E0B0D522FDF4594E3F951A16E6A6D8385EF698FAA7F9D69F3F7354917251119106897BE71EA470D0700EDC1449911115C517260DE60AACA91BF4F32C3EE1E7CCC6829E185009B97D344DF0B8D8126D5500EB2B8D93E571A303355D51BD46B0B2A1D0EC87D967CB2BACD424C1A159F1AD4C855474C9414D0900AE4CC1207396902F557FE773DDDB7B3B81E2AF223C06BF722379CAA5D67D3866A0F986CA0BE90807B9D4D6655CE39593570B47F52C193EE45B5DE842A890FEA55071515BF181D44D4EF3C6E323E45154492248C66A8FE4155D28B274B
answer = BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010007148DE492382AA5BA4EAAF239DDA648270F0B711489B661209C0002A0483BD86DFC8B4E6784312BFA5713652C00A753FD67412CD30A7E0B0D522FDF4594E3F951A16E6A6D8385EF698FAA7F9D69F3F7354917251119106897BE71EA470D0700EDC1449911115C517260DE60AACA91BF4F32C3EE1E7CCC6829E185009B97D344DF0B8D8126D5500EB2B8D93E571A303355D51BD46B0B2A1D0EC87D967CB2BACD424C1A159F1AD4C855474C9414D0900AE4CC1207396902F557FE773DDDB7B3B81E2AF223C06BF722379CAA5D67D3866A0F986CA0BE90807B9D4D6655CE39593570B47F52C193EE45B5DE842A890FEA55071515BF181D44D4EF3C6E323E45154492248C66A8FE4155D28B274B</code></pre>
<pre><code>answer_with_hash = 63A591C00E6716FD5398DC64EF9B2BB49165FC2DBA0D89B53719EC387CE6E147C8DE55741A20292D717EC2C26F127B5483C4A7A355A6C6AF03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010049BD77125994C414F8DC26F7AE671E032D5F016AEC30798EB27E5FC4FFD7819958232C656C55F7B7427E56164FF0D2916CD14405A6D7F97C7C15F76908FDAE94EDCD693DD4EFB7A7B41D9B357BD60468F82779BF9569B208CBF57223582A1685ACB0B0FB9A61A771AA0A08D5CCC0ED07083C5794A721B2476850B98728B5F5C1DD3CD60079A56C8189C5B64C0E53BC3355D71E2EFCC9265908BF1F3FBB7A5BEB07E3EDDF9AC1A13E6C84FBD322D099765672759177640DC3F871FE0C6DB45F8FAD950A7BFAE43D927BEB66E65CA7C2C54B538647E60D9FF9EADE9D31E1ABF67AA47DCD3F08E9E54BFC4BFC5FA90D5E0366F2CB1FF415F3C875744F9EE6DD43D4AE318E665F6C1219CEE447E7
answer = BA0D89B53719EC387CE6E147C8DE55741A20292D717EC2C26F127B5483C4A7A355A6C6AF03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010049BD77125994C414F8DC26F7AE671E032D5F016AEC30798EB27E5FC4FFD7819958232C656C55F7B7427E56164FF0D2916CD14405A6D7F97C7C15F76908FDAE94EDCD693DD4EFB7A7B41D9B357BD60468F82779BF9569B208CBF57223582A1685ACB0B0FB9A61A771AA0A08D5CCC0ED07083C5794A721B2476850B98728B5F5C1DD3CD60079A56C8189C5B64C0E53BC3355D71E2EFCC9265908BF1F3FBB7A5BEB07E3EDDF9AC1A13E6C84FBD322D099765672759177640DC3F871FE0C6DB45F8FAD950A7BFAE43D927BEB66E65CA7C2C54B538647E60D9FF9EADE9D31E1ABF67AA47DCD3F08E9E54BFC4BFC5FA90D5E0366F2CB1FF415F3C875744F9EE6DD43D4AE318E665F6C1219CEE447E7</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 5E 25 44 1D CD A9 58 CC F5 B7 EA 41
0010 | 05 B7 E0 C6 E1 9A 6A 77 B5 BF 45 7D 85 3C CF 17
0020 | 94 0B 62 C0 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 37 19 EC 38 7C E6 E1 47 C8 DE 55 74
0010 | 1A 20 29 2D 71 7E C2 C2 6F 12 7B 54 83 C4 A7 A3
0020 | 55 A6 C6 AF 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 = BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C
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 | 07 14 8D E4 92 38 2A A5 BA 4E AA F2 39 DD A6 48
0140 | 27 0F 0B 71 14 89 B6 61 20 9C 00 02 A0 48 3B D8
0150 | 6D FC 8B 4E 67 84 31 2B FA 57 13 65 2C 00 A7 53
0160 | FD 67 41 2C D3 0A 7E 0B 0D 52 2F DF 45 94 E3 F9
0170 | 51 A1 6E 6A 6D 83 85 EF 69 8F AA 7F 9D 69 F3 F7
0180 | 35 49 17 25 11 19 10 68 97 BE 71 EA 47 0D 07 00
0190 | ED C1 44 99 11 11 5C 51 72 60 DE 60 AA CA 91 BF
01A0 | 4F 32 C3 EE 1E 7C CC 68 29 E1 85 00 9B 97 D3 44
01B0 | DF 0B 8D 81 26 D5 50 0E B2 B8 D9 3E 57 1A 30 33
01C0 | 55 D5 1B D4 6B 0B 2A 1D 0E C8 7D 96 7C B2 BA CD
01D0 | 42 4C 1A 15 9F 1A D4 C8 55 47 4C 94 14 D0 90 0A
01E0 | E4 CC 12 07 39 69 02 F5 57 FE 77 3D DD B7 B3 B8
01F0 | 1E 2A F2 23 C0 6B F7 22 37 9C AA 5D 67 D3 86 6A
0200 | 0F 98 6C A0 BE 90 80 7B 9D 4D 66 55 CE 39 59 35
0210 | 70 B4 7F 52 C1 93 EE 45 B5 DE 84 2A 89 0F EA 55
0220 | 07 15 15 BF 18 1D 44 D4 EF 3C 6E 32 3E 45 15 44
0230 | 92 24 8C 66</code></pre>
0130 | 49 BD 77 12 59 94 C4 14 F8 DC 26 F7 AE 67 1E 03
0140 | 2D 5F 01 6A EC 30 79 8E B2 7E 5F C4 FF D7 81 99
0150 | 58 23 2C 65 6C 55 F7 B7 42 7E 56 16 4F F0 D2 91
0160 | 6C D1 44 05 A6 D7 F9 7C 7C 15 F7 69 08 FD AE 94
0170 | ED CD 69 3D D4 EF B7 A7 B4 1D 9B 35 7B D6 04 68
0180 | F8 27 79 BF 95 69 B2 08 CB F5 72 23 58 2A 16 85
0190 | AC B0 B0 FB 9A 61 A7 71 AA 0A 08 D5 CC C0 ED 07
01A0 | 08 3C 57 94 A7 21 B2 47 68 50 B9 87 28 B5 F5 C1
01B0 | DD 3C D6 00 79 A5 6C 81 89 C5 B6 4C 0E 53 BC 33
01C0 | 55 D7 1E 2E FC C9 26 59 08 BF 1F 3F BB 7A 5B EB
01D0 | 07 E3 ED DF 9A C1 A1 3E 6C 84 FB D3 22 D0 99 76
01E0 | 56 72 75 91 77 64 0D C3 F8 71 FE 0C 6D B4 5F 8F
01F0 | AD 95 0A 7B FA E4 3D 92 7B EB 66 E6 5C A7 C2 C5
0200 | 4B 53 86 47 E6 0D 9F F9 EA DE 9D 31 E1 AB F6 7A
0210 | A4 7D CD 3F 08 E9 E5 4B FC 4B FC 5F A9 0D 5E 03
0220 | 66 F2 CB 1F F4 15 F3 C8 75 74 4F 9E E6 DD 43 D4
0230 | AE 31 8E 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 = BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE00010007148DE492382AA5BA4EAAF2</code> <code>39DDA648270F0B711489B661209C0002</code> <code>A0483BD86DFC8B4E6784312BFA571365</code> <code>2C00A753FD67412CD30A7E0B0D522FDF</code> <code>4594E3F951A16E6A6D8385EF698FAA7F</code> <code>9D69F3F7354917251119106897BE71EA</code> <code>470D0700EDC1449911115C517260DE60</code> <code>AACA91BF4F32C3EE1E7CCC6829E18500</code> <code>9B97D344DF0B8D8126D5500EB2B8D93E</code> <code>571A303355D51BD46B0B2A1D0EC87D96</code> <code>7CB2BACD424C1A159F1AD4C855474C94</code> <code>14D0900AE4CC1207396902F557FE773D</code> <code>DDB7B3B81E2AF223C06BF722379CAA5D</code> <code>67D3866A0F986CA0BE90807B9D4D6655</code> <code>CE39593570B47F52C193EE45B5DE842A</code> <code>890FEA55071515BF181D44D4EF3C6E32</code><br> <code>3E451544</code></td>
<td><code>FE00010049BD77125994C414F8DC26F7</code> <code>AE671E032D5F016AEC30798EB27E5FC4</code> <code>FFD7819958232C656C55F7B7427E5616</code> <code>4FF0D2916CD14405A6D7F97C7C15F769</code> <code>08FDAE94EDCD693DD4EFB7A7B41D9B35</code> <code>7BD60468F82779BF9569B208CBF57223</code> <code>582A1685ACB0B0FB9A61A771AA0A08D5</code> <code>CCC0ED07083C5794A721B2476850B987</code> <code>28B5F5C1DD3CD60079A56C8189C5B64C</code> <code>0E53BC3355D71E2EFCC9265908BF1F3F</code> <code>BB7A5BEB07E3EDDF9AC1A13E6C84FBD3</code> <code>22D099765672759177640DC3F871FE0C</code> <code>6DB45F8FAD950A7BFAE43D927BEB66E6</code> <code>5CA7C2C54B538647E60D9FF9EADE9D31</code> <code>E1ABF67AA47DCD3F08E9E54BFC4BFC5F</code> <code>A90D5E0366F2CB1FF415F3C875744F9E</code><br> <code>E6DD43D4</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>92248C66</code> (1720460434 in decimal)</td>
<td><code>AE318E66</code> (1720594862 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C
<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 = 9CEA08D742748F64421BE17126105940F5CE9E678CF44A3B263BC0EA928AD51A1EB89E9416E8F2890E4AA7C1A66BE3E3185C389BBAEE318A1004CD337C28556E3CEBE4F8F7E6AB245995AF987D02952635392879EF9CC4A1C4BBB3430A892B3F7F66683C2ABD11298DFD05916B4467CB279203A9A2535A9ECE53AC3CF5B86F4039315949A76429836D7D59413CBAF0C8FE790BD976C9242EF58A8A9EEABFD645196D26D0248434B4EEFA0964EC94C0920B6D69EBA5EA02D090B691B642813149DF2BFF8C42A0BDE6B5224F4C9D8B10139E778B8DD971E28A8FC59C96139C1A90B0F4EFE89723B8E02A844DBD363514488353BDEDA678E0F40A72509319CBB1BA</code></pre>
<pre><code>b = 442C1C69C56B3CE98B537E9FB3078CBBE7E628FCEF252BFF4C7C941E9818F366A9BF4A9AC63C7E2CA8C08EBBC1224B4DD81B26D02FC42E19C98E449C43BAD2584AA46B8EFD6F0E1F8B7432DB9134A7D7C587D904DFE815B5D808ACCE8DD68A1CF56C8E24691B4BA45C8E9B3C8DB5A19B444DAA14865FD1A72646E8C4DF334113006FEEDE3D2B75691868CC451A718C0851F2FE85D9C2C13FC492426327B0F6CCF6E178D4BE1A34177FEA4682C81B91D7628B52BE952E468308929EE8643C828F436734E4719CBA5F12B9682DD442DF60E48A365C488B15283243DEFF41AC2F93E2090BA5FB2F55BEC6F69060976FAF5937716BA1D3057E3C67BF240DEA11FC0C</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 = 8A1D81BA74D081C5FC2E52D8969353A323DDA95B793F2188C05DA2B6918FBB6DC95BEE6121ACE5B3B5CAC9B34B24AA751EBE73B3A2F924C360CA0B75B07840D3E8D1F382131C582CF0A7CC5A015A119434A81750DE8EA3B5B97321DF9BB7E4408498FE2AD129D6EFE4DACED2EECA3247262AA2A65A727CD74EDDDC914C0C280096270C487205D1D18A0F882AE79E01C9D9829A0E74E439DD658992BDBF516F76910FC881C578AC7BD69B3E001CFAF3AAC83D1438B4C5C3D0370853A6E7B5EE8346C6225C6A75910FB4A03BAB624371839952D162274D57A52BB4FC757D50F152146494ABAB58232B6CF8287E1BDE987984C3D6908D1CD04411543022B45E8975</code></pre>
<pre><code>g_b = A78F9B632C410721AB604EC77BE2A840AA42C3B7F41E90EC534172B37EA8F485F9723C71ED807D477E603864DF9F99C53BA3F16D300CAE3AC579124C47D72897EA57B153B21D72EBDB53092BBD6ED5529A0415866B6051653DAFEBD4926F2645E3F4EAEAC26221E7931CF089C1F7F72DC2A401E45D7784B031AC71D765CE2473C7F944B50827076826B6B5070B40F2FED099B8AAAF4B67BBAD1A5DC3816E275A4DD9CA9A03BC62C7BDCE8330385F03812B6C3CB132EF3D94F457B5B2FAEA22377B1B910657D1BD863F101788318E0DB581BA3876EC697AB63478F259EDD726FAA803CBC5938637F8BD926B0D1231DF42762FAC6D8E078AD2F6874C90641DA177</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 5E 25 44 1D CD A9 58 CC F5 B7 EA 41
0010 | 05 B7 E0 C6 E1 9A 6A 77 B5 BF 45 7D 85 3C CF 17
0020 | 94 0B 62 C0 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 8A 1D 81 BA 74 D0 81 C5 FC 2E 52 D8 96 93 53 A3
0040 | 23 DD A9 5B 79 3F 21 88 C0 5D A2 B6 91 8F BB 6D
0050 | C9 5B EE 61 21 AC E5 B3 B5 CA C9 B3 4B 24 AA 75
0060 | 1E BE 73 B3 A2 F9 24 C3 60 CA 0B 75 B0 78 40 D3
0070 | E8 D1 F3 82 13 1C 58 2C F0 A7 CC 5A 01 5A 11 94
0080 | 34 A8 17 50 DE 8E A3 B5 B9 73 21 DF 9B B7 E4 40
0090 | 84 98 FE 2A D1 29 D6 EF E4 DA CE D2 EE CA 32 47
00A0 | 26 2A A2 A6 5A 72 7C D7 4E DD DC 91 4C 0C 28 00
00B0 | 96 27 0C 48 72 05 D1 D1 8A 0F 88 2A E7 9E 01 C9
00C0 | D9 82 9A 0E 74 E4 39 DD 65 89 92 BD BF 51 6F 76
00D0 | 91 0F C8 81 C5 78 AC 7B D6 9B 3E 00 1C FA F3 AA
00E0 | C8 3D 14 38 B4 C5 C3 D0 37 08 53 A6 E7 B5 EE 83
00F0 | 46 C6 22 5C 6A 75 91 0F B4 A0 3B AB 62 43 71 83
0100 | 99 52 D1 62 27 4D 57 A5 2B B4 FC 75 7D 50 F1 52
0110 | 14 64 94 AB AB 58 23 2B 6C F8 28 7E 1B DE 98 79
0120 | 84 C3 D6 90 8D 1C D0 44 11 54 30 22 B4 5E 89 75</code></pre>
<pre><code>0000 | 54 B6 43 66 37 19 EC 38 7C E6 E1 47 C8 DE 55 74
0010 | 1A 20 29 2D 71 7E C2 C2 6F 12 7B 54 83 C4 A7 A3
0020 | 55 A6 C6 AF 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | A7 8F 9B 63 2C 41 07 21 AB 60 4E C7 7B E2 A8 40
0040 | AA 42 C3 B7 F4 1E 90 EC 53 41 72 B3 7E A8 F4 85
0050 | F9 72 3C 71 ED 80 7D 47 7E 60 38 64 DF 9F 99 C5
0060 | 3B A3 F1 6D 30 0C AE 3A C5 79 12 4C 47 D7 28 97
0070 | EA 57 B1 53 B2 1D 72 EB DB 53 09 2B BD 6E D5 52
0080 | 9A 04 15 86 6B 60 51 65 3D AF EB D4 92 6F 26 45
0090 | E3 F4 EA EA C2 62 21 E7 93 1C F0 89 C1 F7 F7 2D
00A0 | C2 A4 01 E4 5D 77 84 B0 31 AC 71 D7 65 CE 24 73
00B0 | C7 F9 44 B5 08 27 07 68 26 B6 B5 07 0B 40 F2 FE
00C0 | D0 99 B8 AA AF 4B 67 BB AD 1A 5D C3 81 6E 27 5A
00D0 | 4D D9 CA 9A 03 BC 62 C7 BD CE 83 30 38 5F 03 81
00E0 | 2B 6C 3C B1 32 EF 3D 94 F4 57 B5 B2 FA EA 22 37
00F0 | 7B 1B 91 06 57 D1 BD 86 3F 10 17 88 31 8E 0D B5
0100 | 81 BA 38 76 EC 69 7A B6 34 78 F2 59 ED D7 26 FA
0110 | A8 03 CB C5 93 86 37 F8 BD 92 6B 0D 12 31 DF 42
0120 | 76 2F AC 6D 8E 07 8A D2 F6 87 4C 90 64 1D A1 77</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 = BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE0001008A1D81BA74D081C5FC2E52D8</code> <code>969353A323DDA95B793F2188C05DA2B6</code> <code>918FBB6DC95BEE6121ACE5B3B5CAC9B3</code> <code>4B24AA751EBE73B3A2F924C360CA0B75</code> <code>B07840D3E8D1F382131C582CF0A7CC5A</code> <code>015A119434A81750DE8EA3B5B97321DF</code> <code>9BB7E4408498FE2AD129D6EFE4DACED2</code> <code>EECA3247262AA2A65A727CD74EDDDC91</code> <code>4C0C280096270C487205D1D18A0F882A</code> <code>E79E01C9D9829A0E74E439DD658992BD</code> <code>BF516F76910FC881C578AC7BD69B3E00</code> <code>1CFAF3AAC83D1438B4C5C3D0370853A6</code> <code>E7B5EE8346C6225C6A75910FB4A03BAB</code> <code>624371839952D162274D57A52BB4FC75</code> <code>7D50F152146494ABAB58232B6CF8287E</code> <code>1BDE987984C3D6908D1CD04411543022</code><br> <code>B45E8975</code></td>
<td><code>FE000100A78F9B632C410721AB604EC7</code> <code>7BE2A840AA42C3B7F41E90EC534172B3</code> <code>7EA8F485F9723C71ED807D477E603864</code> <code>DF9F99C53BA3F16D300CAE3AC579124C</code> <code>47D72897EA57B153B21D72EBDB53092B</code> <code>BD6ED5529A0415866B6051653DAFEBD4</code> <code>926F2645E3F4EAEAC26221E7931CF089</code> <code>C1F7F72DC2A401E45D7784B031AC71D7</code> <code>65CE2473C7F944B50827076826B6B507</code> <code>0B40F2FED099B8AAAF4B67BBAD1A5DC3</code> <code>816E275A4DD9CA9A03BC62C7BDCE8330</code> <code>385F03812B6C3CB132EF3D94F457B5B2</code> <code>FAEA22377B1B910657D1BD863F101788</code> <code>318E0DB581BA3876EC697AB63478F259</code> <code>EDD726FAA803CBC5938637F8BD926B0D</code> <code>1231DF42762FAC6D8E078AD2F6874C90</code><br> <code>641DA177</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 = BA0D89B55E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C
<!-- 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 = 54B643665E25441DCDA958CCF5B7EA4105B7E0C6E19A6A77B5BF457D853CCF17940B62C00000000000000000FE0001008A1D81BA74D081C5FC2E52D8969353A323DDA95B793F2188C05DA2B6918FBB6DC95BEE6121ACE5B3B5CAC9B34B24AA751EBE73B3A2F924C360CA0B75B07840D3E8D1F382131C582CF0A7CC5A015A119434A81750DE8EA3B5B97321DF9BB7E4408498FE2AD129D6EFE4DACED2EECA3247262AA2A65A727CD74EDDDC914C0C280096270C487205D1D18A0F882AE79E01C9D9829A0E74E439DD658992BDBF516F76910FC881C578AC7BD69B3E001CFAF3AAC83D1438B4C5C3D0370853A6E7B5EE8346C6225C6A75910FB4A03BAB624371839952D162274D57A52BB4FC757D50F152146494ABAB58232B6CF8287E1BDE987984C3D6908D1CD04411543022B45E8975
padding = BD53D968A222B2BEA4DEB2C4
tmp_aes_key = DBCF1FC91FB69D06743207C365B21B3236C3239BC16D1FA2F1E5737D346365E4
tmp_aes_iv = FEDE50CC239D1D4615DDC024494D93043E25B6DC35107E00A77C687104E9EDCC</code></pre>
<pre><code>data = 54B643663719EC387CE6E147C8DE55741A20292D717EC2C26F127B5483C4A7A355A6C6AF0000000000000000FE000100A78F9B632C410721AB604EC77BE2A840AA42C3B7F41E90EC534172B37EA8F485F9723C71ED807D477E603864DF9F99C53BA3F16D300CAE3AC579124C47D72897EA57B153B21D72EBDB53092BBD6ED5529A0415866B6051653DAFEBD4926F2645E3F4EAEAC26221E7931CF089C1F7F72DC2A401E45D7784B031AC71D765CE2473C7F944B50827076826B6B5070B40F2FED099B8AAAF4B67BBAD1A5DC3816E275A4DD9CA9A03BC62C7BDCE8330385F03812B6C3CB132EF3D94F457B5B2FAEA22377B1B910657D1BD863F101788318E0DB581BA3876EC697AB63478F259EDD726FAA803CBC5938637F8BD926B0D1231DF42762FAC6D8E078AD2F6874C90641DA177
padding = 97C9A0D0FF0999F62468F3B7
tmp_aes_key = 672C272E9B9E62D81596A1E4C82B3383E58BB539EBBB480CA55D06C715CD3FA2
tmp_aes_iv = 9F0AAB8D472F050F73550850995279EDD8DEAAF68371A4413396DA5B52696A7C</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 = 256B0213EF07F47844C2D3B6E99BB244AE5A6B1F2864F48228D2DC7CEA069925A433DDCD8527D069037E355611FC1C83BED55909BC3B3085BA824A64188B06A2FC88D9FC7FCECECDE8B0F68727F60852AB08D8E5841BDAF2D3EE966BE31547A5D2AA01666219465EB5614488D8BF259A5D35BA30B0E530813CC13523FBCD87BD0515E22D2E61DC7076B10EC108EEB07BD20CB0A42BCF9A29254DA51382808593DECEF3237D797A7DE708EFD869F55AEC43725EA5F1D59AC7AB8BDCA003B2481B7113FCA223647ECEDD81C073E7F843D42BFF887A9B32A7F286AF4E7085D1477817162F6209E3B3679A4045E25DC94688C888D8068BB4FB70221D15E619FAACDD33E604CB6CBF5EF0B0E5272B48186F890AAD0EC05134DF37C8DE50FE848C0E5F352FCEE2293C98F0BF546C57491705BD4D352423CE4AB26CFE9EB5ED735DF0658D31C5A3540E80ED5ECE32E5DBD826F3</code></pre>
<pre><code>encrypted_data = AC1F032525D2C6AA947F77F88EA6CEE1D7BB7004EEF5EE6F25938DC660C63B7B856127A56DDA5737EE67B52761AFA601E7033A8F019DAB2F6DF782EC0C60C2AF13F4F204E60BC69700AC5A807084FB77397B1CF50089D6297BEA7B3F10BBE3A6A6F2659DCE16AAEE2E27FCB12DCF088E96B126FBB7548C7303B1060D1399964CE0694977FBA6F1BE828E4087AEC65E6DCAD6FF26B0270A5ABDDE4EAFC5DBA24A806A4DAEFA7C8B5ECC4DEADFB4B9198E65F202A45CDFF3266C6900E8CA0E30B97C6E1AEEB9AEBF20D85CDC70A7B84C7673F6865349639E93833959414149DE240792E4B34859615DD1DABCA82A584A2E23759D6656F2209EF0E47CEB9191C080FDE9F48BB56565403DCD828EAA8DC088CB58DF1EDAF1FCEDE4BCE064A5BAAC3C986D07F70F14C5129073987DC0A0FFC9A06D06F0AE2D3EC09E2A3516A9BC8252F32F3635E8372CCDCBB409932CE0C89C</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 5C 59 01 00 92 24 8C 66
0010 | 78 01 00 00 1F 5F 04 F5 5E 25 44 1D CD A9 58 CC
0020 | F5 B7 EA 41 05 B7 E0 C6 E1 9A 6A 77 B5 BF 45 7D
0030 | 85 3C CF 17 94 0B 62 C0 FE 50 01 00 25 6B 02 13
0040 | EF 07 F4 78 44 C2 D3 B6 E9 9B B2 44 AE 5A 6B 1F
0050 | 28 64 F4 82 28 D2 DC 7C EA 06 99 25 A4 33 DD CD
0060 | 85 27 D0 69 03 7E 35 56 11 FC 1C 83 BE D5 59 09
0070 | BC 3B 30 85 BA 82 4A 64 18 8B 06 A2 FC 88 D9 FC
0080 | 7F CE CE CD E8 B0 F6 87 27 F6 08 52 AB 08 D8 E5
0090 | 84 1B DA F2 D3 EE 96 6B E3 15 47 A5 D2 AA 01 66
00A0 | 62 19 46 5E B5 61 44 88 D8 BF 25 9A 5D 35 BA 30
00B0 | B0 E5 30 81 3C C1 35 23 FB CD 87 BD 05 15 E2 2D
00C0 | 2E 61 DC 70 76 B1 0E C1 08 EE B0 7B D2 0C B0 A4
00D0 | 2B CF 9A 29 25 4D A5 13 82 80 85 93 DE CE F3 23
00E0 | 7D 79 7A 7D E7 08 EF D8 69 F5 5A EC 43 72 5E A5
00F0 | F1 D5 9A C7 AB 8B DC A0 03 B2 48 1B 71 13 FC A2
0100 | 23 64 7E CE DD 81 C0 73 E7 F8 43 D4 2B FF 88 7A
0110 | 9B 32 A7 F2 86 AF 4E 70 85 D1 47 78 17 16 2F 62
0120 | 09 E3 B3 67 9A 40 45 E2 5D C9 46 88 C8 88 D8 06
0130 | 8B B4 FB 70 22 1D 15 E6 19 FA AC DD 33 E6 04 CB
0140 | 6C BF 5E F0 B0 E5 27 2B 48 18 6F 89 0A AD 0E C0
0150 | 51 34 DF 37 C8 DE 50 FE 84 8C 0E 5F 35 2F CE E2
0160 | 29 3C 98 F0 BF 54 6C 57 49 17 05 BD 4D 35 24 23
0170 | CE 4A B2 6C FE 9E B5 ED 73 5D F0 65 8D 31 C5 A3
0180 | 54 0E 80 ED 5E CE 32 E5 DB D8 26 F3</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 CC 2A 0E 00 AE 31 8E 66
0010 | 78 01 00 00 1F 5F 04 F5 37 19 EC 38 7C E6 E1 47
0020 | C8 DE 55 74 1A 20 29 2D 71 7E C2 C2 6F 12 7B 54
0030 | 83 C4 A7 A3 55 A6 C6 AF FE 50 01 00 AC 1F 03 25
0040 | 25 D2 C6 AA 94 7F 77 F8 8E A6 CE E1 D7 BB 70 04
0050 | EE F5 EE 6F 25 93 8D C6 60 C6 3B 7B 85 61 27 A5
0060 | 6D DA 57 37 EE 67 B5 27 61 AF A6 01 E7 03 3A 8F
0070 | 01 9D AB 2F 6D F7 82 EC 0C 60 C2 AF 13 F4 F2 04
0080 | E6 0B C6 97 00 AC 5A 80 70 84 FB 77 39 7B 1C F5
0090 | 00 89 D6 29 7B EA 7B 3F 10 BB E3 A6 A6 F2 65 9D
00A0 | CE 16 AA EE 2E 27 FC B1 2D CF 08 8E 96 B1 26 FB
00B0 | B7 54 8C 73 03 B1 06 0D 13 99 96 4C E0 69 49 77
00C0 | FB A6 F1 BE 82 8E 40 87 AE C6 5E 6D CA D6 FF 26
00D0 | B0 27 0A 5A BD DE 4E AF C5 DB A2 4A 80 6A 4D AE
00E0 | FA 7C 8B 5E CC 4D EA DF B4 B9 19 8E 65 F2 02 A4
00F0 | 5C DF F3 26 6C 69 00 E8 CA 0E 30 B9 7C 6E 1A EE
0100 | B9 AE BF 20 D8 5C DC 70 A7 B8 4C 76 73 F6 86 53
0110 | 49 63 9E 93 83 39 59 41 41 49 DE 24 07 92 E4 B3
0120 | 48 59 61 5D D1 DA BC A8 2A 58 4A 2E 23 75 9D 66
0130 | 56 F2 20 9E F0 E4 7C EB 91 91 C0 80 FD E9 F4 8B
0140 | B5 65 65 40 3D CD 82 8E AA 8D C0 88 CB 58 DF 1E
0150 | DA F1 FC ED E4 BC E0 64 A5 BA AC 3C 98 6D 07 F7
0160 | 0F 14 C5 12 90 73 98 7D C0 A0 FF C9 A0 6D 06 F0
0170 | AE 2D 3E C0 9E 2A 35 16 A9 BC 82 52 F3 2F 36 35
0180 | E8 37 2C CD CB B4 09 93 2C E0 C8 9C</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>5C59010092248C66</code></td>
<td><code>CC2A0E00AE318E66</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>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE500100256B0213EF07F47844C2D3B6</code> <code>E99BB244AE5A6B1F2864F48228D2DC7C</code> <code>EA069925A433DDCD8527D069037E3556</code> <code>11FC1C83BED55909BC3B3085BA824A64</code> <code>188B06A2FC88D9FC7FCECECDE8B0F687</code> <code>27F60852AB08D8E5841BDAF2D3EE966B</code> <code>E31547A5D2AA01666219465EB5614488</code> <code>D8BF259A5D35BA30B0E530813CC13523</code> <code>FBCD87BD0515E22D2E61DC7076B10EC1</code> <code>08EEB07BD20CB0A42BCF9A29254DA513</code> <code>82808593DECEF3237D797A7DE708EFD8</code> <code>69F55AEC43725EA5F1D59AC7AB8BDCA0</code> <code>03B2481B7113FCA223647ECEDD81C073</code> <code>E7F843D42BFF887A9B32A7F286AF4E70</code> <code>85D1477817162F6209E3B3679A4045E2</code> <code>5DC94688C888D8068BB4FB70221D15E6</code> <code>19FAACDD33E604CB6CBF5EF0B0E5272B</code> <code>48186F890AAD0EC05134DF37C8DE50FE</code> <code>848C0E5F352FCEE2293C98F0BF546C57</code> <code>491705BD4D352423CE4AB26CFE9EB5ED</code> <code>735DF0658D31C5A3540E80ED5ECE32E5</code><br> <code>DBD826F3</code></td>
<td><code>FE500100AC1F032525D2C6AA947F77F8</code> <code>8EA6CEE1D7BB7004EEF5EE6F25938DC6</code> <code>60C63B7B856127A56DDA5737EE67B527</code> <code>61AFA601E7033A8F019DAB2F6DF782EC</code> <code>0C60C2AF13F4F204E60BC69700AC5A80</code> <code>7084FB77397B1CF50089D6297BEA7B3F</code> <code>10BBE3A6A6F2659DCE16AAEE2E27FCB1</code> <code>2DCF088E96B126FBB7548C7303B1060D</code> <code>1399964CE0694977FBA6F1BE828E4087</code> <code>AEC65E6DCAD6FF26B0270A5ABDDE4EAF</code> <code>C5DBA24A806A4DAEFA7C8B5ECC4DEADF</code> <code>B4B9198E65F202A45CDFF3266C6900E8</code> <code>CA0E30B97C6E1AEEB9AEBF20D85CDC70</code> <code>A7B84C7673F6865349639E9383395941</code> <code>4149DE240792E4B34859615DD1DABCA8</code> <code>2A584A2E23759D6656F2209EF0E47CEB</code> <code>9191C080FDE9F48BB56565403DCD828E</code> <code>AA8DC088CB58DF1EDAF1FCEDE4BCE064</code> <code>A5BAAC3C986D07F70F14C5129073987D</code> <code>C0A0FFC9A06D06F0AE2D3EC09E2A3516</code> <code>A9BC8252F32F3635E8372CCDCBB40993</code><br> <code>2CE0C89C</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 = 2870BD4BE4D3304C40D8ADF9C06FB0119235D22AB35A3F91175816250B6083D3CB0FD072C307099CC95635C1F80ADC58C5365B7FFC8BE0BF69006834D6943CBB54E920875C2C5ADE9281E124748C9310D20410F5783466102DFFFD8C75F58BD033063467EA6706F3CA86EE082FAFAE9BE80D4C423765A759B78EC9C625C84325C68E8A965417170B431BA18CF59F4DECE65DBAD2CEB54DD4C3E0430211ED3240B1559752FDC14A0FF1D202E63FD657C4E950FF55F770B0BDC1C1781B58BCE67EAE11F267D16540E46EB68FBF995FA681D3958398E846B045259487F2E12CD7CB5405F3DBE92C78A9B6DBD963D749FC1B850B3FBCE83EEEA288028F34A14D437E</code></pre>
<pre><code>auth_key = 81385541597C4EC39C0BB97921379FBC703CF214AD0A2F3A45DC11A5EAA191FDFB6DF4F857859E8327E441BD777E3C5119207985728092A1A64126C274BE1BD1D9861BE4F551AFD97FC35D968BBD2F57F3A714E9F6BA71A5682DE77C3EB506B47C9212142BADD2AED89FC5216F28628C050A70BFC5AA62D619177B66F5124765C2E757178E091F85489AAA193F5421B688445C24BF41A10327EFE74DBFC687F1E0DAD76A4FB73F8F290F809EC2DBD3D753757E509C92BFDADA7D21B82C8889D46BB44530DED401E2D4FAFA71FA6E351238DF59E89F3EE70ACD48FDC4846E9736C0816F9E5F1D7DD8E28D60AC4759883D9954F1F1A4F739DB96596A1BEB546B44</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 B8 AF B4 92 24 8C 66
0010 | 94 00 00 00 34 F7 CB 3B 5E 25 44 1D CD A9 58 CC
0020 | F5 B7 EA 41 05 B7 E0 C6 E1 9A 6A 77 B5 BF 45 7D
0030 | 85 3C CF 17 94 0B 62 C0 A2 8A 60 B3 C1 1D 2A D1
0040 | 52 E9 D2 3C 32 0D 7F F7</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 F0 EC 0E AF 31 8E 66
0010 | A8 00 00 00 34 F7 CB 3B 37 19 EC 38 7C E6 E1 47
0020 | C8 DE 55 74 1A 20 29 2D 71 7E C2 C2 6F 12 7B 54
0030 | 83 C4 A7 A3 55 A6 C6 AF 87 45 38 63 64 11 5A 44
0040 | C5 49 3B DE 39 B1 D7 A1</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>01B8AFB492248C66</code></td>
<td><code>01F0EC0EAF318E66</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>94000000</code> (148 in decimal)</td>
<td><code>A8000000</code> (168 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>5E25441DCDA958CCF5B7EA4105B7E0C6</code></td>
<td><code>3719EC387CE6E147C8DE55741A20292D</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E19A6A77B5BF457D853CCF17940B62C0</code></td>
<td><code>717EC2C26F127B5483C4A7A355A6C6AF</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>A28A60B3C11D2AD152E9D23C320D7FF7</code></td>
<td><code>8745386364115A44C5493BDE39B1D7A1</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

@ -976,7 +976,7 @@
</tr>
<tr>
<td><a href="/method/stories.togglePinnedToTop">stories.togglePinnedToTop</a></td>
<td> </td>
<td>Pin some stories to the top of the profile, see <a href="/api/stories#pinned-or-archived-stories">here »</a> for more info.</td>
</tr>
<tr>
<td><a href="/method/auth.reportMissingCode">auth.reportMissingCode</a></td>

View file

@ -117,7 +117,7 @@
</tr>
<tr>
<td><a href="/constructor/auth.sentCodeTypeSmsPhrase">auth.sentCodeTypeSmsPhrase</a></td>
<td>The code was sent via SMS as a secret phrase starting with the word specified in <code>beginning</code>,</td>
<td>The code was sent via SMS as a secret phrase starting with the word specified in <code>beginning</code></td>
</tr>
</tbody>
</table></div>