Update content of files

This commit is contained in:
GitHub Action 2024-01-17 19:52:10 +00:00
parent ed31438e0d
commit d1b31b8386
13 changed files with 282 additions and 406 deletions

View file

@ -118,7 +118,7 @@
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<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/stories.getStoryReactionsList">stories.getStoryReactionsList</a> - Get the <a href="/api/reactions">reaction</a> list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.</li>
<li>Added <a href="/method/stories.getStoryReactionsList">stories.getStoryReactionsList</a> - Get the <a href="/api/reactions">reaction</a> and interaction list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.</li>
<li>Added <a href="/method/channels.updateEmojiStatus">channels.updateEmojiStatus</a> - Set an <a href="/api/emoji-status">emoji status</a> for a channel.</li>
<li>Added <a href="/method/account.getChannelDefaultEmojiStatuses">account.getChannelDefaultEmojiStatuses</a> - Get a list of default suggested <a href="/api/emoji-status">channel emoji statuses</a>.</li>
<li>Added <a href="/method/account.getChannelRestrictedStatusEmojis">account.getChannelRestrictedStatusEmojis</a> - Returns fetch the full list of <a href="/api/custom-emoji">custom emoji IDs »</a> that cannot be used in <a href="/api/emoji-status">channel emoji statuses »</a>.</li>
@ -137,10 +137,10 @@
<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/messageMediaGiveawayResults">messageMediaGiveawayResults</a> - </li>
<li>Added <a href="/constructor/storyReaction">storyReaction</a> - </li>
<li>Added <a href="/constructor/storyReactionPublicForward">storyReactionPublicForward</a> - </li>
<li>Added <a href="/constructor/storyReactionPublicRepost">storyReactionPublicRepost</a> - </li>
<li>Added <a href="/constructor/stories.storyReactionsList">stories.storyReactionsList</a> - </li>
<li>Added <a href="/constructor/storyReaction">storyReaction</a> - How a certain peer reacted to a story</li>
<li>Added <a href="/constructor/storyReactionPublicForward">storyReactionPublicForward</a> - A certain peer has forwarded the story as a message.</li>
<li>Added <a href="/constructor/storyReactionPublicRepost">storyReactionPublicRepost</a> - A certain peer has reposted the story.</li>
<li>Added <a href="/constructor/stories.storyReactionsList">stories.storyReactionsList</a> - List of peers that reacted to or intercated with a specific <a href="/api/stories">story</a></li>
<li>Added <a href="/constructor/storyViewPublicForward">storyViewPublicForward</a> - </li>
<li>Added <a href="/constructor/storyViewPublicRepost">storyViewPublicRepost</a> - </li>
<li>Added <a href="/constructor/channelAdminLogEventActionChangePeerColor">channelAdminLogEventActionChangePeerColor</a> - </li>

View file

@ -4,34 +4,10 @@
<meta charset="utf-8">
<title>stories.storyReactionsList</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
count
int
 
reactions
Vector&lt;StoryReaction&gt;
 …">
<meta property="description" content="List of peers that reacted to or intercated with a specific story">
<meta property="og:title" content="stories.storyReactionsList">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
count
int
 
reactions
Vector&lt;StoryReaction&gt;
 …">
<meta property="og:description" content="List of peers that reacted to or intercated with a specific story">
<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">
@ -66,7 +42,8 @@ Vector&lt;StoryReaction&gt;
<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/stories.storyReactionsList" >stories.storyReactionsList</a></li></ul></div>
<h1 id="dev_page_title">stories.storyReactionsList</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>List of peers that reacted to or intercated with a specific <a href="/api/stories">story</a></p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 170 <b class="caret"></b></a>
@ -97,32 +74,38 @@ Vector&lt;StoryReaction&gt;
<tr>
<td><strong>count</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>Total number of reactions matching query</td>
</tr>
<tr>
<td><strong>reactions</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/StoryReaction">StoryReaction</a>&gt;</td>
<td> </td>
<td>List of peers that reacted to or interacted with a specific story</td>
</tr>
<tr>
<td><strong>chats</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt;</td>
<td> </td>
<td>Mentioned chats</td>
</tr>
<tr>
<td><strong>users</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt;</td>
<td> </td>
<td>Mentioned users</td>
</tr>
<tr>
<td><strong>next_offset</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/string">string</a></td>
<td> </td>
<td>If set, indicates the next offset to use to load more results by invoking <a href="/method/stories.getStoryReactionsList">stories.getStoryReactionsList</a>.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/stories.StoryReactionsList">stories.StoryReactionsList</a></p></div>
<p><a href="/type/stories.StoryReactionsList">stories.StoryReactionsList</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="#storiesgetstoryreactionslist" id="storiesgetstoryreactionslist" name="storiesgetstoryreactionslist"><i class="anchor-icon"></i></a><a href="/method/stories.getStoryReactionsList">stories.getStoryReactionsList</a></h4>
<p>Get the <a href="/api/reactions">reaction</a> and interaction list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.</p>
<p>Can only be used by channel admins.</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

@ -4,38 +4,10 @@
<meta charset="utf-8">
<title>storyReaction</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
peer_id
Peer
 
date
int
 
reaction
Reaction
 
Type
StoryReaction">
<meta property="description" content="How a certain peer reacted to a story">
<meta property="og:title" content="storyReaction">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
peer_id
Peer
 
date
int
 
reaction
Reaction
 
Type
StoryReaction">
<meta property="og:description" content="How a certain peer reacted to a story">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -70,7 +42,8 @@ StoryReaction">
<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/storyReaction" >storyReaction</a></li></ul></div>
<h1 id="dev_page_title">storyReaction</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>How a certain peer reacted to a story</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 170 <b class="caret"></b></a>
@ -96,17 +69,17 @@ StoryReaction">
<tr>
<td><strong>peer_id</strong></td>
<td style="text-align: center;"><a href="/type/Peer">Peer</a></td>
<td> </td>
<td>The peer</td>
</tr>
<tr>
<td><strong>date</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>Reaction date</td>
</tr>
<tr>
<td><strong>reaction</strong></td>
<td style="text-align: center;"><a href="/type/Reaction">Reaction</a></td>
<td> </td>
<td>The reaction</td>
</tr>
</tbody>
</table>

View file

@ -4,26 +4,10 @@
<meta charset="utf-8">
<title>storyReactionPublicForward</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
message
Message
 
Type
StoryReaction">
<meta property="description" content="A certain peer has forwarded the story as a message.">
<meta property="og:title" content="storyReactionPublicForward">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
message
Message
 
Type
StoryReaction">
<meta property="og:description" content="A certain peer has forwarded the story as a message.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -58,7 +42,8 @@ StoryReaction">
<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/storyReactionPublicForward" >storyReactionPublicForward</a></li></ul></div>
<h1 id="dev_page_title">storyReactionPublicForward</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>A certain peer has forwarded the story as a message.</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 170 <b class="caret"></b></a>
@ -84,7 +69,7 @@ StoryReaction">
<tr>
<td><strong>message</strong></td>
<td style="text-align: center;"><a href="/type/Message">Message</a></td>
<td> </td>
<td>The message with the forwarded story.</td>
</tr>
</tbody>
</table>

View file

@ -4,32 +4,10 @@
<meta charset="utf-8">
<title>storyReactionPublicRepost</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
peer_id
Peer
 
story
StoryItem
 
Type
StoryReaction">
<meta property="description" content="A certain peer has reposted the story.">
<meta property="og:title" content="storyReactionPublicRepost">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
peer_id
Peer
 
story
StoryItem
 
Type
StoryReaction">
<meta property="og:description" content="A certain peer has reposted the story.">
<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 @@ StoryReaction">
<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/storyReactionPublicRepost" >storyReactionPublicRepost</a></li></ul></div>
<h1 id="dev_page_title">storyReactionPublicRepost</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>A certain peer has reposted the story.</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 170 <b class="caret"></b></a>
@ -90,12 +69,12 @@ StoryReaction">
<tr>
<td><strong>peer_id</strong></td>
<td style="text-align: center;"><a href="/type/Peer">Peer</a></td>
<td> </td>
<td>The peer that reposted the story.</td>
</tr>
<tr>
<td><strong>story</strong></td>
<td style="text-align: center;"><a href="/type/StoryItem">StoryItem</a></td>
<td> </td>
<td>The reposted story.</td>
</tr>
</tbody>
</table>

View file

@ -4,34 +4,10 @@
<meta charset="utf-8">
<title>channels.updateEmojiStatus</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
channel
InputChannel
 
emoji_status
EmojiStatus
 
Result
Updates
Bots can use this method">
<meta property="description" content="Set an emoji status for a channel.">
<meta property="og:title" content="channels.updateEmojiStatus">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
channel
InputChannel
 
emoji_status
EmojiStatus
 
Result
Updates
Bots can use this method">
<meta property="og:description" content="Set an emoji status for a channel.">
<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">
@ -66,7 +42,8 @@ Bots can use this method">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/channels.updateEmojiStatus" >channels.updateEmojiStatus</a></li></ul></div>
<h1 id="dev_page_title">channels.updateEmojiStatus</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Set an <a href="/api/emoji-status">emoji status</a> for a channel.</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 170 <b class="caret"></b></a>
@ -100,18 +77,23 @@ Bots can use this method">
<tr>
<td><strong>channel</strong></td>
<td style="text-align: center;"><a href="/type/InputChannel">InputChannel</a></td>
<td> </td>
<td>The channel, must have at least <a href="/api/config#channel-emoji-status-level-min"><code>channel_emoji_status_level_min</code> boosts</a>.</td>
</tr>
<tr>
<td><strong>emoji_status</strong></td>
<td style="text-align: center;"><a href="/type/EmojiStatus">EmojiStatus</a></td>
<td> </td>
<td><a href="/api/emoji-status">Emoji status</a> to set</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/Updates">Updates</a></p>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3></div>
<h3><a class="anchor" href="#bots-can-use-this-method" id="bots-can-use-this-method" name="bots-can-use-this-method"><i class="anchor-icon"></i></a>Bots can use this method</h3>
<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="#emoji-status" id="emoji-status" name="emoji-status"><i class="anchor-icon"></i></a><a href="/api/emoji-status">Emoji status</a></h4>
<p>Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.</p></div>
</div>

View file

@ -86,12 +86,12 @@
<tr>
<td><strong>reaction</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/Reaction">Reaction</a></td>
<td>Get only reactions of this type (UTF8 emoji)</td>
<td>Get only reactions of this type</td>
</tr>
<tr>
<td><strong>offset</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/string">string</a></td>
<td>Offset (typically taken from the <code>next_offset</code> field of the returned <a href="/type/messages.MessageReactionsList">messages.MessageReactionsList</a>)</td>
<td>Offset for pagination (taken from the <code>next_offset</code> field of the returned <a href="/type/messages.MessageReactionsList">messages.MessageReactionsList</a>); empty in the first request.</td>
</tr>
<tr>
<td><strong>limit</strong></td>

