Update content of files

This commit is contained in:
GitHub Action 2024-07-02 17:10:11 +00:00
parent 1c9c3a9a98
commit 6b1ecc8b3c
27 changed files with 299 additions and 483 deletions

View file

@ -341,6 +341,7 @@ This method can be used to fetch info about a not-yet-cached business connection
<li><a href="/method/messages.sendMultiMedia">messages.sendMultiMedia</a></li>
<li><a href="/method/messages.setTyping">messages.setTyping</a></li>
</ul>
<p><a href="/method/messages.uploadMedia">messages.uploadMedia</a> may also be used in business connections, <em>not</em> by wrapping it in <a href="/constructor/invokeWithBusinessConnection">invokeWithBusinessConnection »</a>, but rather by specifying the business connection ID in the <code>business_connection_id</code> parameter.</p>
<p><a href="/constructor/message">Message</a>s sent by business bots on behalf of the user using this method will have the <code>via_business_connection</code> flag set, indicating that the message was sent by the business bot indicated in <a href="/constructor/message">message</a>.<code>via_bot_id</code>.</p></div>
</div>

View file

@ -441,7 +441,7 @@
<li>Added <a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a> - Rename a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. </li>
<li>Added <a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a> - Completely delete a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. </li>
<li>Added <a href="/method/messages.getQuickReplyMessages">messages.getQuickReplyMessages</a> - Fetch (a subset or all) messages in a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</li>
<li>Added <a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a> - </li>
<li>Added <a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a> - Send a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</li>
<li>Added <a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a> - Delete one or more messages from a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. This will also emit an <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> update.</li>
<li>Added <a href="/method/account.updateConnectedBot">account.updateConnectedBot</a> - Connect a <a href="/api/business#connected-bots">business bot »</a> to the current account, or to change the current connection settings.</li>
<li>Added <a href="/method/account.getConnectedBots">account.getConnectedBots</a> - List all currently connected <a href="/api/business#connected-bots">business bots »</a></li>

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>account.getConnectedBots</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="List all currently connected business bots &amp;raquo;">
<meta property="description" content="List all currently connected business bots »">
<meta property="og:title" content="account.getConnectedBots">
<meta property="og:image" content="">
<meta property="og:description" content="List all currently connected business bots &amp;raquo;">
<meta property="og:description" content="List all currently connected business bots »">
<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">

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>account.toggleConnectedBotPaused</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Pause or unpause a specific chat, temporarily disconnecting it from all business bots &amp;raquo;.">
<meta property="description" content="Pause or unpause a specific chat, temporarily disconnecting it from all business bots ».">
<meta property="og:title" content="account.toggleConnectedBotPaused">
<meta property="og:image" content="">
<meta property="og:description" content="Pause or unpause a specific chat, temporarily disconnecting it from all business bots &amp;raquo;.">
<meta property="og:description" content="Pause or unpause a specific chat, temporarily disconnecting it from all business bots ».">
<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">

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>account.updateConnectedBot</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Connect a business bot &amp;raquo; to the current account, or to change the current connection settings.">
<meta property="description" content="Connect a business bot » to the current account, or to change the current connection settings.">
<meta property="og:title" content="account.updateConnectedBot">
<meta property="og:image" content="">
<meta property="og:description" content="Connect a business bot &amp;raquo; to the current account, or to change the current connection settings.">
<meta property="og:description" content="Connect a business bot » to the current account, or to change the current connection settings.">
<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/account.updateConnectedBot" >account.updateConnectedBot</a></li></ul></div>
<h1 id="dev_page_title">account.updateConnectedBot</h1>
<div id="dev_page_content"><p>Connect a <a href="/api/business#connected-bots">business bot »</a> to the current account, or to change the current connection settings. </p>
<div id="dev_page_content"><p>Connect a <a href="/api/business#connected-bots">business bot »</a> to the current account, or to change the current connection settings.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>channels.setEmojiStickers</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Set a custom emoji stickerset for supergroups. Only usable after reaching at least the boost level &amp;raquo; specified in the group_emoji_stickers_level_min &amp;raquo; config parameter.">
<meta property="description" content="Set a custom emoji stickerset for supergroups. Only usable after reaching at least the boost level » specified in the group_emoji_stickers_level_min » config parameter.">
<meta property="og:title" content="channels.setEmojiStickers">
<meta property="og:image" content="">
<meta property="og:description" content="Set a custom emoji stickerset for supergroups. Only usable after reaching at least the boost level &amp;raquo; specified in the group_emoji_stickers_level_min &amp;raquo; config parameter.">
<meta property="og:description" content="Set a custom emoji stickerset for supergroups. Only usable after reaching at least the boost level » specified in the group_emoji_stickers_level_min » config parameter.">
<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">

View file

@ -4,24 +4,10 @@
<meta charset="utf-8">
<title>help.getTimezonesList</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
hash
int
Hash for pagination, for more info click here.
Note: the usual hash generation…">
<meta property="description" content="Returns timezone information that may be used elsewhere in the API, such as to set Telegram Business opening hours ».">
<meta property="og:title" content="help.getTimezonesList">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
hash
int
Hash for pagination, for more info click here.
Note: the usual hash generation…">
<meta property="og:description" content="Returns timezone information that may be used elsewhere in the API, such as to set Telegram Business opening hours ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -56,7 +42,8 @@ Note: the usual hash generation…">
<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/help.getTimezonesList" >help.getTimezonesList</a></li></ul></div>
<h1 id="dev_page_title">help.getTimezonesList</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Returns timezone information that may be used elsewhere in the API, such as to set <a href="/api/business#opening-hours">Telegram Business opening hours »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
@ -94,7 +81,9 @@ Note: the usual hash generation…">
<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="#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="#helptimezoneslist" id="helptimezoneslist" name="helptimezoneslist"><i class="anchor-icon"></i></a><a href="/constructor/help.timezonesList">help.timezonesList</a></h4></div>
<h4><a class="anchor" href="#helptimezoneslist" id="helptimezoneslist" name="helptimezoneslist"><i class="anchor-icon"></i></a><a href="/constructor/help.timezonesList">help.timezonesList</a></h4>
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p></div>
</div>

View file

@ -127,7 +127,7 @@
<tr>
<td><strong>quick_reply_shortcut_id</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.17?<a href="/type/int">int</a></td>
<td> </td>
<td>If specified, edits a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut message, instead »</a>.</td>
</tr>
</tbody>
</table>
@ -345,7 +345,9 @@
<h4><a class="anchor" href="#styled-text-with-message-entities" id="styled-text-with-message-entities" name="styled-text-with-message-entities"><i class="anchor-icon"></i></a><a href="/api/entities">Styled text with message entities</a></h4>
<p>How to create styled text with message entities</p>
<h4><a class="anchor" href="#scheduled-messages" id="scheduled-messages" name="scheduled-messages"><i class="anchor-icon"></i></a><a href="/api/scheduled-messages">Scheduled messages</a></h4>
<p>Telegram allows scheduling messages</p></div>
<p>Telegram allows scheduling messages</p>
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p></div>
</div>

View file

@ -4,36 +4,10 @@
<meta charset="utf-8">
<title>messages.getQuickReplyMessages</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
shortcut_id
int
 
id
flags.0?Vector&lt;int&gt;
 
hash…">
<meta property="description" content="Fetch (a subset or all) messages in a quick reply shortcut ».">
<meta property="og:title" content="messages.getQuickReplyMessages">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
shortcut_id
int
 
id
flags.0?Vector&lt;int&gt;
 
hash…">
<meta property="og:description" content="Fetch (a subset or all) messages in a quick reply shortcut ».">
<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">
@ -68,7 +42,8 @@ hash…">
<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/messages.getQuickReplyMessages" >messages.getQuickReplyMessages</a></li></ul></div>
<h1 id="dev_page_title">messages.getQuickReplyMessages</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Fetch (a subset or all) messages in a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
@ -104,12 +79,12 @@ hash…">
<tr>
<td><strong>shortcut_id</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>Quick reply shortcut ID.</td>
</tr>
<tr>
<td><strong>id</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt;</td>
<td> </td>
<td>IDs of the messages to fetch, if empty fetches all of them.</td>
</tr>
<tr>
<td><strong>hash</strong></td>
@ -139,7 +114,9 @@ hash…">
</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="#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></div>
<p>How to fetch results from large lists of objects.</p>
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p></div>
</div>

View file

@ -137,7 +137,7 @@
<tr>
<td><strong>quick_reply_shortcut</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a></td>
<td> </td>
<td>Add the message to the specified <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>, instead.</td>
</tr>
</tbody>
</table>
@ -337,6 +337,8 @@
<p>Current configuration</p>
<h4><a class="anchor" href="#messagesgetinlinebotresults" id="messagesgetinlinebotresults" name="messagesgetinlinebotresults"><i class="anchor-icon"></i></a><a href="/method/messages.getInlineBotResults">messages.getInlineBotResults</a></h4>
<p>Query an inline bot</p>
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p>
<h4><a class="anchor" href="#discussion-groups" id="discussion-groups" name="discussion-groups"><i class="anchor-icon"></i></a><a href="/api/discussion">Discussion groups</a></h4>
<p>Groups can be associated to a channel as a discussion group, to allow users to discuss about posts.</p>
<h4><a class="anchor" href="#styled-text-with-message-entities" id="styled-text-with-message-entities" name="styled-text-with-message-entities"><i class="anchor-icon"></i></a><a href="/api/entities">Styled text with message entities</a></h4>

View file

@ -157,7 +157,7 @@
<tr>
<td><strong>quick_reply_shortcut</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a></td>
<td> </td>
<td>Add the message to the specified <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>, instead.</td>
</tr>
<tr>
<td><strong>effect</strong></td>
@ -598,6 +598,8 @@
<p>How to create styled text with message entities</p>
<h4><a class="anchor" href="#scheduled-messages" id="scheduled-messages" name="scheduled-messages"><i class="anchor-icon"></i></a><a href="/api/scheduled-messages">Scheduled messages</a></h4>
<p>Telegram allows scheduling messages</p>
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p>
<h4><a class="anchor" href="#discussion-groups" id="discussion-groups" name="discussion-groups"><i class="anchor-icon"></i></a><a href="/api/discussion">Discussion groups</a></h4>
<p>Groups can be associated to a channel as a discussion group, to allow users to discuss about posts.</p>
<h4><a class="anchor" href="#file-references" id="file-references" name="file-references"><i class="anchor-icon"></i></a><a href="/api/file_reference">File references</a></h4>

View file

@ -137,7 +137,7 @@
<tr>
<td><strong>quick_reply_shortcut</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.17?<a href="/type/InputQuickReplyShortcut">InputQuickReplyShortcut</a></td>
<td> </td>
<td>Add the message to the specified <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>, instead.</td>
</tr>
<tr>
<td><strong>effect</strong></td>
@ -283,6 +283,8 @@
<p>Telegram clients support displaying static and animated stickers.</p>
<h4><a class="anchor" href="#messagesuploadmedia" id="messagesuploadmedia" name="messagesuploadmedia"><i class="anchor-icon"></i></a><a href="/method/messages.uploadMedia">messages.uploadMedia</a></h4>
<p>Upload a file and associate it to a chat (without actually sending it to the chat)</p>
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p>
<h4><a class="anchor" href="#uploading-and-downloading-files" id="uploading-and-downloading-files" name="uploading-and-downloading-files"><i class="anchor-icon"></i></a><a href="/api/files">Uploading and Downloading Files</a></h4>
<p>How to transfer large data batches correctly.</p>
<h4><a class="anchor" href="#styled-text-with-message-entities" id="styled-text-with-message-entities" name="styled-text-with-message-entities"><i class="anchor-icon"></i></a><a href="/api/entities">Styled text with message entities</a></h4>

