Update content of files

This commit is contained in:
GitHub Action 2024-06-30 16:25:21 +00:00
parent 96c98816b3
commit e34498eba2
12 changed files with 282 additions and 374 deletions

View file

@ -435,14 +435,14 @@
<li>Added <a href="/method/account.updateBusinessLocation">account.updateBusinessLocation</a> - <a href="/api/business#location">Businesses »</a> may advertise their location using this method, see <a href="/api/business#location">here »</a> for more info.</li>
<li>Added <a href="/method/account.updateBusinessGreetingMessage">account.updateBusinessGreetingMessage</a> - </li>
<li>Added <a href="/method/account.updateBusinessAwayMessage">account.updateBusinessAwayMessage</a> - </li>
<li>Added <a href="/method/messages.getQuickReplies">messages.getQuickReplies</a> - To fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</li>
<li>Added <a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a> - </li>
<li>Added <a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a> - </li>
<li>Added <a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a> - </li>
<li>Added <a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a> - </li>
<li>Added <a href="/method/messages.getQuickReplies">messages.getQuickReplies</a> - Fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</li>
<li>Added <a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a> - Reorder <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</li>
<li>Added <a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a> - Before offering the user the choice to add a message to a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>, to make sure that none of the limits specified <a href="/api/business#quick-reply-shortcuts">here »</a> were reached.</li>
<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> - </li>
<li>Added <a href="/method/messages.sendQuickReplyMessages">messages.sendQuickReplyMessages</a> - </li>
<li>Added <a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</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> - </li>
<li>Added <a href="/method/account.getConnectedBots">account.getConnectedBots</a> - </li>
<li>Added <a href="/method/messages.toggleDialogFilterTags">messages.toggleDialogFilterTags</a> - </li>

View file

@ -4,26 +4,10 @@
<meta charset="utf-8">
<title>messages.checkQuickReplyShortcut</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
shortcut
string
 
Result
Bool">
<meta property="description" content="Before offering the user the choice to add a message to a quick reply shortcut, to make sure that none of the limits specified here » were reached.">
<meta property="og:title" content="messages.checkQuickReplyShortcut">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
shortcut
string
 
Result
Bool">
<meta property="og:description" content="Before offering the user the choice to add a message to a quick reply shortcut, to make sure that none of the limits specified here » were reached.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -58,7 +42,8 @@ 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/messages.checkQuickReplyShortcut" >messages.checkQuickReplyShortcut</a></li></ul></div>
<h1 id="dev_page_title">messages.checkQuickReplyShortcut</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Before offering the user the choice to add a message to a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>, to make sure that none of the limits specified <a href="/api/business#quick-reply-shortcuts">here »</a> were reached.</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>
@ -87,12 +72,15 @@ Bool">
<tr>
<td><strong>shortcut</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Shorcut name (not ID!).</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/Bool">Bool</a></p></div>
<p><a href="/type/Bool">Bool</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#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,40 +4,10 @@
<meta charset="utf-8">
<title>messages.deleteQuickReplyMessages</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
shortcut_id
int
 
id
Vector&lt;int&gt;
 
Result
Updates
Possible errors
Code
Type
Description…">
<meta property="description" content="Delete one or more messages from a quick reply shortcut. This will also emit an updateDeleteQuickReplyMessages update.">
<meta property="og:title" content="messages.deleteQuickReplyMessages">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
shortcut_id
int
 
id
Vector&lt;int&gt;
 
Result
Updates
Possible errors
Code
Type
Description…">
<meta property="og:description" content="Delete one or more messages from a quick reply shortcut. This will also emit an updateDeleteQuickReplyMessages update.">
<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">
@ -72,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/messages.deleteQuickReplyMessages" >messages.deleteQuickReplyMessages</a></li></ul></div>
<h1 id="dev_page_title">messages.deleteQuickReplyMessages</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>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.</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>
@ -106,12 +77,12 @@ Description…">
<tr>
<td><strong>shortcut_id</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td><a href="/api/business#quick-reply-shortcuts">Shortcut ID</a>.</td>
</tr>
<tr>
<td><strong>id</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt;</td>
<td> </td>
<td>IDs of shortcut messages to delete.</td>
</tr>
</tbody>
</table>
@ -133,7 +104,11 @@ Description…">
<td>The specified shortcut 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>
<h4><a class="anchor" href="#updatedeletequickreplymessages" id="updatedeletequickreplymessages" name="updatedeletequickreplymessages"><i class="anchor-icon"></i></a><a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a></h4></div>
</div>

View file

@ -4,38 +4,10 @@
<meta charset="utf-8">
<title>messages.deleteQuickReplyShortcut</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
shortcut_id
int
 
Result
Bool
Possible errors
Code
Type
Description
400
SHORTCUT_INVALID…">
<meta property="description" content="Completely delete a quick reply shortcut. This will also emit an updateDeleteQuickReply update to other logged-in sessions (and no updateDeleteQuickReplyMessages updates, even if all the messages in the shortcuts are also deleted by this method).">
<meta property="og:title" content="messages.deleteQuickReplyShortcut">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
shortcut_id
int
 
Result
Bool
Possible errors
Code
Type
Description
400
SHORTCUT_INVALID…">
<meta property="og:description" content="Completely delete a quick reply shortcut. This will also emit an updateDeleteQuickReply update to other logged-in sessions (and no updateDeleteQuickReplyMessages updates, even if all the messages in the shortcuts are also deleted by this method).">
<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,9 @@ SHORTCUT_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/messages.deleteQuickReplyShortcut" >messages.deleteQuickReplyShortcut</a></li></ul></div>
<h1 id="dev_page_title">messages.deleteQuickReplyShortcut</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Completely delete a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>.<br>
This will also emit an <a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a> update to other logged-in sessions (and <em>no</em> <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> updates, even if all the messages in the shortcuts are also deleted by this method).</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>
@ -99,7 +73,7 @@ SHORTCUT_INVALID…">
<tr>
<td><strong>shortcut_id</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td><a href="/api/business#quick-reply-shortcuts">Shortcut ID</a></td>
</tr>
</tbody>
</table>
@ -121,7 +95,12 @@ SHORTCUT_INVALID…">
<td>The specified shortcut 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>
<h4><a class="anchor" href="#updatedeletequickreply" id="updatedeletequickreply" name="updatedeletequickreply"><i class="anchor-icon"></i></a><a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a></h4>
<h4><a class="anchor" href="#updatedeletequickreplymessages" id="updatedeletequickreplymessages" name="updatedeletequickreplymessages"><i class="anchor-icon"></i></a><a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a></h4></div>
</div>

View file

@ -4,40 +4,10 @@
<meta charset="utf-8">
<title>messages.editQuickReplyShortcut</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
shortcut_id
int
 
shortcut
string
 
Result
Bool
Possible errors
Code
Type
Description…">
<meta property="description" content="Rename a quick reply shortcut. This will emit an updateQuickReplies update to other logged-in sessions.">
<meta property="og:title" content="messages.editQuickReplyShortcut">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
shortcut_id
int
 
shortcut
string
 
Result
Bool
Possible errors
Code
Type
Description…">
<meta property="og:description" content="Rename a quick reply shortcut. This will emit an updateQuickReplies update to other logged-in sessions.">
<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">
@ -72,7 +42,9 @@ 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/messages.editQuickReplyShortcut" >messages.editQuickReplyShortcut</a></li></ul></div>
<h1 id="dev_page_title">messages.editQuickReplyShortcut</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Rename a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>.<br>
This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</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>
@ -101,12 +73,12 @@ Description…">
<tr>
<td><strong>shortcut_id</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td><a href="/api/business#quick-reply-shortcuts">Shortcut ID</a>.</td>
</tr>
<tr>
<td><strong>shortcut</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>New shortcut name.</td>
</tr>
</tbody>
</table>
@ -128,7 +100,11 @@ Description…">
<td>The specified shortcut 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>
<h4><a class="anchor" href="#updatequickreplies" id="updatequickreplies" name="updatequickreplies"><i class="anchor-icon"></i></a><a href="/constructor/updateQuickReplies">updateQuickReplies</a></h4></div>
</div>

View file

@ -4,10 +4,10 @@
<meta charset="utf-8">
<title>messages.getQuickReplies</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="To fetch basic info about all existing quick reply shortcuts.">
<meta property="description" content="Fetch basic info about all existing quick reply shortcuts.">
<meta property="og:title" content="messages.getQuickReplies">
<meta property="og:image" content="">
<meta property="og:description" content="To fetch basic info about all existing quick reply shortcuts.">
<meta property="og:description" content="Fetch basic info about all existing quick reply shortcuts.">
<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/messages.getQuickReplies" >messages.getQuickReplies</a></li></ul></div>
<h1 id="dev_page_title">messages.getQuickReplies</h1>
<div id="dev_page_content"><p>To fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</p>
<div id="dev_page_content"><p>Fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">

View file

@ -4,26 +4,10 @@
<meta charset="utf-8">
<title>messages.reorderQuickReplies</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
order
Vector&lt;int&gt;
 
Result
Bool">
<meta property="description" content="Reorder quick reply shortcuts. This will emit an updateQuickReplies update to other logged-in sessions.">
<meta property="og:title" content="messages.reorderQuickReplies">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
order
Vector&lt;int&gt;
 
Result
Bool">
<meta property="og:description" content="Reorder quick reply shortcuts. This will emit an updateQuickReplies update to other logged-in sessions.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -58,7 +42,9 @@ 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/messages.reorderQuickReplies" >messages.reorderQuickReplies</a></li></ul></div>
<h1 id="dev_page_title">messages.reorderQuickReplies</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Reorder <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</p>
<p>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</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>
@ -87,12 +73,16 @@ Bool">
<tr>
<td><strong>order</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt;</td>
<td> </td>
<td>IDs of all created <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>, in the desired order.</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/Bool">Bool</a></p></div>
<p><a href="/type/Bool">Bool</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#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="#updatequickreplies" id="updatequickreplies" name="updatequickreplies"><i class="anchor-icon"></i></a><a href="/constructor/updateQuickReplies">updateQuickReplies</a></h4></div>
</div>

View file