View file

@ -82,7 +82,7 @@ Will return a list of <a href="/constructor/message">messages</a> with <code>pee
<tr>
<td><strong>offset</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Offset for <a href="/api/offsets">pagination</a>, empty string on first call, then use the <code>next_offset</code> field of the returned constructor (if present, otherwise no more results are available).</td>
</tr>
<tr>
<td><strong>limit</strong></td>

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>stories.getStoryReactionsList</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Get the reaction list of a story posted to a channel, along with the sender of each reaction. Can only be used by channel admins.">
<meta property="description" content="Get the reaction and interaction list of a story posted to a channel, along with the sender of each reaction. Can only be used by channel admins.">
<meta property="og:title" content="stories.getStoryReactionsList">
<meta property="og:image" content="">
<meta property="og:description" content="Get the reaction list of a story posted to a channel, along with the sender of each reaction. Can only be used by channel admins.">
<meta property="og:description" content="Get the reaction and interaction list of a story posted to a channel, along with the sender of each reaction. Can only be used by channel admins.">
<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="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/stories.getStoryReactionsList" >stories.getStoryReactionsList</a></li></ul></div>
<h1 id="dev_page_title">stories.getStoryReactionsList</h1>
<div id="dev_page_content"><p>Get the <a href="/api/reactions">reaction</a> list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.</p>
<div id="dev_page_content"><p>Get the <a href="/api/reactions">reaction</a> and interaction list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.</p>
<p>Can only be used by channel admins.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
@ -113,6 +113,7 @@
<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>
<h4><a class="anchor" href="#storiesstoryreactionslist" id="storiesstoryreactionslist" name="storiesstoryreactionslist"><i class="anchor-icon"></i></a><a href="/type/stories.StoryReactionsList">stories.StoryReactionsList</a></h4>
<p>List of peers that reacted to a specific <a href="/api/stories">story</a></p>
<h4><a class="anchor" href="#pagination-in-the-api" id="pagination-in-the-api" name="pagination-in-the-api"><i class="anchor-icon"></i></a><a href="/api/offsets">Pagination in the API</a></h4>
<p>How to fetch results from large lists of objects.</p>
<h4><a class="anchor" href="#message-reactions" id="message-reactions" name="message-reactions"><i class="anchor-icon"></i></a><a href="/api/reactions">Message reactions</a></h4>

View file