View file

@ -4,44 +4,10 @@
<meta charset="utf-8">
<title>messages.sendQuickReplyMessages</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
peer
InputPeer
 
shortcut_id
int
 
id
Vector&lt;int&gt;
 
random_id
Vector&lt;long&gt;
 
Result
Updates…">
<meta property="description" content="Send a quick reply shortcut ».">
<meta property="og:title" content="messages.sendQuickReplyMessages">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
peer
InputPeer
 
shortcut_id
int
 
id
Vector&lt;int&gt;
 
random_id
Vector&lt;long&gt;
 
Result
Updates…">
<meta property="og:description" content="Send a quick reply shortcut ».">
<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">
@ -76,7 +42,8 @@ Updates…">
<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/messages.sendQuickReplyMessages" >messages.sendQuickReplyMessages</a></li></ul></div>
<h1 id="dev_page_title">messages.sendQuickReplyMessages</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Send a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
@ -110,22 +77,22 @@ Updates…">
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
<td> </td>
<td>The peer where to send the shortcut (users only, for now).</td>
</tr>
<tr>
<td><strong>shortcut_id</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>The ID of the quick reply shortcut to send.</td>
</tr>
<tr>
<td><strong>id</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt;</td>
<td> </td>
<td>Specify a subset of messages from the shortcut to send; if empty, defaults to all of them.</td>
</tr>
<tr>
<td><strong>random_id</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/long">long</a>&gt;</td>
<td> </td>
<td>Unique client IDs required to prevent message resending, one for each message we're sending, may be empty (but not recommended).</td>
</tr>
</tbody>
</table>
@ -147,7 +114,10 @@ Updates…">
<td>The provided peer id is invalid.</td>
</tr>
</tbody>
</table></div>
</table>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p></div>
</div>

View file

@ -91,7 +91,7 @@
<tr>
<td><strong>business_connection_id</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>Whether the media will be used only in the specified <a href="/api/business#connected-bots">business connection »</a>, and not directly by the bot.</td>
</tr>
<tr>
<td><strong>peer</strong></td>
@ -211,6 +211,8 @@
</table>
<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="#business" id="business" name="business"><i class="anchor-icon"></i></a><a href="/api/business">Business</a></h4>
<p>Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.</p>
<h4><a class="anchor" href="#inputpeerempty" id="inputpeerempty" name="inputpeerempty"><i class="anchor-icon"></i></a><a href="/constructor/inputPeerEmpty">inputPeerEmpty</a></h4>
<p>An empty constructor, no user or chat is defined.</p>
<h4><a class="anchor" href="#inputpeerself" id="inputpeerself" name="inputpeerself"><i class="anchor-icon"></i></a><a href="/constructor/inputPeerSelf">inputPeerSelf</a></h4>

View file

@ -4,36 +4,10 @@
<meta charset="utf-8">
<title>smsjobs.finishJob</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
job_id
string
 
error
flags.0?string
 
Result…">
<meta property="description" content="Finish an SMS job (official clients only).">
<meta property="og:title" content="smsjobs.finishJob">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
job_id
string
 
error
flags.0?string
 
Result…">
<meta property="og:description" content="Finish an SMS job (official clients only).">
<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">
@ -68,7 +42,8 @@ Result…">
<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/smsjobs.finishJob" >smsjobs.finishJob</a></li></ul></div>
<h1 id="dev_page_title">smsjobs.finishJob</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Finish an SMS job (official clients only).</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
@ -102,12 +77,12 @@ Result…">
<tr>
<td><strong>job_id</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Job ID.</td>
</tr>
<tr>
<td><strong>error</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 failed, the error.</td>
</tr>
</tbody>
</table>

View file

@ -4,38 +4,10 @@
<meta charset="utf-8">
<title>smsjobs.getSmsJob</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
job_id
string
 
Result
SmsJob
Possible errors
Code
Type
Description
400
SMSJOB_ID_INVALID…">
<meta property="description" content="Get info about an SMS job (official clients only).">
<meta property="og:title" content="smsjobs.getSmsJob">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
job_id
string
 
Result
SmsJob
Possible errors
Code
Type
Description
400
SMSJOB_ID_INVALID…">
<meta property="og:description" content="Get info about an SMS job (official clients only).">
<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 @@ SMSJOB_ID_INVALID…">
<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/smsjobs.getSmsJob" >smsjobs.getSmsJob</a></li></ul></div>
<h1 id="dev_page_title">smsjobs.getSmsJob</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Get info about an SMS job (official clients only).</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>

View file

@ -4,24 +4,10 @@
<meta charset="utf-8">
<title>smsjobs.getStatus</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
This constructor does not require any parameters.
Result
smsjobs.Status
Possible errors
Code
Type
Description…">
<meta property="description" content="Get SMS jobs status (official clients only).">
<meta property="og:title" content="smsjobs.getStatus">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
This constructor does not require any parameters.
Result
smsjobs.Status
Possible errors
Code
Type
Description…">
<meta property="og:description" content="Get SMS jobs status (official clients only).">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -56,7 +42,8 @@ Description…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/smsjobs.getStatus" >smsjobs.getStatus</a></li></ul></div>
<h1 id="dev_page_title">smsjobs.getStatus</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Get SMS jobs status (official clients only).</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>

View file

@ -4,22 +4,10 @@
<meta charset="utf-8">
<title>smsjobs.isEligibleToJoin</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
This constructor does not require any parameters.
Result
smsjobs.EligibilityToJoin
Possible errors
Code
Type…">
<meta property="description" content="Check if we can process SMS jobs (official clients only).">
<meta property="og:title" content="smsjobs.isEligibleToJoin">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
This constructor does not require any parameters.
Result
smsjobs.EligibilityToJoin
Possible errors
Code
Type…">
<meta property="og:description" content="Check if we can process SMS jobs (official clients only).">
<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">
@ -54,7 +42,8 @@ Type…">
<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/smsjobs.isEligibleToJoin" >smsjobs.isEligibleToJoin</a></li></ul></div>
<h1 id="dev_page_title">smsjobs.isEligibleToJoin</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Check if we can process SMS jobs (official clients only).</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>

View file

@ -4,28 +4,10 @@
<meta charset="utf-8">
<title>smsjobs.join</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
This constructor does not require any parameters.
Result
Bool
Possible errors
Code
Type
Description
400
NOT_ELIGIBLE…">
<meta property="description" content="Enable SMS jobs (official clients only).">
<meta property="og:title" content="smsjobs.join">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
This constructor does not require any parameters.
Result
Bool
Possible errors
Code
Type
Description
400
NOT_ELIGIBLE…">
<meta property="og:description" content="Enable SMS jobs (official clients only).">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -60,7 +42,8 @@ NOT_ELIGIBLE…">
<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/smsjobs.join" >smsjobs.join</a></li></ul></div>
<h1 id="dev_page_title">smsjobs.join</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Enable SMS jobs (official clients only).</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>

View file

@ -4,28 +4,10 @@
<meta charset="utf-8">
<title>smsjobs.leave</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
This constructor does not require any parameters.
Result
Bool
Possible errors
Code
Type
Description
400
NOT_JOINED…">
<meta property="description" content="Disable SMS jobs (official clients only).">
<meta property="og:title" content="smsjobs.leave">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
This constructor does not require any parameters.
Result
Bool
Possible errors
Code
Type
Description
400
NOT_JOINED…">
<meta property="og:description" content="Disable SMS jobs (official clients only).">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -60,7 +42,8 @@ NOT_JOINED…">
<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/smsjobs.leave" >smsjobs.leave</a></li></ul></div>
<h1 id="dev_page_title">smsjobs.leave</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Disable SMS jobs (official clients only).</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>

View file

@ -4,32 +4,10 @@
<meta charset="utf-8">
<title>smsjobs.updateSettings</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
allow_international
flags.0?true
 
Result
Bool…">
<meta property="description" content="Update SMS job settings (official clients only).">
<meta property="og:title" content="smsjobs.updateSettings">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
allow_international
flags.0?true
 
Result
Bool…">
<meta property="og:description" content="Update SMS job settings (official clients only).">
<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 @@ Bool…">
<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/smsjobs.updateSettings" >smsjobs.updateSettings</a></li></ul></div>
<h1 id="dev_page_title">smsjobs.updateSettings</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Update SMS job settings (official clients only).</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
<a class="dropdown-toggle" onclick="return dropdownClick(this, event)" href="#">Layer 181 <b class="caret"></b></a>
@ -98,7 +77,7 @@ Bool…">
<tr>
<td><strong>allow_international</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>Allow international numbers?</td>
</tr>
</tbody>
</table>

View file