@ -3238,23 +3238,23 @@ Look for updates of telegram&#39;s terms of service…">
</tr>
<tr>
<td><a href="/method/messages.getQuickReplies">messages.getQuickReplies</a></td>
<td>To fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</td>
<td>Fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</td>
</tr>
<tr>
<td><a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a></td>
<td> </td>
<td>Reorder <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.<br><br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
</tr>
<tr>
<td><a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a></td>
<td> </td>
<td>Before offering the user the choice to add a message to a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>, to make sure that none of the limits specified <a href="/api/business#quick-reply-shortcuts">here »</a> were reached.</td>
</tr>
<tr>
<td><a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a></td>
<td> </td>
<td>Rename a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
</tr>
<tr>
<td><a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a></td>
<td> </td>
<td>Completely delete a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will also emit an <a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a> update to other logged-in sessions (and <em>no</em> <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> updates, even if all the messages in the shortcuts are also deleted by this method).</td>
</tr>
<tr>
<td><a href="/method/messages.getQuickReplyMessages">messages.getQuickReplyMessages</a></td>
@ -3266,7 +3266,7 @@ Look for updates of telegram&#39;s terms of service…">
</tr>
<tr>
<td><a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a></td>
<td> </td>
<td>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.</td>
</tr>
<tr>
<td><a href="/method/account.updateConnectedBot">account.updateConnectedBot</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 C0 EC 05 00 B1 82 81 66
0010 | 14 00 00 00 F1 8E 7E BE 57 FF D7 2B 59 89 6B 51
0020 | 90 E1 9C 97 8E 8C BF E2</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 E0 F4 09 00 D2 83 81 66
0010 | 14 00 00 00 F1 8E 7E BE B6 C5 39 69 CA C2 3B 76
0020 | 7D BD E0 BA 50 4C D1 B3</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>C0EC0500B1828166</code></td>
<td><code>E0F40900D2838166</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>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</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 8C FA 7C B1 82 81 66
0010 | 9C 00 00 00 63 24 16 05 57 FF D7 2B 59 89 6B 51
0020 | 90 E1 9C 97 8E 8C BF E2 6B 64 54 0E 20 4B 82 27
0030 | 92 38 17 F2 43 DB 60 44 08 11 B3 CD 1E 75 17 8A
0040 | D5 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 C8 6D 87 D2 83 81 66
0010 | C0 00 00 00 63 24 16 05 B6 C5 39 69 CA C2 3B 76
0020 | 7D BD E0 BA 50 4C D1 B3 AB 86 38 EB 10 E1 A3 9A
0030 | 34 AB 3F E5 D7 D3 EF 4E 08 27 A5 39 34 C5 8E 97
0040 | D1 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>018CFA7CB1828166</code></td>
<td><code>01C86D87D2838166</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>9C000000</code> (156 in decimal)</td>
<td><code>C0000000</code> (192 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>0811B3CD1E75178AD5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1275588650173172437</td>
<td><code>0827A53934C58E97D1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2856752437451986897</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 = 1275588650173172437</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1275588650173172437 = 1065626909 * 1197031193</code></p>
<pre><code>p = 1065626909
q = 1197031193</code></pre>
<pre><code>pq = 2856752437451986897</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2856752437451986897 = 1496152109 * 1909399733</code></p>
<pre><code>p = 1496152109
q = 1909399733</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 11 B3 CD 1E 75 17 8A D5 00 00 00
0010 | 04 3F 84 2D 1D 00 00 00 04 47 59 3F 19 00 00 00
0020 | 57 FF D7 2B 59 89 6B 51 90 E1 9C 97 8E 8C BF E2
0030 | 6B 64 54 0E 20 4B 82 27 92 38 17 F2 43 DB 60 44
0040 | 03 3C E0 ED CC A9 41 D8 C8 5F A5 47 6C 78 53 EB
0050 | E8 ED D1 3C 55 4A CB 57 D2 A3 C8 21 DB 86 0A C8
<pre><code>0000 | 95 5F F5 A9 08 27 A5 39 34 C5 8E 97 D1 00 00 00
0010 | 04 59 2D 78 2D 00 00 00 04 71 CF 20 B5 00 00 00
0020 | B6 C5 39 69 CA C2 3B 76 7D BD E0 BA 50 4C D1 B3
0030 | AB 86 38 EB 10 E1 A3 9A 34 AB 3F E5 D7 D3 EF 4E
0040 | C1 9F D5 3B 4E 07 D7 BB 06 72 A5 AE 55 5E 9A D5
0050 | CF A0 2F F3 03 9D 5A 20 FD 70 3A C6 07 57 F0 45
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 = 1197031193</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>0811B3CD1E75178AD5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1275588650173172437</td>
<td><code>0827A53934C58E97D1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2856752437451986897</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>043F842D1D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1065626909</td>
<td><code>04592D782D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1496152109</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>0447593F19000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1197031193</td>
<td><code>0471CF20B5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1909399733</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>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>033CE0EDCCA941D8C85FA5476C7853EB</code> <code>E8EDD13C554ACB57D2A3C821DB860AC8</code></td>
<td><code>C19FD53B4E07D7BB0672A5AE555E9AD5</code> <code>CFA02FF3039D5A20FD703AC60757F045</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1197031193</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 = 955FF5A90811B3CD1E75178AD5000000043F842D1D0000000447593F1900000057FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB6044033CE0EDCCA941D8C85FA5476C7853EBE8EDD13C554ACB57D2A3C821DB860AC802000000
random_padding_bytes = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E443BD02AC75EF01D1A24D7D7022A2B0E11135B1C680EF466F255507A51F2C3983CC608350EC19A154A7991BCB53CBA51FA74FE999967FE909273A66E47F3003</code></pre>
<pre><code>data = 955FF5A90827A53934C58E97D100000004592D782D0000000471CF20B5000000B6C53969CAC23B767DBDE0BA504CD1B3AB8638EB10E1A39A34AB3FE5D7D3EF4EC19FD53B4E07D7BB0672A5AE555E9AD5CFA02FF3039D5A20FD703AC60757F04502000000
random_padding_bytes = BE1E7AF322DC5469119552CDAAC4E19E0BA6D3A0924C30F0AF570911F3BD1FF1C3CDB4C3BA58DD8FAEDE241DF8AE221AB87EF198B950FD861547F698BE71D54F64EF14828BC107BE1E3D89D174301B74009E48F3E1F77E0C008FEB1E</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 = 8F02E46879B206D24A0879E7F3C98EB000FB71E2A3F706E5CED8DBAD106D02044C7A59C5CCFA880578FDE1CD01FA49E5D9C89661DA7B483EECF53EE8243B453E52D41E83A1576E127119955669ECC7F781152BB99C7BB2927550C77D504CD7AFDCC8951BDD54D294D659913DA79A2257BAF85D890483AABE94C5AF4F885778102AB72D11C00CB10820448EF9D43CADE2233ACDE0D7D4837DC9EC1F3186CC8EE5C36C08A5A84D27E992243971ACD74206B1AB3419D12A155BC5030113DCB348FF13D0C2D3477D636FB88D52909D167397EF110C172DDB44634264245C5D9C6F513D498F049C409AE647FC68D59B8254573217955EC63D3B51523D2BB5E26D24FC</code></pre>
<pre><code>encrypted_data = 6E930E1C34E9B89F64DCB8CC6A93D47454ABB0E257C02B8093FD8D2C93C5958C8B524FCDB2F2B72A01644BA64FFDA8A259377183AC2BAAB64E9710C15905E00F66E81A06BD4F7F0B2AAF4B819BC88967F8F206089E4E4CFE75B2D1C2A8319173CF2E75BB7F058AC7FB59419C84D706CC62F18D958707BF8D87F88B7F6D06EEF0FBC8317AE5E34A8AE6E38659B1022D5F7B0BEBC0DF6EF1C337A3FAAE75B7C65DFF8853538009D7C3AB94CB5C81382EBAD637170144933371769707C3B007961E3555DD86834A8E82D74E0E7031173779D1F1D2D817FBC66DBD730E191A8133BBD6839AC6EC64B613A184AFC2CEE463269CBE30D270C4639CECCEC8BB9972B2C1</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 EC 05 00 B1 82 81 66
0010 | 40 01 00 00 BE E4 12 D7 57 FF D7 2B 59 89 6B 51
0020 | 90 E1 9C 97 8E 8C BF E2 6B 64 54 0E 20 4B 82 27
0030 | 92 38 17 F2 43 DB 60 44 04 3F 84 2D 1D 00 00 00
0040 | 04 47 59 3F 19 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 8F 02 E4 68 79 B2 06 D2 4A 08 79 E7
0060 | F3 C9 8E B0 00 FB 71 E2 A3 F7 06 E5 CE D8 DB AD
0070 | 10 6D 02 04 4C 7A 59 C5 CC FA 88 05 78 FD E1 CD
0080 | 01 FA 49 E5 D9 C8 96 61 DA 7B 48 3E EC F5 3E E8
0090 | 24 3B 45 3E 52 D4 1E 83 A1 57 6E 12 71 19 95 56
00A0 | 69 EC C7 F7 81 15 2B B9 9C 7B B2 92 75 50 C7 7D
00B0 | 50 4C D7 AF DC C8 95 1B DD 54 D2 94 D6 59 91 3D
00C0 | A7 9A 22 57 BA F8 5D 89 04 83 AA BE 94 C5 AF 4F
00D0 | 88 57 78 10 2A B7 2D 11 C0 0C B1 08 20 44 8E F9
00E0 | D4 3C AD E2 23 3A CD E0 D7 D4 83 7D C9 EC 1F 31
00F0 | 86 CC 8E E5 C3 6C 08 A5 A8 4D 27 E9 92 24 39 71
0100 | AC D7 42 06 B1 AB 34 19 D1 2A 15 5B C5 03 01 13
0110 | DC B3 48 FF 13 D0 C2 D3 47 7D 63 6F B8 8D 52 90
0120 | 9D 16 73 97 EF 11 0C 17 2D DB 44 63 42 64 24 5C
0130 | 5D 9C 6F 51 3D 49 8F 04 9C 40 9A E6 47 FC 68 D5
0140 | 9B 82 54 57 32 17 95 5E C6 3D 3B 51 52 3D 2B B5
0150 | E2 6D 24 FC</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 EC 0C 0E 00 D2 83 81 66
0010 | 40 01 00 00 BE E4 12 D7 B6 C5 39 69 CA C2 3B 76
0020 | 7D BD E0 BA 50 4C D1 B3 AB 86 38 EB 10 E1 A3 9A
0030 | 34 AB 3F E5 D7 D3 EF 4E 04 59 2D 78 2D 00 00 00
0040 | 04 71 CF 20 B5 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 6E 93 0E 1C 34 E9 B8 9F 64 DC B8 CC
0060 | 6A 93 D4 74 54 AB B0 E2 57 C0 2B 80 93 FD 8D 2C
0070 | 93 C5 95 8C 8B 52 4F CD B2 F2 B7 2A 01 64 4B A6
0080 | 4F FD A8 A2 59 37 71 83 AC 2B AA B6 4E 97 10 C1
0090 | 59 05 E0 0F 66 E8 1A 06 BD 4F 7F 0B 2A AF 4B 81
00A0 | 9B C8 89 67 F8 F2 06 08 9E 4E 4C FE 75 B2 D1 C2
00B0 | A8 31 91 73 CF 2E 75 BB 7F 05 8A C7 FB 59 41 9C
00C0 | 84 D7 06 CC 62 F1 8D 95 87 07 BF 8D 87 F8 8B 7F
00D0 | 6D 06 EE F0 FB C8 31 7A E5 E3 4A 8A E6 E3 86 59
00E0 | B1 02 2D 5F 7B 0B EB C0 DF 6E F1 C3 37 A3 FA AE
00F0 | 75 B7 C6 5D FF 88 53 53 80 09 D7 C3 AB 94 CB 5C
0100 | 81 38 2E BA D6 37 17 01 44 93 33 71 76 97 07 C3
0110 | B0 07 96 1E 35 55 DD 86 83 4A 8E 82 D7 4E 0E 70
0120 | 31 17 37 79 D1 F1 D2 D8 17 FB C6 6D BD 73 0E 19
0130 | 1A 81 33 BB D6 83 9A C6 EC 64 B6 13 A1 84 AF C2
0140 | CE E4 63 26 9C BE 30 D2 70 C4 63 9C EC CE C8 BB
0150 | 99 72 B2 C1</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 = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>C4EC0500B1828166</code></td>
<td><code>EC0C0E00D2838166</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 = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>043F842D1D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1065626909</td>
<td><code>04592D782D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1496152109</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>0447593F19000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1197031193</td>
<td><code>0471CF20B5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1909399733</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 = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE0001008F02E46879B206D24A0879E7</code> <code>F3C98EB000FB71E2A3F706E5CED8DBAD</code> <code>106D02044C7A59C5CCFA880578FDE1CD</code> <code>01FA49E5D9C89661DA7B483EECF53EE8</code> <code>243B453E52D41E83A1576E1271199556</code> <code>69ECC7F781152BB99C7BB2927550C77D</code> <code>504CD7AFDCC8951BDD54D294D659913D</code> <code>A79A2257BAF85D890483AABE94C5AF4F</code> <code>885778102AB72D11C00CB10820448EF9</code> <code>D43CADE2233ACDE0D7D4837DC9EC1F31</code> <code>86CC8EE5C36C08A5A84D27E992243971</code> <code>ACD74206B1AB3419D12A155BC5030113</code> <code>DCB348FF13D0C2D3477D636FB88D5290</code> <code>9D167397EF110C172DDB44634264245C</code> <code>5D9C6F513D498F049C409AE647FC68D5</code> <code>9B8254573217955EC63D3B51523D2BB5</code><br> <code>E26D24FC</code></td>
<td><code>FE0001006E930E1C34E9B89F64DCB8CC</code> <code>6A93D47454ABB0E257C02B8093FD8D2C</code> <code>93C5958C8B524FCDB2F2B72A01644BA6</code> <code>4FFDA8A259377183AC2BAAB64E9710C1</code> <code>5905E00F66E81A06BD4F7F0B2AAF4B81</code> <code>9BC88967F8F206089E4E4CFE75B2D1C2</code> <code>A8319173CF2E75BB7F058AC7FB59419C</code> <code>84D706CC62F18D958707BF8D87F88B7F</code> <code>6D06EEF0FBC8317AE5E34A8AE6E38659</code> <code>B1022D5F7B0BEBC0DF6EF1C337A3FAAE</code> <code>75B7C65DFF8853538009D7C3AB94CB5C</code> <code>81382EBAD637170144933371769707C3</code> <code>B007961E3555DD86834A8E82D74E0E70</code> <code>31173779D1F1D2D817FBC66DBD730E19</code> <code>1A8133BBD6839AC6EC64B613A184AFC2</code> <code>CEE463269CBE30D270C4639CECCEC8BB</code><br> <code>9972B2C1</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E
<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 7C 7F 46 B2 82 81 66
0010 | 78 02 00 00 5C 07 E8 D0 57 FF D7 2B 59 89 6B 51
0020 | 90 E1 9C 97 8E 8C BF E2 6B 64 54 0E 20 4B 82 27
0030 | 92 38 17 F2 43 DB 60 44 FE 50 02 00 3E EB 0A 9A
0040 | 1E 8C AF 4C 8A DB 0D 2C 73 14 FF F8 67 7A 6B 64
0050 | 23 3E 4A 15 8A D5 EF 32 46 87 15 FC FD 1B 4D 6D
0060 | C2 F8 44 BE 68 6E 87 58 2A 6D 8B F8 C4 86 0A AA
0070 | 25 D5 4B 9F 8D 99 E0 51 2D 61 91 43 E6 C6 5F 45
0080 | 0A B0 84 EC 6D 57 31 89 92 75 F5 07 DC 1D 51 23
0090 | 0F F8 62 FF 92 3F 8A E3 63 3C 88 71 3C BE 3D 2E
00A0 | 30 CA A8 C5 B2 0A 8C 58 F0 81 77 B1 09 20 87 2F
00B0 | 1E E4 26 BB 73 30 91 58 8E 18 0B 7C 39 7E 06 55
00C0 | 39 F4 FB 0A CF 87 9F 99 85 F2 80 02 32 0C 75 5E
00D0 | 9B 71 09 9D DC 0E F7 95 AC 1C F8 B4 14 89 CC 9E
00E0 | 64 F8 39 FF 81 9E 22 1F A2 E4 06 0D 1C E0 F5 C1
00F0 | 3C 8D 09 30 60 D9 6B 55 F5 2B D5 A1 FE 40 2F 93
0100 | 79 86 84 57 2D 45 44 74 4C 19 A2 52 5E 86 29 AA
0110 | 43 A5 B9 0A 2B 27 3A 68 6C 32 53 F8 2A F6 05 14
0120 | 3B AF E7 E0 F6 11 FA 9A 0C 46 81 BA AB 94 96 F1
0130 | 11 C8 9E 08 15 94 0D 6D 43 76 22 40 D7 C9 C2 24
0140 | F0 0E F5 10 4B BC 41 11 30 64 1D A7 6B D0 38 48
0150 | BD 6C 3C EF F2 EE 13 21 5B 85 64 DA 8F 03 25 3E
0160 | 0A CC CD BC 1D B1 8C C4 98 42 62 34 1E 8F 7C D4
0170 | B0 C9 27 8F C0 41 A8 5C A6 EA 83 10 4F 5F 03 4B
0180 | C2 15 C4 0D 75 1C 7D BE 03 EB DA 51 37 55 78 EE
0190 | 68 87 63 89 BE 28 13 D8 70 51 A1 C8 50 2B 03 A4
01A0 | EF FE 64 93 74 47 EA 28 CC 8D 65 5B C9 96 32 A1
01B0 | 18 91 DF 2F B5 75 63 50 85 CD 94 8F 83 86 04 FE
01C0 | A9 C1 99 40 E9 66 7F 17 FE A8 A5 C0 C3 D2 E4 20
01D0 | 72 62 03 77 45 BB 3E 87 34 46 B0 73 6B 73 DB 73
01E0 | 19 7B E9 61 F9 AC 38 D9 4B 45 C5 2C B9 32 8A 0A
01F0 | B8 F0 F2 F7 58 F3 4E 92 54 26 9C 52 4F 56 81 0B
0200 | 7D 45 B9 23 6D ED 33 A3 E1 D6 1B 0E 00 72 F2 5C
0210 | EB 33 5F A5 3C A5 2D EF DB 70 80 40 C1 E7 DA 6F
0220 | 67 75 51 91 17 BE AB 9E C4 90 33 80 49 79 DC F1
0230 | 98 97 FA 37 AC 52 C7 DC 17 73 09 67 49 66 FA 9C
0240 | D9 67 C9 5D C8 9E 24 8B DE 80 06 34 99 3C 35 ED
0250 | 8F 46 75 B8 F2 1D 7A A3 49 7C D0 DD C3 41 19 DB
0260 | 99 91 D3 37 0F 2B 93 5F 74 C8 C7 F4 4F 3F 1A 50
0270 | 62 0F 99 21 E3 88 B1 4D 8D 2D 35 0B AA 73 6A EA
0280 | 19 33 32 BD 76 7C 79 EF E1 2F 28 69</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 54 DB 5E D3 83 81 66
0010 | A4 02 00 00 5C 07 E8 D0 B6 C5 39 69 CA C2 3B 76
0020 | 7D BD E0 BA 50 4C D1 B3 AB 86 38 EB 10 E1 A3 9A
0030 | 34 AB 3F E5 D7 D3 EF 4E FE 50 02 00 F2 FC 6F D6
0040 | 49 63 14 8B 36 26 C5 50 95 48 46 1A 12 6C 54 9F
0050 | 4D 63 21 CA C1 21 46 65 26 0A EB D4 A9 DF B1 AF
0060 | 89 26 62 7A 97 43 3B E7 B4 EB 62 0C 2B 22 23 37
0070 | 4B 72 BE 5E BB 5F AE 6C 6A 30 30 D0 A0 9F 80 B6
0080 | E3 58 C9 F5 AB D0 15 9B 61 77 BF AC BC B7 58 E8
0090 | 87 7E E4 6E 8B 16 DA BF 6E 35 EA 41 B4 A7 46 2C
00A0 | 34 BD 7E 8D 2C 5A D6 61 74 DC 0A 87 DF E3 20 6F
00B0 | 3F CD 5D C8 FB 98 D6 7B 54 0B B3 AC F9 0E 64 72
00C0 | C7 E1 01 0E A0 83 BD E7 0B E9 DA 62 D5 F5 3C 20
00D0 | E4 87 91 B3 11 8B 4D D1 4A 70 AA EF 82 1D 08 C6
00E0 | D4 D6 E7 8B 4D 29 5F B1 9A AC 7E 62 AF 0F 02 A1
00F0 | ED 53 03 91 BB 53 DC 68 AF 7D 1F F0 0E 22 24 7F
0100 | D0 34 5F 99 DF F2 FC 9C B5 8F A4 D0 CF 7A 54 99
0110 | 98 7C 9A 70 1E 3F C1 0E 56 05 F6 49 F3 A7 C9 6B
0120 | 86 E9 5E 72 4A 3C 5D 46 81 C2 B9 97 8E A1 67 2D
0130 | 1B 71 DD 69 CC E9 55 98 B8 FD 28 97 F0 4C 12 C9
0140 | D7 87 14 7A A2 73 85 51 DC 54 CF 78 AB 75 8D 57
0150 | D3 CA 61 8A AA B7 E3 A3 A1 EA AD 40 FB 05 30 B7
0160 | 0F 91 8F 4D 15 52 B0 31 1C 54 DE 5C 85 B3 56 ED
0170 | 30 C3 99 FA 03 7F 09 8D AB C2 1E EB A6 9F 5C 8D
0180 | F5 DB 77 74 07 51 99 F7 7D 19 BF 74 D7 32 EE 6D
0190 | 4E 63 A0 26 40 C3 6B 16 26 B4 39 58 E8 67 A3 02
01A0 | 20 37 45 ED 10 FB 7B E8 68 85 32 FE 22 CD 98 C0
01B0 | 2E 76 42 48 50 C6 68 77 5A 3C FD 11 84 29 71 4C
01C0 | 28 3F 83 06 3D 36 88 26 5C AE 04 0E 4A 6C F3 53
01D0 | 77 8E 94 5E A0 EA E7 4B 6C 3D F4 91 B5 DC A8 4A
01E0 | 43 39 44 E3 04 CF 70 D3 5C CC DD E5 9F F2 88 4D
01F0 | C6 21 35 BF 5B 8F 89 98 16 17 2B 44 BD DD 98 77
0200 | 74 D7 56 1F D3 36 FB 11 96 DD AD 6C BB 8D D5 B5
0210 | 4C 7B 84 B4 14 7B 59 73 FD F4 05 09 19 9E 89 69
0220 | 00 A6 01 8C A5 74 AF CD 18 DA EA 8E AD EC C9 3E
0230 | 1A 52 24 FE 99 84 8C 6B 2C CC 45 52 8C 17 FF 25
0240 | 7F B8 B1 F2 74 ED 17 7B B1 73 44 DD 6D EB D6 0D
0250 | 3E C2 9A EC 9F D9 F0 E5 F6 7B 8E FD F1 C5 38 21
0260 | 5E 96 A8 9A 93 CE 70 15 BE F5 15 77 72 D2 69 5E
0270 | 30 8B 06 67 BA 25 90 14 26 DA A9 71 FE F8 0D D8
0280 | 62 E0 42 60 21 70 19 C3 D9 B2 05 14</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 = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>017C7F46B2828166</code></td>
<td><code>0154DB5ED3838166</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>78020000</code> (632 in decimal)</td>
<td><code>A4020000</code> (676 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE5002003EEB0A9A1E8CAF4C8ADB0D2C</code> <code>7314FFF8677A6B64233E4A158AD5EF32</code> <code>468715FCFD1B4D6DC2F844BE686E8758</code> <code>2A6D8BF8C4860AAA25D54B9F8D99E051</code> <code>2D619143E6C65F450AB084EC6D573189</code> <code>9275F507DC1D51230FF862FF923F8AE3</code> <code>633C88713CBE3D2E30CAA8C5B20A8C58</code> <code>F08177B10920872F1EE426BB73309158</code> <code>8E180B7C397E065539F4FB0ACF879F99</code> <code>85F28002320C755E9B71099DDC0EF795</code> <code>AC1CF8B41489CC9E64F839FF819E221F</code> <code>A2E4060D1CE0F5C13C8D093060D96B55</code> <code>F52BD5A1FE402F93798684572D454474</code> <code>4C19A2525E8629AA43A5B90A2B273A68</code> <code>6C3253F82AF605143BAFE7E0F611FA9A</code> <code>0C4681BAAB9496F111C89E0815940D6D</code> <code>43762240D7C9C224F00EF5104BBC4111</code> <code>30641DA76BD03848BD6C3CEFF2EE1321</code> <code>5B8564DA8F03253E0ACCCDBC1DB18CC4</code> <code>984262341E8F7CD4B0C9278FC041A85C</code> <code>A6EA83104F5F034BC215C40D751C7DBE</code> <code>03EBDA51375578EE68876389BE2813D8</code> <code>7051A1C8502B03A4EFFE64937447EA28</code> <code>CC8D655BC99632A11891DF2FB5756350</code> <code>85CD948F838604FEA9C19940E9667F17</code> <code>FEA8A5C0C3D2E4207262037745BB3E87</code> <code>3446B0736B73DB73197BE961F9AC38D9</code> <code>4B45C52CB9328A0AB8F0F2F758F34E92</code> <code>54269C524F56810B7D45B9236DED33A3</code> <code>E1D61B0E0072F25CEB335FA53CA52DEF</code> <code>DB708040C1E7DA6F6775519117BEAB9E</code> <code>C49033804979DCF19897FA37AC52C7DC</code> <code>177309674966FA9CD967C95DC89E248B</code> <code>DE800634993C35ED8F4675B8F21D7AA3</code> <code>497CD0DDC34119DB9991D3370F2B935F</code> <code>74C8C7F44F3F1A50620F9921E388B14D</code> <code>8D2D350BAA736AEA193332BD767C79EF</code><br> <code>E12F2869</code></td>
<td><code>FE500200F2FC6FD64963148B3626C550</code> <code>9548461A126C549F4D6321CAC1214665</code> <code>260AEBD4A9DFB1AF8926627A97433BE7</code> <code>B4EB620C2B2223374B72BE5EBB5FAE6C</code> <code>6A3030D0A09F80B6E358C9F5ABD0159B</code> <code>6177BFACBCB758E8877EE46E8B16DABF</code> <code>6E35EA41B4A7462C34BD7E8D2C5AD661</code> <code>74DC0A87DFE3206F3FCD5DC8FB98D67B</code> <code>540BB3ACF90E6472C7E1010EA083BDE7</code> <code>0BE9DA62D5F53C20E48791B3118B4DD1</code> <code>4A70AAEF821D08C6D4D6E78B4D295FB1</code> <code>9AAC7E62AF0F02A1ED530391BB53DC68</code> <code>AF7D1FF00E22247FD0345F99DFF2FC9C</code> <code>B58FA4D0CF7A5499987C9A701E3FC10E</code> <code>5605F649F3A7C96B86E95E724A3C5D46</code> <code>81C2B9978EA1672D1B71DD69CCE95598</code> <code>B8FD2897F04C12C9D787147AA2738551</code> <code>DC54CF78AB758D57D3CA618AAAB7E3A3</code> <code>A1EAAD40FB0530B70F918F4D1552B031</code> <code>1C54DE5C85B356ED30C399FA037F098D</code> <code>ABC21EEBA69F5C8DF5DB7774075199F7</code> <code>7D19BF74D732EE6D4E63A02640C36B16</code> <code>26B43958E867A302203745ED10FB7BE8</code> <code>688532FE22CD98C02E76424850C66877</code> <code>5A3CFD118429714C283F83063D368826</code> <code>5CAE040E4A6CF353778E945EA0EAE74B</code> <code>6C3DF491B5DCA84A433944E304CF70D3</code> <code>5CCCDDE59FF2884DC62135BF5B8F8998</code> <code>16172B44BDDD987774D7561FD336FB11</code> <code>96DDAD6CBB8DD5B54C7B84B4147B5973</code> <code>FDF40509199E896900A6018CA574AFCD</code> <code>18DAEA8EADECC93E1A5224FE99848C6B</code> <code>2CCC45528C17FF257FB8B1F274ED177B</code> <code>B17344DD6DEBD60D3EC29AEC9FD9F0E5</code> <code>F67B8EFDF1C538215E96A89A93CE7015</code> <code>BEF5157772D2695E308B0667BA259014</code> <code>26DAA971FEF80DD862E04260217019C3</code><br> <code>D9B20514</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 1164F6CDFDAD771E45856EF60F3F1D0BF2086D39D7C7B130CF964C27E
<!-- 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 = 3EEB0A9A1E8CAF4C8ADB0D2C7314FFF8677A6B64233E4A158AD5EF32468715FCFD1B4D6DC2F844BE686E87582A6D8BF8C4860AAA25D54B9F8D99E0512D619143E6C65F450AB084EC6D5731899275F507DC1D51230FF862FF923F8AE3633C88713CBE3D2E30CAA8C5B20A8C58F08177B10920872F1EE426BB733091588E180B7C397E065539F4FB0ACF879F9985F28002320C755E9B71099DDC0EF795AC1CF8B41489CC9E64F839FF819E221FA2E4060D1CE0F5C13C8D093060D96B55F52BD5A1FE402F93798684572D4544744C19A2525E8629AA43A5B90A2B273A686C3253F82AF605143BAFE7E0F611FA9A0C4681BAAB9496F111C89E0815940D6D43762240D7C9C224F00EF5104BBC411130641DA76BD03848BD6C3CEFF2EE13215B8564DA8F03253E0ACCCDBC1DB18CC4984262341E8F7CD4B0C9278FC041A85CA6EA83104F5F034BC215C40D751C7DBE03EBDA51375578EE68876389BE2813D87051A1C8502B03A4EFFE64937447EA28CC8D655BC99632A11891DF2FB575635085CD948F838604FEA9C19940E9667F17FEA8A5C0C3D2E4207262037745BB3E873446B0736B73DB73197BE961F9AC38D94B45C52CB9328A0AB8F0F2F758F34E9254269C524F56810B7D45B9236DED33A3E1D61B0E0072F25CEB335FA53CA52DEFDB708040C1E7DA6F6775519117BEAB9EC49033804979DCF19897FA37AC52C7DC177309674966FA9CD967C95DC89E248BDE800634993C35ED8F4675B8F21D7AA3497CD0DDC34119DB9991D3370F2B935F74C8C7F44F3F1A50620F9921E388B14D8D2D350BAA736AEA193332BD767C79EFE12F2869
tmp_aes_key = 9159A8DB860A0A9B604682F82791FFBE74EC747F62B5966D938E8DFBB6145E98
tmp_aes_iv = 74EF7917036C3F15F0C24FDDDE31E1F70F19BE75627A3F8D34E26A68033CE0ED</code></pre>
<pre><code>encrypted_answer = F2FC6FD64963148B3626C5509548461A126C549F4D6321CAC1214665260AEBD4A9DFB1AF8926627A97433BE7B4EB620C2B2223374B72BE5EBB5FAE6C6A3030D0A09F80B6E358C9F5ABD0159B6177BFACBCB758E8877EE46E8B16DABF6E35EA41B4A7462C34BD7E8D2C5AD66174DC0A87DFE3206F3FCD5DC8FB98D67B540BB3ACF90E6472C7E1010EA083BDE70BE9DA62D5F53C20E48791B3118B4DD14A70AAEF821D08C6D4D6E78B4D295FB19AAC7E62AF0F02A1ED530391BB53DC68AF7D1FF00E22247FD0345F99DFF2FC9CB58FA4D0CF7A5499987C9A701E3FC10E5605F649F3A7C96B86E95E724A3C5D4681C2B9978EA1672D1B71DD69CCE95598B8FD2897F04C12C9D787147AA2738551DC54CF78AB758D57D3CA618AAAB7E3A3A1EAAD40FB0530B70F918F4D1552B0311C54DE5C85B356ED30C399FA037F098DABC21EEBA69F5C8DF5DB7774075199F77D19BF74D732EE6D4E63A02640C36B1626B43958E867A302203745ED10FB7BE8688532FE22CD98C02E76424850C668775A3CFD118429714C283F83063D3688265CAE040E4A6CF353778E945EA0EAE74B6C3DF491B5DCA84A433944E304CF70D35CCCDDE59FF2884DC62135BF5B8F899816172B44BDDD987774D7561FD336FB1196DDAD6CBB8DD5B54C7B84B4147B5973FDF40509199E896900A6018CA574AFCD18DAEA8EADECC93E1A5224FE99848C6B2CCC45528C17FF257FB8B1F274ED177BB17344DD6DEBD60D3EC29AEC9FD9F0E5F67B8EFDF1C538215E96A89A93CE7015BEF5157772D2695E308B0667BA25901426DAA971FEF80DD862E04260217019C3D9B20514
tmp_aes_key = EE0B1BD660F6EEC2DDC586D82362C0FD7DC598459F48B24931FA129EBE69429E
tmp_aes_iv = BDECCAD167829B48F905346F28C1AE3636996022E0B714CDBCEEDA32C19FD53B</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = E07962CB735D4966E1687036A3DD4AD7AB1E855ABA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010023012C6EA5D0A93B9E31C5BCF6F6AA17797C1D662A2A3B790FDCB8B19257871AE62AB5A78DE685DAF3C4B8118015AE3D6BD475AC6465DF170F0247FF057BE95DB7CF7D9882B8148AC631A040308448A26F80E80364659F3D6B2FF049882572B3D30347D3AF152AA81C0B5544F6C715C1A9ADCE36C32CCE230D4B1E5C008C0FD3D7C5B7C25F5A6E3C2F06B664DED71856A7E16EF068E7CE7BEEBE4EB7696CE224F20507CCC8CB090F76C0BA65EE9957B7228624BEE31CC7FE54EDE3289B48F3A76BA6470352A4628955BF13F5CF7B9F46EE922310E286F557120812B055B10AED531B8B834A4D99A2A9B39AC5D29DD0A7DCC70C2C0E46CA542216E48486E041DDB28281662C787CBBCCC96212
answer = BA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010023012C6EA5D0A93B9E31C5BCF6F6AA17797C1D662A2A3B790FDCB8B19257871AE62AB5A78DE685DAF3C4B8118015AE3D6BD475AC6465DF170F0247FF057BE95DB7CF7D9882B8148AC631A040308448A26F80E80364659F3D6B2FF049882572B3D30347D3AF152AA81C0B5544F6C715C1A9ADCE36C32CCE230D4B1E5C008C0FD3D7C5B7C25F5A6E3C2F06B664DED71856A7E16EF068E7CE7BEEBE4EB7696CE224F20507CCC8CB090F76C0BA65EE9957B7228624BEE31CC7FE54EDE3289B48F3A76BA6470352A4628955BF13F5CF7B9F46EE922310E286F557120812B055B10AED531B8B834A4D99A2A9B39AC5D29DD0A7DCC70C2C0E46CA542216E48486E041DDB28281662C787CBBCCC96212</code></pre>
<pre><code>answer_with_hash = 3701B963DDC954F1CAB7BFC17CCFF76294EFE32FBA0D89B5B6C53969CAC23B767DBDE0BA504CD1B3AB8638EB10E1A39A34AB3FE5D7D3EF4E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002B9DBCA4375B06E03343525C47C6151CB6469D3326724882ABA76D9D435D898CAA7A8180D5D7EF45D3726096628265A89C949C46FF2E103DD43F742805CB66C12770C91CFD2D8BAF22CD6B57E753E3994142B71AD7155767D040B978337BB762D11519ECEE84CBF9B8790F1E1387B0BE8FEAB2D657D28CE562782238CD33D549275D41B6F2B514454BF1E7B9E0145238D92D3F0B51E59A4ED72B11E47B593D0644D7AFF00D493A6F92308AD8A2C891EDD028F363207CE4090F0521C291DB43E86AE304A6B482546366A227D2B951B4DDDDDC3CEABDA0C489C53AE6B5A10D57C9EC646E4E2A4A8D4AD05C738E94A473EC09C73055A2094A098BACCDF037E00A0CD3838166DECEA70BF529E8AF
answer = BA0D89B5B6C53969CAC23B767DBDE0BA504CD1B3AB8638EB10E1A39A34AB3FE5D7D3EF4E03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002B9DBCA4375B06E03343525C47C6151CB6469D3326724882ABA76D9D435D898CAA7A8180D5D7EF45D3726096628265A89C949C46FF2E103DD43F742805CB66C12770C91CFD2D8BAF22CD6B57E753E3994142B71AD7155767D040B978337BB762D11519ECEE84CBF9B8790F1E1387B0BE8FEAB2D657D28CE562782238CD33D549275D41B6F2B514454BF1E7B9E0145238D92D3F0B51E59A4ED72B11E47B593D0644D7AFF00D493A6F92308AD8A2C891EDD028F363207CE4090F0521C291DB43E86AE304A6B482546366A227D2B951B4DDDDDC3CEABDA0C489C53AE6B5A10D57C9EC646E4E2A4A8D4AD05C738E94A473EC09C73055A2094A098BACCDF037E00A0CD3838166DECEA70BF529E8AF</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 57 FF D7 2B 59 89 6B 51 90 E1 9C 97
0010 | 8E 8C BF E2 6B 64 54 0E 20 4B 82 27 92 38 17 F2
0020 | 43 DB 60 44 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 B6 C5 39 69 CA C2 3B 76 7D BD E0 BA
0010 | 50 4C D1 B3 AB 86 38 EB 10 E1 A3 9A 34 AB 3F E5
0020 | D7 D3 EF 4E 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 = BA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604
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 | 23 01 2C 6E A5 D0 A9 3B 9E 31 C5 BC F6 F6 AA 17
0140 | 79 7C 1D 66 2A 2A 3B 79 0F DC B8 B1 92 57 87 1A
0150 | E6 2A B5 A7 8D E6 85 DA F3 C4 B8 11 80 15 AE 3D
0160 | 6B D4 75 AC 64 65 DF 17 0F 02 47 FF 05 7B E9 5D
0170 | B7 CF 7D 98 82 B8 14 8A C6 31 A0 40 30 84 48 A2
0180 | 6F 80 E8 03 64 65 9F 3D 6B 2F F0 49 88 25 72 B3
0190 | D3 03 47 D3 AF 15 2A A8 1C 0B 55 44 F6 C7 15 C1
01A0 | A9 AD CE 36 C3 2C CE 23 0D 4B 1E 5C 00 8C 0F D3
01B0 | D7 C5 B7 C2 5F 5A 6E 3C 2F 06 B6 64 DE D7 18 56
01C0 | A7 E1 6E F0 68 E7 CE 7B EE BE 4E B7 69 6C E2 24
01D0 | F2 05 07 CC C8 CB 09 0F 76 C0 BA 65 EE 99 57 B7
01E0 | 22 86 24 BE E3 1C C7 FE 54 ED E3 28 9B 48 F3 A7
01F0 | 6B A6 47 03 52 A4 62 89 55 BF 13 F5 CF 7B 9F 46
0200 | EE 92 23 10 E2 86 F5 57 12 08 12 B0 55 B1 0A ED
0210 | 53 1B 8B 83 4A 4D 99 A2 A9 B3 9A C5 D2 9D D0 A7
0220 | DC C7 0C 2C 0E 46 CA 54 22 16 E4 84 86 E0 41 DD
0230 | B2 82 81 66</code></pre>
0130 | 2B 9D BC A4 37 5B 06 E0 33 43 52 5C 47 C6 15 1C
0140 | B6 46 9D 33 26 72 48 82 AB A7 6D 9D 43 5D 89 8C
0150 | AA 7A 81 80 D5 D7 EF 45 D3 72 60 96 62 82 65 A8
0160 | 9C 94 9C 46 FF 2E 10 3D D4 3F 74 28 05 CB 66 C1
0170 | 27 70 C9 1C FD 2D 8B AF 22 CD 6B 57 E7 53 E3 99
0180 | 41 42 B7 1A D7 15 57 67 D0 40 B9 78 33 7B B7 62
0190 | D1 15 19 EC EE 84 CB F9 B8 79 0F 1E 13 87 B0 BE
01A0 | 8F EA B2 D6 57 D2 8C E5 62 78 22 38 CD 33 D5 49
01B0 | 27 5D 41 B6 F2 B5 14 45 4B F1 E7 B9 E0 14 52 38
01C0 | D9 2D 3F 0B 51 E5 9A 4E D7 2B 11 E4 7B 59 3D 06
01D0 | 44 D7 AF F0 0D 49 3A 6F 92 30 8A D8 A2 C8 91 ED
01E0 | D0 28 F3 63 20 7C E4 09 0F 05 21 C2 91 DB 43 E8
01F0 | 6A E3 04 A6 B4 82 54 63 66 A2 27 D2 B9 51 B4 DD
0200 | DD DC 3C EA BD A0 C4 89 C5 3A E6 B5 A1 0D 57 C9
0210 | EC 64 6E 4E 2A 4A 8D 4A D0 5C 73 8E 94 A4 73 EC
0220 | 09 C7 30 55 A2 09 4A 09 8B AC CD F0 37 E0 0A 0C
0230 | D3 83 81 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 = BA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE00010023012C6EA5D0A93B9E31C5BC</code> <code>F6F6AA17797C1D662A2A3B790FDCB8B1</code> <code>9257871AE62AB5A78DE685DAF3C4B811</code> <code>8015AE3D6BD475AC6465DF170F0247FF</code> <code>057BE95DB7CF7D9882B8148AC631A040</code> <code>308448A26F80E80364659F3D6B2FF049</code> <code>882572B3D30347D3AF152AA81C0B5544</code> <code>F6C715C1A9ADCE36C32CCE230D4B1E5C</code> <code>008C0FD3D7C5B7C25F5A6E3C2F06B664</code> <code>DED71856A7E16EF068E7CE7BEEBE4EB7</code> <code>696CE224F20507CCC8CB090F76C0BA65</code> <code>EE9957B7228624BEE31CC7FE54EDE328</code> <code>9B48F3A76BA6470352A4628955BF13F5</code> <code>CF7B9F46EE922310E286F557120812B0</code> <code>55B10AED531B8B834A4D99A2A9B39AC5</code> <code>D29DD0A7DCC70C2C0E46CA542216E484</code><br> <code>86E041DD</code></td>
<td><code>FE0001002B9DBCA4375B06E03343525C</code> <code>47C6151CB6469D3326724882ABA76D9D</code> <code>435D898CAA7A8180D5D7EF45D3726096</code> <code>628265A89C949C46FF2E103DD43F7428</code> <code>05CB66C12770C91CFD2D8BAF22CD6B57</code> <code>E753E3994142B71AD7155767D040B978</code> <code>337BB762D11519ECEE84CBF9B8790F1E</code> <code>1387B0BE8FEAB2D657D28CE562782238</code> <code>CD33D549275D41B6F2B514454BF1E7B9</code> <code>E0145238D92D3F0B51E59A4ED72B11E4</code> <code>7B593D0644D7AFF00D493A6F92308AD8</code> <code>A2C891EDD028F363207CE4090F0521C2</code> <code>91DB43E86AE304A6B482546366A227D2</code> <code>B951B4DDDDDC3CEABDA0C489C53AE6B5</code> <code>A10D57C9EC646E4E2A4A8D4AD05C738E</code> <code>94A473EC09C73055A2094A098BACCDF0</code><br> <code>37E00A0C</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>B2828166</code> (1719763634 in decimal)</td>
<td><code>D3838166</code> (1719763923 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604
<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 = C7ACF73FAAD55EC2BC25D249F24E52E98DE42CEC5CE2DD27CF3948088DEA9F8CA143DA47077998BA309A081D8D09DD2B9D9DCF6A05B2F1A2A93A632F2BA2CEF301551B043BE6A829C103A6438753E989E483083BD0C36C96BD4C374EE6ECCF66243EAD18376173EF57AC956D283D37D5B33059B9C13EF59BB046B05180F2228617FBA2996A4AF1CE680F6A601BA3B3990E3F9AF89DFFAE73102A3B346B7D7F74B6380AB7D6A89F04263DE44B9D17D937E604272C85D8A961627652B5473B02388A5E8D1BBF41BA72F40E3072F4E2B36D12EFD01B549CCEAD3760E33D6E8D1062BC21D662AD29B80FEE0DC355D1C84BD429047B2276156662D3F5652FA0571A3C</code></pre>
<pre><code>b = C9FCFDFE9D9289E4D4AD596917D2EDAA96AEC88BC5F488F3D9F4F237AADAC8C951F21932BAFFE120911339CBC01D3954E71286033A349AF751DD06EA4A80F69D55385B800CB0526646237CAF05460DF2D78F85FCF3ABA7D19F04E48BB53FB9EB5802A2F7A8C961703710AEF5763B02D88BFC05BB8FE54EF8950665B2C93BD7F597115515F45015DA55C4F35B436E8B4AB065D02D9DE191EB6C717D47BA77D837DA6D03F36B5779CF013CB8FDC48475C8444B55FFC7B646025E325386332170EF2DA12B2882974CF78DFB369C207F77FBD9EE533D57EFE4FB94E706484D516FACFC22A0492E3C0D7F760F5C96CBF0628CF8662C0E56CB4B842682C9F0CB12484B</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 = 4438D9C6D8E85C53B620CD40CA6510C36E91922641F2D5CA5CB08A19A52320341A9074BAFC4AF4DB183FF961C79091C9545A17FA892E76DA7D49C66581ADFCE8595497C593F87221456CE0705484CD0A6998C102DFC419C15527312A4B5B19004688D7BAFB372E2D47D26009BD581C2BC564864B9E34615E54BA89DBCEE94FA506109A76762503428CA9AA7E89BCB4BD41984EB396BB3526260D348B2B153D9B456C6E065E28DF971E8A25ACB2E7D921CBF26B1088B6DF49D86288AAA9AD180BA29F84CD4DFD17F58A579E5CA8C375FDA6862299F6B795A1A1629523BB2009C81D5D8D7FB7F6291A221A6FE385FD4ACA34238B879F3C24C1A90DAB933573BE9F</code></pre>
<pre><code>g_b = 8C9BD983F0D20BE8511591C6D3A8AB9E6F808CCF3F5B4B07E8CAB290199F53A9CAFAC31CC49E7E57656BF1C29388984E086FDFC0BD94C6D77087C82569FA8AAA0E4FB4744C271B9C10CBAAF27EC018CDA3AFA09A2AEE0054D29CA399C76A5713E23A9C76A02F1F7215457D09C4251CBF19822977AB9F3E5C8EB660C9D9B2DA155B2F55AFE25DACF5D3E0680EB800F950E6493CFA85D92EEC0A614E0CFC2159107FDA61D287B018241BD55A625286E28CC70735A4B2C201E92D70DD627FC7528BD5ABB9D9E2D5CBA99171A47E1E21F9B1F7605EC1A62513ED1D7D3DE2CFD2D7206403F0E1B99864F59B3033FE15C74B4FC9673515043A0F9BB1178D8CCE4257DB</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 57 FF D7 2B 59 89 6B 51 90 E1 9C 97
0010 | 8E 8C BF E2 6B 64 54 0E 20 4B 82 27 92 38 17 F2
0020 | 43 DB 60 44 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 44 38 D9 C6 D8 E8 5C 53 B6 20 CD 40 CA 65 10 C3
0040 | 6E 91 92 26 41 F2 D5 CA 5C B0 8A 19 A5 23 20 34
0050 | 1A 90 74 BA FC 4A F4 DB 18 3F F9 61 C7 90 91 C9
0060 | 54 5A 17 FA 89 2E 76 DA 7D 49 C6 65 81 AD FC E8
0070 | 59 54 97 C5 93 F8 72 21 45 6C E0 70 54 84 CD 0A
0080 | 69 98 C1 02 DF C4 19 C1 55 27 31 2A 4B 5B 19 00
0090 | 46 88 D7 BA FB 37 2E 2D 47 D2 60 09 BD 58 1C 2B
00A0 | C5 64 86 4B 9E 34 61 5E 54 BA 89 DB CE E9 4F A5
00B0 | 06 10 9A 76 76 25 03 42 8C A9 AA 7E 89 BC B4 BD
00C0 | 41 98 4E B3 96 BB 35 26 26 0D 34 8B 2B 15 3D 9B
00D0 | 45 6C 6E 06 5E 28 DF 97 1E 8A 25 AC B2 E7 D9 21
00E0 | CB F2 6B 10 88 B6 DF 49 D8 62 88 AA A9 AD 18 0B
00F0 | A2 9F 84 CD 4D FD 17 F5 8A 57 9E 5C A8 C3 75 FD
0100 | A6 86 22 99 F6 B7 95 A1 A1 62 95 23 BB 20 09 C8
0110 | 1D 5D 8D 7F B7 F6 29 1A 22 1A 6F E3 85 FD 4A CA
0120 | 34 23 8B 87 9F 3C 24 C1 A9 0D AB 93 35 73 BE 9F</code></pre>
<pre><code>0000 | 54 B6 43 66 B6 C5 39 69 CA C2 3B 76 7D BD E0 BA
0010 | 50 4C D1 B3 AB 86 38 EB 10 E1 A3 9A 34 AB 3F E5
0020 | D7 D3 EF 4E 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 8C 9B D9 83 F0 D2 0B E8 51 15 91 C6 D3 A8 AB 9E
0040 | 6F 80 8C CF 3F 5B 4B 07 E8 CA B2 90 19 9F 53 A9
0050 | CA FA C3 1C C4 9E 7E 57 65 6B F1 C2 93 88 98 4E
0060 | 08 6F DF C0 BD 94 C6 D7 70 87 C8 25 69 FA 8A AA
0070 | 0E 4F B4 74 4C 27 1B 9C 10 CB AA F2 7E C0 18 CD
0080 | A3 AF A0 9A 2A EE 00 54 D2 9C A3 99 C7 6A 57 13
0090 | E2 3A 9C 76 A0 2F 1F 72 15 45 7D 09 C4 25 1C BF
00A0 | 19 82 29 77 AB 9F 3E 5C 8E B6 60 C9 D9 B2 DA 15
00B0 | 5B 2F 55 AF E2 5D AC F5 D3 E0 68 0E B8 00 F9 50
00C0 | E6 49 3C FA 85 D9 2E EC 0A 61 4E 0C FC 21 59 10
00D0 | 7F DA 61 D2 87 B0 18 24 1B D5 5A 62 52 86 E2 8C
00E0 | C7 07 35 A4 B2 C2 01 E9 2D 70 DD 62 7F C7 52 8B
00F0 | D5 AB B9 D9 E2 D5 CB A9 91 71 A4 7E 1E 21 F9 B1
0100 | F7 60 5E C1 A6 25 13 ED 1D 7D 3D E2 CF D2 D7 20
0110 | 64 03 F0 E1 B9 98 64 F5 9B 30 33 FE 15 C7 4B 4F
0120 | C9 67 35 15 04 3A 0F 9B B1 17 8D 8C CE 42 57 DB</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 = BA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE0001004438D9C6D8E85C53B620CD40</code> <code>CA6510C36E91922641F2D5CA5CB08A19</code> <code>A52320341A9074BAFC4AF4DB183FF961</code> <code>C79091C9545A17FA892E76DA7D49C665</code> <code>81ADFCE8595497C593F87221456CE070</code> <code>5484CD0A6998C102DFC419C15527312A</code> <code>4B5B19004688D7BAFB372E2D47D26009</code> <code>BD581C2BC564864B9E34615E54BA89DB</code> <code>CEE94FA506109A76762503428CA9AA7E</code> <code>89BCB4BD41984EB396BB3526260D348B</code> <code>2B153D9B456C6E065E28DF971E8A25AC</code> <code>B2E7D921CBF26B1088B6DF49D86288AA</code> <code>A9AD180BA29F84CD4DFD17F58A579E5C</code> <code>A8C375FDA6862299F6B795A1A1629523</code> <code>BB2009C81D5D8D7FB7F6291A221A6FE3</code> <code>85FD4ACA34238B879F3C24C1A90DAB93</code><br> <code>3573BE9F</code></td>
<td><code>FE0001008C9BD983F0D20BE8511591C6</code> <code>D3A8AB9E6F808CCF3F5B4B07E8CAB290</code> <code>199F53A9CAFAC31CC49E7E57656BF1C2</code> <code>9388984E086FDFC0BD94C6D77087C825</code> <code>69FA8AAA0E4FB4744C271B9C10CBAAF2</code> <code>7EC018CDA3AFA09A2AEE0054D29CA399</code> <code>C76A5713E23A9C76A02F1F7215457D09</code> <code>C4251CBF19822977AB9F3E5C8EB660C9</code> <code>D9B2DA155B2F55AFE25DACF5D3E0680E</code> <code>B800F950E6493CFA85D92EEC0A614E0C</code> <code>FC2159107FDA61D287B018241BD55A62</code> <code>5286E28CC70735A4B2C201E92D70DD62</code> <code>7FC7528BD5ABB9D9E2D5CBA99171A47E</code> <code>1E21F9B1F7605EC1A62513ED1D7D3DE2</code> <code>CFD2D7206403F0E1B99864F59B3033FE</code> <code>15C74B4FC9673515043A0F9BB1178D8C</code><br> <code>CE4257DB</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 = BA0D89B557FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB604
<!-- 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 = 54B6436657FFD72B59896B5190E19C978E8CBFE26B64540E204B8227923817F243DB60440000000000000000FE0001004438D9C6D8E85C53B620CD40CA6510C36E91922641F2D5CA5CB08A19A52320341A9074BAFC4AF4DB183FF961C79091C9545A17FA892E76DA7D49C66581ADFCE8595497C593F87221456CE0705484CD0A6998C102DFC419C15527312A4B5B19004688D7BAFB372E2D47D26009BD581C2BC564864B9E34615E54BA89DBCEE94FA506109A76762503428CA9AA7E89BCB4BD41984EB396BB3526260D348B2B153D9B456C6E065E28DF971E8A25ACB2E7D921CBF26B1088B6DF49D86288AAA9AD180BA29F84CD4DFD17F58A579E5CA8C375FDA6862299F6B795A1A1629523BB2009C81D5D8D7FB7F6291A221A6FE385FD4ACA34238B879F3C24C1A90DAB933573BE9F
padding = 067B0B9E115DD5BC7C77480A
tmp_aes_key = 9159A8DB860A0A9B604682F82791FFBE74EC747F62B5966D938E8DFBB6145E98
tmp_aes_iv = 74EF7917036C3F15F0C24FDDDE31E1F70F19BE75627A3F8D34E26A68033CE0ED</code></pre>
<pre><code>data = 54B64366B6C53969CAC23B767DBDE0BA504CD1B3AB8638EB10E1A39A34AB3FE5D7D3EF4E0000000000000000FE0001008C9BD983F0D20BE8511591C6D3A8AB9E6F808CCF3F5B4B07E8CAB290199F53A9CAFAC31CC49E7E57656BF1C29388984E086FDFC0BD94C6D77087C82569FA8AAA0E4FB4744C271B9C10CBAAF27EC018CDA3AFA09A2AEE0054D29CA399C76A5713E23A9C76A02F1F7215457D09C4251CBF19822977AB9F3E5C8EB660C9D9B2DA155B2F55AFE25DACF5D3E0680EB800F950E6493CFA85D92EEC0A614E0CFC2159107FDA61D287B018241BD55A625286E28CC70735A4B2C201E92D70DD627FC7528BD5ABB9D9E2D5CBA99171A47E1E21F9B1F7605EC1A62513ED1D7D3DE2CFD2D7206403F0E1B99864F59B3033FE15C74B4FC9673515043A0F9BB1178D8CCE4257DB
padding = 7FEB2EFE54922BEF9F0010B6
tmp_aes_key = EE0B1BD660F6EEC2DDC586D82362C0FD7DC598459F48B24931FA129EBE69429E
tmp_aes_iv = BDECCAD167829B48F905346F28C1AE3636996022E0B714CDBCEEDA32C19FD53B</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 = D79D7C54BE1516433C014E683E8A9BD171533D9482BBB6F34C7F508E29EFAF7CBE97A2001755C934A082A2907952D14597B365D3ED4F710F479005083BC61194FE08788C6FEC66395B6687098F134FD910DC79CE645CEC0FC8B4B5E73E9D65CD4485C1E390D4435647E2F067209FDA29D11575099B6B9A12B380992F5048F11599E905B3200358579A2F9314F70548CC4F40778103A256465347D2E0D14B3D5BA538AD6FB6D4B124BD2D0BB0B0E7C850CAEAC6553F83326779443A6DD33D26F534205D072852BE4E010CC1AEFBD93EE4E75C45BF5703F9919FFD30C363170ED7AFD4BCC26FA6D167490AA61604389F564671ECF1CD3E21EBECE54167619E32A2027E15E14F76E17FD53B3E0F35D64BF1DC8D7E786B8A127BBB2077CAFA036F4E7AEB3D06BF495B0DC4973BD13FD82C19B9D545004093472205A83D264C06479E36C684C908519832508C1C9B25B37637</code></pre>
<pre><code>encrypted_data = 508C0B1918E1A7A9CF80029CE804FD1B040C6A3446A2A7A85E37ED36E8630B2B42A44853E5DE04D602C80BEFA017FABD5DB169B16DC10AF0FAA52D8BC1EECE56604457D18D2ECAB44C7D36C86480CF76BDA15BCEAE6E4AB0C079860F634DB779EFBA4369B61979E92D61DCC5AA3F9EB782739A8E8468AC722EF90B0C1EE5F5F77751CCF81C5B52BC276F95954B64B434A452EDE1C0390777006C9F1143B0863FE1496DD6B6C4063DD8E6AAC4708F94122801B5546F274D2C66A3BB7927F4DECE2AFA93ED9C23D72E452A4477DF95941BE5E41DED17D0993A90C64DF39C8991BEC2837018DF5976A7A95FC58696F1CF95356AF8FD837C8BA05961B2AA7B49DE6FE60FC6444D57EFCC14E6C67A1AD3F08A707B521E9991ADF501EAD0CED37BA2F48CDEAFCB72A7B95A6440955B8057BE5EABFC5635EF08F48801D04552DF979098F707E7449E760AFA58BF32D773710EF6</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 E4 2E 05 00 B2 82 81 66
0010 | 78 01 00 00 1F 5F 04 F5 57 FF D7 2B 59 89 6B 51
0020 | 90 E1 9C 97 8E 8C BF E2 6B 64 54 0E 20 4B 82 27
0030 | 92 38 17 F2 43 DB 60 44 FE 50 01 00 D7 9D 7C 54
0040 | BE 15 16 43 3C 01 4E 68 3E 8A 9B D1 71 53 3D 94
0050 | 82 BB B6 F3 4C 7F 50 8E 29 EF AF 7C BE 97 A2 00
0060 | 17 55 C9 34 A0 82 A2 90 79 52 D1 45 97 B3 65 D3
0070 | ED 4F 71 0F 47 90 05 08 3B C6 11 94 FE 08 78 8C
0080 | 6F EC 66 39 5B 66 87 09 8F 13 4F D9 10 DC 79 CE
0090 | 64 5C EC 0F C8 B4 B5 E7 3E 9D 65 CD 44 85 C1 E3
00A0 | 90 D4 43 56 47 E2 F0 67 20 9F DA 29 D1 15 75 09
00B0 | 9B 6B 9A 12 B3 80 99 2F 50 48 F1 15 99 E9 05 B3
00C0 | 20 03 58 57 9A 2F 93 14 F7 05 48 CC 4F 40 77 81
00D0 | 03 A2 56 46 53 47 D2 E0 D1 4B 3D 5B A5 38 AD 6F
00E0 | B6 D4 B1 24 BD 2D 0B B0 B0 E7 C8 50 CA EA C6 55
00F0 | 3F 83 32 67 79 44 3A 6D D3 3D 26 F5 34 20 5D 07
0100 | 28 52 BE 4E 01 0C C1 AE FB D9 3E E4 E7 5C 45 BF
0110 | 57 03 F9 91 9F FD 30 C3 63 17 0E D7 AF D4 BC C2
0120 | 6F A6 D1 67 49 0A A6 16 04 38 9F 56 46 71 EC F1
0130 | CD 3E 21 EB EC E5 41 67 61 9E 32 A2 02 7E 15 E1
0140 | 4F 76 E1 7F D5 3B 3E 0F 35 D6 4B F1 DC 8D 7E 78
0150 | 6B 8A 12 7B BB 20 77 CA FA 03 6F 4E 7A EB 3D 06
0160 | BF 49 5B 0D C4 97 3B D1 3F D8 2C 19 B9 D5 45 00
0170 | 40 93 47 22 05 A8 3D 26 4C 06 47 9E 36 C6 84 C9
0180 | 08 51 98 32 50 8C 1C 9B 25 B3 76 37</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 A8 23 09 00 D3 83 81 66
0010 | 78 01 00 00 1F 5F 04 F5 B6 C5 39 69 CA C2 3B 76
0020 | 7D BD E0 BA 50 4C D1 B3 AB 86 38 EB 10 E1 A3 9A
0030 | 34 AB 3F E5 D7 D3 EF 4E FE 50 01 00 50 8C 0B 19
0040 | 18 E1 A7 A9 CF 80 02 9C E8 04 FD 1B 04 0C 6A 34
0050 | 46 A2 A7 A8 5E 37 ED 36 E8 63 0B 2B 42 A4 48 53
0060 | E5 DE 04 D6 02 C8 0B EF A0 17 FA BD 5D B1 69 B1
0070 | 6D C1 0A F0 FA A5 2D 8B C1 EE CE 56 60 44 57 D1
0080 | 8D 2E CA B4 4C 7D 36 C8 64 80 CF 76 BD A1 5B CE
0090 | AE 6E 4A B0 C0 79 86 0F 63 4D B7 79 EF BA 43 69
00A0 | B6 19 79 E9 2D 61 DC C5 AA 3F 9E B7 82 73 9A 8E
00B0 | 84 68 AC 72 2E F9 0B 0C 1E E5 F5 F7 77 51 CC F8
00C0 | 1C 5B 52 BC 27 6F 95 95 4B 64 B4 34 A4 52 ED E1
00D0 | C0 39 07 77 00 6C 9F 11 43 B0 86 3F E1 49 6D D6
00E0 | B6 C4 06 3D D8 E6 AA C4 70 8F 94 12 28 01 B5 54
00F0 | 6F 27 4D 2C 66 A3 BB 79 27 F4 DE CE 2A FA 93 ED
0100 | 9C 23 D7 2E 45 2A 44 77 DF 95 94 1B E5 E4 1D ED
0110 | 17 D0 99 3A 90 C6 4D F3 9C 89 91 BE C2 83 70 18
0120 | DF 59 76 A7 A9 5F C5 86 96 F1 CF 95 35 6A F8 FD
0130 | 83 7C 8B A0 59 61 B2 AA 7B 49 DE 6F E6 0F C6 44
0140 | 4D 57 EF CC 14 E6 C6 7A 1A D3 F0 8A 70 7B 52 1E
0150 | 99 91 AD F5 01 EA D0 CE D3 7B A2 F4 8C DE AF CB
0160 | 72 A7 B9 5A 64 40 95 5B 80 57 BE 5E AB FC 56 35
0170 | EF 08 F4 88 01 D0 45 52 DF 97 90 98 F7 07 E7 44
0180 | 9E 76 0A FA 58 BF 32 D7 73 71 0E F6</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>E42E0500B2828166</code></td>
<td><code>A8230900D3838166</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>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE500100D79D7C54BE1516433C014E68</code> <code>3E8A9BD171533D9482BBB6F34C7F508E</code> <code>29EFAF7CBE97A2001755C934A082A290</code> <code>7952D14597B365D3ED4F710F47900508</code> <code>3BC61194FE08788C6FEC66395B668709</code> <code>8F134FD910DC79CE645CEC0FC8B4B5E7</code> <code>3E9D65CD4485C1E390D4435647E2F067</code> <code>209FDA29D11575099B6B9A12B380992F</code> <code>5048F11599E905B3200358579A2F9314</code> <code>F70548CC4F40778103A256465347D2E0</code> <code>D14B3D5BA538AD6FB6D4B124BD2D0BB0</code> <code>B0E7C850CAEAC6553F83326779443A6D</code> <code>D33D26F534205D072852BE4E010CC1AE</code> <code>FBD93EE4E75C45BF5703F9919FFD30C3</code> <code>63170ED7AFD4BCC26FA6D167490AA616</code> <code>04389F564671ECF1CD3E21EBECE54167</code> <code>619E32A2027E15E14F76E17FD53B3E0F</code> <code>35D64BF1DC8D7E786B8A127BBB2077CA</code> <code>FA036F4E7AEB3D06BF495B0DC4973BD1</code> <code>3FD82C19B9D545004093472205A83D26</code> <code>4C06479E36C684C908519832508C1C9B</code><br> <code>25B37637</code></td>
<td><code>FE500100508C0B1918E1A7A9CF80029C</code> <code>E804FD1B040C6A3446A2A7A85E37ED36</code> <code>E8630B2B42A44853E5DE04D602C80BEF</code> <code>A017FABD5DB169B16DC10AF0FAA52D8B</code> <code>C1EECE56604457D18D2ECAB44C7D36C8</code> <code>6480CF76BDA15BCEAE6E4AB0C079860F</code> <code>634DB779EFBA4369B61979E92D61DCC5</code> <code>AA3F9EB782739A8E8468AC722EF90B0C</code> <code>1EE5F5F77751CCF81C5B52BC276F9595</code> <code>4B64B434A452EDE1C0390777006C9F11</code> <code>43B0863FE1496DD6B6C4063DD8E6AAC4</code> <code>708F94122801B5546F274D2C66A3BB79</code> <code>27F4DECE2AFA93ED9C23D72E452A4477</code> <code>DF95941BE5E41DED17D0993A90C64DF3</code> <code>9C8991BEC2837018DF5976A7A95FC586</code> <code>96F1CF95356AF8FD837C8BA05961B2AA</code> <code>7B49DE6FE60FC6444D57EFCC14E6C67A</code> <code>1AD3F08A707B521E9991ADF501EAD0CE</code> <code>D37BA2F48CDEAFCB72A7B95A6440955B</code> <code>8057BE5EABFC5635EF08F48801D04552</code> <code>DF979098F707E7449E760AFA58BF32D7</code><br> <code>73710EF6</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 = 542AAE70CE79C1193CD0BC2C17D7876148CA0B61AB833432A8272C40904DCE79EDBB351D9F9838DDB4026D30A52B31F623301C3CBE31E15ABC252C478C18BC71EF2091226F11BB4AFCCFE8F1523F7C9078D3565C658F7622792CF3826DE5B5936C8FBA47C4B0A420E4B743181114EF51E768666B599CB45C2ED2DE5D4666150B3501337E90BC56855A72BEE32951FB851A7F37BE9C507C01845C891B6724500A3A08F95E16967CBE4C1FC5EE0B839AE3DDDCC3225B7F96445C0EA4F28EBA33FBC578EB8482FEE6540D361125B8D08C09EAF63DB8988D0CBFAD85AEAAD3F1915E465950780F11C511E17DA357A9004BD75498D28B5D1751C01754EA0FA3D3816F</code></pre>
<pre><code>auth_key = 8068CC1E5D3E489121075007C26FE0218AC05C2A9D3161AC3EDE53B0E9C3FEC3029FCDDD9DF3339C726789035EA50E58D059B851C2933627274B833242B00E02E9DEA5B58BB70BF059120C748CB32C091E216DE2844A3F90E8709CFA3A7978B06BAB9C252472273F0E7B355721B43A614B7C8E99DC120D66FAE1206A4489F660ECB071BD9D64656FA595593201C423EA4360DFED5BC773689F7013ED5EF0EEEE11953E1F765B61F133AA8E42D8E08590338AEF0A44B7B91DAE017384C768EBB8C4FF747100959AEC231DF914CEDAD848AB3640AD28782C8C1F7A7867630B424612FDAD2F7FF5089C676B90935BE95AF90140E035B9CBBD51854E545A0F1EDC33</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 94 DD 06 B4 82 81 66
0010 | A8 00 00 00 34 F7 CB 3B 57 FF D7 2B 59 89 6B 51
0020 | 90 E1 9C 97 8E 8C BF E2 6B 64 54 0E 20 4B 82 27
0030 | 92 38 17 F2 43 DB 60 44 B3 FF 1B 83 6E D8 C6 D6
0040 | DE E1 C1 53 76 B2 49 C8</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 40 F6 56 D4 83 81 66
0010 | A4 00 00 00 34 F7 CB 3B B6 C5 39 69 CA C2 3B 76
0020 | 7D BD E0 BA 50 4C D1 B3 AB 86 38 EB 10 E1 A3 9A
0030 | 34 AB 3F E5 D7 D3 EF 4E 17 46 D9 F1 6E 61 FB 81
0040 | 93 77 10 E9 AB 36 BE 09</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>0194DD06B4828166</code></td>
<td><code>0140F656D4838166</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>A8000000</code> (168 in decimal)</td>
<td><code>A4000000</code> (164 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>57FFD72B59896B5190E19C978E8CBFE2</code></td>
<td><code>B6C53969CAC23B767DBDE0BA504CD1B3</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>6B64540E204B8227923817F243DB6044</code></td>
<td><code>AB8638EB10E1A39A34AB3FE5D7D3EF4E</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>B3FF1B836ED8C6D6DEE1C15376B249C8</code></td>
<td><code>1746D9F16E61FB81937710E9AB36BE09</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

@ -928,19 +928,19 @@
</tr>
<tr>
<td><a href="/method/messages.reorderQuickReplies">messages.reorderQuickReplies</a></td>
<td> </td>
<td>Reorder <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.<br><br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
</tr>
<tr>
<td><a href="/method/messages.checkQuickReplyShortcut">messages.checkQuickReplyShortcut</a></td>
<td> </td>
<td>Before offering the user the choice to add a message to a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>, to make sure that none of the limits specified <a href="/api/business#quick-reply-shortcuts">here »</a> were reached.</td>
</tr>
<tr>
<td><a href="/method/messages.editQuickReplyShortcut">messages.editQuickReplyShortcut</a></td>
<td> </td>
<td>Rename a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will emit an <a href="/constructor/updateQuickReplies">updateQuickReplies</a> update to other logged-in sessions.</td>
</tr>
<tr>
<td><a href="/method/messages.deleteQuickReplyShortcut">messages.deleteQuickReplyShortcut</a></td>
<td> </td>
<td>Completely delete a <a href="/api/business#quick-reply-shortcuts">quick reply shortcut</a>. <br>This will also emit an <a href="/constructor/updateDeleteQuickReply">updateDeleteQuickReply</a> update to other logged-in sessions (and <em>no</em> <a href="/constructor/updateDeleteQuickReplyMessages">updateDeleteQuickReplyMessages</a> updates, even if all the messages in the shortcuts are also deleted by this method).</td>
</tr>
<tr>
<td><a href="/method/messages.toggleDialogFilterTags">messages.toggleDialogFilterTags</a></td>

View file

@ -611,7 +611,7 @@
</tr>
<tr>
<td><a href="/method/messages.deleteQuickReplyMessages">messages.deleteQuickReplyMessages</a></td>
<td> </td>
<td>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.</td>
</tr>
<tr>
<td><a href="/method/account.updateConnectedBot">account.updateConnectedBot</a></td>

View file

@ -108,7 +108,7 @@ Description…">
<tbody>
<tr>
<td><a href="/method/messages.getQuickReplies">messages.getQuickReplies</a></td>
<td>To fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</td>
<td>Fetch basic info about all existing <a href="/api/business#quick-reply-shortcuts">quick reply shortcuts</a>.</td>
</tr>
</tbody>
</table></div>