@ -3111,7 +3111,7 @@ Look for updates of telegram&#39;s terms of service…">
<tbody>
<tr>
<td><a href="/method/stories.getStoryReactionsList">stories.getStoryReactionsList</a></td>
<td>Get the <a href="/api/reactions">reaction</a> list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.<br><br>Can only be used by channel admins.</td>
<td>Get the <a href="/api/reactions">reaction</a> and interaction list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.<br><br>Can only be used by channel admins.</td>
</tr>
<tr>
<td><a href="/method/channels.updateEmojiStatus">channels.updateEmojiStatus</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 54 EC 0E 00 AD DB A6 65
0010 | 14 00 00 00 F1 8E 7E BE 4A 1F 70 78 42 61 33 91
0020 | FB E9 02 12 4D 75 30 58</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 A8 C7 0B 00 05 2E A8 65
0010 | 14 00 00 00 F1 8E 7E BE 59 EB 4E A1 77 C2 B0 4D
0020 | C7 A2 21 A2 C0 80 F0 A3</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>54EC0E00ADDBA665</code></td>
<td><code>A8C70B00052EA865</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>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</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 78 BD 73 AD DB A6 65
0010 | BC 00 00 00 63 24 16 05 4A 1F 70 78 42 61 33 91
0020 | FB E9 02 12 4D 75 30 58 E5 A9 5A FB 78 BB 37 48
0030 | 52 CE 9F 64 23 3E 92 3B 08 1F C8 06 21 D3 44 76
0040 | CD 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 28 AB 03 06 2E A8 65
0010 | 58 00 00 00 63 24 16 05 59 EB 4E A1 77 C2 B0 4D
0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
0030 | 7C 08 6E BA F4 74 75 86 08 19 EC DA 36 66 B5 54
0040 | A7 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>0178BD73ADDBA665</code></td>
<td><code>0128AB03062EA865</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>BC000000</code> (188 in decimal)</td>
<td><code>58000000</code> (88 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>081FC80621D34476CD000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2290087152866064077</td>
<td><code>0819ECDA3666B554A7000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1868107872638162087</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 = 2290087152866064077</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2290087152866064077 = 1183657913 * 1934754229</code></p>
<pre><code>p = 1183657913
q = 1934754229</code></pre>
<pre><code>pq = 1868107872638162087</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1868107872638162087 = 1176978853 * 1587205979</code></p>
<pre><code>p = 1176978853
q = 1587205979</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 1F C8 06 21 D3 44 76 CD 00 00 00
0010 | 04 46 8D 2F B9 00 00 00 04 73 52 01 B5 00 00 00
0020 | 4A 1F 70 78 42 61 33 91 FB E9 02 12 4D 75 30 58
0030 | E5 A9 5A FB 78 BB 37 48 52 CE 9F 64 23 3E 92 3B
0040 | F7 A5 E5 00 3D EF 52 29 BB FA 43 5F AB A6 6A 68
0050 | BE AE 53 AD 69 55 62 36 BD AE 35 F6 12 2B 4A 11
<pre><code>0000 | 95 5F F5 A9 08 19 EC DA 36 66 B5 54 A7 00 00 00
0010 | 04 46 27 45 A5 00 00 00 04 5E 9A D7 5B 00 00 00
0020 | 59 EB 4E A1 77 C2 B0 4D C7 A2 21 A2 C0 80 F0 A3
0030 | 7F 5A B2 77 88 A5 39 5E 7C 08 6E BA F4 74 75 86
0040 | 5D EE 58 8E FF 79 DA 1F E7 31 07 A1 C0 23 B6 CD
0050 | 11 3E D8 2D 68 7C 4E 37 D5 2F 24 42 83 8A 24 CB
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 = 1934754229</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>081FC80621D34476CD000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2290087152866064077</td>
<td><code>0819ECDA3666B554A7000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1868107872638162087</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>04468D2FB9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1183657913</td>
<td><code>04462745A5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1176978853</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>04735201B5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1934754229</td>
<td><code>045E9AD75B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1587205979</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>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>F7A5E5003DEF5229BBFA435FABA66A68</code> <code>BEAE53AD69556236BDAE35F6122B4A11</code></td>
<td><code>5DEE588EFF79DA1FE73107A1C023B6CD</code> <code>113ED82D687C4E37D52F2442838A24CB</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1934754229</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 = 955FF5A9081FC80621D34476CD00000004468D2FB900000004735201B50000004A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923BF7A5E5003DEF5229BBFA435FABA66A68BEAE53AD69556236BDAE35F6122B4A1102000000
random_padding_bytes = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F6BB24FB775A79ACEBD0887E8CF10704DC2AC5FF8D408DAEEB9359C188EBC019A7416DA77B6D86A1DAFB202855678E0D37144DCE108AA4D2E7A478EAAC7BE7F5</code></pre>
<pre><code>data = 955FF5A90819ECDA3666B554A700000004462745A5000000045E9AD75B00000059EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF47475865DEE588EFF79DA1FE73107A1C023B6CD113ED82D687C4E37D52F2442838A24CB02000000
random_padding_bytes = A586B9E34683FA8194230A718DF69B262AE3F6A05BC1252B1C36EA406B1A51724C7E0AAAF9B55333567509DDEC97EA483725E6114DD92D3B606BA1C1F76D5225AD0C94240D5112F5AB7C761B5A54207EA99ECE277E6970E45CCF268E</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 = B45C93ED020DC74BB8A76759F7EA69597BC8BEB3254122977B89B0FFCA380C149FFDB97001298E6755BC03222A6C0B9DA09B94657BB729A3EA33795D6F17AFB5A293CB640C39385A7A0F5ABB071CA3FAD70903565D947B0C3BE312B9F5AA76098FDFBD0E79350435600D84B23AD08271A0D858FB7A540F72714071650B43226D3C4B482D77FFF035833E3F654DA9EB81AFA60C4C1F0FEE834B15918288CFF06E40A441AB346FA9E3A1C4DF2B4EAA70E97F37B3B16343070518F359788B47F3080D5AF2A8A75542ECF7EADBC2071D9762A7C04535D4E6C3AAB8C74DB4C9F083C118271874925D103097C568E7896E02B29369788634C5181580D522C6483668C1</code></pre>
<pre><code>encrypted_data = 314F92A41A5DAFDA1FC7F0E157B935D4DF2B1F398F30697FE76B83E0F63A50282A7402EEF3F1178B0DE0B8AC34672D628E139747429ABBCEF3402EBF135E45A9A2BCB42EC268693414E830AAF0874EF6AA914EC04EF8DDAF68426F61DCAA995B625D57FFAD1CFD63374495EAF9E5AC2DA9316C90A05761833083DF5160F019315379A2F25B3F183AEF404F9B4065CE585198C635F62C4A2CD9BBFABA3E36649A20AA2617E7E84B4DD4928B1A82896596745EB0ABE6A5D4048D0D2817FED8B830357767E14C88D6F0F5120384E897EA8F13300503B6084E78D855A0EB1A6A22F8AADA95996CABB2609807479D4BA9E763265AF0C1C3489542B7C2262D9135BB9A</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 58 EC 0E 00 AD DB A6 65
0010 | 40 01 00 00 BE E4 12 D7 4A 1F 70 78 42 61 33 91
0020 | FB E9 02 12 4D 75 30 58 E5 A9 5A FB 78 BB 37 48
0030 | 52 CE 9F 64 23 3E 92 3B 04 46 8D 2F B9 00 00 00
0040 | 04 73 52 01 B5 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 B4 5C 93 ED 02 0D C7 4B B8 A7 67 59
0060 | F7 EA 69 59 7B C8 BE B3 25 41 22 97 7B 89 B0 FF
0070 | CA 38 0C 14 9F FD B9 70 01 29 8E 67 55 BC 03 22
0080 | 2A 6C 0B 9D A0 9B 94 65 7B B7 29 A3 EA 33 79 5D
0090 | 6F 17 AF B5 A2 93 CB 64 0C 39 38 5A 7A 0F 5A BB
00A0 | 07 1C A3 FA D7 09 03 56 5D 94 7B 0C 3B E3 12 B9
00B0 | F5 AA 76 09 8F DF BD 0E 79 35 04 35 60 0D 84 B2
00C0 | 3A D0 82 71 A0 D8 58 FB 7A 54 0F 72 71 40 71 65
00D0 | 0B 43 22 6D 3C 4B 48 2D 77 FF F0 35 83 3E 3F 65
00E0 | 4D A9 EB 81 AF A6 0C 4C 1F 0F EE 83 4B 15 91 82
00F0 | 88 CF F0 6E 40 A4 41 AB 34 6F A9 E3 A1 C4 DF 2B
0100 | 4E AA 70 E9 7F 37 B3 B1 63 43 07 05 18 F3 59 78
0110 | 8B 47 F3 08 0D 5A F2 A8 A7 55 42 EC F7 EA DB C2
0120 | 07 1D 97 62 A7 C0 45 35 D4 E6 C3 AA B8 C7 4D B4
0130 | C9 F0 83 C1 18 27 18 74 92 5D 10 30 97 C5 68 E7
0140 | 89 6E 02 B2 93 69 78 86 34 C5 18 15 80 D5 22 C6
0150 | 48 36 68 C1</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 C8 F3 0D 00 05 2E A8 65
0010 | 40 01 00 00 BE E4 12 D7 59 EB 4E A1 77 C2 B0 4D
0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
0030 | 7C 08 6E BA F4 74 75 86 04 46 27 45 A5 00 00 00
0040 | 04 5E 9A D7 5B 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 31 4F 92 A4 1A 5D AF DA 1F C7 F0 E1
0060 | 57 B9 35 D4 DF 2B 1F 39 8F 30 69 7F E7 6B 83 E0
0070 | F6 3A 50 28 2A 74 02 EE F3 F1 17 8B 0D E0 B8 AC
0080 | 34 67 2D 62 8E 13 97 47 42 9A BB CE F3 40 2E BF
0090 | 13 5E 45 A9 A2 BC B4 2E C2 68 69 34 14 E8 30 AA
00A0 | F0 87 4E F6 AA 91 4E C0 4E F8 DD AF 68 42 6F 61
00B0 | DC AA 99 5B 62 5D 57 FF AD 1C FD 63 37 44 95 EA
00C0 | F9 E5 AC 2D A9 31 6C 90 A0 57 61 83 30 83 DF 51
00D0 | 60 F0 19 31 53 79 A2 F2 5B 3F 18 3A EF 40 4F 9B
00E0 | 40 65 CE 58 51 98 C6 35 F6 2C 4A 2C D9 BB FA BA
00F0 | 3E 36 64 9A 20 AA 26 17 E7 E8 4B 4D D4 92 8B 1A
0100 | 82 89 65 96 74 5E B0 AB E6 A5 D4 04 8D 0D 28 17
0110 | FE D8 B8 30 35 77 67 E1 4C 88 D6 F0 F5 12 03 84
0120 | E8 97 EA 8F 13 30 05 03 B6 08 4E 78 D8 55 A0 EB
0130 | 1A 6A 22 F8 AA DA 95 99 6C AB B2 60 98 07 47 9D
0140 | 4B A9 E7 63 26 5A F0 C1 C3 48 95 42 B7 C2 26 2D
0150 | 91 35 BB 9A</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 = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>58EC0E00ADDBA665</code></td>
<td><code>C8F30D00052EA865</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 = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>04468D2FB9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1183657913</td>
<td><code>04462745A5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1176978853</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>04735201B5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1934754229</td>
<td><code>045E9AD75B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1587205979</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 = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE000100B45C93ED020DC74BB8A76759</code> <code>F7EA69597BC8BEB3254122977B89B0FF</code> <code>CA380C149FFDB97001298E6755BC0322</code> <code>2A6C0B9DA09B94657BB729A3EA33795D</code> <code>6F17AFB5A293CB640C39385A7A0F5ABB</code> <code>071CA3FAD70903565D947B0C3BE312B9</code> <code>F5AA76098FDFBD0E79350435600D84B2</code> <code>3AD08271A0D858FB7A540F7271407165</code> <code>0B43226D3C4B482D77FFF035833E3F65</code> <code>4DA9EB81AFA60C4C1F0FEE834B159182</code> <code>88CFF06E40A441AB346FA9E3A1C4DF2B</code> <code>4EAA70E97F37B3B16343070518F35978</code> <code>8B47F3080D5AF2A8A75542ECF7EADBC2</code> <code>071D9762A7C04535D4E6C3AAB8C74DB4</code> <code>C9F083C118271874925D103097C568E7</code> <code>896E02B29369788634C5181580D522C6</code><br> <code>483668C1</code></td>
<td><code>FE000100314F92A41A5DAFDA1FC7F0E1</code> <code>57B935D4DF2B1F398F30697FE76B83E0</code> <code>F63A50282A7402EEF3F1178B0DE0B8AC</code> <code>34672D628E139747429ABBCEF3402EBF</code> <code>135E45A9A2BCB42EC268693414E830AA</code> <code>F0874EF6AA914EC04EF8DDAF68426F61</code> <code>DCAA995B625D57FFAD1CFD63374495EA</code> <code>F9E5AC2DA9316C90A05761833083DF51</code> <code>60F019315379A2F25B3F183AEF404F9B</code> <code>4065CE585198C635F62C4A2CD9BBFABA</code> <code>3E36649A20AA2617E7E84B4DD4928B1A</code> <code>82896596745EB0ABE6A5D4048D0D2817</code> <code>FED8B830357767E14C88D6F0F5120384</code> <code>E897EA8F13300503B6084E78D855A0EB</code> <code>1A6A22F8AADA95996CABB2609807479D</code> <code>4BA9E763265AF0C1C3489542B7C2262D</code><br> <code>9135BB9A</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F
<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 64 2A 1D AE DB A6 65
0010 | D4 02 00 00 5C 07 E8 D0 4A 1F 70 78 42 61 33 91
0020 | FB E9 02 12 4D 75 30 58 E5 A9 5A FB 78 BB 37 48
0030 | 52 CE 9F 64 23 3E 92 3B FE 50 02 00 5C 9F 02 5A
0040 | 3A 9C 53 72 DC 10 3F 3A 64 78 81 0A 11 AD F3 A9
0050 | 5F 0D 0F 84 70 89 02 AC 7A 73 AD 0A 09 12 D9 27
0060 | D9 BB 19 0F 36 5E 75 B1 2B 31 A6 4E E5 A8 BC B2
0070 | 4C B7 94 A7 90 A7 C8 86 4C F7 B4 B7 95 2D 2D B7
0080 | 14 3D 56 91 8A D1 66 A1 03 BE 5F 96 B9 7D 0E 8B
0090 | 81 95 41 A4 F5 B6 89 B5 B5 A4 DF C6 69 66 49 82
00A0 | 6E 04 95 0E DB 30 D8 8C 2A 30 2B B8 4C F4 42 62
00B0 | DD 04 3E 07 E6 B7 89 72 E0 0B 68 5A E1 66 85 6F
00C0 | 64 C4 02 ED 98 D1 A4 AA E7 3D DF D2 7A 40 E4 E0
00D0 | 16 92 BA CB A6 12 18 31 39 4E 97 0F 06 36 07 B1
00E0 | 39 65 D0 3B E6 0F CA B4 AD 23 BE 8C F6 EF E6 86
00F0 | A4 04 BF 5B 48 9E EB 51 BC 65 46 DF 41 78 C5 D9
0100 | D4 24 4E A7 36 30 A6 05 9C 1B 84 E6 99 89 C2 7D
0110 | 00 0A F4 F6 4E 5D 25 DA 1D 9F 42 E9 9B 22 8B D0
0120 | 2B 25 25 6F 85 91 CC 22 87 5E 81 85 E7 C5 54 80
0130 | 73 75 36 62 87 80 CB 37 1E 8A 0F 1C 97 40 A1 AB
0140 | 8D E3 3B E1 D9 13 ED 1F 05 A2 B8 61 13 89 00 93
0150 | C9 B7 AD A0 28 B1 80 DC 16 8F 2F 19 F1 FC 73 5B
0160 | 44 1D D5 C2 C5 57 4E A2 AC EB FE D2 C7 D1 F0 99
0170 | 39 35 8B C4 46 A3 85 31 5C 2B F9 6C 5B 5E E0 95
0180 | 32 2D 34 EF A7 4B 8D F2 67 F3 23 2E 2B D7 6D E8
0190 | B5 48 9C 66 4C C1 FE 2C 3E EC F0 ED DA FF EC 3A
01A0 | E2 E8 A5 E2 66 3F CE 1D CA E7 A7 14 C8 D6 C4 33
01B0 | E0 49 1B E7 5D 8F 2D 55 90 B8 B2 7F CB 23 11 25
01C0 | B8 9B B2 E0 8A C8 43 13 8E 2D 82 08 2C 83 77 A7
01D0 | AF 16 78 7D 60 62 09 6A CC 02 AF 96 E0 2C 18 49
01E0 | 13 C7 7B C2 02 4D 4D 81 FD FF BB 76 A0 92 1D 3D
01F0 | A5 E8 BB 78 AD CE 3E 7D 9E 52 37 03 A6 E6 22 41
0200 | 62 46 2C A2 F8 2A DA 7D 05 80 80 53 FA 34 D9 9C
0210 | 77 CD E6 DB 03 BC F5 E0 1F 23 0A DA 21 F3 D5 8C
0220 | B9 BE 2F 48 B9 A3 B9 3F 3B 28 65 E6 CF 1E 90 40
0230 | 19 2F 59 04 D6 29 BB 18 CF 9D 3E 78 67 A1 F3 A6
0240 | F4 32 B4 27 0B C7 02 A2 E0 E7 2E A9 82 78 DD 10
0250 | 54 99 2C 1D 6D 69 9D D8 29 96 FC BC 2F 7B EF A9
0260 | E8 14 BE 37 83 28 19 8B 8E 36 E0 F2 60 BE 7B 80
0270 | 1D C2 ED 2D C7 75 BA 07 AC 65 6C 45 E2 EA D3 B3
0280 | B7 64 63 5D E5 4A 6D 82 EC 41 53 D6</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 EC 7D A1 06 2E A8 65
0010 | 8C 02 00 00 5C 07 E8 D0 59 EB 4E A1 77 C2 B0 4D
0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
0030 | 7C 08 6E BA F4 74 75 86 FE 50 02 00 01 A2 6C 8C
0040 | 77 D3 7C C8 FD A2 7A DC 77 45 30 F7 EA 13 8A EA
0050 | EB 8E 51 92 B0 86 4F 8B 45 D1 39 D0 54 73 A3 DB
0060 | FB 4C A9 67 28 84 AC 1E 9A 0D 1F BC 49 C6 05 27
0070 | 3B 11 5C 76 EA EA 93 6B FF 52 4C 49 EB 82 F7 A8
0080 | 10 FF 74 94 61 B9 F0 F8 D8 E0 3D 8D 29 8C 45 CF
0090 | F1 08 75 D6 76 1D B7 71 C7 35 9B 04 B9 34 EC 23
00A0 | 69 5E 33 70 FB 84 CF 36 9A 8F AD 08 4B 92 AC 6F
00B0 | FE 33 29 D4 BF 65 7E 4F E0 C3 8F 92 18 A7 B1 50
00C0 | BD F8 8A 7F 8E E8 BF B2 89 1E E2 AC BD C0 AC D6
00D0 | 3C 3F 1B A9 FB F0 EC 94 BD D8 B5 C2 E4 EC 71 67
00E0 | 6E 28 67 84 87 8E 80 E2 12 5E 8C 8A 14 F1 30 14
00F0 | 17 59 EF BF 59 36 FF 67 4F FB 56 CC 86 F4 39 BE
0100 | 84 76 FE 1B BB 83 BC B6 8C D2 76 7D 71 AA 47 02
0110 | 54 4B A8 1E 70 8F F3 00 34 8D 6C F0 CA 0E B1 93
0120 | 22 05 D9 4F C3 60 0B A0 35 53 28 2B 79 9E 85 75
0130 | 74 C6 0A E4 36 4F E3 34 39 E6 C8 C2 5F 7C 85 2E
0140 | 69 F2 93 87 FD 6C 85 0D CD B0 3E 10 82 23 8B 92
0150 | F8 00 31 C0 44 00 9B C2 7F 0D 54 85 B4 24 DB 93
0160 | 55 7E 93 16 C9 CB 15 FC 89 EA 11 F4 5C C5 99 0B
0170 | DF 02 E5 CC 07 2D 49 43 EA 84 A2 31 A2 58 E2 A3
0180 | 19 55 10 62 3C 96 52 FD 63 28 2F 04 AC F2 37 0A
0190 | F2 DD 56 B1 38 18 55 2F 34 D3 03 10 31 66 A5 37
01A0 | D7 1F AA 26 B5 04 62 01 48 C0 11 15 37 96 5B 26
01B0 | E8 86 90 D5 DD 85 CA 54 7D 09 9C 29 76 52 61 9E
01C0 | 4E CA 97 40 B9 9F 18 12 35 22 D6 12 24 7C C2 8D
01D0 | BB 85 93 13 28 F1 3A 00 20 CE 99 FA 0C 83 8B EE
01E0 | F5 0B 51 48 67 3C FF 45 FF EF DA 3B BA 54 5B 4E
01F0 | 8A 13 CC DE 2A 1B 65 20 E9 EA BD BE A7 3F 21 47
0200 | 2A E5 AA 03 0C D1 90 2F EF 15 43 17 B0 61 C0 E2
0210 | C7 28 14 4A 67 2A 35 8A 90 01 39 D7 F1 2E 06 28
0220 | B2 CE 5E 6B 16 AA BE 2E CE 10 82 3B 93 0E B8 7E
0230 | 40 14 DF DA 34 3B D8 0F A1 F6 AB 14 18 D1 48 0A
0240 | DE CD 5D 16 44 48 D7 FB 17 50 4E 40 84 09 52 B9
0250 | 25 CB 56 00 4A 15 68 C0 2D AB 8C C3 FE 8F 5E 41
0260 | 66 C1 98 79 35 97 23 FF E8 B6 A9 4A 0A DD 07 14
0270 | 5A 26 E6 CF 70 4E 79 1F 5F ED 94 50 67 11 3E 2C
0280 | CA AD D8 A2 CC AA 3E AF 32 BC AA C0</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 = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01642A1DAEDBA665</code></td>
<td><code>01EC7DA1062EA865</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>D4020000</code> (724 in decimal)</td>
<td><code>8C020000</code> (652 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE5002005C9F025A3A9C5372DC103F3A</code> <code>6478810A11ADF3A95F0D0F84708902AC</code> <code>7A73AD0A0912D927D9BB190F365E75B1</code> <code>2B31A64EE5A8BCB24CB794A790A7C886</code> <code>4CF7B4B7952D2DB7143D56918AD166A1</code> <code>03BE5F96B97D0E8B819541A4F5B689B5</code> <code>B5A4DFC6696649826E04950EDB30D88C</code> <code>2A302BB84CF44262DD043E07E6B78972</code> <code>E00B685AE166856F64C402ED98D1A4AA</code> <code>E73DDFD27A40E4E01692BACBA6121831</code> <code>394E970F063607B13965D03BE60FCAB4</code> <code>AD23BE8CF6EFE686A404BF5B489EEB51</code> <code>BC6546DF4178C5D9D4244EA73630A605</code> <code>9C1B84E69989C27D000AF4F64E5D25DA</code> <code>1D9F42E99B228BD02B25256F8591CC22</code> <code>875E8185E7C55480737536628780CB37</code> <code>1E8A0F1C9740A1AB8DE33BE1D913ED1F</code> <code>05A2B86113890093C9B7ADA028B180DC</code> <code>168F2F19F1FC735B441DD5C2C5574EA2</code> <code>ACEBFED2C7D1F09939358BC446A38531</code> <code>5C2BF96C5B5EE095322D34EFA74B8DF2</code> <code>67F3232E2BD76DE8B5489C664CC1FE2C</code> <code>3EECF0EDDAFFEC3AE2E8A5E2663FCE1D</code> <code>CAE7A714C8D6C433E0491BE75D8F2D55</code> <code>90B8B27FCB231125B89BB2E08AC84313</code> <code>8E2D82082C8377A7AF16787D6062096A</code> <code>CC02AF96E02C184913C77BC2024D4D81</code> <code>FDFFBB76A0921D3DA5E8BB78ADCE3E7D</code> <code>9E523703A6E6224162462CA2F82ADA7D</code> <code>05808053FA34D99C77CDE6DB03BCF5E0</code> <code>1F230ADA21F3D58CB9BE2F48B9A3B93F</code> <code>3B2865E6CF1E9040192F5904D629BB18</code> <code>CF9D3E7867A1F3A6F432B4270BC702A2</code> <code>E0E72EA98278DD1054992C1D6D699DD8</code> <code>2996FCBC2F7BEFA9E814BE378328198B</code> <code>8E36E0F260BE7B801DC2ED2DC775BA07</code> <code>AC656C45E2EAD3B3B764635DE54A6D82</code><br> <code>EC4153D6</code></td>
<td><code>FE50020001A26C8C77D37CC8FDA27ADC</code> <code>774530F7EA138AEAEB8E5192B0864F8B</code> <code>45D139D05473A3DBFB4CA9672884AC1E</code> <code>9A0D1FBC49C605273B115C76EAEA936B</code> <code>FF524C49EB82F7A810FF749461B9F0F8</code> <code>D8E03D8D298C45CFF10875D6761DB771</code> <code>C7359B04B934EC23695E3370FB84CF36</code> <code>9A8FAD084B92AC6FFE3329D4BF657E4F</code> <code>E0C38F9218A7B150BDF88A7F8EE8BFB2</code> <code>891EE2ACBDC0ACD63C3F1BA9FBF0EC94</code> <code>BDD8B5C2E4EC71676E286784878E80E2</code> <code>125E8C8A14F130141759EFBF5936FF67</code> <code>4FFB56CC86F439BE8476FE1BBB83BCB6</code> <code>8CD2767D71AA4702544BA81E708FF300</code> <code>348D6CF0CA0EB1932205D94FC3600BA0</code> <code>3553282B799E857574C60AE4364FE334</code> <code>39E6C8C25F7C852E69F29387FD6C850D</code> <code>CDB03E1082238B92F80031C044009BC2</code> <code>7F0D5485B424DB93557E9316C9CB15FC</code> <code>89EA11F45CC5990BDF02E5CC072D4943</code> <code>EA84A231A258E2A3195510623C9652FD</code> <code>63282F04ACF2370AF2DD56B13818552F</code> <code>34D303103166A537D71FAA26B5046201</code> <code>48C0111537965B26E88690D5DD85CA54</code> <code>7D099C297652619E4ECA9740B99F1812</code> <code>3522D612247CC28DBB85931328F13A00</code> <code>20CE99FA0C838BEEF50B5148673CFF45</code> <code>FFEFDA3BBA545B4E8A13CCDE2A1B6520</code> <code>E9EABDBEA73F21472AE5AA030CD1902F</code> <code>EF154317B061C0E2C728144A672A358A</code> <code>900139D7F12E0628B2CE5E6B16AABE2E</code> <code>CE10823B930EB87E4014DFDA343BD80F</code> <code>A1F6AB1418D1480ADECD5D164448D7FB</code> <code>17504E40840952B925CB56004A1568C0</code> <code>2DAB8CC3FE8F5E4166C19879359723FF</code> <code>E8B6A94A0ADD07145A26E6CF704E791F</code> <code>5FED945067113E2CCAADD8A2CCAA3EAF</code><br> <code>32BCAAC0</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 647CAF38C8D908B22E908B11522CF4688BBE6FCDD565655073E9BB81F
<!-- 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 = 5C9F025A3A9C5372DC103F3A6478810A11ADF3A95F0D0F84708902AC7A73AD0A0912D927D9BB190F365E75B12B31A64EE5A8BCB24CB794A790A7C8864CF7B4B7952D2DB7143D56918AD166A103BE5F96B97D0E8B819541A4F5B689B5B5A4DFC6696649826E04950EDB30D88C2A302BB84CF44262DD043E07E6B78972E00B685AE166856F64C402ED98D1A4AAE73DDFD27A40E4E01692BACBA6121831394E970F063607B13965D03BE60FCAB4AD23BE8CF6EFE686A404BF5B489EEB51BC6546DF4178C5D9D4244EA73630A6059C1B84E69989C27D000AF4F64E5D25DA1D9F42E99B228BD02B25256F8591CC22875E8185E7C55480737536628780CB371E8A0F1C9740A1AB8DE33BE1D913ED1F05A2B86113890093C9B7ADA028B180DC168F2F19F1FC735B441DD5C2C5574EA2ACEBFED2C7D1F09939358BC446A385315C2BF96C5B5EE095322D34EFA74B8DF267F3232E2BD76DE8B5489C664CC1FE2C3EECF0EDDAFFEC3AE2E8A5E2663FCE1DCAE7A714C8D6C433E0491BE75D8F2D5590B8B27FCB231125B89BB2E08AC843138E2D82082C8377A7AF16787D6062096ACC02AF96E02C184913C77BC2024D4D81FDFFBB76A0921D3DA5E8BB78ADCE3E7D9E523703A6E6224162462CA2F82ADA7D05808053FA34D99C77CDE6DB03BCF5E01F230ADA21F3D58CB9BE2F48B9A3B93F3B2865E6CF1E9040192F5904D629BB18CF9D3E7867A1F3A6F432B4270BC702A2E0E72EA98278DD1054992C1D6D699DD82996FCBC2F7BEFA9E814BE378328198B8E36E0F260BE7B801DC2ED2DC775BA07AC656C45E2EAD3B3B764635DE54A6D82EC4153D6
tmp_aes_key = 7B93A1F00EEADD10F04CF6DD379827C82E46E2AB1B813D85BC3FE78EE5E76006
tmp_aes_iv = A51690E02EEE7F10D8BDC322A8D6D1DE66CE3D019A392506BDCC1191F7A5E500</code></pre>
<pre><code>encrypted_answer = 01A26C8C77D37CC8FDA27ADC774530F7EA138AEAEB8E5192B0864F8B45D139D05473A3DBFB4CA9672884AC1E9A0D1FBC49C605273B115C76EAEA936BFF524C49EB82F7A810FF749461B9F0F8D8E03D8D298C45CFF10875D6761DB771C7359B04B934EC23695E3370FB84CF369A8FAD084B92AC6FFE3329D4BF657E4FE0C38F9218A7B150BDF88A7F8EE8BFB2891EE2ACBDC0ACD63C3F1BA9FBF0EC94BDD8B5C2E4EC71676E286784878E80E2125E8C8A14F130141759EFBF5936FF674FFB56CC86F439BE8476FE1BBB83BCB68CD2767D71AA4702544BA81E708FF300348D6CF0CA0EB1932205D94FC3600BA03553282B799E857574C60AE4364FE33439E6C8C25F7C852E69F29387FD6C850DCDB03E1082238B92F80031C044009BC27F0D5485B424DB93557E9316C9CB15FC89EA11F45CC5990BDF02E5CC072D4943EA84A231A258E2A3195510623C9652FD63282F04ACF2370AF2DD56B13818552F34D303103166A537D71FAA26B504620148C0111537965B26E88690D5DD85CA547D099C297652619E4ECA9740B99F18123522D612247CC28DBB85931328F13A0020CE99FA0C838BEEF50B5148673CFF45FFEFDA3BBA545B4E8A13CCDE2A1B6520E9EABDBEA73F21472AE5AA030CD1902FEF154317B061C0E2C728144A672A358A900139D7F12E0628B2CE5E6B16AABE2ECE10823B930EB87E4014DFDA343BD80FA1F6AB1418D1480ADECD5D164448D7FB17504E40840952B925CB56004A1568C02DAB8CC3FE8F5E4166C19879359723FFE8B6A94A0ADD07145A26E6CF704E791F5FED945067113E2CCAADD8A2CCAA3EAF32BCAAC0
tmp_aes_key = 2D98C430FADBBEF521A985A86D5FEC89B0D80C57012AB00E52CBDBEF385BA609
tmp_aes_iv = 252E68B91E3D4AC180E8FA4B7CC58EACA72F868303EE469B66B95D325DEE588E</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = F49BB65BD2E3AA1104F84D405179AEA24C36174BBA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008F634AD2A0F7B1C24641E17932427E4377D5E18B96CB8F2F1720B8E647322422BA52CAB7CF407CDF7A6F2EEE6E601B2E5F5D4E9DBC5BFDC4EE9DBF83C773C4FBEF197523B45840B0ACF93789C43F6CB18086D7BFAC21957AD7CC87CB5198C2E1D677F28A5987A5E0E7B11CC538B9C1758852DD393723525445233E72C070F76E6939F4233C4B9C1ABE1BE2F62AFF209B922FEB85F3E2A1C57DE5EB4E122BAE201C46A6F89D2B0E9C40F1E72C8AFA63F923978A88F3F0441D6117910D27CECE2B29C92E2AFA795CA9862181E72FFD9A46FD07A201D7CAA8A62A05F79D93EC5026290E09854E9A3B0C88530C63C404E25E9955F3CC50053519811434306F1C8F05AEDBA665C43490F6213BAD5D
answer = BA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008F634AD2A0F7B1C24641E17932427E4377D5E18B96CB8F2F1720B8E647322422BA52CAB7CF407CDF7A6F2EEE6E601B2E5F5D4E9DBC5BFDC4EE9DBF83C773C4FBEF197523B45840B0ACF93789C43F6CB18086D7BFAC21957AD7CC87CB5198C2E1D677F28A5987A5E0E7B11CC538B9C1758852DD393723525445233E72C070F76E6939F4233C4B9C1ABE1BE2F62AFF209B922FEB85F3E2A1C57DE5EB4E122BAE201C46A6F89D2B0E9C40F1E72C8AFA63F923978A88F3F0441D6117910D27CECE2B29C92E2AFA795CA9862181E72FFD9A46FD07A201D7CAA8A62A05F79D93EC5026290E09854E9A3B0C88530C63C404E25E9955F3CC50053519811434306F1C8F05AEDBA665C43490F6213BAD5D</code></pre>
<pre><code>answer_with_hash = 1AC4EED45496F12EB1552F300E6F567E749F7CE9BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100016580A48B6D7744D3C0C674241411E844E1CE29BF23763A63E3ED32DF24B969FE60C55CB1CDFFE92F45733036A5A4B0BFBFE9A1622760DA6261CC549C70858A93F073C6A6A099CE63C8084463ED0C4D1F1393A715B71895B06DB2399745B0EA303CD8AFF1B47F057930E6CA70F4F25D3D15E29E268BF9F5A0AD1DA84D216458A2CE6E6EFDC4A1F2AB214D5C8D984919050450A710857C8F625CA4361785923FEFF4089D40A4EB3DB95AA2912753CA255D7CD8BC6220610381B5D082CDF84FC2F9B46DF449FE526435E3D74347C9F19A29391DBCD2F20479F45A7B683D9843640C6589034375356F8606E8CB81CAC69D06CC012F109DF322CB3508FAD4C31A09062EA8656DF821CDED12445D
answer = BA0D89B559EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF474758603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100016580A48B6D7744D3C0C674241411E844E1CE29BF23763A63E3ED32DF24B969FE60C55CB1CDFFE92F45733036A5A4B0BFBFE9A1622760DA6261CC549C70858A93F073C6A6A099CE63C8084463ED0C4D1F1393A715B71895B06DB2399745B0EA303CD8AFF1B47F057930E6CA70F4F25D3D15E29E268BF9F5A0AD1DA84D216458A2CE6E6EFDC4A1F2AB214D5C8D984919050450A710857C8F625CA4361785923FEFF4089D40A4EB3DB95AA2912753CA255D7CD8BC6220610381B5D082CDF84FC2F9B46DF449FE526435E3D74347C9F19A29391DBCD2F20479F45A7B683D9843640C6589034375356F8606E8CB81CAC69D06CC012F109DF322CB3508FAD4C31A09062EA8656DF821CDED12445D</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 4A 1F 70 78 42 61 33 91 FB E9 02 12
0010 | 4D 75 30 58 E5 A9 5A FB 78 BB 37 48 52 CE 9F 64
0020 | 23 3E 92 3B 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 59 EB 4E A1 77 C2 B0 4D C7 A2 21 A2
0010 | C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E 7C 08 6E BA
0020 | F4 74 75 86 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 = BA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923
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 | 8F 63 4A D2 A0 F7 B1 C2 46 41 E1 79 32 42 7E 43
0140 | 77 D5 E1 8B 96 CB 8F 2F 17 20 B8 E6 47 32 24 22
0150 | BA 52 CA B7 CF 40 7C DF 7A 6F 2E EE 6E 60 1B 2E
0160 | 5F 5D 4E 9D BC 5B FD C4 EE 9D BF 83 C7 73 C4 FB
0170 | EF 19 75 23 B4 58 40 B0 AC F9 37 89 C4 3F 6C B1
0180 | 80 86 D7 BF AC 21 95 7A D7 CC 87 CB 51 98 C2 E1
0190 | D6 77 F2 8A 59 87 A5 E0 E7 B1 1C C5 38 B9 C1 75
01A0 | 88 52 DD 39 37 23 52 54 45 23 3E 72 C0 70 F7 6E
01B0 | 69 39 F4 23 3C 4B 9C 1A BE 1B E2 F6 2A FF 20 9B
01C0 | 92 2F EB 85 F3 E2 A1 C5 7D E5 EB 4E 12 2B AE 20
01D0 | 1C 46 A6 F8 9D 2B 0E 9C 40 F1 E7 2C 8A FA 63 F9
01E0 | 23 97 8A 88 F3 F0 44 1D 61 17 91 0D 27 CE CE 2B
01F0 | 29 C9 2E 2A FA 79 5C A9 86 21 81 E7 2F FD 9A 46
0200 | FD 07 A2 01 D7 CA A8 A6 2A 05 F7 9D 93 EC 50 26
0210 | 29 0E 09 85 4E 9A 3B 0C 88 53 0C 63 C4 04 E2 5E
0220 | 99 55 F3 CC 50 05 35 19 81 14 34 30 6F 1C 8F 05
0230 | AE DB A6 65</code></pre>
0130 | 01 65 80 A4 8B 6D 77 44 D3 C0 C6 74 24 14 11 E8
0140 | 44 E1 CE 29 BF 23 76 3A 63 E3 ED 32 DF 24 B9 69
0150 | FE 60 C5 5C B1 CD FF E9 2F 45 73 30 36 A5 A4 B0
0160 | BF BF E9 A1 62 27 60 DA 62 61 CC 54 9C 70 85 8A
0170 | 93 F0 73 C6 A6 A0 99 CE 63 C8 08 44 63 ED 0C 4D
0180 | 1F 13 93 A7 15 B7 18 95 B0 6D B2 39 97 45 B0 EA
0190 | 30 3C D8 AF F1 B4 7F 05 79 30 E6 CA 70 F4 F2 5D
01A0 | 3D 15 E2 9E 26 8B F9 F5 A0 AD 1D A8 4D 21 64 58
01B0 | A2 CE 6E 6E FD C4 A1 F2 AB 21 4D 5C 8D 98 49 19
01C0 | 05 04 50 A7 10 85 7C 8F 62 5C A4 36 17 85 92 3F
01D0 | EF F4 08 9D 40 A4 EB 3D B9 5A A2 91 27 53 CA 25
01E0 | 5D 7C D8 BC 62 20 61 03 81 B5 D0 82 CD F8 4F C2
01F0 | F9 B4 6D F4 49 FE 52 64 35 E3 D7 43 47 C9 F1 9A
0200 | 29 39 1D BC D2 F2 04 79 F4 5A 7B 68 3D 98 43 64
0210 | 0C 65 89 03 43 75 35 6F 86 06 E8 CB 81 CA C6 9D
0220 | 06 CC 01 2F 10 9D F3 22 CB 35 08 FA D4 C3 1A 09
0230 | 06 2E A8 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 = BA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE0001008F634AD2A0F7B1C24641E179</code> <code>32427E4377D5E18B96CB8F2F1720B8E6</code> <code>47322422BA52CAB7CF407CDF7A6F2EEE</code> <code>6E601B2E5F5D4E9DBC5BFDC4EE9DBF83</code> <code>C773C4FBEF197523B45840B0ACF93789</code> <code>C43F6CB18086D7BFAC21957AD7CC87CB</code> <code>5198C2E1D677F28A5987A5E0E7B11CC5</code> <code>38B9C1758852DD393723525445233E72</code> <code>C070F76E6939F4233C4B9C1ABE1BE2F6</code> <code>2AFF209B922FEB85F3E2A1C57DE5EB4E</code> <code>122BAE201C46A6F89D2B0E9C40F1E72C</code> <code>8AFA63F923978A88F3F0441D6117910D</code> <code>27CECE2B29C92E2AFA795CA9862181E7</code> <code>2FFD9A46FD07A201D7CAA8A62A05F79D</code> <code>93EC5026290E09854E9A3B0C88530C63</code> <code>C404E25E9955F3CC5005351981143430</code><br> <code>6F1C8F05</code></td>
<td><code>FE000100016580A48B6D7744D3C0C674</code> <code>241411E844E1CE29BF23763A63E3ED32</code> <code>DF24B969FE60C55CB1CDFFE92F457330</code> <code>36A5A4B0BFBFE9A1622760DA6261CC54</code> <code>9C70858A93F073C6A6A099CE63C80844</code> <code>63ED0C4D1F1393A715B71895B06DB239</code> <code>9745B0EA303CD8AFF1B47F057930E6CA</code> <code>70F4F25D3D15E29E268BF9F5A0AD1DA8</code> <code>4D216458A2CE6E6EFDC4A1F2AB214D5C</code> <code>8D984919050450A710857C8F625CA436</code> <code>1785923FEFF4089D40A4EB3DB95AA291</code> <code>2753CA255D7CD8BC6220610381B5D082</code> <code>CDF84FC2F9B46DF449FE526435E3D743</code> <code>47C9F19A29391DBCD2F20479F45A7B68</code> <code>3D9843640C6589034375356F8606E8CB</code> <code>81CAC69D06CC012F109DF322CB3508FA</code><br> <code>D4C31A09</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>AEDBA665</code> (1705434030 in decimal)</td>
<td><code>062EA865</code> (1705520646 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923
<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 = 66CDC1B15B4644A246D6F9C3481CD7A047AD1F0F207D4C6DF4B2E175ECD286FBBA88397DDC7447D7EF3E74BDD8D4E094FC7E646F4EC017E9D0B5B1891954F28C3FC8A2F0B94FC11B246B3714401ECD4A96894ECE5764B63B8DF2D5B4838B095771D53713675B6CF7D763F9B81C84682A0385D535C1709FADC2635A280F461A764258A0FDA95628C318D442C430268FD735850892316BD416A41E37AE60D532003D0ED7B050A1FC68CCE0183DC56C8B312F1819BB66CD8A8A3EF0CE41864B0B81BE5A701BC87D78C54B095ADB6B1B27AC016D2C9C46DE6AD1E2BB124F981612B5D1202F6F261F208E3EAA750306084A4FF0E6935C1EF938A197DC1FAD1870F3B5</code></pre>
<pre><code>b = 2E790C97AFEC39FDDFF632D55A899D103A91AF3B96E37B623D8CFB6AE218703978AE81A3FFFE06E18290E22AAF85D05C14E18985C2B7BE33DEB780739EED71B79DDEFE8892E27E5529D8827338C12B10E1D8335A1F42CAF3C55B25DD8DA6A2F6787AA1FB6C2A3E2ACB95F274D68ECF7F92D5EA7B6F2845F093346649CC7E8F8D738D8B23A88BDB796C484DC7BAC18D3AC710A41636936C4F0FDDA8AF643A1A6C2B2B2EA0A6D51D023CEBF3D4AA50649130B99DC03E0256A01F9CBE120A0FB91686269AB815B6E6B71B0527092022B44DAC38B4307FAAE6F12B838BBD04C50278E8DB061BBC62CA7E5F9AF016B16B705B943C3096EE04800D77E1DE468BCF892E</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 = 4B7743DA735677C3B32E6602490A3E07A6B60BB664C7390A029AF42471073584672354682781FB81CAA086FD16C75FE2B92884C8374D3C39524FEEBCE7E2D2E30FC9F3964D32E83A3F1B4FC20508488ADC08E971A485018F5272EBCC4206D852C00D704D2B7DCCBF64F25AF4E449325E91859C98ED8A3329DCC78E7C4EFD173198628BC06588878B16F5F7E35A021D7886FE689150C54C35897F1C72F9C6A969C07A2C15D6A23323E313F469BBD2FE2DAE8EFF73AC300F0C3CBC4CEBF4016BC8EDC288F28D7813165ED715A7AF3DEB8055ED709E6DF05AB2D0859750149403D87EF1DA7D87066AFA2D18A356A8464AF2DD81CC7F6099660CEE530E6B9A99AFD7</code></pre>
<pre><code>g_b = ADB2E31A0D4B144B226DF3D17C7C23F9326646A06C9848085B7E2ADA605F220FE05D955E5FAF4F05F173F1E34D9AA7C382E590EDD5EA22488DFAFC362A69B044D6DC95A220DADE9CDA01079093C406F80DB702A3F3175CDC5734CC5BFB94767503EEC027D92CBF86DF4665060193C0CA5F5860C0E48E9D948861F5716F545B1FD7DCB033C6AC93D62FD1627B386B0F59847953694300E20AF3E19F828852AFE0C1B87319F73FD71DD10EF5395239E5CF448B2449D97904EA242F6938A70320467FFB58C8CDE037AC21923A44E8E6F7DEFEFBB03409BABD622510359F93451AE78EE93B79D2FCC857CB58D9A2B6CA7A97935C8D41C5B8823A6F7D8C69968FF979</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 4A 1F 70 78 42 61 33 91 FB E9 02 12
0010 | 4D 75 30 58 E5 A9 5A FB 78 BB 37 48 52 CE 9F 64
0020 | 23 3E 92 3B 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 4B 77 43 DA 73 56 77 C3 B3 2E 66 02 49 0A 3E 07
0040 | A6 B6 0B B6 64 C7 39 0A 02 9A F4 24 71 07 35 84
0050 | 67 23 54 68 27 81 FB 81 CA A0 86 FD 16 C7 5F E2
0060 | B9 28 84 C8 37 4D 3C 39 52 4F EE BC E7 E2 D2 E3
0070 | 0F C9 F3 96 4D 32 E8 3A 3F 1B 4F C2 05 08 48 8A
0080 | DC 08 E9 71 A4 85 01 8F 52 72 EB CC 42 06 D8 52
0090 | C0 0D 70 4D 2B 7D CC BF 64 F2 5A F4 E4 49 32 5E
00A0 | 91 85 9C 98 ED 8A 33 29 DC C7 8E 7C 4E FD 17 31
00B0 | 98 62 8B C0 65 88 87 8B 16 F5 F7 E3 5A 02 1D 78
00C0 | 86 FE 68 91 50 C5 4C 35 89 7F 1C 72 F9 C6 A9 69
00D0 | C0 7A 2C 15 D6 A2 33 23 E3 13 F4 69 BB D2 FE 2D
00E0 | AE 8E FF 73 AC 30 0F 0C 3C BC 4C EB F4 01 6B C8
00F0 | ED C2 88 F2 8D 78 13 16 5E D7 15 A7 AF 3D EB 80
0100 | 55 ED 70 9E 6D F0 5A B2 D0 85 97 50 14 94 03 D8
0110 | 7E F1 DA 7D 87 06 6A FA 2D 18 A3 56 A8 46 4A F2
0120 | DD 81 CC 7F 60 99 66 0C EE 53 0E 6B 9A 99 AF D7</code></pre>
<pre><code>0000 | 54 B6 43 66 59 EB 4E A1 77 C2 B0 4D C7 A2 21 A2
0010 | C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E 7C 08 6E BA
0020 | F4 74 75 86 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | AD B2 E3 1A 0D 4B 14 4B 22 6D F3 D1 7C 7C 23 F9
0040 | 32 66 46 A0 6C 98 48 08 5B 7E 2A DA 60 5F 22 0F
0050 | E0 5D 95 5E 5F AF 4F 05 F1 73 F1 E3 4D 9A A7 C3
0060 | 82 E5 90 ED D5 EA 22 48 8D FA FC 36 2A 69 B0 44
0070 | D6 DC 95 A2 20 DA DE 9C DA 01 07 90 93 C4 06 F8
0080 | 0D B7 02 A3 F3 17 5C DC 57 34 CC 5B FB 94 76 75
0090 | 03 EE C0 27 D9 2C BF 86 DF 46 65 06 01 93 C0 CA
00A0 | 5F 58 60 C0 E4 8E 9D 94 88 61 F5 71 6F 54 5B 1F
00B0 | D7 DC B0 33 C6 AC 93 D6 2F D1 62 7B 38 6B 0F 59
00C0 | 84 79 53 69 43 00 E2 0A F3 E1 9F 82 88 52 AF E0
00D0 | C1 B8 73 19 F7 3F D7 1D D1 0E F5 39 52 39 E5 CF
00E0 | 44 8B 24 49 D9 79 04 EA 24 2F 69 38 A7 03 20 46
00F0 | 7F FB 58 C8 CD E0 37 AC 21 92 3A 44 E8 E6 F7 DE
0100 | FE FB B0 34 09 BA BD 62 25 10 35 9F 93 45 1A E7
0110 | 8E E9 3B 79 D2 FC C8 57 CB 58 D9 A2 B6 CA 7A 97
0120 | 93 5C 8D 41 C5 B8 82 3A 6F 7D 8C 69 96 8F F9 79</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 = BA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE0001004B7743DA735677C3B32E6602</code> <code>490A3E07A6B60BB664C7390A029AF424</code> <code>71073584672354682781FB81CAA086FD</code> <code>16C75FE2B92884C8374D3C39524FEEBC</code> <code>E7E2D2E30FC9F3964D32E83A3F1B4FC2</code> <code>0508488ADC08E971A485018F5272EBCC</code> <code>4206D852C00D704D2B7DCCBF64F25AF4</code> <code>E449325E91859C98ED8A3329DCC78E7C</code> <code>4EFD173198628BC06588878B16F5F7E3</code> <code>5A021D7886FE689150C54C35897F1C72</code> <code>F9C6A969C07A2C15D6A23323E313F469</code> <code>BBD2FE2DAE8EFF73AC300F0C3CBC4CEB</code> <code>F4016BC8EDC288F28D7813165ED715A7</code> <code>AF3DEB8055ED709E6DF05AB2D0859750</code> <code>149403D87EF1DA7D87066AFA2D18A356</code> <code>A8464AF2DD81CC7F6099660CEE530E6B</code><br> <code>9A99AFD7</code></td>
<td><code>FE000100ADB2E31A0D4B144B226DF3D1</code> <code>7C7C23F9326646A06C9848085B7E2ADA</code> <code>605F220FE05D955E5FAF4F05F173F1E3</code> <code>4D9AA7C382E590EDD5EA22488DFAFC36</code> <code>2A69B044D6DC95A220DADE9CDA010790</code> <code>93C406F80DB702A3F3175CDC5734CC5B</code> <code>FB94767503EEC027D92CBF86DF466506</code> <code>0193C0CA5F5860C0E48E9D948861F571</code> <code>6F545B1FD7DCB033C6AC93D62FD1627B</code> <code>386B0F59847953694300E20AF3E19F82</code> <code>8852AFE0C1B87319F73FD71DD10EF539</code> <code>5239E5CF448B2449D97904EA242F6938</code> <code>A70320467FFB58C8CDE037AC21923A44</code> <code>E8E6F7DEFEFBB03409BABD622510359F</code> <code>93451AE78EE93B79D2FCC857CB58D9A2</code> <code>B6CA7A97935C8D41C5B8823A6F7D8C69</code><br> <code>968FF979</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 = BA0D89B54A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923
<!-- 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 = 54B643664A1F707842613391FBE902124D753058E5A95AFB78BB374852CE9F64233E923B0000000000000000FE0001004B7743DA735677C3B32E6602490A3E07A6B60BB664C7390A029AF42471073584672354682781FB81CAA086FD16C75FE2B92884C8374D3C39524FEEBCE7E2D2E30FC9F3964D32E83A3F1B4FC20508488ADC08E971A485018F5272EBCC4206D852C00D704D2B7DCCBF64F25AF4E449325E91859C98ED8A3329DCC78E7C4EFD173198628BC06588878B16F5F7E35A021D7886FE689150C54C35897F1C72F9C6A969C07A2C15D6A23323E313F469BBD2FE2DAE8EFF73AC300F0C3CBC4CEBF4016BC8EDC288F28D7813165ED715A7AF3DEB8055ED709E6DF05AB2D0859750149403D87EF1DA7D87066AFA2D18A356A8464AF2DD81CC7F6099660CEE530E6B9A99AFD7
padding = FCCD8183562D73D311E2914E
tmp_aes_key = 7B93A1F00EEADD10F04CF6DD379827C82E46E2AB1B813D85BC3FE78EE5E76006
tmp_aes_iv = A51690E02EEE7F10D8BDC322A8D6D1DE66CE3D019A392506BDCC1191F7A5E500</code></pre>
<pre><code>data = 54B6436659EB4EA177C2B04DC7A221A2C080F0A37F5AB27788A5395E7C086EBAF47475860000000000000000FE000100ADB2E31A0D4B144B226DF3D17C7C23F9326646A06C9848085B7E2ADA605F220FE05D955E5FAF4F05F173F1E34D9AA7C382E590EDD5EA22488DFAFC362A69B044D6DC95A220DADE9CDA01079093C406F80DB702A3F3175CDC5734CC5BFB94767503EEC027D92CBF86DF4665060193C0CA5F5860C0E48E9D948861F5716F545B1FD7DCB033C6AC93D62FD1627B386B0F59847953694300E20AF3E19F828852AFE0C1B87319F73FD71DD10EF5395239E5CF448B2449D97904EA242F6938A70320467FFB58C8CDE037AC21923A44E8E6F7DEFEFBB03409BABD622510359F93451AE78EE93B79D2FCC857CB58D9A2B6CA7A97935C8D41C5B8823A6F7D8C69968FF979
padding = B906094C1C397547E2487EF2
tmp_aes_key = 2D98C430FADBBEF521A985A86D5FEC89B0D80C57012AB00E52CBDBEF385BA609
tmp_aes_iv = 252E68B91E3D4AC180E8FA4B7CC58EACA72F868303EE469B66B95D325DEE588E</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 = D1554B36ECCA5472D65131F114DB4A8FADD32E44899CA0CE66AD15FB950BA15294F4F2F734C2BFA05F1CCDE066345C5981DB5B0140B5C2CD8C62DFE4AADBE4188BA5EE5079711801D25386034EE2E1E56EB21C802A04F622BF74727D4139B46B27D2C7DE05B8417E3C1E4D3F8E6940031B6CB983044D8673DB67D1C89B62D83200E3425171B3B6A1AA0E4119233E4AB4B903383ACC83519F69230CE91D2350DD7E897E236087B3127A16F5C6C3B3DB8F3DF5B3EA1208AFED04E46752709107C0BB87123D2C3FD2D0037299AD63AE5172365A2FAAA321664AEE6743A5F192A73407C160E09FDAED2018FD6C58E8BD45C53A774380AC71F330C314B66B3E9DAB4FEE4BD4C63928B147F13A5C21B57D070BEB051DC17917C6E4E9070ECA680999130E4AFCFB64F39CD786D074808DEA226533AFE8CB9F91C458BE5F2E81B6FB74D911A2151585FF95CDA659A48E1805AF17</code></pre>
<pre><code>encrypted_data = 4FF005BF31BB1AFB6A86D3AFB20336875ADB2DD803501AD99DC3DB1BEE9625D0804B85D055566BF73B8982B4E505A1EBE3D7290EEEEDB3B66BE4656E29B9CFEBC2A3BF71B805E28F7614A4991C0B4F83EB5F9C15B2E884098803AC148E75239484E7525F2031989832F75CBDBC2204C2FB1D9AD54B503636D376F69A7F552B6006B977115655F22D653FC6784591009B2F35E82C931C83422031FD45CB66B1F15AA3578A37AF06F0161222A2C2073B37083CB5785E3307A1B5C06DEA46C708DF93A3A1DDA10A521A25DC0C6BCDD7D506E9ED9C17B9609CFC6D407AB79748EF6D7D73FC5FBA9EB1310C1E4C460FD972A8A1BE76FA451D5BF3F5B82659DAE1C50A601AE37315F216516B1035E4F9ED5F0FB39F6C8BA9FC7D32CFDDD6CD515936FE0163E980B44F3C465F19D8AED4178762133526B67FEFA64B2B5E7AAD37A4FAB8C95DA2F4D687DF42A88F0226A0621C45</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 04 0F 0A 00 AE DB A6 65
0010 | 78 01 00 00 1F 5F 04 F5 4A 1F 70 78 42 61 33 91
0020 | FB E9 02 12 4D 75 30 58 E5 A9 5A FB 78 BB 37 48
0030 | 52 CE 9F 64 23 3E 92 3B FE 50 01 00 D1 55 4B 36
0040 | EC CA 54 72 D6 51 31 F1 14 DB 4A 8F AD D3 2E 44
0050 | 89 9C A0 CE 66 AD 15 FB 95 0B A1 52 94 F4 F2 F7
0060 | 34 C2 BF A0 5F 1C CD E0 66 34 5C 59 81 DB 5B 01
0070 | 40 B5 C2 CD 8C 62 DF E4 AA DB E4 18 8B A5 EE 50
0080 | 79 71 18 01 D2 53 86 03 4E E2 E1 E5 6E B2 1C 80
0090 | 2A 04 F6 22 BF 74 72 7D 41 39 B4 6B 27 D2 C7 DE
00A0 | 05 B8 41 7E 3C 1E 4D 3F 8E 69 40 03 1B 6C B9 83
00B0 | 04 4D 86 73 DB 67 D1 C8 9B 62 D8 32 00 E3 42 51
00C0 | 71 B3 B6 A1 AA 0E 41 19 23 3E 4A B4 B9 03 38 3A
00D0 | CC 83 51 9F 69 23 0C E9 1D 23 50 DD 7E 89 7E 23
00E0 | 60 87 B3 12 7A 16 F5 C6 C3 B3 DB 8F 3D F5 B3 EA
00F0 | 12 08 AF ED 04 E4 67 52 70 91 07 C0 BB 87 12 3D
0100 | 2C 3F D2 D0 03 72 99 AD 63 AE 51 72 36 5A 2F AA
0110 | A3 21 66 4A EE 67 43 A5 F1 92 A7 34 07 C1 60 E0
0120 | 9F DA ED 20 18 FD 6C 58 E8 BD 45 C5 3A 77 43 80
0130 | AC 71 F3 30 C3 14 B6 6B 3E 9D AB 4F EE 4B D4 C6
0140 | 39 28 B1 47 F1 3A 5C 21 B5 7D 07 0B EB 05 1D C1
0150 | 79 17 C6 E4 E9 07 0E CA 68 09 99 13 0E 4A FC FB
0160 | 64 F3 9C D7 86 D0 74 80 8D EA 22 65 33 AF E8 CB
0170 | 9F 91 C4 58 BE 5F 2E 81 B6 FB 74 D9 11 A2 15 15
0180 | 85 FF 95 CD A6 59 A4 8E 18 05 AF 17</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 CC 14 06 00 06 2E A8 65
0010 | 78 01 00 00 1F 5F 04 F5 59 EB 4E A1 77 C2 B0 4D
0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
0030 | 7C 08 6E BA F4 74 75 86 FE 50 01 00 4F F0 05 BF
0040 | 31 BB 1A FB 6A 86 D3 AF B2 03 36 87 5A DB 2D D8
0050 | 03 50 1A D9 9D C3 DB 1B EE 96 25 D0 80 4B 85 D0
0060 | 55 56 6B F7 3B 89 82 B4 E5 05 A1 EB E3 D7 29 0E
0070 | EE ED B3 B6 6B E4 65 6E 29 B9 CF EB C2 A3 BF 71
0080 | B8 05 E2 8F 76 14 A4 99 1C 0B 4F 83 EB 5F 9C 15
0090 | B2 E8 84 09 88 03 AC 14 8E 75 23 94 84 E7 52 5F
00A0 | 20 31 98 98 32 F7 5C BD BC 22 04 C2 FB 1D 9A D5
00B0 | 4B 50 36 36 D3 76 F6 9A 7F 55 2B 60 06 B9 77 11
00C0 | 56 55 F2 2D 65 3F C6 78 45 91 00 9B 2F 35 E8 2C
00D0 | 93 1C 83 42 20 31 FD 45 CB 66 B1 F1 5A A3 57 8A
00E0 | 37 AF 06 F0 16 12 22 A2 C2 07 3B 37 08 3C B5 78
00F0 | 5E 33 07 A1 B5 C0 6D EA 46 C7 08 DF 93 A3 A1 DD
0100 | A1 0A 52 1A 25 DC 0C 6B CD D7 D5 06 E9 ED 9C 17
0110 | B9 60 9C FC 6D 40 7A B7 97 48 EF 6D 7D 73 FC 5F
0120 | BA 9E B1 31 0C 1E 4C 46 0F D9 72 A8 A1 BE 76 FA
0130 | 45 1D 5B F3 F5 B8 26 59 DA E1 C5 0A 60 1A E3 73
0140 | 15 F2 16 51 6B 10 35 E4 F9 ED 5F 0F B3 9F 6C 8B
0150 | A9 FC 7D 32 CF DD D6 CD 51 59 36 FE 01 63 E9 80
0160 | B4 4F 3C 46 5F 19 D8 AE D4 17 87 62 13 35 26 B6
0170 | 7F EF A6 4B 2B 5E 7A AD 37 A4 FA B8 C9 5D A2 F4
0180 | D6 87 DF 42 A8 8F 02 26 A0 62 1C 45</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>040F0A00AEDBA665</code></td>
<td><code>CC140600062EA865</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>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE500100D1554B36ECCA5472D65131F1</code> <code>14DB4A8FADD32E44899CA0CE66AD15FB</code> <code>950BA15294F4F2F734C2BFA05F1CCDE0</code> <code>66345C5981DB5B0140B5C2CD8C62DFE4</code> <code>AADBE4188BA5EE5079711801D2538603</code> <code>4EE2E1E56EB21C802A04F622BF74727D</code> <code>4139B46B27D2C7DE05B8417E3C1E4D3F</code> <code>8E6940031B6CB983044D8673DB67D1C8</code> <code>9B62D83200E3425171B3B6A1AA0E4119</code> <code>233E4AB4B903383ACC83519F69230CE9</code> <code>1D2350DD7E897E236087B3127A16F5C6</code> <code>C3B3DB8F3DF5B3EA1208AFED04E46752</code> <code>709107C0BB87123D2C3FD2D0037299AD</code> <code>63AE5172365A2FAAA321664AEE6743A5</code> <code>F192A73407C160E09FDAED2018FD6C58</code> <code>E8BD45C53A774380AC71F330C314B66B</code> <code>3E9DAB4FEE4BD4C63928B147F13A5C21</code> <code>B57D070BEB051DC17917C6E4E9070ECA</code> <code>680999130E4AFCFB64F39CD786D07480</code> <code>8DEA226533AFE8CB9F91C458BE5F2E81</code> <code>B6FB74D911A2151585FF95CDA659A48E</code><br> <code>1805AF17</code></td>
<td><code>FE5001004FF005BF31BB1AFB6A86D3AF</code> <code>B20336875ADB2DD803501AD99DC3DB1B</code> <code>EE9625D0804B85D055566BF73B8982B4</code> <code>E505A1EBE3D7290EEEEDB3B66BE4656E</code> <code>29B9CFEBC2A3BF71B805E28F7614A499</code> <code>1C0B4F83EB5F9C15B2E884098803AC14</code> <code>8E75239484E7525F2031989832F75CBD</code> <code>BC2204C2FB1D9AD54B503636D376F69A</code> <code>7F552B6006B977115655F22D653FC678</code> <code>4591009B2F35E82C931C83422031FD45</code> <code>CB66B1F15AA3578A37AF06F0161222A2</code> <code>C2073B37083CB5785E3307A1B5C06DEA</code> <code>46C708DF93A3A1DDA10A521A25DC0C6B</code> <code>CDD7D506E9ED9C17B9609CFC6D407AB7</code> <code>9748EF6D7D73FC5FBA9EB1310C1E4C46</code> <code>0FD972A8A1BE76FA451D5BF3F5B82659</code> <code>DAE1C50A601AE37315F216516B1035E4</code> <code>F9ED5F0FB39F6C8BA9FC7D32CFDDD6CD</code> <code>515936FE0163E980B44F3C465F19D8AE</code> <code>D4178762133526B67FEFA64B2B5E7AAD</code> <code>37A4FAB8C95DA2F4D687DF42A88F0226</code><br> <code>A0621C45</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 = 463DFADD541773956A3B8D566A6BB5C394E00EE3BAEB601327231378508ACC2D43128D76D800BB11BCBCD920D6B82FB3D9E913650C143567E953F71CE950920A913D9F358A441C86FDCDEF808D560F81F2DB3FF655412A0906160978FB311E2CDBDB8311261A0DB93247536870DB4C5407DE334E60719F971376CBBC18754DC201062922B3784CA38EC2961BEA96DFF839D4A33FC80B7C9BBA48E20C43F2881BA5752403F603F9E9AB3E8FB8CC41237AB8EB4AE972B85A2192822027A79F15F09AD47FD5D02ACD5739F028EEEBE9DF3AE18DD37CFB8F5938B3DA6FB682E1D6515DBD4D3DCF6380BCB03B428694A55E22D270DC6DCFF4FF85862576C4AB94E589</code></pre>
<pre><code>auth_key = 04F81FB9B944F83BB701D8BE1B11784C74E3A2ED9E9B0E9E272B1F6935EF8291E3A073C5E5AC89FEA805DFCB3F4B9C7E40D364DAD866B0E9452A265E766CE051326B7391B532170D44BA18AA5CFA97881D6B29A39F04B4D564A483902574A79E1864F702D28A922A884D3D155D73F923EBC7F975A3C7D4CA7EF123707E712EBC46E1FB8950B0A1FE36C82BE449DC734F34D76D15528FABB5A7DAD8246C7B68377471D2268045D29F58B6F5C23445526A0F5249BA622F580D2EDD9F2432F0377812F0850853C27C539C1D932006D57C9D3EE269980957B49C61C51614C9D6F288C06124A0964FDBA8BA6AA11B7E46D79FBABE69C2D2A9F9DE708F03E205E0895F</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 5C 7B 67 AE DB A6 65
0010 | A8 00 00 00 34 F7 CB 3B 4A 1F 70 78 42 61 33 91
0020 | FB E9 02 12 4D 75 30 58 E5 A9 5A FB 78 BB 37 48
0030 | 52 CE 9F 64 23 3E 92 3B 56 6A 21 4B F7 8C 64 B2
0040 | 88 07 32 FA 16 52 73 4E</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 1C FC 85 07 2E A8 65
0010 | 84 00 00 00 34 F7 CB 3B 59 EB 4E A1 77 C2 B0 4D
0020 | C7 A2 21 A2 C0 80 F0 A3 7F 5A B2 77 88 A5 39 5E
0030 | 7C 08 6E BA F4 74 75 86 80 F2 5E 86 60 70 01 35
0040 | AF AD C1 45 22 0C 7C 72</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>015C7B67AEDBA665</code></td>
<td><code>011CFC85072EA865</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>A8000000</code> (168 in decimal)</td>
<td><code>84000000</code> (132 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>4A1F707842613391FBE902124D753058</code></td>
<td><code>59EB4EA177C2B04DC7A221A2C080F0A3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>E5A95AFB78BB374852CE9F64233E923B</code></td>
<td><code>7F5AB27788A5395E7C086EBAF4747586</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>566A214BF78C64B2880732FA1652734E</code></td>
<td><code>80F25E8660700135AFADC145220C7C72</code></td>
<td>The 128 lower-order bits of SHA1 of the byte string derived from the <code>new_nonce</code> string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with <code>auth_key_aux_hash</code>. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.</td>
</tr>
</tbody>

View file

@ -4,26 +4,10 @@
<meta charset="utf-8">
<title>StoryReaction</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Constructors
Constructor
Description
storyReaction
 
storyReactionPublicForward
 
storyReactionPublicRepost
 ">
<meta property="description" content="How a certain peer reacted to or interacted with a story">
<meta property="og:title" content="StoryReaction">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
storyReaction
 
storyReactionPublicForward
 
storyReactionPublicRepost
 ">
<meta property="og:description" content="How a certain peer reacted to or interacted with a story">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -58,7 +42,8 @@ storyReactionPublicRepost
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/type/StoryReaction" >StoryReaction</a></li></ul></div>
<h1 id="dev_page_title">StoryReaction</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>How a certain peer reacted to or interacted with a story</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 170 <b class="caret"></b></a>
@ -84,15 +69,15 @@ storyReactionPublicRepost
<tbody>
<tr>
<td><a href="/constructor/storyReaction">storyReaction</a></td>
<td> </td>
<td>How a certain peer reacted to a story</td>
</tr>
<tr>
<td><a href="/constructor/storyReactionPublicForward">storyReactionPublicForward</a></td>
<td> </td>
<td>A certain peer has forwarded the story as a message.</td>
</tr>
<tr>
<td><a href="/constructor/storyReactionPublicRepost">storyReactionPublicRepost</a></td>
<td> </td>
<td>A certain peer has reposted the story.</td>
</tr>
</tbody>
</table></div>

View file

@ -4,26 +4,10 @@
<meta charset="utf-8">
<title>stories.StoryReactionsList</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Constructors
Constructor
Description
stories.storyReactionsList
 
Methods
Method
Description
stories.getStoryReactionsList…">
<meta property="description" content="List of peers that reacted to a specific story">
<meta property="og:title" content="stories.StoryReactionsList">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
stories.storyReactionsList
 
Methods
Method
Description
stories.getStoryReactionsList…">
<meta property="og:description" content="List of peers that reacted to a specific story">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -58,7 +42,8 @@ stories.getStoryReactionsList…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/type/stories.StoryReactionsList" >stories.StoryReactionsList</a></li></ul></div>
<h1 id="dev_page_title">stories.StoryReactionsList</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>List of peers that reacted to a specific <a href="/api/stories">story</a></p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 170 <b class="caret"></b></a>
@ -86,7 +71,7 @@ stories.getStoryReactionsList…">
<tbody>
<tr>
<td><a href="/constructor/stories.storyReactionsList">stories.storyReactionsList</a></td>
<td> </td>
<td>List of peers that reacted to or intercated with a specific <a href="/api/stories">story</a></td>
</tr>
</tbody>
</table>
@ -101,10 +86,13 @@ stories.getStoryReactionsList…">
<tbody>
<tr>
<td><a href="/method/stories.getStoryReactionsList">stories.getStoryReactionsList</a></td>
<td> </td>
<td>Get the <a href="/api/reactions">reaction</a> and interaction list of a <a href="/api/stories">story</a> posted to a channel, along with the sender of each reaction.<br><br>Can only be used by channel admins.</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="#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>