mirror of
https://github.com/MarshalX/telegram-crawler.git
synced 2025-03-19 06:51:28 +01:00
Update content of files
This commit is contained in:
parent
28b6bbd414
commit
9bf875e0d5
7 changed files with 237 additions and 268 deletions
|
@ -206,8 +206,8 @@
|
|||
<li>Added <a href="/constructor/inputMediaWebPage">inputMediaWebPage</a> - </li>
|
||||
<li>Added <a href="/constructor/inputBotInlineMessageMediaWebPage">inputBotInlineMessageMediaWebPage</a> - </li>
|
||||
<li>Added <a href="/constructor/botInlineMessageMediaWebPage">botInlineMessageMediaWebPage</a> - </li>
|
||||
<li>Added <a href="/constructor/channelAdminLogEventActionChangeColor">channelAdminLogEventActionChangeColor</a> - </li>
|
||||
<li>Added <a href="/constructor/channelAdminLogEventActionChangeBackgroundEmoji">channelAdminLogEventActionChangeBackgroundEmoji</a> - </li>
|
||||
<li>Added <a href="/constructor/channelAdminLogEventActionChangeColor">channelAdminLogEventActionChangeColor</a> - The <a href="/api/colors">background profile color »</a> of a channel was changed.</li>
|
||||
<li>Added <a href="/constructor/channelAdminLogEventActionChangeBackgroundEmoji">channelAdminLogEventActionChangeBackgroundEmoji</a> - The <a href="/api/custom-emoji">custom emoji</a> used to generate the pattern of the <a href="/api/colors">background profile color »</a> of a channel was changed.</li>
|
||||
<li>Added <a href="/constructor/boost">boost</a> - </li>
|
||||
<li>Added <a href="/constructor/premium.boostsList">premium.boostsList</a> - </li>
|
||||
<li>Added <a href="/constructor/myBoost">myBoost</a> - </li>
|
||||
|
|
|
@ -149,7 +149,6 @@ As mentioned earlier, <a href="#fill-wallpapers">fill wallpapers</a> can't be sa
|
|||
</ul>
|
||||
<h4><a class="anchor" href="#installing-wallpapers-in-a-specific-chat" id="installing-wallpapers-in-a-specific-chat" name="installing-wallpapers-in-a-specific-chat"><i class="anchor-icon"></i></a>Installing wallpapers in a specific chat</h4>
|
||||
<pre><code><a href='/constructor/messageActionSetChatWallPaper'>messageActionSetChatWallPaper</a>#5060a3f4 flags:<a href='/type/%23'>#</a> same:flags.0?<a href='/constructor/true'>true</a> for_both:flags.1?<a href='/constructor/true'>true</a> wallpaper:<a href='/type/WallPaper'>WallPaper</a> = <a href='/type/MessageAction'>MessageAction</a>;
|
||||
<a href='/constructor/messageActionSetSameChatWallPaper'>messageActionSetSameChatWallPaper</a>#c0787d6d wallpaper:<a href='/type/WallPaper'>WallPaper</a> = <a href='/type/MessageAction'>MessageAction</a>;
|
||||
|
||||
---functions---
|
||||
|
||||
|
@ -161,9 +160,9 @@ As mentioned earlier, <a href="#fill-wallpapers">fill wallpapers</a> can't be sa
|
|||
<li><a href="/constructor/inputWallPaperNoFile">inputWallPaperNoFile</a> for <a href="#fill-wallpapers">fill wallpapers</a>. </li>
|
||||
<li><a href="/constructor/inputWallPaper">inputWallPaper</a> otherwise, using the ID and access hash fields of a full <a href="/constructor/wallPaper">wallPaper</a>. </li>
|
||||
</ul>
|
||||
<p>If the other user decides to apply the same wallpaper to the chat, <a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a> should be invoked passing the wallpaper <code>settings</code> received in the <a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a> service message (or some different settings, if the user customized them before applying the wallpaper), along with the <code>id</code> of the <a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a> service message, <strong>without</strong> the <code>wallpaper</code>: this way, the action will emit a different <a href="/constructor/messageActionSetSameChatWallPaper">messageActionSetSameChatWallPaper</a>, which should be displayed in the UI as a simple acknowledgment service message, without the full wallpaper and without an invitation for the other user to apply it (since both participants already just did that). </p>
|
||||
<p>If the other user decides to apply the same wallpaper to the chat, <a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a> should be invoked passing the wallpaper <code>settings</code> received in the <a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a> service message (or some different settings, if the user customized them before applying the wallpaper), along with the <code>id</code> of the <a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a> service message, <strong>without</strong> the <code>wallpaper</code>: this way, the action will emit a <a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a> <strong>with the <code>same</code> flag set</strong>, which should be displayed in the UI as a simple acknowledgment service message, without the full wallpaper and without an invitation for the other user to apply it (since both participants already just did that). </p>
|
||||
<p>However, if we have <a href="/api/premium">Premium</a> subscription, we can change the other user's wallpaper without explicit confirmation from the other side: to do so, set the <code>for_both</code> flag when invoking <a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a>.<br>
|
||||
This will change the wallpaper for both sides of the chat, without requiring confirmation; the <a href="/constructor/userFull">userFull</a>.<code>wallpaper_overridden</code> flag will also be set for the other user.<br>
|
||||
This will change the wallpaper for both sides of the chat, without requiring confirmation; the <a href="/constructor/userFull">userFull</a>.<code>wallpaper_overridden</code> flag will also be set for the other user; the action will also emit a <a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a> <strong>with the <code>for_both</code> flag set</strong>.<br>
|
||||
If the other user does not like the new wallpaper we have chosen for them, they can re-set their previous wallpaper just on their side, by invoking <a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a>, providing only the <code>revert</code> flag (and obviously the <code>peer</code> parameter). </p>
|
||||
<p>Note that in order to pass <a href="#image-wallpapers">image</a> or <a href="#pattern-wallpapers">pattern</a> wallpapers to <a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a>, the <code>for_chat</code> flag must be set when <a href="#uploading-wallpapers">uploading them with account.uploadWallPaper</a>. </p>
|
||||
<p>Also note that unlike <a href="/method/account.installWallPaper">account.installWallPaper</a> or <a href="/method/account.saveWallPaper">account.saveWallPaper</a>, <a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a> accepts <a href="#fill-wallpapers">fill wallpapers</a> as well.</p></div>
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>channelAdminLogEventActionChangeBackgroundEmoji</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
prev_value
|
||||
long
|
||||
|
||||
new_value
|
||||
long
|
||||
|
||||
Type
|
||||
ChannelAdminLogEventAction">
|
||||
<meta property="description" content="The custom emoji used to generate the pattern of the background profile color » of a channel was changed.">
|
||||
<meta property="og:title" content="channelAdminLogEventActionChangeBackgroundEmoji">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
prev_value
|
||||
long
|
||||
|
||||
new_value
|
||||
long
|
||||
|
||||
Type
|
||||
ChannelAdminLogEventAction">
|
||||
<meta property="og:description" content="The custom emoji used to generate the pattern of the background profile color » of a channel was changed.">
|
||||
<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 @@ ChannelAdminLogEventAction">
|
|||
<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/channelAdminLogEventActionChangeBackgroundEmoji" >channelAdminLogEventActionChangeBackgroundEmoji</a></li></ul></div>
|
||||
<h1 id="dev_page_title">channelAdminLogEventActionChangeBackgroundEmoji</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>The <a href="/api/custom-emoji">custom emoji</a> used to generate the pattern of the <a href="/api/colors">background profile color »</a> of a channel was changed.</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 167 <b class="caret"></b></a>
|
||||
|
@ -100,7 +79,12 @@ ChannelAdminLogEventAction">
|
|||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
|
||||
<p><a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a></p></div>
|
||||
<p><a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</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="#custom-emojis" id="custom-emojis" name="custom-emojis"><i class="anchor-icon"></i></a><a href="/api/custom-emoji">Custom emojis</a></h4>
|
||||
<p>Telegram allows including animated and static custom emojis inside of messages.</p>
|
||||
<h4><a class="anchor" href="#accent-colors" id="accent-colors" name="accent-colors"><i class="anchor-icon"></i></a><a href="/api/colors">Accent colors</a></h4>
|
||||
<p>Telegram users and channels can change the accent color and background pattern of their profile page and their messages!</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>channelAdminLogEventActionChangeColor</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
prev_value
|
||||
int
|
||||
|
||||
new_value
|
||||
int
|
||||
|
||||
Type
|
||||
ChannelAdminLogEventAction">
|
||||
<meta property="description" content="The background profile color » of a channel was changed.">
|
||||
<meta property="og:title" content="channelAdminLogEventActionChangeColor">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
prev_value
|
||||
int
|
||||
|
||||
new_value
|
||||
int
|
||||
|
||||
Type
|
||||
ChannelAdminLogEventAction">
|
||||
<meta property="og:description" content="The background profile color » of a channel was changed.">
|
||||
<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 @@ ChannelAdminLogEventAction">
|
|||
<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/channelAdminLogEventActionChangeColor" >channelAdminLogEventActionChangeColor</a></li></ul></div>
|
||||
<h1 id="dev_page_title">channelAdminLogEventActionChangeColor</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>The <a href="/api/colors">background profile color »</a> of a channel was changed.</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 167 <b class="caret"></b></a>
|
||||
|
@ -100,7 +79,10 @@ ChannelAdminLogEventAction">
|
|||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
|
||||
<p><a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</a></p></div>
|
||||
<p><a href="/type/ChannelAdminLogEventAction">ChannelAdminLogEventAction</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="#accent-colors" id="accent-colors" name="accent-colors"><i class="anchor-icon"></i></a><a href="/api/colors">Accent colors</a></h4>
|
||||
<p>Telegram users and channels can change the accent color and background pattern of their profile page and their messages!</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -74,12 +74,12 @@
|
|||
<tr>
|
||||
<td><strong>same</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>If set, indicates the user applied a <a href="/api/wallpapers">wallpaper »</a> previously sent by the other user in a <a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a> message.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>for_both</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>If set, indicates the wallpaper was forcefully applied for both sides, without explicit confirmation from the other side. <br>If the message is incoming, and we did not like the new wallpaper the other user has chosen for us, we can re-set our previous wallpaper just on our side, by invoking <a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a>, providing only the <code>revert</code> flag (and obviously the <code>peer</code> parameter).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>wallpaper</strong></td>
|
||||
|
@ -92,7 +92,11 @@
|
|||
<p><a href="/type/MessageAction">MessageAction</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="#wallpapers" id="wallpapers" name="wallpapers"><i class="anchor-icon"></i></a><a href="/api/wallpapers">Wallpapers</a></h4>
|
||||
<p>Telegram apps support generating, sharing and synchronizing chat backgrounds.</p></div>
|
||||
<p>Telegram apps support generating, sharing and synchronizing chat backgrounds.</p>
|
||||
<h4><a class="anchor" href="#messageactionsetchatwallpaper" id="messageactionsetchatwallpaper" name="messageactionsetchatwallpaper"><i class="anchor-icon"></i></a><a href="/constructor/messageActionSetChatWallPaper">messageActionSetChatWallPaper</a></h4>
|
||||
<p>The <a href="/api/wallpapers">wallpaper »</a> of the current chat was changed.</p>
|
||||
<h4><a class="anchor" href="#messagessetchatwallpaper" id="messagessetchatwallpaper" name="messagessetchatwallpaper"><i class="anchor-icon"></i></a><a href="/method/messages.setChatWallPaper">messages.setChatWallPaper</a></h4>
|
||||
<p>Set a custom <a href="/api/wallpapers">wallpaper »</a> in a specific private chat with another user.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -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 40 5F 0A 00 23 10 7B 65
|
||||
0010 | 14 00 00 00 F1 8E 7E BE C7 C3 E7 6D 71 ED 38 97
|
||||
0020 | 67 2E 26 30 48 08 DB 26</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 E8 F0 0D 00 77 12 7B 65
|
||||
0010 | 14 00 00 00 F1 8E 7E BE B8 F9 ED 7E FD ED 7E E9
|
||||
0020 | 3F AD BE 6C 51 43 F6 39</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>405F0A0023107B65</code></td>
|
||||
<td><code>E8F00D0077127B65</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -95,7 +95,7 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</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 F8 AF 9B 23 10 7B 65
|
||||
0010 | 90 00 00 00 63 24 16 05 C7 C3 E7 6D 71 ED 38 97
|
||||
0020 | 67 2E 26 30 48 08 DB 26 D0 1C B1 F4 06 98 DB 02
|
||||
0030 | D6 F5 C3 7F 4E D6 60 82 08 16 56 26 72 9A 0E 94
|
||||
0040 | 85 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 5C 90 BC 77 12 7B 65
|
||||
0010 | 6C 00 00 00 63 24 16 05 B8 F9 ED 7E FD ED 7E E9
|
||||
0020 | 3F AD BE 6C 51 43 F6 39 4D 54 EA 31 25 42 43 08
|
||||
0030 | 9E 77 01 9C 06 A5 29 F0 08 28 64 C6 51 3F EA 5E
|
||||
0040 | 97 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>01F8AF9B23107B65</code></td>
|
||||
<td><code>015C90BC77127B65</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>90000000</code> (144 in decimal)</td>
|
||||
<td><code>6C000000</code> (108 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -150,19 +150,19 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Server-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pq</td>
|
||||
<td>56, 12</td>
|
||||
<td><code>08165626729A0E9485000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1609516190484305029</td>
|
||||
<td><code>082864C6513FEA5E97000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 2910669311455157911</td>
|
||||
<td>Single-byte prefix denoting length, an 8-byte string, and three bytes of padding</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -208,22 +208,22 @@
|
|||
<h4><a class="anchor" href="#proof-of-work" id="proof-of-work" name="proof-of-work"><i class="anchor-icon"></i></a>Proof of work</h4>
|
||||
<h5><a class="anchor" href="#3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" id="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" name="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q"><i class="anchor-icon"></i></a>3) Client decomposes pq into prime factors such that p < q.</h5>
|
||||
<!-- start pq -->
|
||||
<pre><code>pq = 1609516190484305029</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>1609516190484305029 = 1067705161 * 1507453789</code></p>
|
||||
<pre><code>p = 1067705161
|
||||
q = 1507453789</code></pre>
|
||||
<pre><code>pq = 2910669311455157911</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>2910669311455157911 = 1652536009 * 1761334879</code></p>
|
||||
<pre><code>p = 1652536009
|
||||
q = 1761334879</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 16 56 26 72 9A 0E 94 85 00 00 00
|
||||
0010 | 04 3F A3 E3 49 00 00 00 04 59 D9 EB 5D 00 00 00
|
||||
0020 | C7 C3 E7 6D 71 ED 38 97 67 2E 26 30 48 08 DB 26
|
||||
0030 | D0 1C B1 F4 06 98 DB 02 D6 F5 C3 7F 4E D6 60 82
|
||||
0040 | E9 B9 E2 FA 4A 88 EB 8D D2 59 CE FF CE 11 39 67
|
||||
0050 | 74 B3 A6 3A 44 69 56 2A C5 14 16 80 AC 9D 29 EA
|
||||
<pre><code>0000 | 95 5F F5 A9 08 28 64 C6 51 3F EA 5E 97 00 00 00
|
||||
0010 | 04 62 7F B2 C9 00 00 00 04 68 FB D6 5F 00 00 00
|
||||
0020 | B8 F9 ED 7E FD ED 7E E9 3F AD BE 6C 51 43 F6 39
|
||||
0030 | 4D 54 EA 31 25 42 43 08 9E 77 01 9C 06 A5 29 F0
|
||||
0040 | 04 95 A8 C6 99 65 6E 8E 1E 82 D7 58 79 73 AD AB
|
||||
0050 | 51 95 4C 4F 99 2B 0B 23 CB FE 10 B1 E6 DA 5E B7
|
||||
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 = 1507453789</code></pre>
|
|||
<tr>
|
||||
<td>pq</td>
|
||||
<td>4, 12</td>
|
||||
<td><code>08165626729A0E9485000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1609516190484305029</td>
|
||||
<td><code>082864C6513FEA5E97000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 2910669311455157911</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>043FA3E349000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1067705161</td>
|
||||
<td><code>04627FB2C9000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1652536009</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>0459D9EB5D000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1507453789</td>
|
||||
<td><code>0468FBD65F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1761334879</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>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>48, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce</td>
|
||||
<td>64, 32</td>
|
||||
<td><code>E9B9E2FA4A88EB8DD259CEFFCE113967</code> <code>74B3A63A4469562AC5141680AC9D29EA</code></td>
|
||||
<td><code>0495A8C699656E8E1E82D7587973ADAB</code> <code>51954C4F992B0B23CBFE10B1E6DA5EB7</code></td>
|
||||
<td>Client-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -291,39 +291,39 @@ q = 1507453789</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 = 955FF5A908165626729A0E9485000000043FA3E3490000000459D9EB5D000000C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED66082E9B9E2FA4A88EB8DD259CEFFCE11396774B3A63A4469562AC5141680AC9D29EA02000000
|
||||
random_padding_bytes = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A0496D4DC39DA734638EAEA8DE414AFFE990749D4794B9AB6C8D2E97546C2C4D5A50DEF4D6AFB25A8EA851A894879E535139C6C88BC2624D0C58097392F77F5A2F</code></pre>
|
||||
<pre><code>data = 955FF5A9082864C6513FEA5E9700000004627FB2C90000000468FBD65F000000B8F9ED7EFDED7EE93FADBE6C5143F6394D54EA31254243089E77019C06A529F00495A8C699656E8E1E82D7587973ADAB51954C4F992B0B23CBFE10B1E6DA5EB702000000
|
||||
random_padding_bytes = B70F17797E40020F2084C997F2FBA831F3757D853C154951DBA3A9F313689285293E6ABD665227D7D7F6DF9747964AFFD8BFE7FB449BEB40C4F3A60DB0391F8A542A103F940229C410AE127DE75A755E2D1F78D2015B7B4BFBB3E8C5</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 = 9A0F95DC35F782FDAD7AA42B2E70E3DC591AC0CF63E0036089DA1766202F4995C385A37E56528D4EF51C419F9BA8A5B7FA82928BF8661B5C4828B0A601795D6144D32481A188D763288494325171B9B219F7D9926BBF2A1301A20D62C3E262E0EA44FC352A2910E1C057DF0A1E0762379EF0EBCB0393927B3A30EB15DFD1ED62571FFBB41FE4B988E9DEF371D2C3B478EF6B4D1AC74304037654862B7E2BC3714ECC9CC4030751DEB5A5269CFE8E394C49C1CD2F38F8B916EDF5405E4DB1901427E6175B6FD19098BA0516F29C2D09BD61BA5CF6D4C8516BE2FC1E5EC61B115946AA36FA189939BC5C8242D38130EF4BA0AA8669B32289947486F24339ED127F</code></pre>
|
||||
<pre><code>encrypted_data = 8CA8796C05681B04A1E690D8B70EB945B564654412521387042FCBD4D640184295D621CA9DBBB3B87A5CA2344C6C64D26C4F2652AE6C734227B966FFB030EADF791D0043E98CD9074414C3EC5E8C2E14CB40236B9A0B7533207BD76B0C967969B338C47A7931336B9D1E00B544FA1609AE240817B02922336DC0822A8329761A4F5D65ACFECE79C1379D98F45C346D07CC3F0C785B2A3A04815669B7B1050F98D96476E99637348C66022D079FDE1E40DE34B9588780530610FF5EF0360C260C8C043FEE9708CC5AE5D8F4982F063192424C3B525FEB3298F14E1CF81CD8BC90B95BF2BFDF62B21F29E086134D0ECC05FC4DCD7DF34C774472C32C82553082A0</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 44 5F 0A 00 23 10 7B 65
|
||||
0010 | 40 01 00 00 BE E4 12 D7 C7 C3 E7 6D 71 ED 38 97
|
||||
0020 | 67 2E 26 30 48 08 DB 26 D0 1C B1 F4 06 98 DB 02
|
||||
0030 | D6 F5 C3 7F 4E D6 60 82 04 3F A3 E3 49 00 00 00
|
||||
0040 | 04 59 D9 EB 5D 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 9A 0F 95 DC 35 F7 82 FD AD 7A A4 2B
|
||||
0060 | 2E 70 E3 DC 59 1A C0 CF 63 E0 03 60 89 DA 17 66
|
||||
0070 | 20 2F 49 95 C3 85 A3 7E 56 52 8D 4E F5 1C 41 9F
|
||||
0080 | 9B A8 A5 B7 FA 82 92 8B F8 66 1B 5C 48 28 B0 A6
|
||||
0090 | 01 79 5D 61 44 D3 24 81 A1 88 D7 63 28 84 94 32
|
||||
00A0 | 51 71 B9 B2 19 F7 D9 92 6B BF 2A 13 01 A2 0D 62
|
||||
00B0 | C3 E2 62 E0 EA 44 FC 35 2A 29 10 E1 C0 57 DF 0A
|
||||
00C0 | 1E 07 62 37 9E F0 EB CB 03 93 92 7B 3A 30 EB 15
|
||||
00D0 | DF D1 ED 62 57 1F FB B4 1F E4 B9 88 E9 DE F3 71
|
||||
00E0 | D2 C3 B4 78 EF 6B 4D 1A C7 43 04 03 76 54 86 2B
|
||||
00F0 | 7E 2B C3 71 4E CC 9C C4 03 07 51 DE B5 A5 26 9C
|
||||
0100 | FE 8E 39 4C 49 C1 CD 2F 38 F8 B9 16 ED F5 40 5E
|
||||
0110 | 4D B1 90 14 27 E6 17 5B 6F D1 90 98 BA 05 16 F2
|
||||
0120 | 9C 2D 09 BD 61 BA 5C F6 D4 C8 51 6B E2 FC 1E 5E
|
||||
0130 | C6 1B 11 59 46 AA 36 FA 18 99 39 BC 5C 82 42 D3
|
||||
0140 | 81 30 EF 4B A0 AA 86 69 B3 22 89 94 74 86 F2 43
|
||||
0150 | 39 ED 12 7F</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 EC F0 0D 00 77 12 7B 65
|
||||
0010 | 40 01 00 00 BE E4 12 D7 B8 F9 ED 7E FD ED 7E E9
|
||||
0020 | 3F AD BE 6C 51 43 F6 39 4D 54 EA 31 25 42 43 08
|
||||
0030 | 9E 77 01 9C 06 A5 29 F0 04 62 7F B2 C9 00 00 00
|
||||
0040 | 04 68 FB D6 5F 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 8C A8 79 6C 05 68 1B 04 A1 E6 90 D8
|
||||
0060 | B7 0E B9 45 B5 64 65 44 12 52 13 87 04 2F CB D4
|
||||
0070 | D6 40 18 42 95 D6 21 CA 9D BB B3 B8 7A 5C A2 34
|
||||
0080 | 4C 6C 64 D2 6C 4F 26 52 AE 6C 73 42 27 B9 66 FF
|
||||
0090 | B0 30 EA DF 79 1D 00 43 E9 8C D9 07 44 14 C3 EC
|
||||
00A0 | 5E 8C 2E 14 CB 40 23 6B 9A 0B 75 33 20 7B D7 6B
|
||||
00B0 | 0C 96 79 69 B3 38 C4 7A 79 31 33 6B 9D 1E 00 B5
|
||||
00C0 | 44 FA 16 09 AE 24 08 17 B0 29 22 33 6D C0 82 2A
|
||||
00D0 | 83 29 76 1A 4F 5D 65 AC FE CE 79 C1 37 9D 98 F4
|
||||
00E0 | 5C 34 6D 07 CC 3F 0C 78 5B 2A 3A 04 81 56 69 B7
|
||||
00F0 | B1 05 0F 98 D9 64 76 E9 96 37 34 8C 66 02 2D 07
|
||||
0100 | 9F DE 1E 40 DE 34 B9 58 87 80 53 06 10 FF 5E F0
|
||||
0110 | 36 0C 26 0C 8C 04 3F EE 97 08 CC 5A E5 D8 F4 98
|
||||
0120 | 2F 06 31 92 42 4C 3B 52 5F EB 32 98 F1 4E 1C F8
|
||||
0130 | 1C D8 BC 90 B9 5B F2 BF DF 62 B2 1F 29 E0 86 13
|
||||
0140 | 4D 0E CC 05 FC 4D CD 7D F3 4C 77 44 72 C3 2C 82
|
||||
0150 | 55 30 82 A0</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 = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A04
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>445F0A0023107B65</code></td>
|
||||
<td><code>ECF00D0077127B65</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -363,25 +363,25 @@ random_padding_bytes = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A04
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>p</td>
|
||||
<td>56, 8</td>
|
||||
<td><code>043FA3E349000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1067705161</td>
|
||||
<td><code>04627FB2C9000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1652536009</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>0459D9EB5D000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1507453789</td>
|
||||
<td><code>0468FBD65F000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1761334879</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 = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A04
|
|||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>80, 260</td>
|
||||
<td><code>FE0001009A0F95DC35F782FDAD7AA42B</code> <code>2E70E3DC591AC0CF63E0036089DA1766</code> <code>202F4995C385A37E56528D4EF51C419F</code> <code>9BA8A5B7FA82928BF8661B5C4828B0A6</code> <code>01795D6144D32481A188D76328849432</code> <code>5171B9B219F7D9926BBF2A1301A20D62</code> <code>C3E262E0EA44FC352A2910E1C057DF0A</code> <code>1E0762379EF0EBCB0393927B3A30EB15</code> <code>DFD1ED62571FFBB41FE4B988E9DEF371</code> <code>D2C3B478EF6B4D1AC74304037654862B</code> <code>7E2BC3714ECC9CC4030751DEB5A5269C</code> <code>FE8E394C49C1CD2F38F8B916EDF5405E</code> <code>4DB1901427E6175B6FD19098BA0516F2</code> <code>9C2D09BD61BA5CF6D4C8516BE2FC1E5E</code> <code>C61B115946AA36FA189939BC5C8242D3</code> <code>8130EF4BA0AA8669B32289947486F243</code><br> <code>39ED127F</code></td>
|
||||
<td><code>FE0001008CA8796C05681B04A1E690D8</code> <code>B70EB945B564654412521387042FCBD4</code> <code>D640184295D621CA9DBBB3B87A5CA234</code> <code>4C6C64D26C4F2652AE6C734227B966FF</code> <code>B030EADF791D0043E98CD9074414C3EC</code> <code>5E8C2E14CB40236B9A0B7533207BD76B</code> <code>0C967969B338C47A7931336B9D1E00B5</code> <code>44FA1609AE240817B02922336DC0822A</code> <code>8329761A4F5D65ACFECE79C1379D98F4</code> <code>5C346D07CC3F0C785B2A3A04815669B7</code> <code>B1050F98D96476E99637348C66022D07</code> <code>9FDE1E40DE34B9588780530610FF5EF0</code> <code>360C260C8C043FEE9708CC5AE5D8F498</code> <code>2F063192424C3B525FEB3298F14E1CF8</code> <code>1CD8BC90B95BF2BFDF62B21F29E08613</code> <code>4D0ECC05FC4DCD7DF34C774472C32C82</code><br> <code>553082A0</code></td>
|
||||
<td>Value generated above</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -402,47 +402,47 @@ random_padding_bytes = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A04
|
|||
<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 08 B5 3B 24 10 7B 65
|
||||
0010 | C4 02 00 00 5C 07 E8 D0 C7 C3 E7 6D 71 ED 38 97
|
||||
0020 | 67 2E 26 30 48 08 DB 26 D0 1C B1 F4 06 98 DB 02
|
||||
0030 | D6 F5 C3 7F 4E D6 60 82 FE 50 02 00 42 64 3D EA
|
||||
0040 | 91 F4 7C 20 E9 58 9F 29 4D A8 6E A7 31 48 E0 8E
|
||||
0050 | 38 C3 C5 1C 18 3F 35 6E 4E 07 44 94 08 FF 7B D0
|
||||
0060 | 1E 6B EB 0D 7C B8 93 AF B4 73 4E 4B 6C D4 A1 A6
|
||||
0070 | 6E E7 38 02 2F F1 24 C6 A9 3C 49 D9 11 09 03 84
|
||||
0080 | BE C5 08 D2 A2 C0 B2 67 DD 3B DB D1 B1 F1 BA 21
|
||||
0090 | F6 38 90 47 72 63 94 7E 4F 3D 40 4F 3F 21 BA F6
|
||||
00A0 | 6B 3B 91 BE F8 58 1D A4 10 9D 13 B9 5F 1C 9D 34
|
||||
00B0 | C6 06 87 62 CA D4 59 70 2A 63 E9 23 A8 6C DC 85
|
||||
00C0 | C4 F1 5D 3E 9D 56 C1 B0 BE 45 FD 1E 0A 49 15 1D
|
||||
00D0 | 99 09 2C 38 95 72 8C 25 3E D7 BE 6B 7E 6A 61 F6
|
||||
00E0 | A9 FE 56 9A F5 D0 2A B4 A4 2C 76 9C 9A 9E 77 7A
|
||||
00F0 | 0E FB 75 82 39 D6 2C 8A A1 F1 50 85 FB 92 04 49
|
||||
0100 | F7 83 F5 07 AF F1 B7 36 AB F4 8C 32 3F 21 7C 50
|
||||
0110 | BD 16 A9 56 CE BA 5E 67 80 A8 F1 28 CB 0D D0 14
|
||||
0120 | 64 3B 70 92 17 CB A4 6E 79 86 2B 43 0D 33 AE 06
|
||||
0130 | 94 75 7F E0 5C 9B 30 ED A6 4A 4B 59 0E 43 A4 89
|
||||
0140 | CB 78 9B F0 3A 28 90 64 2C 07 0B 2E C5 B9 74 DD
|
||||
0150 | FD 03 26 B8 33 78 6C 5B 61 FB 06 8A 01 10 65 3D
|
||||
0160 | 44 D6 17 72 80 EB EF 60 25 40 2C DF 6C 64 01 C4
|
||||
0170 | A5 EF 80 9D 00 2E F3 BE 49 20 D2 C3 C3 83 8C 60
|
||||
0180 | 6E EF C6 9B 66 D7 89 21 2B FA 6A 39 CE C1 BF A1
|
||||
0190 | 06 0C FB 96 09 E4 B0 32 78 74 B8 1A 96 75 81 1E
|
||||
01A0 | B4 05 3F 4F F7 7F D5 91 F2 96 D9 F1 DE 89 6C E0
|
||||
01B0 | 41 A9 69 83 34 78 1B CB 03 99 3F 2D 1D 20 B9 0B
|
||||
01C0 | EE C5 07 60 65 B4 55 03 D2 2F DB 2B 81 13 0F F8
|
||||
01D0 | A8 9F 61 CA 5D EB EC 1D BB A9 9B 6E B5 0E C1 35
|
||||
01E0 | D2 00 62 0D 73 FF 2E A1 6B 0E CA FE 7F 96 0F 23
|
||||
01F0 | AF CB F4 FD F8 AB 9F 05 74 D0 7D 70 1E 93 08 5D
|
||||
0200 | 14 07 AF 43 DC D5 BE A8 D2 61 00 B2 C4 27 A1 77
|
||||
0210 | 25 03 B1 96 07 8B 35 11 26 72 7C 54 48 0C 48 26
|
||||
0220 | 6E 05 4A 9C B8 DA F8 AC AE A8 A5 2A CA FA C0 93
|
||||
0230 | 78 80 70 0D 34 CA 2C C9 B1 90 12 47 69 A4 D7 F7
|
||||
0240 | 02 83 C6 AB 8C FA 40 B7 2D 5D 45 AF E4 21 71 0D
|
||||
0250 | B3 14 32 0F E7 4B AC EB 43 C5 53 50 86 90 15 51
|
||||
0260 | D9 E3 A8 86 30 C3 E2 D3 70 EA 03 37 D6 9E EE 31
|
||||
0270 | FC 0F DE 64 9C 0C 6E 4C 10 40 3E B6 9C B4 AC 4F
|
||||
0280 | 1A 2C 38 DD EA 19 69 99 A2 CE D8 ED</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 38 CA 74 78 12 7B 65
|
||||
0010 | 78 02 00 00 5C 07 E8 D0 B8 F9 ED 7E FD ED 7E E9
|
||||
0020 | 3F AD BE 6C 51 43 F6 39 4D 54 EA 31 25 42 43 08
|
||||
0030 | 9E 77 01 9C 06 A5 29 F0 FE 50 02 00 EF 35 0C F0
|
||||
0040 | A4 32 F0 37 F4 D2 83 5F DF F9 9B 0C F6 8C 82 16
|
||||
0050 | BD 1F 40 7A 24 70 D4 68 97 D2 4E 19 A3 D7 B9 82
|
||||
0060 | EE 08 BB 08 4D 1B 5F AC B2 8E 3B D9 C3 03 A8 B4
|
||||
0070 | EE E8 0F 3F B1 FD AD A5 63 6C 02 B4 55 04 A9 65
|
||||
0080 | AA 76 1A EC CE 3C 70 B4 12 76 64 5D 5C 0F CC 16
|
||||
0090 | 15 E4 FC 46 2D 4A 0B 36 F0 C6 0E 8D 4F 5F 39 38
|
||||
00A0 | A9 BE DA FF EB 5C BA DD A4 9F EE F2 0D 0F 8A 44
|
||||
00B0 | 60 4E 4D 19 F3 AC 2C 00 F3 1C 2C B8 3D C7 01 61
|
||||
00C0 | DB 0E 09 13 F6 B7 08 64 D1 C4 12 70 21 85 7A CF
|
||||
00D0 | 7E FF FC 88 9F 6C B7 3D FF C2 38 6B 03 9E F3 F8
|
||||
00E0 | 2A 35 47 9B E2 F8 C3 4F A1 66 39 E9 59 D1 3B BC
|
||||
00F0 | F5 F0 6B 03 E6 E8 93 3C AF 66 0B FE 7F 7F AD D1
|
||||
0100 | C7 65 B3 12 B8 CA DB 74 48 91 27 D7 7D BC E0 E8
|
||||
0110 | E8 15 E9 DE 09 6F ED E0 BE 5D 57 8C 65 E0 20 14
|
||||
0120 | 7C 15 37 32 E1 56 0B 55 D1 84 FE 71 BC 3F AE 52
|
||||
0130 | 1F 65 2E 78 FB 13 2D 70 88 00 C2 3A 52 B3 19 26
|
||||
0140 | A3 4C 72 E2 21 AC 9F 6B 01 36 70 26 83 59 15 28
|
||||
0150 | 21 6E 78 D8 68 A4 21 4F F3 A8 9D 79 13 E0 9A 2C
|
||||
0160 | FB 43 01 CA 14 93 13 32 FF 35 C5 ED D2 93 F1 B5
|
||||
0170 | EA A3 28 CA 5D B7 FE 3F 3F 5D 9C 5D 1C 0A 0F B3
|
||||
0180 | 0B 63 12 41 EB 15 DF D0 18 F6 44 C9 E8 CE 7F F7
|
||||
0190 | 9A 5A DD 9E 34 15 13 B0 ED F8 9D 2D 0B 1E 8F 34
|
||||
01A0 | 96 23 D5 E3 77 DC 1D F1 86 9D F2 70 87 0C 2E CF
|
||||
01B0 | 17 69 BD B0 BA 63 1A 4D 31 04 80 35 CE FF 0A 45
|
||||
01C0 | 50 7F AC DA CB 17 09 36 DD 2C 42 A8 1F FB A9 2D
|
||||
01D0 | 4E C6 D0 E8 78 EA B5 20 08 25 67 25 3B C7 76 B8
|
||||
01E0 | E2 1B F2 9C 38 93 82 17 92 C1 B5 74 C4 31 EA 1B
|
||||
01F0 | FE 91 F3 9B E1 A7 B7 25 D5 BF 6F 2E F7 E3 F3 E0
|
||||
0200 | 81 6C 7B CC CF F6 97 35 11 AD 68 CC 72 51 21 D9
|
||||
0210 | 30 CC FB C5 E2 4E FC 9B 55 B8 43 9D 54 61 36 C4
|
||||
0220 | C4 F1 50 29 38 58 74 A1 E7 D4 57 98 A7 62 81 9A
|
||||
0230 | EE 49 20 66 44 41 39 88 B2 2F DE 28 48 D2 19 4C
|
||||
0240 | B9 2F C9 67 C4 C8 DA 10 AD 71 82 65 92 6D 97 90
|
||||
0250 | A8 D1 30 A4 84 D2 D7 17 3B 7E 84 B6 70 2B D6 01
|
||||
0260 | 58 3E CB 63 98 02 2B F2 A9 1A 81 53 8B F7 BC 63
|
||||
0270 | 89 BF 07 A7 F3 5D BC 68 2A F5 6E A4 1E A1 7B 6F
|
||||
0280 | 81 4E 71 2A 9C 8B 45 49 E3 96 A1 31</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -464,13 +464,13 @@ random_padding_bytes = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A04
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>0108B53B24107B65</code></td>
|
||||
<td><code>0138CA7478127B65</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>C4020000</code> (708 in decimal)</td>
|
||||
<td><code>78020000</code> (632 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -482,19 +482,19 @@ random_padding_bytes = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A04
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_answer</td>
|
||||
<td>56, 596</td>
|
||||
<td><code>FE50020042643DEA91F47C20E9589F29</code> <code>4DA86EA73148E08E38C3C51C183F356E</code> <code>4E07449408FF7BD01E6BEB0D7CB893AF</code> <code>B4734E4B6CD4A1A66EE738022FF124C6</code> <code>A93C49D911090384BEC508D2A2C0B267</code> <code>DD3BDBD1B1F1BA21F63890477263947E</code> <code>4F3D404F3F21BAF66B3B91BEF8581DA4</code> <code>109D13B95F1C9D34C6068762CAD45970</code> <code>2A63E923A86CDC85C4F15D3E9D56C1B0</code> <code>BE45FD1E0A49151D99092C3895728C25</code> <code>3ED7BE6B7E6A61F6A9FE569AF5D02AB4</code> <code>A42C769C9A9E777A0EFB758239D62C8A</code> <code>A1F15085FB920449F783F507AFF1B736</code> <code>ABF48C323F217C50BD16A956CEBA5E67</code> <code>80A8F128CB0DD014643B709217CBA46E</code> <code>79862B430D33AE0694757FE05C9B30ED</code> <code>A64A4B590E43A489CB789BF03A289064</code> <code>2C070B2EC5B974DDFD0326B833786C5B</code> <code>61FB068A0110653D44D6177280EBEF60</code> <code>25402CDF6C6401C4A5EF809D002EF3BE</code> <code>4920D2C3C3838C606EEFC69B66D78921</code> <code>2BFA6A39CEC1BFA1060CFB9609E4B032</code> <code>7874B81A9675811EB4053F4FF77FD591</code> <code>F296D9F1DE896CE041A9698334781BCB</code> <code>03993F2D1D20B90BEEC5076065B45503</code> <code>D22FDB2B81130FF8A89F61CA5DEBEC1D</code> <code>BBA99B6EB50EC135D200620D73FF2EA1</code> <code>6B0ECAFE7F960F23AFCBF4FDF8AB9F05</code> <code>74D07D701E93085D1407AF43DCD5BEA8</code> <code>D26100B2C427A1772503B196078B3511</code> <code>26727C54480C48266E054A9CB8DAF8AC</code> <code>AEA8A52ACAFAC0937880700D34CA2CC9</code> <code>B190124769A4D7F70283C6AB8CFA40B7</code> <code>2D5D45AFE421710DB314320FE74BACEB</code> <code>43C5535086901551D9E3A88630C3E2D3</code> <code>70EA0337D69EEE31FC0FDE649C0C6E4C</code> <code>10403EB69CB4AC4F1A2C38DDEA196999</code><br> <code>A2CED8ED</code></td>
|
||||
<td><code>FE500200EF350CF0A432F037F4D2835F</code> <code>DFF99B0CF68C8216BD1F407A2470D468</code> <code>97D24E19A3D7B982EE08BB084D1B5FAC</code> <code>B28E3BD9C303A8B4EEE80F3FB1FDADA5</code> <code>636C02B45504A965AA761AECCE3C70B4</code> <code>1276645D5C0FCC1615E4FC462D4A0B36</code> <code>F0C60E8D4F5F3938A9BEDAFFEB5CBADD</code> <code>A49FEEF20D0F8A44604E4D19F3AC2C00</code> <code>F31C2CB83DC70161DB0E0913F6B70864</code> <code>D1C4127021857ACF7EFFFC889F6CB73D</code> <code>FFC2386B039EF3F82A35479BE2F8C34F</code> <code>A16639E959D13BBCF5F06B03E6E8933C</code> <code>AF660BFE7F7FADD1C765B312B8CADB74</code> <code>489127D77DBCE0E8E815E9DE096FEDE0</code> <code>BE5D578C65E020147C153732E1560B55</code> <code>D184FE71BC3FAE521F652E78FB132D70</code> <code>8800C23A52B31926A34C72E221AC9F6B</code> <code>0136702683591528216E78D868A4214F</code> <code>F3A89D7913E09A2CFB4301CA14931332</code> <code>FF35C5EDD293F1B5EAA328CA5DB7FE3F</code> <code>3F5D9C5D1C0A0FB30B631241EB15DFD0</code> <code>18F644C9E8CE7FF79A5ADD9E341513B0</code> <code>EDF89D2D0B1E8F349623D5E377DC1DF1</code> <code>869DF270870C2ECF1769BDB0BA631A4D</code> <code>31048035CEFF0A45507FACDACB170936</code> <code>DD2C42A81FFBA92D4EC6D0E878EAB520</code> <code>082567253BC776B8E21BF29C38938217</code> <code>92C1B574C431EA1BFE91F39BE1A7B725</code> <code>D5BF6F2EF7E3F3E0816C7BCCCFF69735</code> <code>11AD68CC725121D930CCFBC5E24EFC9B</code> <code>55B8439D546136C4C4F15029385874A1</code> <code>E7D45798A762819AEE49206644413988</code> <code>B22FDE2848D2194CB92FC967C4C8DA10</code> <code>AD718265926D9790A8D130A484D2D717</code> <code>3B7E84B6702BD601583ECB6398022BF2</code> <code>A91A81538BF7BC6389BF07A7F35DBC68</code> <code>2AF56EA41EA17B6F814E712A9C8B4549</code><br> <code>E396A131</code></td>
|
||||
<td>See below</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -502,20 +502,20 @@ random_padding_bytes = B0EF41D5677F343E17701D8208A505F863FF771E82601A64C05119A04
|
|||
<!-- 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 = 42643DEA91F47C20E9589F294DA86EA73148E08E38C3C51C183F356E4E07449408FF7BD01E6BEB0D7CB893AFB4734E4B6CD4A1A66EE738022FF124C6A93C49D911090384BEC508D2A2C0B267DD3BDBD1B1F1BA21F63890477263947E4F3D404F3F21BAF66B3B91BEF8581DA4109D13B95F1C9D34C6068762CAD459702A63E923A86CDC85C4F15D3E9D56C1B0BE45FD1E0A49151D99092C3895728C253ED7BE6B7E6A61F6A9FE569AF5D02AB4A42C769C9A9E777A0EFB758239D62C8AA1F15085FB920449F783F507AFF1B736ABF48C323F217C50BD16A956CEBA5E6780A8F128CB0DD014643B709217CBA46E79862B430D33AE0694757FE05C9B30EDA64A4B590E43A489CB789BF03A2890642C070B2EC5B974DDFD0326B833786C5B61FB068A0110653D44D6177280EBEF6025402CDF6C6401C4A5EF809D002EF3BE4920D2C3C3838C606EEFC69B66D789212BFA6A39CEC1BFA1060CFB9609E4B0327874B81A9675811EB4053F4FF77FD591F296D9F1DE896CE041A9698334781BCB03993F2D1D20B90BEEC5076065B45503D22FDB2B81130FF8A89F61CA5DEBEC1DBBA99B6EB50EC135D200620D73FF2EA16B0ECAFE7F960F23AFCBF4FDF8AB9F0574D07D701E93085D1407AF43DCD5BEA8D26100B2C427A1772503B196078B351126727C54480C48266E054A9CB8DAF8ACAEA8A52ACAFAC0937880700D34CA2CC9B190124769A4D7F70283C6AB8CFA40B72D5D45AFE421710DB314320FE74BACEB43C5535086901551D9E3A88630C3E2D370EA0337D69EEE31FC0FDE649C0C6E4C10403EB69CB4AC4F1A2C38DDEA196999A2CED8ED
|
||||
tmp_aes_key = B515F4C19BA98C5E2D01308D1D1FA78B11F004F96CCD77654B969211AE7EBF3E
|
||||
tmp_aes_iv = 764D191B929E12845057E924C8D9030841D668B8ED2E8FF9EEBCDEC5E9B9E2FA</code></pre>
|
||||
<pre><code>encrypted_answer = EF350CF0A432F037F4D2835FDFF99B0CF68C8216BD1F407A2470D46897D24E19A3D7B982EE08BB084D1B5FACB28E3BD9C303A8B4EEE80F3FB1FDADA5636C02B45504A965AA761AECCE3C70B41276645D5C0FCC1615E4FC462D4A0B36F0C60E8D4F5F3938A9BEDAFFEB5CBADDA49FEEF20D0F8A44604E4D19F3AC2C00F31C2CB83DC70161DB0E0913F6B70864D1C4127021857ACF7EFFFC889F6CB73DFFC2386B039EF3F82A35479BE2F8C34FA16639E959D13BBCF5F06B03E6E8933CAF660BFE7F7FADD1C765B312B8CADB74489127D77DBCE0E8E815E9DE096FEDE0BE5D578C65E020147C153732E1560B55D184FE71BC3FAE521F652E78FB132D708800C23A52B31926A34C72E221AC9F6B0136702683591528216E78D868A4214FF3A89D7913E09A2CFB4301CA14931332FF35C5EDD293F1B5EAA328CA5DB7FE3F3F5D9C5D1C0A0FB30B631241EB15DFD018F644C9E8CE7FF79A5ADD9E341513B0EDF89D2D0B1E8F349623D5E377DC1DF1869DF270870C2ECF1769BDB0BA631A4D31048035CEFF0A45507FACDACB170936DD2C42A81FFBA92D4EC6D0E878EAB520082567253BC776B8E21BF29C3893821792C1B574C431EA1BFE91F39BE1A7B725D5BF6F2EF7E3F3E0816C7BCCCFF6973511AD68CC725121D930CCFBC5E24EFC9B55B8439D546136C4C4F15029385874A1E7D45798A762819AEE49206644413988B22FDE2848D2194CB92FC967C4C8DA10AD718265926D9790A8D130A484D2D7173B7E84B6702BD601583ECB6398022BF2A91A81538BF7BC6389BF07A7F35DBC682AF56EA41EA17B6F814E712A9C8B4549E396A131
|
||||
tmp_aes_key = 5028FB57D07AD7AEA070D02B26E6BDE4AB80742328D35421B99A5D37ABE9C368
|
||||
tmp_aes_iv = BF6F3CBFCFD7D76DF70B881BF7C1B98C341468E67EC78092191B35790495A8C6</code></pre>
|
||||
<!-- end server_DH_inner_data_input -->
|
||||
<p>Yielding:</p>
|
||||
<!-- start server_DH_inner_data_output -->
|
||||
<pre><code>answer_with_hash = 2B18C4A6E3259AA785D443C24B1257820951635ABA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010064AAA6A7F712B5B1EEC07848066ECA944CBF1B606EF411F861FE4C14A255F4CA3001697926E0AF716132F3672DA8A1D5257E46F4CBDD665F52BE3A1DACFBDD1A0F3D01560DE6D16000103B9244B8C4BA47D6474DDE28D5FA7DE7BD055814A4AFC4823DFAE6CF116AC7327BB6AF1C9351B143E1FCFE6FD214A18362AB8ED555DC090ECDBF50A6E06DA962F2F3954B6A8ADDEDC08948275BD38692E33983DE446DC5E14F45C58BFC35F135DDC02D3BA6E0C434E9C529651F8A4E3CD7F1941C5E9FE4B4C555DCC3C0D6FC8561836EADE97B3062F7C2D1150A70213C228A87B7FFE011B0D9A573E6CD96FF6619E1B93F73ACAFE88A0624E8FF4EC61FF77CEF2326E424107B6507C56189CA2D7503
|
||||
answer = BA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010064AAA6A7F712B5B1EEC07848066ECA944CBF1B606EF411F861FE4C14A255F4CA3001697926E0AF716132F3672DA8A1D5257E46F4CBDD665F52BE3A1DACFBDD1A0F3D01560DE6D16000103B9244B8C4BA47D6474DDE28D5FA7DE7BD055814A4AFC4823DFAE6CF116AC7327BB6AF1C9351B143E1FCFE6FD214A18362AB8ED555DC090ECDBF50A6E06DA962F2F3954B6A8ADDEDC08948275BD38692E33983DE446DC5E14F45C58BFC35F135DDC02D3BA6E0C434E9C529651F8A4E3CD7F1941C5E9FE4B4C555DCC3C0D6FC8561836EADE97B3062F7C2D1150A70213C228A87B7FFE011B0D9A573E6CD96FF6619E1B93F73ACAFE88A0624E8FF4EC61FF77CEF2326E424107B6507C56189CA2D7503</code></pre>
|
||||
<pre><code>answer_with_hash = 398932855BF3991F6550E2CA2D2814AD5B38B854BA0D89B5B8F9ED7EFDED7EE93FADBE6C5143F6394D54EA31254243089E77019C06A529F003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100364CFD00A68FCCB95EA58EE4109BE9E30B132F37C0D88DB92059FDF77EDE753539085094B7D23F7E4A8A7603075FFFFD8FEFF0BFFB09CFCE9D977A8617006A669B2D6CA10BF6A753A57695D22165F15E95E8A1DD02452C956B350A52B87FB08A3093DE1068147D4103279F9EDB04C46E7C5ECC7F368CDC9856D40F4C910470ECA8EBBE71C03A6505FBD54655D4874E1F1A4100535A271DF64F7ED72ECDA7EEABA90A09D10FFF8F1B4CC2620C2D133D13ACF7B655A57E1D571F2998BD3D85977253F65AE1C3D11A56FDCE791170ED80B555D8DC0FB28FBFDEC5B31EF3AAAEEA246B620A68EE28A475C9753DDC5E2AA0D372A4E353C5BEE5A84D072E39D50F900B78127B65A06FF77399181DB2
|
||||
answer = BA0D89B5B8F9ED7EFDED7EE93FADBE6C5143F6394D54EA31254243089E77019C06A529F003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100364CFD00A68FCCB95EA58EE4109BE9E30B132F37C0D88DB92059FDF77EDE753539085094B7D23F7E4A8A7603075FFFFD8FEFF0BFFB09CFCE9D977A8617006A669B2D6CA10BF6A753A57695D22165F15E95E8A1DD02452C956B350A52B87FB08A3093DE1068147D4103279F9EDB04C46E7C5ECC7F368CDC9856D40F4C910470ECA8EBBE71C03A6505FBD54655D4874E1F1A4100535A271DF64F7ED72ECDA7EEABA90A09D10FFF8F1B4CC2620C2D133D13ACF7B655A57E1D571F2998BD3D85977253F65AE1C3D11A56FDCE791170ED80B555D8DC0FB28FBFDEC5B31EF3AAAEEA246B620A68EE28A475C9753DDC5E2AA0D372A4E353C5BEE5A84D072E39D50F900B78127B65A06FF77399181DB2</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 C7 C3 E7 6D 71 ED 38 97 67 2E 26 30
|
||||
0010 | 48 08 DB 26 D0 1C B1 F4 06 98 DB 02 D6 F5 C3 7F
|
||||
0020 | 4E D6 60 82 03 00 00 00 FE 00 01 00 C7 1C AE B9
|
||||
<pre><code>0000 | BA 0D 89 B5 B8 F9 ED 7E FD ED 7E E9 3F AD BE 6C
|
||||
0010 | 51 43 F6 39 4D 54 EA 31 25 42 43 08 9E 77 01 9C
|
||||
0020 | 06 A5 29 F0 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 = BA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608
|
|||
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 | 64 AA A6 A7 F7 12 B5 B1 EE C0 78 48 06 6E CA 94
|
||||
0140 | 4C BF 1B 60 6E F4 11 F8 61 FE 4C 14 A2 55 F4 CA
|
||||
0150 | 30 01 69 79 26 E0 AF 71 61 32 F3 67 2D A8 A1 D5
|
||||
0160 | 25 7E 46 F4 CB DD 66 5F 52 BE 3A 1D AC FB DD 1A
|
||||
0170 | 0F 3D 01 56 0D E6 D1 60 00 10 3B 92 44 B8 C4 BA
|
||||
0180 | 47 D6 47 4D DE 28 D5 FA 7D E7 BD 05 58 14 A4 AF
|
||||
0190 | C4 82 3D FA E6 CF 11 6A C7 32 7B B6 AF 1C 93 51
|
||||
01A0 | B1 43 E1 FC FE 6F D2 14 A1 83 62 AB 8E D5 55 DC
|
||||
01B0 | 09 0E CD BF 50 A6 E0 6D A9 62 F2 F3 95 4B 6A 8A
|
||||
01C0 | DD ED C0 89 48 27 5B D3 86 92 E3 39 83 DE 44 6D
|
||||
01D0 | C5 E1 4F 45 C5 8B FC 35 F1 35 DD C0 2D 3B A6 E0
|
||||
01E0 | C4 34 E9 C5 29 65 1F 8A 4E 3C D7 F1 94 1C 5E 9F
|
||||
01F0 | E4 B4 C5 55 DC C3 C0 D6 FC 85 61 83 6E AD E9 7B
|
||||
0200 | 30 62 F7 C2 D1 15 0A 70 21 3C 22 8A 87 B7 FF E0
|
||||
0210 | 11 B0 D9 A5 73 E6 CD 96 FF 66 19 E1 B9 3F 73 AC
|
||||
0220 | AF E8 8A 06 24 E8 FF 4E C6 1F F7 7C EF 23 26 E4
|
||||
0230 | 24 10 7B 65</code></pre>
|
||||
0130 | 36 4C FD 00 A6 8F CC B9 5E A5 8E E4 10 9B E9 E3
|
||||
0140 | 0B 13 2F 37 C0 D8 8D B9 20 59 FD F7 7E DE 75 35
|
||||
0150 | 39 08 50 94 B7 D2 3F 7E 4A 8A 76 03 07 5F FF FD
|
||||
0160 | 8F EF F0 BF FB 09 CF CE 9D 97 7A 86 17 00 6A 66
|
||||
0170 | 9B 2D 6C A1 0B F6 A7 53 A5 76 95 D2 21 65 F1 5E
|
||||
0180 | 95 E8 A1 DD 02 45 2C 95 6B 35 0A 52 B8 7F B0 8A
|
||||
0190 | 30 93 DE 10 68 14 7D 41 03 27 9F 9E DB 04 C4 6E
|
||||
01A0 | 7C 5E CC 7F 36 8C DC 98 56 D4 0F 4C 91 04 70 EC
|
||||
01B0 | A8 EB BE 71 C0 3A 65 05 FB D5 46 55 D4 87 4E 1F
|
||||
01C0 | 1A 41 00 53 5A 27 1D F6 4F 7E D7 2E CD A7 EE AB
|
||||
01D0 | A9 0A 09 D1 0F FF 8F 1B 4C C2 62 0C 2D 13 3D 13
|
||||
01E0 | AC F7 B6 55 A5 7E 1D 57 1F 29 98 BD 3D 85 97 72
|
||||
01F0 | 53 F6 5A E1 C3 D1 1A 56 FD CE 79 11 70 ED 80 B5
|
||||
0200 | 55 D8 DC 0F B2 8F BF DE C5 B3 1E F3 AA AE EA 24
|
||||
0210 | 6B 62 0A 68 EE 28 A4 75 C9 75 3D DC 5E 2A A0 D3
|
||||
0220 | 72 A4 E3 53 C5 BE E5 A8 4D 07 2E 39 D5 0F 90 0B
|
||||
0230 | 78 12 7B 65</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 = BA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -594,13 +594,13 @@ answer = BA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608
|
|||
<tr>
|
||||
<td>g_a</td>
|
||||
<td>300, 260</td>
|
||||
<td><code>FE00010064AAA6A7F712B5B1EEC07848</code> <code>066ECA944CBF1B606EF411F861FE4C14</code> <code>A255F4CA3001697926E0AF716132F367</code> <code>2DA8A1D5257E46F4CBDD665F52BE3A1D</code> <code>ACFBDD1A0F3D01560DE6D16000103B92</code> <code>44B8C4BA47D6474DDE28D5FA7DE7BD05</code> <code>5814A4AFC4823DFAE6CF116AC7327BB6</code> <code>AF1C9351B143E1FCFE6FD214A18362AB</code> <code>8ED555DC090ECDBF50A6E06DA962F2F3</code> <code>954B6A8ADDEDC08948275BD38692E339</code> <code>83DE446DC5E14F45C58BFC35F135DDC0</code> <code>2D3BA6E0C434E9C529651F8A4E3CD7F1</code> <code>941C5E9FE4B4C555DCC3C0D6FC856183</code> <code>6EADE97B3062F7C2D1150A70213C228A</code> <code>87B7FFE011B0D9A573E6CD96FF6619E1</code> <code>B93F73ACAFE88A0624E8FF4EC61FF77C</code><br> <code>EF2326E4</code></td>
|
||||
<td><code>FE000100364CFD00A68FCCB95EA58EE4</code> <code>109BE9E30B132F37C0D88DB92059FDF7</code> <code>7EDE753539085094B7D23F7E4A8A7603</code> <code>075FFFFD8FEFF0BFFB09CFCE9D977A86</code> <code>17006A669B2D6CA10BF6A753A57695D2</code> <code>2165F15E95E8A1DD02452C956B350A52</code> <code>B87FB08A3093DE1068147D4103279F9E</code> <code>DB04C46E7C5ECC7F368CDC9856D40F4C</code> <code>910470ECA8EBBE71C03A6505FBD54655</code> <code>D4874E1F1A4100535A271DF64F7ED72E</code> <code>CDA7EEABA90A09D10FFF8F1B4CC2620C</code> <code>2D133D13ACF7B655A57E1D571F2998BD</code> <code>3D85977253F65AE1C3D11A56FDCE7911</code> <code>70ED80B555D8DC0FB28FBFDEC5B31EF3</code> <code>AAAEEA246B620A68EE28A475C9753DDC</code> <code>5E2AA0D372A4E353C5BEE5A84D072E39</code><br> <code>D50F900B</code></td>
|
||||
<td><code>g_a</code> diffie-hellman parameter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_time</td>
|
||||
<td>560, 4</td>
|
||||
<td><code>24107B65</code> (1702563876 in decimal)</td>
|
||||
<td><code>78127B65</code> (1702564472 in decimal)</td>
|
||||
<td>Server time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -609,34 +609,34 @@ answer = BA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608
|
|||
<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 = 126CAF2C37733F8AB4F107AAE265C797892856C5BFA1F311A4963D4F087C46DE05B38250BB0F92BD3AC47D89EC5962F9068C46B910C2C32F7F1832B1B9833562CDAE7606DD0E94564DCE3F23C3947924E1402C986AB5603D6ACDB00F4DCC3C010655719AAEF8F4C251F7782516D1B893494B79E46765B0C58775D453B0A2E003A29E46F943BE7ABD45209D735D9DE27956239770421B29EBB177DACD0971EE0AF708140CFA393CCA55A48E858A24128DF5D6283A804717DB1297FE5458CA3058155883C2145B8CD8A30A54357A8DAF0335B7C8752E228B68150DB8D5F944D2CFF1A2A6AFCB31B760A84E93640E8D7D7D62A9594425D8BDBD7F82046144587B9E</code></pre>
|
||||
<pre><code>b = 6592B40C4B5CBC072AF9D33B1E85212567F9A478365D4CE4B83E75EF4CD633F892776FB80EE860D907655D736C1699C3C882DF67B89E10E6F065DBACEA07B8BB04B65B319013CFD72C3149130FD656300613119568AD5EE8CF4AFBF00DF5E7B7730B6C032A904FD7D0803B8CB0196E628EE617BDB44369D06EDF37C6E04FA12810B763BEC03D8FE00EE7BB69AA9EEF6102EBEFD3A9627A1F8B776A5204D8A9D31CDB208A9E980B52D131B3CC4F80200CEC138DA8A5C686237BC099838136AB75906645704597AE60D74376EB7BDE60731575A898BAC9097F556417103916C6DCEB2AEA7D4E6DF591D55DEB329B8B85332A045E2C4A3EE5646607CA349B2B3018</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 = C458AD4F5CCB7FDA4FD3518CDE0AAF1611813045DD6F8D8FF21AB1FF157C13A4CD4BD90426B7EBFA4DBFB5B68E24B95BBECB9D9BBD020EAB6EEA8DB72FF990CB4502322A137AE9A54E47C62263A26E43455A4FF16E9CDF30578CE45DEF4D950B770D08674FCB6192C6543DBC4338C077C351CAFF3F43F6C73D9334CF623380C43B1B366EC7BDBB8B54A4B910A2F7D809B31096DC5A575FB399F5CD133DB4DE163217A4070C331EBF4B4E3394F0CFEF3F8735469925F3EC94C33C3B3A2D67496F28FCA7F0CDDEEA4D2478D187AAB98018F0D5C47FBEC7FFCB49BF464C9C49BAE5C23B395426BF4E30581C550FFA323F0B231A2B59AD48CC3B148F44136F8306DF</code></pre>
|
||||
<pre><code>g_b = 8E56A8EF0B54797579B15BD7757DA0EFF06ED454F5A56DEFB703CA8B7721A5B7F19EC2BE6DA3CC423014F10B045ED5A772B8EFDA8AC8F6D40A2F64FC346E7F2DE9528BE18DE6D113E393C8319CA287DC3C19211CE1177D720B2049CCBAA8C945F672684896AB17BC7CBDDC8CFE62A4DB6D56EC42A0D0F4E776851A52C1EDC6347E93FF26E28EC7FB45E3FB5FF03D10DF418E146D36E62277768080D4E9C3056D40232A7F173A28EB289036E67FBDF6153BF2F866733856ABF19417E675F902F0C8F419A3A53328A633D1B9B0CF3C68F8E445B849EC4BF8EB98DAD6FFE08F2324FE1CBAB01AC3E7540A6B5DCC7CA8317E210F1C5B830C333E70F04FD5392EBDF2</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 C7 C3 E7 6D 71 ED 38 97 67 2E 26 30
|
||||
0010 | 48 08 DB 26 D0 1C B1 F4 06 98 DB 02 D6 F5 C3 7F
|
||||
0020 | 4E D6 60 82 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | C4 58 AD 4F 5C CB 7F DA 4F D3 51 8C DE 0A AF 16
|
||||
0040 | 11 81 30 45 DD 6F 8D 8F F2 1A B1 FF 15 7C 13 A4
|
||||
0050 | CD 4B D9 04 26 B7 EB FA 4D BF B5 B6 8E 24 B9 5B
|
||||
0060 | BE CB 9D 9B BD 02 0E AB 6E EA 8D B7 2F F9 90 CB
|
||||
0070 | 45 02 32 2A 13 7A E9 A5 4E 47 C6 22 63 A2 6E 43
|
||||
0080 | 45 5A 4F F1 6E 9C DF 30 57 8C E4 5D EF 4D 95 0B
|
||||
0090 | 77 0D 08 67 4F CB 61 92 C6 54 3D BC 43 38 C0 77
|
||||
00A0 | C3 51 CA FF 3F 43 F6 C7 3D 93 34 CF 62 33 80 C4
|
||||
00B0 | 3B 1B 36 6E C7 BD BB 8B 54 A4 B9 10 A2 F7 D8 09
|
||||
00C0 | B3 10 96 DC 5A 57 5F B3 99 F5 CD 13 3D B4 DE 16
|
||||
00D0 | 32 17 A4 07 0C 33 1E BF 4B 4E 33 94 F0 CF EF 3F
|
||||
00E0 | 87 35 46 99 25 F3 EC 94 C3 3C 3B 3A 2D 67 49 6F
|
||||
00F0 | 28 FC A7 F0 CD DE EA 4D 24 78 D1 87 AA B9 80 18
|
||||
0100 | F0 D5 C4 7F BE C7 FF CB 49 BF 46 4C 9C 49 BA E5
|
||||
0110 | C2 3B 39 54 26 BF 4E 30 58 1C 55 0F FA 32 3F 0B
|
||||
0120 | 23 1A 2B 59 AD 48 CC 3B 14 8F 44 13 6F 83 06 DF</code></pre>
|
||||
<pre><code>0000 | 54 B6 43 66 B8 F9 ED 7E FD ED 7E E9 3F AD BE 6C
|
||||
0010 | 51 43 F6 39 4D 54 EA 31 25 42 43 08 9E 77 01 9C
|
||||
0020 | 06 A5 29 F0 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 8E 56 A8 EF 0B 54 79 75 79 B1 5B D7 75 7D A0 EF
|
||||
0040 | F0 6E D4 54 F5 A5 6D EF B7 03 CA 8B 77 21 A5 B7
|
||||
0050 | F1 9E C2 BE 6D A3 CC 42 30 14 F1 0B 04 5E D5 A7
|
||||
0060 | 72 B8 EF DA 8A C8 F6 D4 0A 2F 64 FC 34 6E 7F 2D
|
||||
0070 | E9 52 8B E1 8D E6 D1 13 E3 93 C8 31 9C A2 87 DC
|
||||
0080 | 3C 19 21 1C E1 17 7D 72 0B 20 49 CC BA A8 C9 45
|
||||
0090 | F6 72 68 48 96 AB 17 BC 7C BD DC 8C FE 62 A4 DB
|
||||
00A0 | 6D 56 EC 42 A0 D0 F4 E7 76 85 1A 52 C1 ED C6 34
|
||||
00B0 | 7E 93 FF 26 E2 8E C7 FB 45 E3 FB 5F F0 3D 10 DF
|
||||
00C0 | 41 8E 14 6D 36 E6 22 77 76 80 80 D4 E9 C3 05 6D
|
||||
00D0 | 40 23 2A 7F 17 3A 28 EB 28 90 36 E6 7F BD F6 15
|
||||
00E0 | 3B F2 F8 66 73 38 56 AB F1 94 17 E6 75 F9 02 F0
|
||||
00F0 | C8 F4 19 A3 A5 33 28 A6 33 D1 B9 B0 CF 3C 68 F8
|
||||
0100 | E4 45 B8 49 EC 4B F8 EB 98 DA D6 FF E0 8F 23 24
|
||||
0110 | FE 1C BA B0 1A C3 E7 54 0A 6B 5D CC 7C A8 31 7E
|
||||
0120 | 21 0F 1C 5B 83 0C 33 3E 70 F0 4F D5 39 2E BD F2</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 = BA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>g_b</td>
|
||||
<td>36, 260</td>
|
||||
<td><code>FE000100C458AD4F5CCB7FDA4FD3518C</code> <code>DE0AAF1611813045DD6F8D8FF21AB1FF</code> <code>157C13A4CD4BD90426B7EBFA4DBFB5B6</code> <code>8E24B95BBECB9D9BBD020EAB6EEA8DB7</code> <code>2FF990CB4502322A137AE9A54E47C622</code> <code>63A26E43455A4FF16E9CDF30578CE45D</code> <code>EF4D950B770D08674FCB6192C6543DBC</code> <code>4338C077C351CAFF3F43F6C73D9334CF</code> <code>623380C43B1B366EC7BDBB8B54A4B910</code> <code>A2F7D809B31096DC5A575FB399F5CD13</code> <code>3DB4DE163217A4070C331EBF4B4E3394</code> <code>F0CFEF3F8735469925F3EC94C33C3B3A</code> <code>2D67496F28FCA7F0CDDEEA4D2478D187</code> <code>AAB98018F0D5C47FBEC7FFCB49BF464C</code> <code>9C49BAE5C23B395426BF4E30581C550F</code> <code>FA323F0B231A2B59AD48CC3B148F4413</code><br> <code>6F8306DF</code></td>
|
||||
<td><code>FE0001008E56A8EF0B54797579B15BD7</code> <code>757DA0EFF06ED454F5A56DEFB703CA8B</code> <code>7721A5B7F19EC2BE6DA3CC423014F10B</code> <code>045ED5A772B8EFDA8AC8F6D40A2F64FC</code> <code>346E7F2DE9528BE18DE6D113E393C831</code> <code>9CA287DC3C19211CE1177D720B2049CC</code> <code>BAA8C945F672684896AB17BC7CBDDC8C</code> <code>FE62A4DB6D56EC42A0D0F4E776851A52</code> <code>C1EDC6347E93FF26E28EC7FB45E3FB5F</code> <code>F03D10DF418E146D36E62277768080D4</code> <code>E9C3056D40232A7F173A28EB289036E6</code> <code>7FBDF6153BF2F866733856ABF19417E6</code> <code>75F902F0C8F419A3A53328A633D1B9B0</code> <code>CF3C68F8E445B849EC4BF8EB98DAD6FF</code> <code>E08F2324FE1CBAB01AC3E7540A6B5DCC</code> <code>7CA8317E210F1C5B830C333E70F04FD5</code><br> <code>392EBDF2</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 = BA0D89B5C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED6608
|
|||
<!-- 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 = 54B64366C7C3E76D71ED3897672E26304808DB26D01CB1F40698DB02D6F5C37F4ED660820000000000000000FE000100C458AD4F5CCB7FDA4FD3518CDE0AAF1611813045DD6F8D8FF21AB1FF157C13A4CD4BD90426B7EBFA4DBFB5B68E24B95BBECB9D9BBD020EAB6EEA8DB72FF990CB4502322A137AE9A54E47C62263A26E43455A4FF16E9CDF30578CE45DEF4D950B770D08674FCB6192C6543DBC4338C077C351CAFF3F43F6C73D9334CF623380C43B1B366EC7BDBB8B54A4B910A2F7D809B31096DC5A575FB399F5CD133DB4DE163217A4070C331EBF4B4E3394F0CFEF3F8735469925F3EC94C33C3B3A2D67496F28FCA7F0CDDEEA4D2478D187AAB98018F0D5C47FBEC7FFCB49BF464C9C49BAE5C23B395426BF4E30581C550FFA323F0B231A2B59AD48CC3B148F44136F8306DF
|
||||
padding = C2BF779EF8131C3B41DF976A
|
||||
tmp_aes_key = B515F4C19BA98C5E2D01308D1D1FA78B11F004F96CCD77654B969211AE7EBF3E
|
||||
tmp_aes_iv = 764D191B929E12845057E924C8D9030841D668B8ED2E8FF9EEBCDEC5E9B9E2FA</code></pre>
|
||||
<pre><code>data = 54B64366B8F9ED7EFDED7EE93FADBE6C5143F6394D54EA31254243089E77019C06A529F00000000000000000FE0001008E56A8EF0B54797579B15BD7757DA0EFF06ED454F5A56DEFB703CA8B7721A5B7F19EC2BE6DA3CC423014F10B045ED5A772B8EFDA8AC8F6D40A2F64FC346E7F2DE9528BE18DE6D113E393C8319CA287DC3C19211CE1177D720B2049CCBAA8C945F672684896AB17BC7CBDDC8CFE62A4DB6D56EC42A0D0F4E776851A52C1EDC6347E93FF26E28EC7FB45E3FB5FF03D10DF418E146D36E62277768080D4E9C3056D40232A7F173A28EB289036E67FBDF6153BF2F866733856ABF19417E675F902F0C8F419A3A53328A633D1B9B0CF3C68F8E445B849EC4BF8EB98DAD6FFE08F2324FE1CBAB01AC3E7540A6B5DCC7CA8317E210F1C5B830C333E70F04FD5392EBDF2
|
||||
padding = 40CDB07914884091266F1ABF
|
||||
tmp_aes_key = 5028FB57D07AD7AEA070D02B26E6BDE4AB80742328D35421B99A5D37ABE9C368
|
||||
tmp_aes_iv = BF6F3CBFCFD7D76DF70B881BF7C1B98C341468E67EC78092191B35790495A8C6</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 = 334993EDFB8A0347ECD00FE17632128C09BC7BCAC6301BF445DCFE6044833117C99C9B4E89EDAD46D816C1C319541750EE8F2719703DC6DA743DA5DC6ED1AAC5F9BEE29B58030B4F1C4639FCD081F41B1B79CB1BFCE2331FB057C9161A85C6E14575CEACB5A78927827686936C2FA5FFB92AE7077CBC9E2DDE2DE99CB8FF7C655324DE5E65AB8E363FFC73FFCE9B2368FCC55CF31B0911FE0067045F6FE61739DE3B1939C3732FED9505B1E0ACB7F672C3FCAAE9CA481C5BAEACE89B0189DB733F12C97C1607AE550458068D8DB92BC7CAA0748211E6286083CD1C75D9929149C0D875F70FA0FB1694B7D7854FD04B1072A03C9975D4F9B74493CE5A9DE4EE4B63193361EE806A0A5AD28E1EEE26A215E9DB196DCBD1FDB736C8E3C9FCB34CDCBA6F95F76B5269179C398CA37A45951C100FCC94E3E4F520D106E8680CC63F4905601695D26E754B03601D2E518163B3</code></pre>
|
||||
<pre><code>encrypted_data = 976CD8BB0F4C15CE6F4600F97BE02EFBE7EFB169AAD735836FB91F978A86EE7AC31D6C2DF542ECFE71778FFADD675964E4C77E8B881E3A69BB15F93B290B3580E63E0833592290FEA95356D0364A4B274711E8E811EA34F3598EEAE1C03004C5C180E05AD9FD786A1FCB8E9F6A50135AB6CD1E333FC473CE83D2B8BE780FC957CBF12EE897B024335E03F6F16B9228FB238C850D629FD4202998F32BDFF9FC02A960F804666D52A9DF3362E12AB73C8098E7DBEA4E3D8E45E5F2080D87E7B2E9BBF7999291D9E1BF023940C5A7DEDBD7D2A3D0FBDC4EAC40069FD982537D2818EA316D51108E8B352406E29F26147DE357B087BDC3633FF2D81E0894551969A6F9F2FE6D3E082FB95C61E10914194F298B0319F72B1747C0C670CC92460BB4A932BD1A97DF3EE135393905674E97A85692ECC46C2CD0F80D080DC8E6CC50BB3A9BCEEDC4FBFB86D7C2EBD78D7DCCE4FB</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 6C 59 01 00 24 10 7B 65
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 C7 C3 E7 6D 71 ED 38 97
|
||||
0020 | 67 2E 26 30 48 08 DB 26 D0 1C B1 F4 06 98 DB 02
|
||||
0030 | D6 F5 C3 7F 4E D6 60 82 FE 50 01 00 33 49 93 ED
|
||||
0040 | FB 8A 03 47 EC D0 0F E1 76 32 12 8C 09 BC 7B CA
|
||||
0050 | C6 30 1B F4 45 DC FE 60 44 83 31 17 C9 9C 9B 4E
|
||||
0060 | 89 ED AD 46 D8 16 C1 C3 19 54 17 50 EE 8F 27 19
|
||||
0070 | 70 3D C6 DA 74 3D A5 DC 6E D1 AA C5 F9 BE E2 9B
|
||||
0080 | 58 03 0B 4F 1C 46 39 FC D0 81 F4 1B 1B 79 CB 1B
|
||||
0090 | FC E2 33 1F B0 57 C9 16 1A 85 C6 E1 45 75 CE AC
|
||||
00A0 | B5 A7 89 27 82 76 86 93 6C 2F A5 FF B9 2A E7 07
|
||||
00B0 | 7C BC 9E 2D DE 2D E9 9C B8 FF 7C 65 53 24 DE 5E
|
||||
00C0 | 65 AB 8E 36 3F FC 73 FF CE 9B 23 68 FC C5 5C F3
|
||||
00D0 | 1B 09 11 FE 00 67 04 5F 6F E6 17 39 DE 3B 19 39
|
||||
00E0 | C3 73 2F ED 95 05 B1 E0 AC B7 F6 72 C3 FC AA E9
|
||||
00F0 | CA 48 1C 5B AE AC E8 9B 01 89 DB 73 3F 12 C9 7C
|
||||
0100 | 16 07 AE 55 04 58 06 8D 8D B9 2B C7 CA A0 74 82
|
||||
0110 | 11 E6 28 60 83 CD 1C 75 D9 92 91 49 C0 D8 75 F7
|
||||
0120 | 0F A0 FB 16 94 B7 D7 85 4F D0 4B 10 72 A0 3C 99
|
||||
0130 | 75 D4 F9 B7 44 93 CE 5A 9D E4 EE 4B 63 19 33 61
|
||||
0140 | EE 80 6A 0A 5A D2 8E 1E EE 26 A2 15 E9 DB 19 6D
|
||||
0150 | CB D1 FD B7 36 C8 E3 C9 FC B3 4C DC BA 6F 95 F7
|
||||
0160 | 6B 52 69 17 9C 39 8C A3 7A 45 95 1C 10 0F CC 94
|
||||
0170 | E3 E4 F5 20 D1 06 E8 68 0C C6 3F 49 05 60 16 95
|
||||
0180 | D2 6E 75 4B 03 60 1D 2E 51 81 63 B3</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 70 96 01 00 78 12 7B 65
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 B8 F9 ED 7E FD ED 7E E9
|
||||
0020 | 3F AD BE 6C 51 43 F6 39 4D 54 EA 31 25 42 43 08
|
||||
0030 | 9E 77 01 9C 06 A5 29 F0 FE 50 01 00 97 6C D8 BB
|
||||
0040 | 0F 4C 15 CE 6F 46 00 F9 7B E0 2E FB E7 EF B1 69
|
||||
0050 | AA D7 35 83 6F B9 1F 97 8A 86 EE 7A C3 1D 6C 2D
|
||||
0060 | F5 42 EC FE 71 77 8F FA DD 67 59 64 E4 C7 7E 8B
|
||||
0070 | 88 1E 3A 69 BB 15 F9 3B 29 0B 35 80 E6 3E 08 33
|
||||
0080 | 59 22 90 FE A9 53 56 D0 36 4A 4B 27 47 11 E8 E8
|
||||
0090 | 11 EA 34 F3 59 8E EA E1 C0 30 04 C5 C1 80 E0 5A
|
||||
00A0 | D9 FD 78 6A 1F CB 8E 9F 6A 50 13 5A B6 CD 1E 33
|
||||
00B0 | 3F C4 73 CE 83 D2 B8 BE 78 0F C9 57 CB F1 2E E8
|
||||
00C0 | 97 B0 24 33 5E 03 F6 F1 6B 92 28 FB 23 8C 85 0D
|
||||
00D0 | 62 9F D4 20 29 98 F3 2B DF F9 FC 02 A9 60 F8 04
|
||||
00E0 | 66 6D 52 A9 DF 33 62 E1 2A B7 3C 80 98 E7 DB EA
|
||||
00F0 | 4E 3D 8E 45 E5 F2 08 0D 87 E7 B2 E9 BB F7 99 92
|
||||
0100 | 91 D9 E1 BF 02 39 40 C5 A7 DE DB D7 D2 A3 D0 FB
|
||||
0110 | DC 4E AC 40 06 9F D9 82 53 7D 28 18 EA 31 6D 51
|
||||
0120 | 10 8E 8B 35 24 06 E2 9F 26 14 7D E3 57 B0 87 BD
|
||||
0130 | C3 63 3F F2 D8 1E 08 94 55 19 69 A6 F9 F2 FE 6D
|
||||
0140 | 3E 08 2F B9 5C 61 E1 09 14 19 4F 29 8B 03 19 F7
|
||||
0150 | 2B 17 47 C0 C6 70 CC 92 46 0B B4 A9 32 BD 1A 97
|
||||
0160 | DF 3E E1 35 39 39 05 67 4E 97 A8 56 92 EC C4 6C
|
||||
0170 | 2C D0 F8 0D 08 0D C8 E6 CC 50 BB 3A 9B CE ED C4
|
||||
0180 | FB FB 86 D7 C2 EB D7 8D 7D CC E4 FB</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>6C59010024107B65</code></td>
|
||||
<td><code>7096010078127B65</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>56, 340</td>
|
||||
<td><code>FE500100334993EDFB8A0347ECD00FE1</code> <code>7632128C09BC7BCAC6301BF445DCFE60</code> <code>44833117C99C9B4E89EDAD46D816C1C3</code> <code>19541750EE8F2719703DC6DA743DA5DC</code> <code>6ED1AAC5F9BEE29B58030B4F1C4639FC</code> <code>D081F41B1B79CB1BFCE2331FB057C916</code> <code>1A85C6E14575CEACB5A7892782768693</code> <code>6C2FA5FFB92AE7077CBC9E2DDE2DE99C</code> <code>B8FF7C655324DE5E65AB8E363FFC73FF</code> <code>CE9B2368FCC55CF31B0911FE0067045F</code> <code>6FE61739DE3B1939C3732FED9505B1E0</code> <code>ACB7F672C3FCAAE9CA481C5BAEACE89B</code> <code>0189DB733F12C97C1607AE550458068D</code> <code>8DB92BC7CAA0748211E6286083CD1C75</code> <code>D9929149C0D875F70FA0FB1694B7D785</code> <code>4FD04B1072A03C9975D4F9B74493CE5A</code> <code>9DE4EE4B63193361EE806A0A5AD28E1E</code> <code>EE26A215E9DB196DCBD1FDB736C8E3C9</code> <code>FCB34CDCBA6F95F76B5269179C398CA3</code> <code>7A45951C100FCC94E3E4F520D106E868</code> <code>0CC63F4905601695D26E754B03601D2E</code><br> <code>518163B3</code></td>
|
||||
<td><code>FE500100976CD8BB0F4C15CE6F4600F9</code> <code>7BE02EFBE7EFB169AAD735836FB91F97</code> <code>8A86EE7AC31D6C2DF542ECFE71778FFA</code> <code>DD675964E4C77E8B881E3A69BB15F93B</code> <code>290B3580E63E0833592290FEA95356D0</code> <code>364A4B274711E8E811EA34F3598EEAE1</code> <code>C03004C5C180E05AD9FD786A1FCB8E9F</code> <code>6A50135AB6CD1E333FC473CE83D2B8BE</code> <code>780FC957CBF12EE897B024335E03F6F1</code> <code>6B9228FB238C850D629FD4202998F32B</code> <code>DFF9FC02A960F804666D52A9DF3362E1</code> <code>2AB73C8098E7DBEA4E3D8E45E5F2080D</code> <code>87E7B2E9BBF7999291D9E1BF023940C5</code> <code>A7DEDBD7D2A3D0FBDC4EAC40069FD982</code> <code>537D2818EA316D51108E8B352406E29F</code> <code>26147DE357B087BDC3633FF2D81E0894</code> <code>551969A6F9F2FE6D3E082FB95C61E109</code> <code>14194F298B0319F72B1747C0C670CC92</code> <code>460BB4A932BD1A97DF3EE13539390567</code> <code>4E97A85692ECC46C2CD0F80D080DC8E6</code> <code>CC50BB3A9BCEEDC4FBFB86D7C2EBD78D</code><br> <code>7DCCE4FB</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 = 14834A5B56996DC7A0D78F5B69CF3F3D6985802CB8DBEF13B5CEC9ACBB3A13E3356855C2F26546DCF8071B9D26A020DD9FD192A830F4B358A7412A860922E0D983F4CAB00035788F62F8E9C0F0A7CA7F1A05260C32765E5C80BC545CCFD35E8B799C1AB0D99FE5B9BE1299E4D012D5AF108DBC8C6D8C907802AD87769498AA56220A686D99D15DC66AFB66912B7509D83EB56BAF44D98D3F5236428973C7246134AF51D488B41B4DF0E1465C07EE89428C750414EADF8281F25EC4CDD9EDCD0D71BFCB61A694C0BC6D010058A754A03472FA7F91616735D4E4CC015EBFDEB338FB9FFD2FC4EF0E08A1B1CFFACBCA982570CFCA2C6F227C5C7A06A159FE1756A1</code></pre>
|
||||
<pre><code>auth_key = 823B5A4889770D05C445DFEED1D61CB2CF11F2C0642DA7794CED72BD10D2F8C0E0D6B09EE6A70DC7EAA6487908FAA91959CFDE476ADA6A4301656EA75B19A3204F6B4EC407C8CEC9F4B4EBCE941F133EC6786A74741062A6FFEC3E4DE642A3EE9F02AC306ACABBC3B62350A43097783D055941CB1128373BA6577C136A0D6FBC7976BFC4248438980CF15B952DC397C5998D93A17B683F3943089ED82FC3B3B360ADCB186BAACC2BC5388450B9E15E8F76CD2CCD7CF4763E5DB80BA8EE6961BD310D684CFAC8999E94C8AE99BD1CFE2C009640010B975484CF2A327B1BEA53D93C37968B7EC1677B1189A54836D918E3B4010CEFE009C09EE9DB98C77FA8FD92</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 80 60 87 24 10 7B 65
|
||||
0010 | 98 00 00 00 34 F7 CB 3B C7 C3 E7 6D 71 ED 38 97
|
||||
0020 | 67 2E 26 30 48 08 DB 26 D0 1C B1 F4 06 98 DB 02
|
||||
0030 | D6 F5 C3 7F 4E D6 60 82 9F 0A 50 D5 23 1D 31 B8
|
||||
0040 | 8E D0 23 B3 C8 D2 72 73</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 7C 3C BF 78 12 7B 65
|
||||
0010 | 60 00 00 00 34 F7 CB 3B B8 F9 ED 7E FD ED 7E E9
|
||||
0020 | 3F AD BE 6C 51 43 F6 39 4D 54 EA 31 25 42 43 08
|
||||
0030 | 9E 77 01 9C 06 A5 29 F0 DF 20 1E 8B 93 39 C4 F6
|
||||
0040 | 41 F8 AA 8E D8 E2 4B DB</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>0180608724107B65</code></td>
|
||||
<td><code>017C3CBF78127B65</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>98000000</code> (152 in decimal)</td>
|
||||
<td><code>60000000</code> (96 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>C7C3E76D71ED3897672E26304808DB26</code></td>
|
||||
<td><code>B8F9ED7EFDED7EE93FADBE6C5143F639</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>D01CB1F40698DB02D6F5C37F4ED66082</code></td>
|
||||
<td><code>4D54EA31254243089E77019C06A529F0</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce_hash1</td>
|
||||
<td>56, 16</td>
|
||||
<td><code>9F0A50D5231D31B88ED023B3C8D27273</code></td>
|
||||
<td><code>DF201E8B9339C4F641F8AA8ED8E24BDB</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>
|
||||
|
|
|
@ -283,11 +283,11 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/channelAdminLogEventActionChangeColor">channelAdminLogEventActionChangeColor</a></td>
|
||||
<td> </td>
|
||||
<td>The <a href="/api/colors">background profile color »</a> of a channel was changed.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/channelAdminLogEventActionChangeBackgroundEmoji">channelAdminLogEventActionChangeBackgroundEmoji</a></td>
|
||||
<td> </td>
|
||||
<td>The <a href="/api/custom-emoji">custom emoji</a> used to generate the pattern of the <a href="/api/colors">background profile color »</a> of a channel was changed.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
Loading…
Add table
Reference in a new issue