@ -3262,7 +3262,7 @@ Look for updates of telegram&#39;s terms of service…">
</tr>
<tr>
<td><a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a></td>
<td> </td>
<td>Send a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</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 28 A6 0A 00 39 2D 84 66
0010 | 14 00 00 00 F1 8E 7E BE 1A 94 A9 17 FE BC 44 54
0020 | 8A E7 C4 3D 89 59 88 62</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 04 57 05 00 32 33 84 66
0010 | 14 00 00 00 F1 8E 7E BE 67 F6 E1 F4 DA E0 9F 02
0020 | 21 53 DD D2 73 3C 2E 26</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>28A60A00392D8466</code></td>
<td><code>0457050032338466</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>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</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 D0 D3 39 2D 84 66
0010 | AC 00 00 00 63 24 16 05 1A 94 A9 17 FE BC 44 54
0020 | 8A E7 C4 3D 89 59 88 62 43 F0 01 27 70 6C 84 C2
0030 | D5 A5 4D 2F F3 BB 47 F9 08 23 1B 8A 9B F4 50 30
0040 | 61 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 38 07 FD 32 33 84 66
0010 | 9C 00 00 00 63 24 16 05 67 F6 E1 F4 DA E0 9F 02
0020 | 21 53 DD D2 73 3C 2E 26 80 EF C4 FA AE 09 0C 46
0030 | 7E DE 04 9A 55 81 12 3E 08 18 9F 8E C6 EE E0 55
0040 | C5 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>01F8D0D3392D8466</code></td>
<td><code>013807FD32338466</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>AC000000</code> (172 in decimal)</td>
<td><code>9C000000</code> (156 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>08231B8A9BF4503061000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2529768018122125409</td>
<td><code>08189F8EC6EEE055C5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1774293763269612997</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 = 2529768018122125409</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2529768018122125409 = 1309951991 * 1931191399</code></p>
<pre><code>p = 1309951991
q = 1931191399</code></pre>
<pre><code>pq = 1774293763269612997</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1774293763269612997 = 1155057941 * 1536108017</code></p>
<pre><code>p = 1155057941
q = 1536108017</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 23 1B 8A 9B F4 50 30 61 00 00 00
0010 | 04 4E 14 47 F7 00 00 00 04 73 1B A4 67 00 00 00
0020 | 1A 94 A9 17 FE BC 44 54 8A E7 C4 3D 89 59 88 62
0030 | 43 F0 01 27 70 6C 84 C2 D5 A5 4D 2F F3 BB 47 F9
0040 | 24 10 9E 24 CC 01 BA D5 6D 46 9C 89 21 0C 92 F6
0050 | 5B 41 FF D5 75 B2 E2 4C 07 50 CE C3 6A 2E D1 FF
<pre><code>0000 | 95 5F F5 A9 08 18 9F 8E C6 EE E0 55 C5 00 00 00
0010 | 04 44 D8 C9 15 00 00 00 04 5B 8F 25 F1 00 00 00
0020 | 67 F6 E1 F4 DA E0 9F 02 21 53 DD D2 73 3C 2E 26
0030 | 80 EF C4 FA AE 09 0C 46 7E DE 04 9A 55 81 12 3E
0040 | C3 22 18 C0 56 1D BA 27 4A 04 E5 A1 EF 71 FB 5F
0050 | 3A 19 D9 4B E9 17 B3 D3 29 CE 94 AA 2B 0D 18 02
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 = 1931191399</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>08231B8A9BF4503061000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2529768018122125409</td>
<td><code>08189F8EC6EEE055C5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1774293763269612997</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>044E1447F7000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1309951991</td>
<td><code>0444D8C915000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1155057941</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>04731BA467000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1931191399</td>
<td><code>045B8F25F1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1536108017</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>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>24109E24CC01BAD56D469C89210C92F6</code> <code>5B41FFD575B2E24C0750CEC36A2ED1FF</code></td>
<td><code>C32218C0561DBA274A04E5A1EF71FB5F</code> <code>3A19D94BE917B3D329CE94AA2B0D1802</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1931191399</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 = 955FF5A908231B8A9BF4503061000000044E1447F700000004731BA4670000001A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F924109E24CC01BAD56D469C89210C92F65B41FFD575B2E24C0750CEC36A2ED1FF02000000
random_padding_bytes = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B761905C030CB6DF24A3A1E4779B10189B9347EFBC4F6E4C736409DC806D333DAEABF5D98CD2E7FD62779A8CDC70CEB823F5FCAFD619CFE92CFDC20A53D7CFBDCE</code></pre>
<pre><code>data = 955FF5A908189F8EC6EEE055C50000000444D8C915000000045B8F25F100000067F6E1F4DAE09F022153DDD2733C2E2680EFC4FAAE090C467EDE049A5581123EC32218C0561DBA274A04E5A1EF71FB5F3A19D94BE917B3D329CE94AA2B0D180202000000
random_padding_bytes = CEEB8F53A85A094BDC120CDFAD2D3E88C58AA93ED6C4EAA09E7E1DC3236D04CEC465BBEC98B33372291C697ACCF8760498D79D9B81FB4FF98579266902DB25F1E7346397060C50DBB92622764A6F812475FC68879C54CC7609D23687</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 = E4314C927C9FE8E26B5DB8BD33991DE57EF45E33AEC796366252DCA56BB52B3867B6927BD13442D82AE24F396AD5EE8CC7E13B27375BCA2A687434D0782B88C7B248594EF88B04C6D3EAAEF897B1F1CC768015593EA88157BCE78D18639CC64541C297CA67553C0751B6AA833F2A0619F058FCA0B53FA1ADC71D854F24F4AD12364887F3E113826788909864470E117B55F57C033B2F7037D87E860599654AFFA19B14EE009DF832D93D174E9668B687857373BCB22D12524C1C9245C9032DF1EFC89D7C919EE417D1764D2D248E1E8B4A4307E943669B24841F7AE9FD95621CF2DFE3CBEEECB585FF02B0583BD12920F056B778797D0231802D27D73E4FEA4E</code></pre>
<pre><code>encrypted_data = C274E4EB5B00D34BF77B1B0873A0CE4D7D114030DEA90961D599C057893841CD90DEAC4B6D3C10926A9CD38306E789484FB17C6E03F6FB4AE99C6334FC0073970243D80550E1C4ECC4C1BAEA62147345E0525C5616C4364E63418434EBBB27AD1753A017595CF534281D0456AF65E46F3D0892971D3790B9DBFA4BF0A78E899F2C9A4DF18B9B469F13C6199833A69BF78853471E5FC51D96B852CB9DAC1D052527936A02E20A80EE477EE7EFDE44060554255E803EAB9DF16EEE9933DC36F66BCF5EF15E3391C8C871AD10C8B8322BC81E060E3AF8A70C0C9D806BCE54BBFE5FF6C1525A305B92055061434538AB6F1B1797A0BD86B08B69189502FFD575E97E</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 C4 EE 0B 00 3A 2D 84 66
0010 | 40 01 00 00 BE E4 12 D7 1A 94 A9 17 FE BC 44 54
0020 | 8A E7 C4 3D 89 59 88 62 43 F0 01 27 70 6C 84 C2
0030 | D5 A5 4D 2F F3 BB 47 F9 04 4E 14 47 F7 00 00 00
0040 | 04 73 1B A4 67 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 E4 31 4C 92 7C 9F E8 E2 6B 5D B8 BD
0060 | 33 99 1D E5 7E F4 5E 33 AE C7 96 36 62 52 DC A5
0070 | 6B B5 2B 38 67 B6 92 7B D1 34 42 D8 2A E2 4F 39
0080 | 6A D5 EE 8C C7 E1 3B 27 37 5B CA 2A 68 74 34 D0
0090 | 78 2B 88 C7 B2 48 59 4E F8 8B 04 C6 D3 EA AE F8
00A0 | 97 B1 F1 CC 76 80 15 59 3E A8 81 57 BC E7 8D 18
00B0 | 63 9C C6 45 41 C2 97 CA 67 55 3C 07 51 B6 AA 83
00C0 | 3F 2A 06 19 F0 58 FC A0 B5 3F A1 AD C7 1D 85 4F
00D0 | 24 F4 AD 12 36 48 87 F3 E1 13 82 67 88 90 98 64
00E0 | 47 0E 11 7B 55 F5 7C 03 3B 2F 70 37 D8 7E 86 05
00F0 | 99 65 4A FF A1 9B 14 EE 00 9D F8 32 D9 3D 17 4E
0100 | 96 68 B6 87 85 73 73 BC B2 2D 12 52 4C 1C 92 45
0110 | C9 03 2D F1 EF C8 9D 7C 91 9E E4 17 D1 76 4D 2D
0120 | 24 8E 1E 8B 4A 43 07 E9 43 66 9B 24 84 1F 7A E9
0130 | FD 95 62 1C F2 DF E3 CB EE EC B5 85 FF 02 B0 58
0140 | 3B D1 29 20 F0 56 B7 78 79 7D 02 31 80 2D 27 D7
0150 | 3E 4F EA 4E</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 74 B4 07 00 33 33 84 66
0010 | 40 01 00 00 BE E4 12 D7 67 F6 E1 F4 DA E0 9F 02
0020 | 21 53 DD D2 73 3C 2E 26 80 EF C4 FA AE 09 0C 46
0030 | 7E DE 04 9A 55 81 12 3E 04 44 D8 C9 15 00 00 00
0040 | 04 5B 8F 25 F1 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 C2 74 E4 EB 5B 00 D3 4B F7 7B 1B 08
0060 | 73 A0 CE 4D 7D 11 40 30 DE A9 09 61 D5 99 C0 57
0070 | 89 38 41 CD 90 DE AC 4B 6D 3C 10 92 6A 9C D3 83
0080 | 06 E7 89 48 4F B1 7C 6E 03 F6 FB 4A E9 9C 63 34
0090 | FC 00 73 97 02 43 D8 05 50 E1 C4 EC C4 C1 BA EA
00A0 | 62 14 73 45 E0 52 5C 56 16 C4 36 4E 63 41 84 34
00B0 | EB BB 27 AD 17 53 A0 17 59 5C F5 34 28 1D 04 56
00C0 | AF 65 E4 6F 3D 08 92 97 1D 37 90 B9 DB FA 4B F0
00D0 | A7 8E 89 9F 2C 9A 4D F1 8B 9B 46 9F 13 C6 19 98
00E0 | 33 A6 9B F7 88 53 47 1E 5F C5 1D 96 B8 52 CB 9D
00F0 | AC 1D 05 25 27 93 6A 02 E2 0A 80 EE 47 7E E7 EF
0100 | DE 44 06 05 54 25 5E 80 3E AB 9D F1 6E EE 99 33
0110 | DC 36 F6 6B CF 5E F1 5E 33 91 C8 C8 71 AD 10 C8
0120 | B8 32 2B C8 1E 06 0E 3A F8 A7 0C 0C 9D 80 6B CE
0130 | 54 BB FE 5F F6 C1 52 5A 30 5B 92 05 50 61 43 45
0140 | 38 AB 6F 1B 17 97 A0 BD 86 B0 8B 69 18 95 02 FF
0150 | D5 75 E9 7E</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 = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B76
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>C4EE0B003A2D8466</code></td>
<td><code>74B4070033338466</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 = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B76
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>044E1447F7000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1309951991</td>
<td><code>0444D8C915000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1155057941</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>04731BA467000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1931191399</td>
<td><code>045B8F25F1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1536108017</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 = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B76
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE000100E4314C927C9FE8E26B5DB8BD</code> <code>33991DE57EF45E33AEC796366252DCA5</code> <code>6BB52B3867B6927BD13442D82AE24F39</code> <code>6AD5EE8CC7E13B27375BCA2A687434D0</code> <code>782B88C7B248594EF88B04C6D3EAAEF8</code> <code>97B1F1CC768015593EA88157BCE78D18</code> <code>639CC64541C297CA67553C0751B6AA83</code> <code>3F2A0619F058FCA0B53FA1ADC71D854F</code> <code>24F4AD12364887F3E113826788909864</code> <code>470E117B55F57C033B2F7037D87E8605</code> <code>99654AFFA19B14EE009DF832D93D174E</code> <code>9668B687857373BCB22D12524C1C9245</code> <code>C9032DF1EFC89D7C919EE417D1764D2D</code> <code>248E1E8B4A4307E943669B24841F7AE9</code> <code>FD95621CF2DFE3CBEEECB585FF02B058</code> <code>3BD12920F056B778797D0231802D27D7</code><br> <code>3E4FEA4E</code></td>
<td><code>FE000100C274E4EB5B00D34BF77B1B08</code> <code>73A0CE4D7D114030DEA90961D599C057</code> <code>893841CD90DEAC4B6D3C10926A9CD383</code> <code>06E789484FB17C6E03F6FB4AE99C6334</code> <code>FC0073970243D80550E1C4ECC4C1BAEA</code> <code>62147345E0525C5616C4364E63418434</code> <code>EBBB27AD1753A017595CF534281D0456</code> <code>AF65E46F3D0892971D3790B9DBFA4BF0</code> <code>A78E899F2C9A4DF18B9B469F13C61998</code> <code>33A69BF78853471E5FC51D96B852CB9D</code> <code>AC1D052527936A02E20A80EE477EE7EF</code> <code>DE44060554255E803EAB9DF16EEE9933</code> <code>DC36F66BCF5EF15E3391C8C871AD10C8</code> <code>B8322BC81E060E3AF8A70C0C9D806BCE</code> <code>54BBFE5FF6C1525A305B920550614345</code> <code>38AB6F1B1797A0BD86B08B69189502FF</code><br> <code>D575E97E</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B76
<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 04 79 93 3A 2D 84 66
0010 | C8 02 00 00 5C 07 E8 D0 1A 94 A9 17 FE BC 44 54
0020 | 8A E7 C4 3D 89 59 88 62 43 F0 01 27 70 6C 84 C2
0030 | D5 A5 4D 2F F3 BB 47 F9 FE 50 02 00 9F 71 96 CC
0040 | 99 47 24 2B 88 D5 63 D4 73 59 25 5E A9 4B D7 6A
0050 | 39 86 8C CC 18 CA 61 31 93 F9 AE 1A 24 45 2A 51
0060 | 8E 16 6F ED 71 99 C7 96 BF 9F 87 6A 50 FD 02 A3
0070 | 18 1F 50 46 09 9D 5F E6 10 6A FB AC CB 27 F3 0F
0080 | 3D B7 05 6C D3 27 95 DE 32 49 1C 4C 91 E4 DE 5A
0090 | C9 D1 89 8E CC DA 48 14 8C E5 91 D7 81 61 E7 58
00A0 | 64 59 7A 07 E6 C6 88 57 8C 84 4E 40 FE 33 2C 5C
00B0 | 9B AE 43 85 80 0A E9 B8 59 5A AD 19 C5 2E 7F 1E
00C0 | 1F A1 2E C1 0F E8 D0 47 F8 39 C2 7D 88 36 29 47
00D0 | 63 96 45 F0 5D C1 67 7A BB 34 97 97 2E 82 45 49
00E0 | ED CB 4B 92 3B 00 67 FA 07 AF E4 74 BC B0 30 AE
00F0 | D0 F2 62 C9 03 FB B4 6F 9D BE F0 71 74 0B B2 16
0100 | 2B A1 C3 A1 CB CA BD 6D FC 61 03 ED 36 BA C2 30
0110 | 09 82 C6 54 07 E0 7F 38 EF 98 EC AA 94 A7 30 EA
0120 | 3A 31 61 5C F5 17 B8 C9 90 F0 86 B4 1B 6F 0C B4
0130 | 7A 7C 62 47 E3 EB AB 01 5C 7E F3 3E E4 C8 D6 FD
0140 | D4 42 F5 7F 55 BB 53 AC 3E 29 C0 31 C3 25 6E 03
0150 | 82 21 0E 5D A2 D6 1A 29 93 33 1F DC 5E E9 EB 1E
0160 | 55 21 09 AE 6D 25 5A 0E C8 47 5D 62 B4 20 57 B3
0170 | 21 7C 14 F1 C5 78 37 B2 95 A7 44 51 37 AF 56 12
0180 | 76 03 23 2F BA 95 CF 6B D4 60 36 FE F1 B8 F7 45
0190 | 38 BE CE 9A AC 28 7E 17 C8 47 B0 75 DC D7 41 D6
01A0 | 4A 82 34 A1 88 36 8D 67 2C 61 69 30 13 24 A9 A3
01B0 | B4 40 05 74 8E 50 51 34 6E 72 AE E2 1D 04 CD 64
01C0 | DD EB 50 A0 7A 99 48 35 68 02 6D 17 44 DF 21 C5
01D0 | 1A BC 3F 12 F9 20 5A E2 65 C5 61 DA A3 96 A2 46
01E0 | 6D C8 B0 FB FF D2 49 F2 10 60 C2 E1 2E D0 64 C8
01F0 | 9B 63 0E F6 60 57 CA 1A 1E 01 26 7A 19 8A 74 CE
0200 | B6 22 96 F1 A7 8C C5 CC 8F A0 E0 A3 45 C8 E0 86
0210 | 43 F6 2C 46 EC A8 14 3C 40 7F 31 3E 28 A0 8B 96
0220 | 79 11 B6 A4 72 47 8C F1 A9 D2 28 2F BB E2 91 CB
0230 | A8 E9 72 5D 01 0F 52 69 B3 42 F6 82 98 9F D5 3A
0240 | F8 0F D9 B0 4E F7 4C 54 7F 2B 0B 26 A3 6D C1 98
0250 | 99 E6 61 C3 51 FB 53 2E 23 A0 BE DB 3E 30 8B 82
0260 | EF 16 FF 39 56 63 86 8E 94 28 4C AF 55 E7 72 4F
0270 | BC 2A AB 12 91 C8 10 82 F4 C7 35 C8 23 F3 56 47
0280 | 11 EB 65 3E 57 88 9A AF 9A 41 B3 02</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 20 49 C7 33 33 84 66
0010 | E8 02 00 00 5C 07 E8 D0 67 F6 E1 F4 DA E0 9F 02
0020 | 21 53 DD D2 73 3C 2E 26 80 EF C4 FA AE 09 0C 46
0030 | 7E DE 04 9A 55 81 12 3E FE 50 02 00 3C 3A A2 64
0040 | A5 B4 86 6B CD 97 7C EE E7 4B E8 35 F1 B7 EB 39
0050 | 55 46 25 F1 7D 59 47 45 28 45 C7 80 02 70 84 7D
0060 | 00 C5 10 89 C5 41 BC 44 AC C3 4A CB 3F 1A AF 8B
0070 | 0B A3 AE 23 FA 04 C3 52 8B F1 50 72 6A 8B 89 EE
0080 | 09 6C 3A 45 0B 37 C6 AC 6B 03 D1 EA 16 80 17 84
0090 | 2C BF 94 D6 F9 A7 34 1B 7A 9D 53 6D FE CE 95 8C
00A0 | 82 2D D9 34 6B 9D C5 E0 46 B6 6E D9 16 0B B4 18
00B0 | 1C D9 30 5C BB E2 9C 11 FB C5 CD E4 DA B0 DA F8
00C0 | F3 74 2F 60 76 AF AE 1F 2F A0 62 6B D4 6D 78 32
00D0 | 76 DE F4 5A 8B 77 5F 03 72 2E EA 1D 54 41 0B 33
00E0 | F0 B5 E9 49 D3 AF 87 63 49 CB AA D6 C0 22 1D 3B
00F0 | E7 63 E1 AA 6B 0B 2C 36 29 45 A3 9E 8D 27 7D 84
0100 | 53 6C BA 18 69 E8 8D FC AD AC D6 9B 5B 94 0C 63
0110 | 24 FF BE 79 68 06 C5 19 1E 2E D7 19 64 66 2F 0A
0120 | 0E 17 D3 C3 DF 68 33 69 A9 98 3D 61 5D 77 CC 78
0130 | 8B C8 AA 90 DC 21 2C D0 66 B5 51 C8 CF 1C C7 05
0140 | 39 9C B3 E5 08 10 FA FD B2 1F 0F F0 86 AD 08 0D
0150 | B8 44 D6 A8 BD D9 B7 48 40 89 25 9B 36 24 E0 0F
0160 | 99 F4 BA D4 D5 D5 61 E1 16 C4 C3 FE F2 0E 4A 0E
0170 | 92 2B 54 D6 BC 90 6D A2 6B 52 C8 E1 21 66 C8 BC
0180 | 5D 7F CC 99 47 B9 40 6D 1C 46 96 2C 02 7D 29 02
0190 | 27 29 C3 79 19 59 F0 DA D7 F7 03 EA C9 C4 85 5C
01A0 | 24 38 25 64 51 CA FB 2B BC 0B EE E9 D1 76 13 61
01B0 | 96 C4 DA 63 0C 64 F6 51 9C 92 56 B7 9A 53 01 06
01C0 | 17 6C 25 74 FB EE 44 5C ED 94 1B 60 12 7D 33 24
01D0 | 79 44 69 CD 8D F9 30 1A 33 7D 80 18 24 AB 16 58
01E0 | 7D 9F 64 B7 8D 04 38 6E 18 0A AE 7B 2A 48 D0 78
01F0 | 50 92 FD B2 B8 D4 55 45 C6 A4 7D 64 E7 9F 4E E6
0200 | 4B 89 35 5A DC E3 28 DC 5E D7 FD B1 2F 57 2C 8F
0210 | 10 D6 23 EE 14 C7 F8 22 C1 D9 75 11 F1 A2 95 DB
0220 | 3A 41 E1 05 B2 23 10 D0 60 F9 27 45 6D 68 0A FB
0230 | 82 A5 67 87 07 ED 15 D2 82 3D C9 F7 55 2C AB B8
0240 | 8B 42 E3 8E 85 36 8E 8E 9D BA B3 17 33 8B 0F 7F
0250 | B8 B2 04 B0 43 CA 84 8A 49 78 C5 50 48 5E 2F 59
0260 | DD A7 46 D0 A2 D5 06 13 4B E2 4A 6E 6D FE 24 73
0270 | EC 1F 51 A5 C1 5F E2 B8 EC 69 71 8F F8 E2 AB D7
0280 | CD E6 3E D2 72 18 FE BF F2 95 1E 2E</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 = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B76
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>010479933A2D8466</code></td>
<td><code>012049C733338466</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>C8020000</code> (712 in decimal)</td>
<td><code>E8020000</code> (744 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B76
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE5002009F7196CC9947242B88D563D4</code> <code>7359255EA94BD76A39868CCC18CA6131</code> <code>93F9AE1A24452A518E166FED7199C796</code> <code>BF9F876A50FD02A3181F5046099D5FE6</code> <code>106AFBACCB27F30F3DB7056CD32795DE</code> <code>32491C4C91E4DE5AC9D1898ECCDA4814</code> <code>8CE591D78161E75864597A07E6C68857</code> <code>8C844E40FE332C5C9BAE4385800AE9B8</code> <code>595AAD19C52E7F1E1FA12EC10FE8D047</code> <code>F839C27D88362947639645F05DC1677A</code> <code>BB3497972E824549EDCB4B923B0067FA</code> <code>07AFE474BCB030AED0F262C903FBB46F</code> <code>9DBEF071740BB2162BA1C3A1CBCABD6D</code> <code>FC6103ED36BAC2300982C65407E07F38</code> <code>EF98ECAA94A730EA3A31615CF517B8C9</code> <code>90F086B41B6F0CB47A7C6247E3EBAB01</code> <code>5C7EF33EE4C8D6FDD442F57F55BB53AC</code> <code>3E29C031C3256E0382210E5DA2D61A29</code> <code>93331FDC5EE9EB1E552109AE6D255A0E</code> <code>C8475D62B42057B3217C14F1C57837B2</code> <code>95A7445137AF56127603232FBA95CF6B</code> <code>D46036FEF1B8F74538BECE9AAC287E17</code> <code>C847B075DCD741D64A8234A188368D67</code> <code>2C6169301324A9A3B44005748E505134</code> <code>6E72AEE21D04CD64DDEB50A07A994835</code> <code>68026D1744DF21C51ABC3F12F9205AE2</code> <code>65C561DAA396A2466DC8B0FBFFD249F2</code> <code>1060C2E12ED064C89B630EF66057CA1A</code> <code>1E01267A198A74CEB62296F1A78CC5CC</code> <code>8FA0E0A345C8E08643F62C46ECA8143C</code> <code>407F313E28A08B967911B6A472478CF1</code> <code>A9D2282FBBE291CBA8E9725D010F5269</code> <code>B342F682989FD53AF80FD9B04EF74C54</code> <code>7F2B0B26A36DC19899E661C351FB532E</code> <code>23A0BEDB3E308B82EF16FF395663868E</code> <code>94284CAF55E7724FBC2AAB1291C81082</code> <code>F4C735C823F3564711EB653E57889AAF</code><br> <code>9A41B302</code></td>
<td><code>FE5002003C3AA264A5B4866BCD977CEE</code> <code>E74BE835F1B7EB39554625F17D594745</code> <code>2845C7800270847D00C51089C541BC44</code> <code>ACC34ACB3F1AAF8B0BA3AE23FA04C352</code> <code>8BF150726A8B89EE096C3A450B37C6AC</code> <code>6B03D1EA168017842CBF94D6F9A7341B</code> <code>7A9D536DFECE958C822DD9346B9DC5E0</code> <code>46B66ED9160BB4181CD9305CBBE29C11</code> <code>FBC5CDE4DAB0DAF8F3742F6076AFAE1F</code> <code>2FA0626BD46D783276DEF45A8B775F03</code> <code>722EEA1D54410B33F0B5E949D3AF8763</code> <code>49CBAAD6C0221D3BE763E1AA6B0B2C36</code> <code>2945A39E8D277D84536CBA1869E88DFC</code> <code>ADACD69B5B940C6324FFBE796806C519</code> <code>1E2ED71964662F0A0E17D3C3DF683369</code> <code>A9983D615D77CC788BC8AA90DC212CD0</code> <code>66B551C8CF1CC705399CB3E50810FAFD</code> <code>B21F0FF086AD080DB844D6A8BDD9B748</code> <code>4089259B3624E00F99F4BAD4D5D561E1</code> <code>16C4C3FEF20E4A0E922B54D6BC906DA2</code> <code>6B52C8E12166C8BC5D7FCC9947B9406D</code> <code>1C46962C027D29022729C3791959F0DA</code> <code>D7F703EAC9C4855C2438256451CAFB2B</code> <code>BC0BEEE9D176136196C4DA630C64F651</code> <code>9C9256B79A530106176C2574FBEE445C</code> <code>ED941B60127D3324794469CD8DF9301A</code> <code>337D801824AB16587D9F64B78D04386E</code> <code>180AAE7B2A48D0785092FDB2B8D45545</code> <code>C6A47D64E79F4EE64B89355ADCE328DC</code> <code>5ED7FDB12F572C8F10D623EE14C7F822</code> <code>C1D97511F1A295DB3A41E105B22310D0</code> <code>60F927456D680AFB82A5678707ED15D2</code> <code>823DC9F7552CABB88B42E38E85368E8E</code> <code>9DBAB317338B0F7FB8B204B043CA848A</code> <code>4978C550485E2F59DDA746D0A2D50613</code> <code>4BE24A6E6DFE2473EC1F51A5C15FE2B8</code> <code>EC69718FF8E2ABD7CDE63ED27218FEBF</code><br> <code>F2951E2E</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = EB75C8EC89B1B09FBD2F085C17CBAC8B52ABCDC87D39C69A505DA6B76
<!-- 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 = 9F7196CC9947242B88D563D47359255EA94BD76A39868CCC18CA613193F9AE1A24452A518E166FED7199C796BF9F876A50FD02A3181F5046099D5FE6106AFBACCB27F30F3DB7056CD32795DE32491C4C91E4DE5AC9D1898ECCDA48148CE591D78161E75864597A07E6C688578C844E40FE332C5C9BAE4385800AE9B8595AAD19C52E7F1E1FA12EC10FE8D047F839C27D88362947639645F05DC1677ABB3497972E824549EDCB4B923B0067FA07AFE474BCB030AED0F262C903FBB46F9DBEF071740BB2162BA1C3A1CBCABD6DFC6103ED36BAC2300982C65407E07F38EF98ECAA94A730EA3A31615CF517B8C990F086B41B6F0CB47A7C6247E3EBAB015C7EF33EE4C8D6FDD442F57F55BB53AC3E29C031C3256E0382210E5DA2D61A2993331FDC5EE9EB1E552109AE6D255A0EC8475D62B42057B3217C14F1C57837B295A7445137AF56127603232FBA95CF6BD46036FEF1B8F74538BECE9AAC287E17C847B075DCD741D64A8234A188368D672C6169301324A9A3B44005748E5051346E72AEE21D04CD64DDEB50A07A99483568026D1744DF21C51ABC3F12F9205AE265C561DAA396A2466DC8B0FBFFD249F21060C2E12ED064C89B630EF66057CA1A1E01267A198A74CEB62296F1A78CC5CC8FA0E0A345C8E08643F62C46ECA8143C407F313E28A08B967911B6A472478CF1A9D2282FBBE291CBA8E9725D010F5269B342F682989FD53AF80FD9B04EF74C547F2B0B26A36DC19899E661C351FB532E23A0BEDB3E308B82EF16FF395663868E94284CAF55E7724FBC2AAB1291C81082F4C735C823F3564711EB653E57889AAF9A41B302
tmp_aes_key = 7DA5236D64FC809C96A324DBD616FB2BD5EBFFC083EABEC2415AE73F9B3EF9A4
tmp_aes_iv = A8E1F607C11E6CAEB30BBDE6BC938A9A7755FA364D555B86DEFBB4FE24109E24</code></pre>
<pre><code>encrypted_answer = 3C3AA264A5B4866BCD977CEEE74BE835F1B7EB39554625F17D5947452845C7800270847D00C51089C541BC44ACC34ACB3F1AAF8B0BA3AE23FA04C3528BF150726A8B89EE096C3A450B37C6AC6B03D1EA168017842CBF94D6F9A7341B7A9D536DFECE958C822DD9346B9DC5E046B66ED9160BB4181CD9305CBBE29C11FBC5CDE4DAB0DAF8F3742F6076AFAE1F2FA0626BD46D783276DEF45A8B775F03722EEA1D54410B33F0B5E949D3AF876349CBAAD6C0221D3BE763E1AA6B0B2C362945A39E8D277D84536CBA1869E88DFCADACD69B5B940C6324FFBE796806C5191E2ED71964662F0A0E17D3C3DF683369A9983D615D77CC788BC8AA90DC212CD066B551C8CF1CC705399CB3E50810FAFDB21F0FF086AD080DB844D6A8BDD9B7484089259B3624E00F99F4BAD4D5D561E116C4C3FEF20E4A0E922B54D6BC906DA26B52C8E12166C8BC5D7FCC9947B9406D1C46962C027D29022729C3791959F0DAD7F703EAC9C4855C2438256451CAFB2BBC0BEEE9D176136196C4DA630C64F6519C9256B79A530106176C2574FBEE445CED941B60127D3324794469CD8DF9301A337D801824AB16587D9F64B78D04386E180AAE7B2A48D0785092FDB2B8D45545C6A47D64E79F4EE64B89355ADCE328DC5ED7FDB12F572C8F10D623EE14C7F822C1D97511F1A295DB3A41E105B22310D060F927456D680AFB82A5678707ED15D2823DC9F7552CABB88B42E38E85368E8E9DBAB317338B0F7FB8B204B043CA848A4978C550485E2F59DDA746D0A2D506134BE24A6E6DFE2473EC1F51A5C15FE2B8EC69718FF8E2ABD7CDE63ED27218FEBFF2951E2E
tmp_aes_key = 7323EE1EE0D31171084998F213328182F2781B1CF5019242A6CB98991B4CC3EF
tmp_aes_iv = 082414941F579C4BBB2866D55063C927B91757DE8283B60D029CEAB6C32218C0</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = E7AC77ACCFDC82ACC3A81FCB9FC21975056BA4EBBA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100A2597E432B73B4A3E13B8A814F27102C5ABE4AA8F4718DFC2D7E18DAA6896B0D9FAB2B044BC2F8DA7EFFC108DF28F7F4AF1420637E89482EF240D4D4C2EB7F2DD3BD05BEA485AD6AB942E5B6DEFF63897B4056305422B8F5BCD55FC1676E6A6FC033F8A9538F910351ED3432F2C6515A659AB26F9BBF3672C38C6B910D9CE00F501491BA029C15F95C9E84348EE386B788F104F6BB25F74DAA6CDE5FA7D49FCB656B9E921B84834C6A45AA9CF1C35A3C3C5A3093F80FD736711834D960C3207C7C87999AA4691F112A62F832FA57A9AAF43C2F8AACC7CC34A12E6EA88C30ECA08BA730D9C3E59E121892FE3B6B40F999304B5A8E27A0C0690F5F47DCD9D768913A2D84665A4105EA72EFC5EF
answer = BA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100A2597E432B73B4A3E13B8A814F27102C5ABE4AA8F4718DFC2D7E18DAA6896B0D9FAB2B044BC2F8DA7EFFC108DF28F7F4AF1420637E89482EF240D4D4C2EB7F2DD3BD05BEA485AD6AB942E5B6DEFF63897B4056305422B8F5BCD55FC1676E6A6FC033F8A9538F910351ED3432F2C6515A659AB26F9BBF3672C38C6B910D9CE00F501491BA029C15F95C9E84348EE386B788F104F6BB25F74DAA6CDE5FA7D49FCB656B9E921B84834C6A45AA9CF1C35A3C3C5A3093F80FD736711834D960C3207C7C87999AA4691F112A62F832FA57A9AAF43C2F8AACC7CC34A12E6EA88C30ECA08BA730D9C3E59E121892FE3B6B40F999304B5A8E27A0C0690F5F47DCD9D768913A2D84665A4105EA72EFC5EF</code></pre>
<pre><code>answer_with_hash = 22967C5933384A39E3060FBAB0DE9BD25D376530BA0D89B567F6E1F4DAE09F022153DDD2733C2E2680EFC4FAAE090C467EDE049A5581123E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100A733B8BEBDB36A66183321321FCA483ECA10F0833BFEE08FF2BDFA7852E0984AF61EBCDACE933BFB40A04497E0B7E30F1EFBBB52C563AC364E713B1029029359F6AC4AC2139129EFB897DD6488438AD126FDDC2F8EAA0696CC70B440ECC0E6C230EA528E1899948DBAEFCA28CAB59B403D27DCE748447450AE729F488603D9B2FD3193E9BC227428D2B79BC94483554DB9B7FEB399BA966C36108993191F465BA3CFFD13287082F1BBEBDB1283654B9CEFCB2F8F0CD6DC471B3A5604B3586BB685A65461835B5711F1B0A2B1BBF048DCDE2AD4F3C8E2CA57B922D142691EB7C085E3D12607A1A0649BD5A14CC5B8245289ED8CCC0297192AD91500E4E6DF68043333846620E87519D492EC17
answer = BA0D89B567F6E1F4DAE09F022153DDD2733C2E2680EFC4FAAE090C467EDE049A5581123E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100A733B8BEBDB36A66183321321FCA483ECA10F0833BFEE08FF2BDFA7852E0984AF61EBCDACE933BFB40A04497E0B7E30F1EFBBB52C563AC364E713B1029029359F6AC4AC2139129EFB897DD6488438AD126FDDC2F8EAA0696CC70B440ECC0E6C230EA528E1899948DBAEFCA28CAB59B403D27DCE748447450AE729F488603D9B2FD3193E9BC227428D2B79BC94483554DB9B7FEB399BA966C36108993191F465BA3CFFD13287082F1BBEBDB1283654B9CEFCB2F8F0CD6DC471B3A5604B3586BB685A65461835B5711F1B0A2B1BBF048DCDE2AD4F3C8E2CA57B922D142691EB7C085E3D12607A1A0649BD5A14CC5B8245289ED8CCC0297192AD91500E4E6DF68043333846620E87519D492EC17</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 1A 94 A9 17 FE BC 44 54 8A E7 C4 3D
0010 | 89 59 88 62 43 F0 01 27 70 6C 84 C2 D5 A5 4D 2F
0020 | F3 BB 47 F9 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 67 F6 E1 F4 DA E0 9F 02 21 53 DD D2
0010 | 73 3C 2E 26 80 EF C4 FA AE 09 0C 46 7E DE 04 9A
0020 | 55 81 12 3E 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 = BA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F
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 | A2 59 7E 43 2B 73 B4 A3 E1 3B 8A 81 4F 27 10 2C
0140 | 5A BE 4A A8 F4 71 8D FC 2D 7E 18 DA A6 89 6B 0D
0150 | 9F AB 2B 04 4B C2 F8 DA 7E FF C1 08 DF 28 F7 F4
0160 | AF 14 20 63 7E 89 48 2E F2 40 D4 D4 C2 EB 7F 2D
0170 | D3 BD 05 BE A4 85 AD 6A B9 42 E5 B6 DE FF 63 89
0180 | 7B 40 56 30 54 22 B8 F5 BC D5 5F C1 67 6E 6A 6F
0190 | C0 33 F8 A9 53 8F 91 03 51 ED 34 32 F2 C6 51 5A
01A0 | 65 9A B2 6F 9B BF 36 72 C3 8C 6B 91 0D 9C E0 0F
01B0 | 50 14 91 BA 02 9C 15 F9 5C 9E 84 34 8E E3 86 B7
01C0 | 88 F1 04 F6 BB 25 F7 4D AA 6C DE 5F A7 D4 9F CB
01D0 | 65 6B 9E 92 1B 84 83 4C 6A 45 AA 9C F1 C3 5A 3C
01E0 | 3C 5A 30 93 F8 0F D7 36 71 18 34 D9 60 C3 20 7C
01F0 | 7C 87 99 9A A4 69 1F 11 2A 62 F8 32 FA 57 A9 AA
0200 | F4 3C 2F 8A AC C7 CC 34 A1 2E 6E A8 8C 30 EC A0
0210 | 8B A7 30 D9 C3 E5 9E 12 18 92 FE 3B 6B 40 F9 99
0220 | 30 4B 5A 8E 27 A0 C0 69 0F 5F 47 DC D9 D7 68 91
0230 | 3A 2D 84 66</code></pre>
0130 | A7 33 B8 BE BD B3 6A 66 18 33 21 32 1F CA 48 3E
0140 | CA 10 F0 83 3B FE E0 8F F2 BD FA 78 52 E0 98 4A
0150 | F6 1E BC DA CE 93 3B FB 40 A0 44 97 E0 B7 E3 0F
0160 | 1E FB BB 52 C5 63 AC 36 4E 71 3B 10 29 02 93 59
0170 | F6 AC 4A C2 13 91 29 EF B8 97 DD 64 88 43 8A D1
0180 | 26 FD DC 2F 8E AA 06 96 CC 70 B4 40 EC C0 E6 C2
0190 | 30 EA 52 8E 18 99 94 8D BA EF CA 28 CA B5 9B 40
01A0 | 3D 27 DC E7 48 44 74 50 AE 72 9F 48 86 03 D9 B2
01B0 | FD 31 93 E9 BC 22 74 28 D2 B7 9B C9 44 83 55 4D
01C0 | B9 B7 FE B3 99 BA 96 6C 36 10 89 93 19 1F 46 5B
01D0 | A3 CF FD 13 28 70 82 F1 BB EB DB 12 83 65 4B 9C
01E0 | EF CB 2F 8F 0C D6 DC 47 1B 3A 56 04 B3 58 6B B6
01F0 | 85 A6 54 61 83 5B 57 11 F1 B0 A2 B1 BB F0 48 DC
0200 | DE 2A D4 F3 C8 E2 CA 57 B9 22 D1 42 69 1E B7 C0
0210 | 85 E3 D1 26 07 A1 A0 64 9B D5 A1 4C C5 B8 24 52
0220 | 89 ED 8C CC 02 97 19 2A D9 15 00 E4 E6 DF 68 04
0230 | 33 33 84 66</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;</code></pre>
<table class="table">
@ -570,13 +570,13 @@ answer = BA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE000100A2597E432B73B4A3E13B8A81</code> <code>4F27102C5ABE4AA8F4718DFC2D7E18DA</code> <code>A6896B0D9FAB2B044BC2F8DA7EFFC108</code> <code>DF28F7F4AF1420637E89482EF240D4D4</code> <code>C2EB7F2DD3BD05BEA485AD6AB942E5B6</code> <code>DEFF63897B4056305422B8F5BCD55FC1</code> <code>676E6A6FC033F8A9538F910351ED3432</code> <code>F2C6515A659AB26F9BBF3672C38C6B91</code> <code>0D9CE00F501491BA029C15F95C9E8434</code> <code>8EE386B788F104F6BB25F74DAA6CDE5F</code> <code>A7D49FCB656B9E921B84834C6A45AA9C</code> <code>F1C35A3C3C5A3093F80FD736711834D9</code> <code>60C3207C7C87999AA4691F112A62F832</code> <code>FA57A9AAF43C2F8AACC7CC34A12E6EA8</code> <code>8C30ECA08BA730D9C3E59E121892FE3B</code> <code>6B40F999304B5A8E27A0C0690F5F47DC</code><br> <code>D9D76891</code></td>
<td><code>FE000100A733B8BEBDB36A6618332132</code> <code>1FCA483ECA10F0833BFEE08FF2BDFA78</code> <code>52E0984AF61EBCDACE933BFB40A04497</code> <code>E0B7E30F1EFBBB52C563AC364E713B10</code> <code>29029359F6AC4AC2139129EFB897DD64</code> <code>88438AD126FDDC2F8EAA0696CC70B440</code> <code>ECC0E6C230EA528E1899948DBAEFCA28</code> <code>CAB59B403D27DCE748447450AE729F48</code> <code>8603D9B2FD3193E9BC227428D2B79BC9</code> <code>4483554DB9B7FEB399BA966C36108993</code> <code>191F465BA3CFFD13287082F1BBEBDB12</code> <code>83654B9CEFCB2F8F0CD6DC471B3A5604</code> <code>B3586BB685A65461835B5711F1B0A2B1</code> <code>BBF048DCDE2AD4F3C8E2CA57B922D142</code> <code>691EB7C085E3D12607A1A0649BD5A14C</code> <code>C5B8245289ED8CCC0297192AD91500E4</code><br> <code>E6DF6804</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>3A2D8466</code> (1719938362 in decimal)</td>
<td><code>33338466</code> (1719939891 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F
<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 = 7DC544D6B5C32ABEC8936F702B6E4D6C4458248958BE0089F1D291414048A473D369164ECCEB0F9B2B534BA9715CBCAA9B82E405CA177BF8881F0C87EECBA33DC996731703516C220067852E68518AD2A9EFE1BA1BA60FB7C2D4B42A3EBF26DA55F5ADF49AEE670E91A509EA2D46E8F71CACE8F8153D363943F9F0D6641B449B5E3419F9D3188DC4D4CF21C5240D417ACE861476CBAC4D4A0A22F08D0F07632EACD20AAB7C9570840ECCD9A36433573E7B5488FE4712076CFB3E85D3E59C0BA89E5CB61FE99656B74A613DC3B160AF55EF86371C372068815984A823116C92A431B0200F4A27471847D6BE99006EBF0F08A46DB382C9DEB4A54F6354051236AB</code></pre>
<pre><code>b = 2C82F0371A84B7FAABC9EC09AEB52CD720734C9A2515AF3CB233829C9F2B0DB26E6F28C93EFDF70B9F0445756BC525CF8628C41A4B1AD218929F08C6C5CE9465D14B24C746D1D6B4D026312309066CAD827A1B3643699FBC371F611372D1E65D85B52713C8E682469D1B1BE42C85D9BD72A1E2F1A6BF01755CACA09D8800199E23976DF6040808AD4BC4B598ACA863A320C1F995AD42164AA3616D98C4DECB033851FEA270224E3D9B698D0D24CBAB559B058830492EB85FAA60AF4FE0B784EA99830CF9CD29E2E1280D49D050787717B6A4E736AF367866A380C331DB450F3A2889DB5FF08657D312E84233B9DA48F4D1B0F2821C2730C08E38F5CBA4B6E041</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 = 85E5D61553B37EE260427F6761ECBAB0825DDA15C55F56EEEA25A466A35350EFFAB4A7C94D6584B04E205E7E73D8D3B6C1485DF7A8794F34134E6D2330A1A6C6703B1BEABEA84CF906CBE81A14AD727220F47A103636911C26F53405D6C9B017C86413DBFEE8E0B77A3D5A7E487396A90837D39AB2E9F6D3CF93AC9E5A1AC4BB836636D3F7F4629A1BCA297D019FD15D5090807AB408D82DD86612AEEBCA3C4FC4E4C51D77FB2C674D614E92F773C239FA9B792B995DFBA3D0F86713F1BCA9532D964AFBBA3282DF95E39BB68D149398100CD79330046161990E46453618840947E6D304BA138461C9398028049CF3C81374B89C540A48AE97F07EE8419CA1AA</code></pre>
<pre><code>g_b = AA3A52D7DFAECA40115433F90B35D66EFC622FB9D43DF2A48F505324522B0AF6E711A8ECFE48642FD24F4E3C90DF6412EB39870C5B5CB06BFA6B4B04871809AA5F089374B1007A692043BDCDCE8EB45A5901D75D5215DD7FA0849527872B6796FDE7CAEAF63EB3A42A929374CA08DE8E8C6AD994A72A461A98F573801944A394B0F35A8ACBE0222324B931CAE3E0A29D1C51BBE56CE890375C82CC3F61FEE8E89116547F4D232DB233644B1576B40CEB98E5168D9F31FBF79E4B19E81277B823216C10FEB6B7A0842D8AB41D2B31FE9616BF3F6A385E77201E716DC7E17C5B7D5D71F7BA423FA882E224415A50A59AE3CA60E0449E2FC1B391598D5E2DB72274</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 1A 94 A9 17 FE BC 44 54 8A E7 C4 3D
0010 | 89 59 88 62 43 F0 01 27 70 6C 84 C2 D5 A5 4D 2F
0020 | F3 BB 47 F9 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 85 E5 D6 15 53 B3 7E E2 60 42 7F 67 61 EC BA B0
0040 | 82 5D DA 15 C5 5F 56 EE EA 25 A4 66 A3 53 50 EF
0050 | FA B4 A7 C9 4D 65 84 B0 4E 20 5E 7E 73 D8 D3 B6
0060 | C1 48 5D F7 A8 79 4F 34 13 4E 6D 23 30 A1 A6 C6
0070 | 70 3B 1B EA BE A8 4C F9 06 CB E8 1A 14 AD 72 72
0080 | 20 F4 7A 10 36 36 91 1C 26 F5 34 05 D6 C9 B0 17
0090 | C8 64 13 DB FE E8 E0 B7 7A 3D 5A 7E 48 73 96 A9
00A0 | 08 37 D3 9A B2 E9 F6 D3 CF 93 AC 9E 5A 1A C4 BB
00B0 | 83 66 36 D3 F7 F4 62 9A 1B CA 29 7D 01 9F D1 5D
00C0 | 50 90 80 7A B4 08 D8 2D D8 66 12 AE EB CA 3C 4F
00D0 | C4 E4 C5 1D 77 FB 2C 67 4D 61 4E 92 F7 73 C2 39
00E0 | FA 9B 79 2B 99 5D FB A3 D0 F8 67 13 F1 BC A9 53
00F0 | 2D 96 4A FB BA 32 82 DF 95 E3 9B B6 8D 14 93 98
0100 | 10 0C D7 93 30 04 61 61 99 0E 46 45 36 18 84 09
0110 | 47 E6 D3 04 BA 13 84 61 C9 39 80 28 04 9C F3 C8
0120 | 13 74 B8 9C 54 0A 48 AE 97 F0 7E E8 41 9C A1 AA</code></pre>
<pre><code>0000 | 54 B6 43 66 67 F6 E1 F4 DA E0 9F 02 21 53 DD D2
0010 | 73 3C 2E 26 80 EF C4 FA AE 09 0C 46 7E DE 04 9A
0020 | 55 81 12 3E 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | AA 3A 52 D7 DF AE CA 40 11 54 33 F9 0B 35 D6 6E
0040 | FC 62 2F B9 D4 3D F2 A4 8F 50 53 24 52 2B 0A F6
0050 | E7 11 A8 EC FE 48 64 2F D2 4F 4E 3C 90 DF 64 12
0060 | EB 39 87 0C 5B 5C B0 6B FA 6B 4B 04 87 18 09 AA
0070 | 5F 08 93 74 B1 00 7A 69 20 43 BD CD CE 8E B4 5A
0080 | 59 01 D7 5D 52 15 DD 7F A0 84 95 27 87 2B 67 96
0090 | FD E7 CA EA F6 3E B3 A4 2A 92 93 74 CA 08 DE 8E
00A0 | 8C 6A D9 94 A7 2A 46 1A 98 F5 73 80 19 44 A3 94
00B0 | B0 F3 5A 8A CB E0 22 23 24 B9 31 CA E3 E0 A2 9D
00C0 | 1C 51 BB E5 6C E8 90 37 5C 82 CC 3F 61 FE E8 E8
00D0 | 91 16 54 7F 4D 23 2D B2 33 64 4B 15 76 B4 0C EB
00E0 | 98 E5 16 8D 9F 31 FB F7 9E 4B 19 E8 12 77 B8 23
00F0 | 21 6C 10 FE B6 B7 A0 84 2D 8A B4 1D 2B 31 FE 96
0100 | 16 BF 3F 6A 38 5E 77 20 1E 71 6D C7 E1 7C 5B 7D
0110 | 5D 71 F7 BA 42 3F A8 82 E2 24 41 5A 50 A5 9A E3
0120 | CA 60 E0 44 9E 2F C1 B3 91 59 8D 5E 2D B7 22 74</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 = BA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE00010085E5D61553B37EE260427F67</code> <code>61ECBAB0825DDA15C55F56EEEA25A466</code> <code>A35350EFFAB4A7C94D6584B04E205E7E</code> <code>73D8D3B6C1485DF7A8794F34134E6D23</code> <code>30A1A6C6703B1BEABEA84CF906CBE81A</code> <code>14AD727220F47A103636911C26F53405</code> <code>D6C9B017C86413DBFEE8E0B77A3D5A7E</code> <code>487396A90837D39AB2E9F6D3CF93AC9E</code> <code>5A1AC4BB836636D3F7F4629A1BCA297D</code> <code>019FD15D5090807AB408D82DD86612AE</code> <code>EBCA3C4FC4E4C51D77FB2C674D614E92</code> <code>F773C239FA9B792B995DFBA3D0F86713</code> <code>F1BCA9532D964AFBBA3282DF95E39BB6</code> <code>8D149398100CD79330046161990E4645</code> <code>3618840947E6D304BA138461C9398028</code> <code>049CF3C81374B89C540A48AE97F07EE8</code><br> <code>419CA1AA</code></td>
<td><code>FE000100AA3A52D7DFAECA40115433F9</code> <code>0B35D66EFC622FB9D43DF2A48F505324</code> <code>522B0AF6E711A8ECFE48642FD24F4E3C</code> <code>90DF6412EB39870C5B5CB06BFA6B4B04</code> <code>871809AA5F089374B1007A692043BDCD</code> <code>CE8EB45A5901D75D5215DD7FA0849527</code> <code>872B6796FDE7CAEAF63EB3A42A929374</code> <code>CA08DE8E8C6AD994A72A461A98F57380</code> <code>1944A394B0F35A8ACBE0222324B931CA</code> <code>E3E0A29D1C51BBE56CE890375C82CC3F</code> <code>61FEE8E89116547F4D232DB233644B15</code> <code>76B40CEB98E5168D9F31FBF79E4B19E8</code> <code>1277B823216C10FEB6B7A0842D8AB41D</code> <code>2B31FE9616BF3F6A385E77201E716DC7</code> <code>E17C5B7D5D71F7BA423FA882E224415A</code> <code>50A59AE3CA60E0449E2FC1B391598D5E</code><br> <code>2DB72274</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 = BA0D89B51A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F
<!-- 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 = 54B643661A94A917FEBC44548AE7C43D8959886243F00127706C84C2D5A54D2FF3BB47F90000000000000000FE00010085E5D61553B37EE260427F6761ECBAB0825DDA15C55F56EEEA25A466A35350EFFAB4A7C94D6584B04E205E7E73D8D3B6C1485DF7A8794F34134E6D2330A1A6C6703B1BEABEA84CF906CBE81A14AD727220F47A103636911C26F53405D6C9B017C86413DBFEE8E0B77A3D5A7E487396A90837D39AB2E9F6D3CF93AC9E5A1AC4BB836636D3F7F4629A1BCA297D019FD15D5090807AB408D82DD86612AEEBCA3C4FC4E4C51D77FB2C674D614E92F773C239FA9B792B995DFBA3D0F86713F1BCA9532D964AFBBA3282DF95E39BB68D149398100CD79330046161990E46453618840947E6D304BA138461C9398028049CF3C81374B89C540A48AE97F07EE8419CA1AA
padding = 23D9CED845AD58F83C312CDF
tmp_aes_key = 7DA5236D64FC809C96A324DBD616FB2BD5EBFFC083EABEC2415AE73F9B3EF9A4
tmp_aes_iv = A8E1F607C11E6CAEB30BBDE6BC938A9A7755FA364D555B86DEFBB4FE24109E24</code></pre>
<pre><code>data = 54B6436667F6E1F4DAE09F022153DDD2733C2E2680EFC4FAAE090C467EDE049A5581123E0000000000000000FE000100AA3A52D7DFAECA40115433F90B35D66EFC622FB9D43DF2A48F505324522B0AF6E711A8ECFE48642FD24F4E3C90DF6412EB39870C5B5CB06BFA6B4B04871809AA5F089374B1007A692043BDCDCE8EB45A5901D75D5215DD7FA0849527872B6796FDE7CAEAF63EB3A42A929374CA08DE8E8C6AD994A72A461A98F573801944A394B0F35A8ACBE0222324B931CAE3E0A29D1C51BBE56CE890375C82CC3F61FEE8E89116547F4D232DB233644B1576B40CEB98E5168D9F31FBF79E4B19E81277B823216C10FEB6B7A0842D8AB41D2B31FE9616BF3F6A385E77201E716DC7E17C5B7D5D71F7BA423FA882E224415A50A59AE3CA60E0449E2FC1B391598D5E2DB72274
padding = 0D480DC4C7EB18AAEFEC8ADA
tmp_aes_key = 7323EE1EE0D31171084998F213328182F2781B1CF5019242A6CB98991B4CC3EF
tmp_aes_iv = 082414941F579C4BBB2866D55063C927B91757DE8283B60D029CEAB6C32218C0</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 = C37CEF5A60678B6CF63BF90D4CCE31176C464A1D496F03F9FB1551F4F8B8F59E7202647593C3F1AFA548D08F248BC4BA06DC7DFF7FD1433D5110076B805D0FD43D3DF5B7872BED15ECB100B6C17F85EF7293B23E7F734F581695D547561E94703F61E7E094817135D0A9772D7E9911B78B64556066EFC57E3A4E02975A9ADB468DCC8EB0D094E825CFFF1379EA57C89A195A3F4879BAA2E1EBAB38DE74D1B65D902CD6F0A0D03013D90D227DA51402304A1A2577D1D0EB48166C5C9382E2999261C3ACDFD1C04F470A043BDE07365D41381F81D514D5FC6AD77C816D09B8A3777C495938BF2ED70C63A818CC399D8BA47208FEA5668FD99ED42A7074E87D8A2DA48527F1D5746B44D46182656D353D0EC47B2F034ED1CEAC1E3E05D793098B878D95701A2A2432BBFDF5DAFD2C166DE39B6E9B19AD60B71CA47D66D5AD6712A9431A6AECA4880C82D937B869EE5DA26A</code></pre>
<pre><code>encrypted_data = 023C5CB13D9866A7BDA563E0E4AA11615110F36B0E2872EA57AABBD145F628C4991874AFBFC32EFB8C977A758F979706CB214677D2A945273F90B427F81B86A406D4A106F9F9A29DDB4F24AD16E52BCCEDDAFD8581BB3105532BF40B4128380429F53257C50077DEB35DD8E62658B1F6064B24275E961095F93E03045E091C03455FEAA079EE41081CBFCB187E0341A55DC7C6C2BA43155C61805332D4961535E5CEA8BB29BCAB3BCC547504F22FF2A79A746311270E686660FC397E78C52DAAE66DFC458D806B746A5E67CCE129E51A1D925C638C53693C46ACC05A38C9443ABF8B648DDD05C90C744750D05F6C6A469D1B62B85C5F5B3FDB8D2D2AE19C4F007F65E263796819632BBBED25AD7D5FF198F5D2C82FB5A77EE8CFFED18DAA13D5EBBC17AD18449ED13D0772CEDB97DE78768281F321219F8EEB9BCF36F8CA685C89C0DE9054FAF7BE9691C32737B792D7</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 C8 EE 0B 00 3A 2D 84 66
0010 | 78 01 00 00 1F 5F 04 F5 1A 94 A9 17 FE BC 44 54
0020 | 8A E7 C4 3D 89 59 88 62 43 F0 01 27 70 6C 84 C2
0030 | D5 A5 4D 2F F3 BB 47 F9 FE 50 01 00 C3 7C EF 5A
0040 | 60 67 8B 6C F6 3B F9 0D 4C CE 31 17 6C 46 4A 1D
0050 | 49 6F 03 F9 FB 15 51 F4 F8 B8 F5 9E 72 02 64 75
0060 | 93 C3 F1 AF A5 48 D0 8F 24 8B C4 BA 06 DC 7D FF
0070 | 7F D1 43 3D 51 10 07 6B 80 5D 0F D4 3D 3D F5 B7
0080 | 87 2B ED 15 EC B1 00 B6 C1 7F 85 EF 72 93 B2 3E
0090 | 7F 73 4F 58 16 95 D5 47 56 1E 94 70 3F 61 E7 E0
00A0 | 94 81 71 35 D0 A9 77 2D 7E 99 11 B7 8B 64 55 60
00B0 | 66 EF C5 7E 3A 4E 02 97 5A 9A DB 46 8D CC 8E B0
00C0 | D0 94 E8 25 CF FF 13 79 EA 57 C8 9A 19 5A 3F 48
00D0 | 79 BA A2 E1 EB AB 38 DE 74 D1 B6 5D 90 2C D6 F0
00E0 | A0 D0 30 13 D9 0D 22 7D A5 14 02 30 4A 1A 25 77
00F0 | D1 D0 EB 48 16 6C 5C 93 82 E2 99 92 61 C3 AC DF
0100 | D1 C0 4F 47 0A 04 3B DE 07 36 5D 41 38 1F 81 D5
0110 | 14 D5 FC 6A D7 7C 81 6D 09 B8 A3 77 7C 49 59 38
0120 | BF 2E D7 0C 63 A8 18 CC 39 9D 8B A4 72 08 FE A5
0130 | 66 8F D9 9E D4 2A 70 74 E8 7D 8A 2D A4 85 27 F1
0140 | D5 74 6B 44 D4 61 82 65 6D 35 3D 0E C4 7B 2F 03
0150 | 4E D1 CE AC 1E 3E 05 D7 93 09 8B 87 8D 95 70 1A
0160 | 2A 24 32 BB FD F5 DA FD 2C 16 6D E3 9B 6E 9B 19
0170 | AD 60 B7 1C A4 7D 66 D5 AD 67 12 A9 43 1A 6A EC
0180 | A4 88 0C 82 D9 37 B8 69 EE 5D A2 6A</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 38 37 0D 00 33 33 84 66
0010 | 78 01 00 00 1F 5F 04 F5 67 F6 E1 F4 DA E0 9F 02
0020 | 21 53 DD D2 73 3C 2E 26 80 EF C4 FA AE 09 0C 46
0030 | 7E DE 04 9A 55 81 12 3E FE 50 01 00 02 3C 5C B1
0040 | 3D 98 66 A7 BD A5 63 E0 E4 AA 11 61 51 10 F3 6B
0050 | 0E 28 72 EA 57 AA BB D1 45 F6 28 C4 99 18 74 AF
0060 | BF C3 2E FB 8C 97 7A 75 8F 97 97 06 CB 21 46 77
0070 | D2 A9 45 27 3F 90 B4 27 F8 1B 86 A4 06 D4 A1 06
0080 | F9 F9 A2 9D DB 4F 24 AD 16 E5 2B CC ED DA FD 85
0090 | 81 BB 31 05 53 2B F4 0B 41 28 38 04 29 F5 32 57
00A0 | C5 00 77 DE B3 5D D8 E6 26 58 B1 F6 06 4B 24 27
00B0 | 5E 96 10 95 F9 3E 03 04 5E 09 1C 03 45 5F EA A0
00C0 | 79 EE 41 08 1C BF CB 18 7E 03 41 A5 5D C7 C6 C2
00D0 | BA 43 15 5C 61 80 53 32 D4 96 15 35 E5 CE A8 BB
00E0 | 29 BC AB 3B CC 54 75 04 F2 2F F2 A7 9A 74 63 11
00F0 | 27 0E 68 66 60 FC 39 7E 78 C5 2D AA E6 6D FC 45
0100 | 8D 80 6B 74 6A 5E 67 CC E1 29 E5 1A 1D 92 5C 63
0110 | 8C 53 69 3C 46 AC C0 5A 38 C9 44 3A BF 8B 64 8D
0120 | DD 05 C9 0C 74 47 50 D0 5F 6C 6A 46 9D 1B 62 B8
0130 | 5C 5F 5B 3F DB 8D 2D 2A E1 9C 4F 00 7F 65 E2 63
0140 | 79 68 19 63 2B BB ED 25 AD 7D 5F F1 98 F5 D2 C8
0150 | 2F B5 A7 7E E8 CF FE D1 8D AA 13 D5 EB BC 17 AD
0160 | 18 44 9E D1 3D 07 72 CE DB 97 DE 78 76 82 81 F3
0170 | 21 21 9F 8E EB 9B CF 36 F8 CA 68 5C 89 C0 DE 90
0180 | 54 FA F7 BE 96 91 C3 27 37 B7 92 D7</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>C8EE0B003A2D8466</code></td>
<td><code>38370D0033338466</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>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE500100C37CEF5A60678B6CF63BF90D</code> <code>4CCE31176C464A1D496F03F9FB1551F4</code> <code>F8B8F59E7202647593C3F1AFA548D08F</code> <code>248BC4BA06DC7DFF7FD1433D5110076B</code> <code>805D0FD43D3DF5B7872BED15ECB100B6</code> <code>C17F85EF7293B23E7F734F581695D547</code> <code>561E94703F61E7E094817135D0A9772D</code> <code>7E9911B78B64556066EFC57E3A4E0297</code> <code>5A9ADB468DCC8EB0D094E825CFFF1379</code> <code>EA57C89A195A3F4879BAA2E1EBAB38DE</code> <code>74D1B65D902CD6F0A0D03013D90D227D</code> <code>A51402304A1A2577D1D0EB48166C5C93</code> <code>82E2999261C3ACDFD1C04F470A043BDE</code> <code>07365D41381F81D514D5FC6AD77C816D</code> <code>09B8A3777C495938BF2ED70C63A818CC</code> <code>399D8BA47208FEA5668FD99ED42A7074</code> <code>E87D8A2DA48527F1D5746B44D4618265</code> <code>6D353D0EC47B2F034ED1CEAC1E3E05D7</code> <code>93098B878D95701A2A2432BBFDF5DAFD</code> <code>2C166DE39B6E9B19AD60B71CA47D66D5</code> <code>AD6712A9431A6AECA4880C82D937B869</code><br> <code>EE5DA26A</code></td>
<td><code>FE500100023C5CB13D9866A7BDA563E0</code> <code>E4AA11615110F36B0E2872EA57AABBD1</code> <code>45F628C4991874AFBFC32EFB8C977A75</code> <code>8F979706CB214677D2A945273F90B427</code> <code>F81B86A406D4A106F9F9A29DDB4F24AD</code> <code>16E52BCCEDDAFD8581BB3105532BF40B</code> <code>4128380429F53257C50077DEB35DD8E6</code> <code>2658B1F6064B24275E961095F93E0304</code> <code>5E091C03455FEAA079EE41081CBFCB18</code> <code>7E0341A55DC7C6C2BA43155C61805332</code> <code>D4961535E5CEA8BB29BCAB3BCC547504</code> <code>F22FF2A79A746311270E686660FC397E</code> <code>78C52DAAE66DFC458D806B746A5E67CC</code> <code>E129E51A1D925C638C53693C46ACC05A</code> <code>38C9443ABF8B648DDD05C90C744750D0</code> <code>5F6C6A469D1B62B85C5F5B3FDB8D2D2A</code> <code>E19C4F007F65E263796819632BBBED25</code> <code>AD7D5FF198F5D2C82FB5A77EE8CFFED1</code> <code>8DAA13D5EBBC17AD18449ED13D0772CE</code> <code>DB97DE78768281F321219F8EEB9BCF36</code> <code>F8CA685C89C0DE9054FAF7BE9691C327</code><br> <code>37B792D7</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 = 3012C0DC69550576E606CEE1E158B0FD048BA9B8887F763EDE7E9F3EE723C4976AAA60265B790724E80447DB3717A7C4E54E36F41F0BC122F64E4A3E84F8F7CE43DE304DD8843B33AF5963A7A227C334A992EF20FA2D859D486685A9CCB2A0365B315319C4723441E47A592E0A6D61AD3C697FE1431B9AB28DD4FD247A812CF8F46C684B53C72237E8A8B27BBD101FBFE5693BF956396405A8AE2A480952F651755E5927076B61043172B49868E5F6DA563A3C6A0E160F2FDB6EB43740B30C8A609A8655CE11495D496651944A6E2712208945D781708C1A5CCE8ED36A2D67A19D459A2A9197DFE53ED00C121C849CE265A95584B25832948B86E5520BB39E01</code></pre>
<pre><code>auth_key = 64244689F699D38F723C45718E9AB531429148F52EFE74388C6ACD6BB78DE4C738E43CEDCF868311B3C8C1D9733743DD3AF69DA2FFD1705096D78915364C3526EF37A158B317905C478A54915DBB13DF8EB403B6FD2D51FD05068C1D6BA952FABA341959335FC119C6196CA1AC97701ED69A6B7246300B49A81EF9BB61BF3D934A4371A3A97D7E91FFCCF92B4CD52E4482CAEA1E279459B4909C0E1C46D9E28458C0E7667B70B9D9D1EA929FAA043DADB52672B6B391CBF3896A9B4CC4BEA393B036D97910B3C8E52C9A31955AAAFDBAB9C5E95670CC465ECC0A993D8B54B2F5B6F4A4BDEB4468550C6405D009C379BD108617EB174979C97120BD9C43D96CEF</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 98 5E E7 3B 2D 84 66
0010 | 54 00 00 00 34 F7 CB 3B 1A 94 A9 17 FE BC 44 54
0020 | 8A E7 C4 3D 89 59 88 62 43 F0 01 27 70 6C 84 C2
0030 | D5 A5 4D 2F F3 BB 47 F9 70 43 69 20 E2 CA 04 8F
0040 | 3B 30 63 BF 54 29 2E 89</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 20 4C 4F 34 33 84 66
0010 | 8C 00 00 00 34 F7 CB 3B 67 F6 E1 F4 DA E0 9F 02
0020 | 21 53 DD D2 73 3C 2E 26 80 EF C4 FA AE 09 0C 46
0030 | 7E DE 04 9A 55 81 12 3E 60 9F 9B 34 0C 56 1B F1
0040 | 0B F5 9B 8A D6 AC 19 74</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>01985EE73B2D8466</code></td>
<td><code>01204C4F34338466</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>54000000</code> (84 in decimal)</td>
<td><code>8C000000</code> (140 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>1A94A917FEBC44548AE7C43D89598862</code></td>
<td><code>67F6E1F4DAE09F022153DDD2733C2E26</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>43F00127706C84C2D5A54D2FF3BB47F9</code></td>
<td><code>80EFC4FAAE090C467EDE049A5581123E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>70436920E2CA048F3B3063BF54292E89</code></td>
<td><code>609F9B340C561BF10BF59B8AD6AC1974</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

@ -607,7 +607,7 @@
</tr>
<tr>
<td><a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a></td>
<td> </td>
<td>Send a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a></td>

View file

@ -110,7 +110,7 @@ h…">
<tbody>
<tr>
<td><a href="/method/help.getTimezonesList">help.getTimezonesList</a></td>
<td> </td>
<td>Returns timezone information that may be used elsewhere in the API, such as to set <a href="/api/business#opening-hours">Telegram Business opening hours »</a>.</td>
</tr>
</tbody>
</table></div>

View file

@ -168,7 +168,7 @@
</tr>
<tr>
<td><a href="/method/messages.getQuickReplyMessages">messages.getQuickReplyMessages</a></td>
<td> </td>
<td>Fetch (a subset or all) messages in a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut »</a>.</td>
</tr>
<tr>
<td><a href="/method/channels.searchPosts">channels.searchPosts</a></td>

View file

@ -13,7 +13,7 @@ Methods
Method
Description
smsjobs.getStatus
 ">
Get SMS jobs status…">
<meta property="og:title" content="smsjobs.Status">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
@ -25,7 +25,7 @@ Methods
Method
Description
smsjobs.getStatus
 ">
Get SMS jobs status…">
<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">
@ -103,7 +103,7 @@ smsjobs.getStatus
<tbody>
<tr>
<td><a href="/method/smsjobs.getStatus">smsjobs.getStatus</a></td>
<td> </td>
<td>Get SMS jobs status (official clients only).</td>
</tr>
</tbody>
</table></div>