Update content of files

This commit is contained in:
GitHub Action 2024-07-06 16:48:06 +00:00
parent 64a690f9cf
commit 78451f1cd1
18 changed files with 341 additions and 534 deletions

View file

@ -292,22 +292,22 @@ This will also emit an <a href="/constructor/updateDeleteQuickReply">updateDelet
<p>If populated, the <code>message</code> field must contain a <a href="/constructor/inputBusinessAwayMessage">inputBusinessAwayMessage</a>, see <a href="/constructor/inputBusinessAwayMessage">the constructor page »</a> for a description of its contents. </p>
<p>The currently configured business away message can be fetched by the current user through <a href="/constructor/userFull">userFull</a>.<code>business_away_message</code>, represented by a <a href="/constructor/businessAwayMessage">businessAwayMessage constructor »</a>, equivalent to the input counterpart. </p>
<h3><a class="anchor" href="#business-chat-links" id="business-chat-links" name="business-chat-links"><i class="anchor-icon"></i></a>Business chat links</h3>
<pre><code><a href='/constructor/inputBusinessChatLink'>inputBusinessChatLink</a> flags:<a href='/type/%23'>#</a> message:<a href='/type/string'>string</a> entities:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; title:flags.1?<a href='/type/string'>string</a> = <a href='/type/InputBusinessChatLink'>InputBusinessChatLink</a>;
<pre><code><a href='/constructor/inputBusinessChatLink'>inputBusinessChatLink</a>#11679fa7 flags:<a href='/type/%23'>#</a> message:<a href='/type/string'>string</a> entities:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; title:flags.1?<a href='/type/string'>string</a> = <a href='/type/InputBusinessChatLink'>InputBusinessChatLink</a>;
<a href='/constructor/businessChatLink'>businessChatLink</a> flags:<a href='/type/%23'>#</a> link:<a href='/type/string'>string</a> message:<a href='/type/string'>string</a> entities:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; title:flags.1?<a href='/type/string'>string</a> views:<a href='/type/int'>int</a> = <a href='/type/BusinessChatLink'>BusinessChatLink</a>;
<a href='/constructor/businessChatLink'>businessChatLink</a>#b4ae666f flags:<a href='/type/%23'>#</a> link:<a href='/type/string'>string</a> message:<a href='/type/string'>string</a> entities:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; title:flags.1?<a href='/type/string'>string</a> views:<a href='/type/int'>int</a> = <a href='/type/BusinessChatLink'>BusinessChatLink</a>;
<a href='/constructor/account.businessChatLinks'>account.businessChatLinks</a> links:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BusinessChatLink'>BusinessChatLink</a>&gt; chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/account.BusinessChatLinks'>account.BusinessChatLinks</a>;
<a href='/constructor/account.businessChatLinks'>account.businessChatLinks</a>#ec43a2d1 links:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/BusinessChatLink'>BusinessChatLink</a>&gt; chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/account.BusinessChatLinks'>account.BusinessChatLinks</a>;
<a href='/constructor/account.resolvedBusinessChatLinks'>account.resolvedBusinessChatLinks</a> flags:<a href='/type/%23'>#</a> peer:<a href='/type/Peer'>Peer</a> message:<a href='/type/string'>string</a> entities:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/account.ResolvedBusinessChatLinks'>account.ResolvedBusinessChatLinks</a>;
<a href='/constructor/account.resolvedBusinessChatLinks'>account.resolvedBusinessChatLinks</a>#9a23af21 flags:<a href='/type/%23'>#</a> peer:<a href='/type/Peer'>Peer</a> message:<a href='/type/string'>string</a> entities:flags.0?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; chats:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/Chat'>Chat</a>&gt; users:<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/User'>User</a>&gt; = <a href='/type/account.ResolvedBusinessChatLinks'>account.ResolvedBusinessChatLinks</a>;
---functions---
<a href='/method/account.createBusinessChatLink'>account.createBusinessChatLink</a> link:<a href='/type/InputBusinessChatLink'>InputBusinessChatLink</a> = <a href='/type/BusinessChatLink'>BusinessChatLink</a>;
<a href='/method/account.getBusinessChatLinks'>account.getBusinessChatLinks</a> = <a href='/type/account.BusinessChatLinks'>account.BusinessChatLinks</a>;
<a href='/method/account.editBusinessChatLink'>account.editBusinessChatLink</a> slug:<a href='/type/string'>string</a> link:<a href='/type/InputBusinessChatLink'>InputBusinessChatLink</a> = <a href='/type/BusinessChatLink'>BusinessChatLink</a>;
<a href='/method/account.deleteBusinessChatLink'>account.deleteBusinessChatLink</a> slug:<a href='/type/string'>string</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/account.createBusinessChatLink'>account.createBusinessChatLink</a>#8851e68e link:<a href='/type/InputBusinessChatLink'>InputBusinessChatLink</a> = <a href='/type/BusinessChatLink'>BusinessChatLink</a>;
<a href='/method/account.getBusinessChatLinks'>account.getBusinessChatLinks</a>#6f70dde1 = <a href='/type/account.BusinessChatLinks'>account.BusinessChatLinks</a>;
<a href='/method/account.editBusinessChatLink'>account.editBusinessChatLink</a>#8c3410af slug:<a href='/type/string'>string</a> link:<a href='/type/InputBusinessChatLink'>InputBusinessChatLink</a> = <a href='/type/BusinessChatLink'>BusinessChatLink</a>;
<a href='/method/account.deleteBusinessChatLink'>account.deleteBusinessChatLink</a>#60073674 slug:<a href='/type/string'>string</a> = <a href='/type/Bool'>Bool</a>;
<a href='/method/account.resolveBusinessChatLink'>account.resolveBusinessChatLink</a> slug:<a href='/type/string'>string</a> = <a href='/type/account.ResolvedBusinessChatLinks'>account.ResolvedBusinessChatLinks</a>;</code></pre>
<a href='/method/account.resolveBusinessChatLink'>account.resolveBusinessChatLink</a>#5492e5ee slug:<a href='/type/string'>string</a> = <a href='/type/account.ResolvedBusinessChatLinks'>account.ResolvedBusinessChatLinks</a>;</code></pre>
<p><a href="/api/links#business-chat-links">Business chat deep links</a> allow business owners to share pre-made links to their Telegram business account, optionally filling out the message input field with a pre-prepared message (with support for <a href="/api/entities">styled text entities »</a>). </p>
<p>There is no additional limit on the prepared message length (because the message text is <em>not</em> present in the URL's query string, rather it's fetched from the server using the link slug); each created business chat deep link also has a view counter. </p>
<p>Use <a href="/method/account.createBusinessChatLink">account.createBusinessChatLink</a> to create a business chat link, specifying in <a href="/constructor/inputBusinessChatLink">inputBusinessChatLink</a> the message to pre-fill when users open the link, as well as a human-readable name for the link in <code>title</code>, useful when managing created links.<br>

View file

@ -257,11 +257,11 @@
<li>Added <a href="/method/account.disablePeerConnectedBot">account.disablePeerConnectedBot</a> - Permanently disconnect a specific chat from all <a href="/api/business#connected-bots">business bots »</a> (equivalent to specifying it in <code>recipients.exclude_users</code> during initial configuration with <a href="/method/account.updateConnectedBot">account.updateConnectedBot »</a>); to reconnect of a chat disconnected using this method the user must reconnect the entire bot by invoking <a href="/method/account.updateConnectedBot">account.updateConnectedBot »</a>.</li>
<li>Added <a href="/method/account.updateBirthday">account.updateBirthday</a> - </li>
<li>Added <a href="/method/contacts.getBirthdays">contacts.getBirthdays</a> - </li>
<li>Added <a href="/method/account.createBusinessChatLink">account.createBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.editBusinessChatLink">account.editBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.deleteBusinessChatLink">account.deleteBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.getBusinessChatLinks">account.getBusinessChatLinks</a> - </li>
<li>Added <a href="/method/account.resolveBusinessChatLink">account.resolveBusinessChatLink</a> - </li>
<li>Added <a href="/method/account.createBusinessChatLink">account.createBusinessChatLink</a> - Create a <a href="/api/business#business-chat-links">business chat deep link »</a>.</li>
<li>Added <a href="/method/account.editBusinessChatLink">account.editBusinessChatLink</a> - Edit a created <a href="/api/business#business-chat-links">business chat deep link »</a>.</li>
<li>Added <a href="/method/account.deleteBusinessChatLink">account.deleteBusinessChatLink</a> - Delete a <a href="/api/business#business-chat-links">business chat deep link »</a>.</li>
<li>Added <a href="/method/account.getBusinessChatLinks">account.getBusinessChatLinks</a> - List all created <a href="/api/business#business-chat-links">business chat deep links »</a>.</li>
<li>Added <a href="/method/account.resolveBusinessChatLink">account.resolveBusinessChatLink</a> - Resolve a <a href="/api/business#business-chat-links">business chat deep link »</a>.</li>
<li>Added <a href="/method/account.updatePersonalChannel">account.updatePersonalChannel</a> - Associate (or remove) a personal <a href="/api/channel">channel »</a>, that will be listed on our personal <a href="/api/profile#personal-channel">profile page »</a>.</li>
<li>Added <a href="/method/channels.reportSponsoredMessage">channels.reportSponsoredMessage</a> - </li>
<li>Added <a href="/method/stats.getBroadcastRevenueStats">stats.getBroadcastRevenueStats</a> - </li>
@ -304,10 +304,10 @@
<li>Added <a href="/constructor/privacyValueAllowPremium">privacyValueAllowPremium</a> - </li>
<li>Added <a href="/constructor/missingInvitee">missingInvitee</a> - Info about why a specific user could not be <a href="/api/invites#direct-invites">invited »</a>.</li>
<li>Added <a href="/constructor/messages.invitedUsers">messages.invitedUsers</a> - Contains info about successfully or unsuccessfully <a href="/api/invites#direct-invites">invited »</a> users.</li>
<li>Added <a href="/constructor/inputBusinessChatLink">inputBusinessChatLink</a> - </li>
<li>Added <a href="/constructor/businessChatLink">businessChatLink</a> - </li>
<li>Added <a href="/constructor/account.businessChatLinks">account.businessChatLinks</a> - </li>
<li>Added <a href="/constructor/account.resolvedBusinessChatLinks">account.resolvedBusinessChatLinks</a> - </li>
<li>Added <a href="/constructor/inputBusinessChatLink">inputBusinessChatLink</a> - Contains info about a <a href="/api/business#business-chat-links">business chat deep link »</a> to be created by the current account.</li>
<li>Added <a href="/constructor/businessChatLink">businessChatLink</a> - Contains info about a <a href="/api/business#business-chat-links">business chat deep link »</a> created by the current account.</li>
<li>Added <a href="/constructor/account.businessChatLinks">account.businessChatLinks</a> - Contains info about <a href="/api/business#business-chat-links">business chat deep links »</a> created by the current account.</li>
<li>Added <a href="/constructor/account.resolvedBusinessChatLinks">account.resolvedBusinessChatLinks</a> - Contains info about a single resolved <a href="/api/business#business-chat-links">business chat deep link »</a>.</li>
<li>Added <a href="/constructor/requestedPeerUser">requestedPeerUser</a> - </li>
<li>Added <a href="/constructor/requestedPeerChat">requestedPeerChat</a> - </li>
<li>Added <a href="/constructor/requestedPeerChannel">requestedPeerChannel</a> - </li>

View file

@ -4,38 +4,10 @@
<meta charset="utf-8">
<title>account.businessChatLinks</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
links
Vector&lt;BusinessChatLink&gt;
 
chats
Vector&lt;Chat&gt;
 
users
Vector&lt;User&gt;
 
Type
accou…">
<meta property="description" content="Contains info about business chat deep links » created by the current account.">
<meta property="og:title" content="account.businessChatLinks">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
links
Vector&lt;BusinessChatLink&gt;
 
chats
Vector&lt;Chat&gt;
 
users
Vector&lt;User&gt;
 
Type
accou…">
<meta property="og:description" content="Contains info about business chat deep links » created by the current account.">
<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 @@ accou…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/account.businessChatLinks" >account.businessChatLinks</a></li></ul></div>
<h1 id="dev_page_title">account.businessChatLinks</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Contains info about <a href="/api/business#business-chat-links">business chat deep links »</a> created by the current account.</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>
@ -96,22 +69,25 @@ accou…">
<tr>
<td><strong>links</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/BusinessChatLink">BusinessChatLink</a>&gt;</td>
<td> </td>
<td>Links</td>
</tr>
<tr>
<td><strong>chats</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt;</td>
<td> </td>
<td>Mentioned chats</td>
</tr>
<tr>
<td><strong>users</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt;</td>
<td> </td>
<td>Mentioned users</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/account.BusinessChatLinks">account.BusinessChatLinks</a></p></div>
<p><a href="/type/account.BusinessChatLinks">account.BusinessChatLinks</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,38 +4,10 @@
<meta charset="utf-8">
<title>account.resolvedBusinessChatLinks</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
peer
Peer
 
message
string
 
entities
flags.…">
<meta property="description" content="Contains info about a single resolved business chat deep link ».">
<meta property="og:title" content="account.resolvedBusinessChatLinks">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
peer
Peer
 
message
string
 
entities
flags.…">
<meta property="og:description" content="Contains info about a single resolved business chat deep link ».">
<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 @@ flags.…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/account.resolvedBusinessChatLinks" >account.resolvedBusinessChatLinks</a></li></ul></div>
<h1 id="dev_page_title">account.resolvedBusinessChatLinks</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Contains info about a single resolved <a href="/api/business#business-chat-links">business chat deep link »</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>
@ -101,12 +74,12 @@ flags.…">
<tr>
<td><strong>peer</strong></td>
<td style="text-align: center;"><a href="/type/Peer">Peer</a></td>
<td> </td>
<td>Destination peer</td>
</tr>
<tr>
<td><strong>message</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Message to pre-fill in the message input field.</td>
</tr>
<tr>
<td><strong>entities</strong></td>
@ -116,12 +89,12 @@ flags.…">
<tr>
<td><strong>chats</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/Chat">Chat</a>&gt;</td>
<td> </td>
<td>Mentioned chats</td>
</tr>
<tr>
<td><strong>users</strong></td>
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/User">User</a>&gt;</td>
<td> </td>
<td>Mentioned users</td>
</tr>
</tbody>
</table>
@ -129,7 +102,9 @@ flags.…">
<p><a href="/type/account.ResolvedBusinessChatLinks">account.ResolvedBusinessChatLinks</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="#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></div>
<p>How to create styled text with message entities</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,38 +4,10 @@
<meta charset="utf-8">
<title>businessChatLink</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
link
string
 
message
string
 
entities
flag…">
<meta property="description" content="Contains info about a business chat deep link » created by the current account.">
<meta property="og:title" content="businessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
link
string
 
message
string
 
entities
flag…">
<meta property="og:description" content="Contains info about a business chat deep link » created by the current account.">
<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 @@ flag…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/businessChatLink" >businessChatLink</a></li></ul></div>
<h1 id="dev_page_title">businessChatLink</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Contains info about a <a href="/api/business#business-chat-links">business chat deep link »</a> created by the current account.</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 +74,12 @@ flag…">
<tr>
<td><strong>link</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td><a href="/api/links#business-chat-links">Business chat deep link</a>.</td>
</tr>
<tr>
<td><strong>message</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Message to pre-fill in the message input field.</td>
</tr>
<tr>
<td><strong>entities</strong></td>
@ -116,20 +89,24 @@ flag…">
<tr>
<td><strong>title</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/string">string</a></td>
<td> </td>
<td>Human-readable name of the link, to simplify management in the UI (only visible to the creator of the link).</td>
</tr>
<tr>
<td><strong>views</strong></td>
<td style="text-align: center;"><a href="/type/int">int</a></td>
<td> </td>
<td>Number of times the link was resolved (clicked/scanned/etc...).</td>
</tr>
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/BusinessChatLink">BusinessChatLink</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="#deep-links" id="deep-links" name="deep-links"><i class="anchor-icon"></i></a><a href="/api/links">Deep links</a></h4>
<p>Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.</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>
<p>How to create styled text with message entities</p></div>
<p>How to create styled text with message entities</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,32 +4,10 @@
<meta charset="utf-8">
<title>inputBusinessChatLink</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
message
string
 
entities
flags.0?Vector&lt;MessageEntity&gt;…">
<meta property="description" content="Contains info about a business chat deep link » to be created by the current account.">
<meta property="og:title" content="inputBusinessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
message
string
 
entities
flags.0?Vector&lt;MessageEntity&gt;…">
<meta property="og:description" content="Contains info about a business chat deep link » to be created by the current account.">
<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 @@ flags.0?Vector&lt;MessageEntity&gt;…">
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/constructor/inputBusinessChatLink" >inputBusinessChatLink</a></li></ul></div>
<h1 id="dev_page_title">inputBusinessChatLink</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Contains info about a <a href="/api/business#business-chat-links">business chat deep link »</a> to be created by the current account.</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>
@ -95,7 +74,7 @@ flags.0?Vector&lt;MessageEntity&gt;…">
<tr>
<td><strong>message</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Message to pre-fill in the message input field.</td>
</tr>
<tr>
<td><strong>entities</strong></td>
@ -105,7 +84,7 @@ flags.0?Vector&lt;MessageEntity&gt;…">
<tr>
<td><strong>title</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/string">string</a></td>
<td> </td>
<td>Human-readable name of the link, to simplify management in the UI (only visible to the creator of the link).</td>
</tr>
</tbody>
</table>
@ -113,7 +92,9 @@ flags.0?Vector&lt;MessageEntity&gt;…">
<p><a href="/type/InputBusinessChatLink">InputBusinessChatLink</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="#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></div>
<p>How to create styled text with message entities</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,26 +4,10 @@
<meta charset="utf-8">
<title>account.createBusinessChatLink</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
link
InputBusinessChatLink
 
Result
BusinessChatLink">
<meta property="description" content="Create a business chat deep link ».">
<meta property="og:title" content="account.createBusinessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
link
InputBusinessChatLink
 
Result
BusinessChatLink">
<meta property="og:description" content="Create a business chat deep link ».">
<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 @@ BusinessChatLink">
<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.createBusinessChatLink" >account.createBusinessChatLink</a></li></ul></div>
<h1 id="dev_page_title">account.createBusinessChatLink</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Create a <a href="/api/business#business-chat-links">business chat deep link »</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>
@ -86,12 +71,15 @@ BusinessChatLink">
<tr>
<td><strong>link</strong></td>
<td style="text-align: center;"><a href="/type/InputBusinessChatLink">InputBusinessChatLink</a></td>
<td> </td>
<td>Info about the link to create.</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/BusinessChatLink">BusinessChatLink</a></p></div>
<p><a href="/type/BusinessChatLink">BusinessChatLink</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,38 +4,10 @@
<meta charset="utf-8">
<title>account.deleteBusinessChatLink</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
slug
string
 
Result
Bool
Possible errors
Code
Type
Description
400
CHATLINK_SLUG_EMPTY…">
<meta property="description" content="Delete a business chat deep link ».">
<meta property="og:title" content="account.deleteBusinessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
slug
string
 
Result
Bool
Possible errors
Code
Type
Description
400
CHATLINK_SLUG_EMPTY…">
<meta property="og:description" content="Delete a business chat deep link ».">
<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 @@ CHATLINK_SLUG_EMPTY…">
<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.deleteBusinessChatLink" >account.deleteBusinessChatLink</a></li></ul></div>
<h1 id="dev_page_title">account.deleteBusinessChatLink</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Delete a <a href="/api/business#business-chat-links">business chat deep link »</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>
@ -99,7 +72,7 @@ CHATLINK_SLUG_EMPTY…">
<tr>
<td><strong>slug</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Slug of the link, obtained as specified <a href="/api/links#business-chat-links">here »</a>.</td>
</tr>
</tbody>
</table>
@ -121,7 +94,12 @@ CHATLINK_SLUG_EMPTY…">
<td>The specified slug is empty.</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="#deep-links" id="deep-links" name="deep-links"><i class="anchor-icon"></i></a><a href="/api/links">Deep links</a></h4>
<p>Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.</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>account.editBusinessChatLink</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
slug
string
 
link
InputBusinessChatLink
 
Result
BusinessChatLink
Possible errors
Code…">
<meta property="description" content="Edit a created business chat deep link ».">
<meta property="og:title" content="account.editBusinessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
slug
string
 
link
InputBusinessChatLink
 
Result
BusinessChatLink
Possible errors
Code…">
<meta property="og:description" content="Edit a created business chat deep link ».">
<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 @@ Code…">
<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.editBusinessChatLink" >account.editBusinessChatLink</a></li></ul></div>
<h1 id="dev_page_title">account.editBusinessChatLink</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Edit a created <a href="/api/business#business-chat-links">business chat deep link »</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>
@ -96,12 +71,12 @@ Code…">
<tr>
<td><strong>slug</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Slug of the link, obtained as specified <a href="/api/links#business-chat-links">here »</a>.</td>
</tr>
<tr>
<td><strong>link</strong></td>
<td style="text-align: center;"><a href="/type/InputBusinessChatLink">InputBusinessChatLink</a></td>
<td> </td>
<td>New link information.</td>
</tr>
</tbody>
</table>
@ -123,7 +98,12 @@ Code…">
<td>The specified slug is empty.</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="#deep-links" id="deep-links" name="deep-links"><i class="anchor-icon"></i></a><a href="/api/links">Deep links</a></h4>
<p>Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.</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,16 +4,10 @@
<meta charset="utf-8">
<title>account.getBusinessChatLinks</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
account.BusinessChatLinks">
<meta property="description" content="List all created business chat deep links ».">
<meta property="og:title" content="account.getBusinessChatLinks">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
This constructor does not require any parameters.
Result
account.BusinessChatLinks">
<meta property="og:description" content="List all created business chat deep links ».">
<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">
@ -48,7 +42,8 @@ account.BusinessChatLinks">
<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.getBusinessChatLinks" >account.getBusinessChatLinks</a></li></ul></div>
<h1 id="dev_page_title">account.getBusinessChatLinks</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>List all created <a href="/api/business#business-chat-links">business chat deep links »</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>
@ -66,7 +61,10 @@ account.BusinessChatLinks">
<h3><a class="anchor" href="#parameters" id="parameters" name="parameters"><i class="anchor-icon"></i></a>Parameters</h3>
<p>This constructor does not require any parameters.</p>
<h3><a class="anchor" href="#result" id="result" name="result"><i class="anchor-icon"></i></a>Result</h3>
<p><a href="/type/account.BusinessChatLinks">account.BusinessChatLinks</a></p></div>
<p><a href="/type/account.BusinessChatLinks">account.BusinessChatLinks</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,34 +4,10 @@
<meta charset="utf-8">
<title>account.resolveBusinessChatLink</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Parameters
Name
Type
Description
slug
string
 
Result
account.ResolvedBusinessChatLinks
Possible errors
Code
Type
Description…">
<meta property="description" content="Resolve a business chat deep link ».">
<meta property="og:title" content="account.resolveBusinessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
slug
string
 
Result
account.ResolvedBusinessChatLinks
Possible errors
Code
Type
Description…">
<meta property="og:description" content="Resolve a business chat deep link ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -66,7 +42,8 @@ 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/account.resolveBusinessChatLink" >account.resolveBusinessChatLink</a></li></ul></div>
<h1 id="dev_page_title">account.resolveBusinessChatLink</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Resolve a <a href="/api/business#business-chat-links">business chat deep link »</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 +71,7 @@ Description…">
<tr>
<td><strong>slug</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Slug of the link, obtained as specified <a href="/api/links#business-chat-links">here »</a>.</td>
</tr>
</tbody>
</table>
@ -116,7 +93,12 @@ Description…">
<td>The specified slug is empty.</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="#deep-links" id="deep-links" name="deep-links"><i class="anchor-icon"></i></a><a href="/api/links">Deep links</a></h4>
<p>Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.</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

@ -3322,23 +3322,23 @@ Look for updates of telegram&#39;s terms of service…">
</tr>
<tr>
<td><a href="/method/account.createBusinessChatLink">account.createBusinessChatLink</a></td>
<td> </td>
<td>Create a <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.editBusinessChatLink">account.editBusinessChatLink</a></td>
<td> </td>
<td>Edit a created <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.deleteBusinessChatLink">account.deleteBusinessChatLink</a></td>
<td> </td>
<td>Delete a <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.getBusinessChatLinks">account.getBusinessChatLinks</a></td>
<td> </td>
<td>List all created <a href="/api/business#business-chat-links">business chat deep links »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.resolveBusinessChatLink">account.resolveBusinessChatLink</a></td>
<td> </td>
<td>Resolve a <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.updatePersonalChannel">account.updatePersonalChannel</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 E0 DF 08 00 DF 67 89 66
0010 | 14 00 00 00 F1 8E 7E BE 24 51 93 B7 F5 9B 5B BC
0020 | 8C C5 6C B6 43 18 20 22</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 64 E8 02 00 80 73 89 66
0010 | 14 00 00 00 F1 8E 7E BE 4E 90 12 C4 75 8A 36 D6
0020 | 8D B9 02 03 46 5D 45 B2</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>E0DF0800DF678966</code></td>
<td><code>64E8020080738966</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>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</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 30 97 6E DF 67 89 66
0010 | 58 00 00 00 63 24 16 05 24 51 93 B7 F5 9B 5B BC
0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
0030 | 53 14 82 A7 E3 C2 ED 64 08 1D B8 A4 A1 D9 52 C3
0040 | 8B 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 BC B7 9E 80 73 89 66
0010 | 5C 00 00 00 63 24 16 05 4E 90 12 C4 75 8A 36 D6
0020 | 8D B9 02 03 46 5D 45 B2 BD 22 72 95 FA 46 54 EF
0030 | FC 02 5D 6D BB 8F 2B F0 08 1C 52 9B AE 35 A0 BB
0040 | EF 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>0130976EDF678966</code></td>
<td><code>01BCB79E80738966</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>58000000</code> (88 in decimal)</td>
<td><code>5C000000</code> (92 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>081DB8A4A1D952C38B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2141642637857440651</td>
<td><code>081C529BAE35A0BBEF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2040864753678597103</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 = 2141642637857440651</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2141642637857440651 = 1329070753 * 1611383467</code></p>
<pre><code>p = 1329070753
q = 1611383467</code></pre>
<pre><code>pq = 2040864753678597103</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2040864753678597103 = 1340344051 * 1522642453</code></p>
<pre><code>p = 1340344051
q = 1522642453</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 1D B8 A4 A1 D9 52 C3 8B 00 00 00
0010 | 04 4F 38 02 A1 00 00 00 04 60 0B C2 AB 00 00 00
0020 | 24 51 93 B7 F5 9B 5B BC 8C C5 6C B6 43 18 20 22
0030 | 12 38 54 3A 19 42 67 BC 53 14 82 A7 E3 C2 ED 64
0040 | 61 55 EC C9 94 CB BC FB 0D C2 C7 93 F9 80 9B 96
0050 | 58 39 3B FD 15 01 BD E0 D1 64 B2 E4 B7 E9 42 4B
<pre><code>0000 | 95 5F F5 A9 08 1C 52 9B AE 35 A0 BB EF 00 00 00
0010 | 04 4F E4 06 F3 00 00 00 04 5A C1 AE 15 00 00 00
0020 | 4E 90 12 C4 75 8A 36 D6 8D B9 02 03 46 5D 45 B2
0030 | BD 22 72 95 FA 46 54 EF FC 02 5D 6D BB 8F 2B F0
0040 | 85 E6 D9 B6 20 E4 1C E9 22 49 AA 3E 7F 3E 2E 23
0050 | 40 05 A2 E0 4B 27 5F 44 5A 76 AA 24 A7 17 23 9C
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 = 1611383467</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>081DB8A4A1D952C38B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2141642637857440651</td>
<td><code>081C529BAE35A0BBEF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2040864753678597103</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>044F3802A1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1329070753</td>
<td><code>044FE406F3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1340344051</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>04600BC2AB000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1611383467</td>
<td><code>045AC1AE15000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1522642453</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>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>6155ECC994CBBCFB0DC2C793F9809B96</code> <code>58393BFD1501BDE0D164B2E4B7E9424B</code></td>
<td><code>85E6D9B620E41CE92249AA3E7F3E2E23</code> <code>4005A2E04B275F445A76AA24A717239C</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1611383467</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 = 955FF5A9081DB8A4A1D952C38B000000044F3802A100000004600BC2AB000000245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED646155ECC994CBBCFB0DC2C793F9809B9658393BFD1501BDE0D164B2E4B7E9424B02000000
random_padding_bytes = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D195302D3533B2E25A0BCBAE9AB55AF20A73ADD1B3E5C7910FB7FC22FD241CB2FF1012793625810226EA738F28054935B34BC673A92FF094E32F11C3843AE135CB6A</code></pre>
<pre><code>data = 955FF5A9081C529BAE35A0BBEF000000044FE406F3000000045AC1AE150000004E9012C4758A36D68DB90203465D45B2BD227295FA4654EFFC025D6DBB8F2BF085E6D9B620E41CE92249AA3E7F3E2E234005A2E04B275F445A76AA24A717239C02000000
random_padding_bytes = 3B0C60B6D2B443CAD8CEFD575DD9F82D6B4E5B321D032743927338AE9562137F91ED7D6B26E9F5F121F9EFF82C6BD2899B523CD8E27EFCC2CD9B9BB9943784735D890B13052D457EBDDE3C0D85509CE93DFAB3BC972F39D083871960</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 = 31338A47F38101AF1CE82D2C64632A2BA0497EF970194478825BDB1CFB0BB1CD28605D729DC0658CC756C6338B20459B2CBFC33EB4EB94F9D352B59643EC449F4C5611CA246BE2BC47152BFB2837AF86298F8A80175E242215169170C96E058A162419C2DAA0E3A1D59290DAA2CD5456FD2B6D569A399FFA454CF28DF922B33B2CF693433C0E1E74EC0EE5B8D454EC442799110462048EE523F47952FE00F06095D93D4DE0D55E6D4DB360248C83278515EC8547DF872CB39354F1CFA7670E2FB457585E0FB7264DEA8F4DC7DC80BD931769796227C776B8BB0F7E32014B7558F369169496DA990345A38C8415E6678DDC9933A4D5F0AC213D60E3A8D9B74B8F</code></pre>
<pre><code>encrypted_data = DC0790885D5680EC38C464050918DC91B65E9E11C8E420A46C7CD28066AEFDB1AF535839614929BBC1D1B7099B73B551432751D4E6328F8D09E1D22FE47EACBA6D77D9117AE7118D283ED6FFF71F2CE932C6E6FF84AC3D419F93C6E249FA05133D2C7101252F2922A012E21C96FD2610535FE3D2E79743EC90BB7E6CE8D74BB8A29D31BE49256D68F50190871650312F2A6F7DE15F0D57310A906F11CFB9F6DF594D6FDF08EF53199B3ACE34C8AEF444B6D10A8164ECA32AB49AF2097B7A001AE5D460F2B3877E6B2C5D2B7F4990C85D5218EE728F235778F7044B91E267EDFD18C901344CDDCD57999C97485743B67157A4EE932954347E56F2279FCDD53F27</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 E4 DF 08 00 DF 67 89 66
0010 | 40 01 00 00 BE E4 12 D7 24 51 93 B7 F5 9B 5B BC
0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
0030 | 53 14 82 A7 E3 C2 ED 64 04 4F 38 02 A1 00 00 00
0040 | 04 60 0B C2 AB 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 31 33 8A 47 F3 81 01 AF 1C E8 2D 2C
0060 | 64 63 2A 2B A0 49 7E F9 70 19 44 78 82 5B DB 1C
0070 | FB 0B B1 CD 28 60 5D 72 9D C0 65 8C C7 56 C6 33
0080 | 8B 20 45 9B 2C BF C3 3E B4 EB 94 F9 D3 52 B5 96
0090 | 43 EC 44 9F 4C 56 11 CA 24 6B E2 BC 47 15 2B FB
00A0 | 28 37 AF 86 29 8F 8A 80 17 5E 24 22 15 16 91 70
00B0 | C9 6E 05 8A 16 24 19 C2 DA A0 E3 A1 D5 92 90 DA
00C0 | A2 CD 54 56 FD 2B 6D 56 9A 39 9F FA 45 4C F2 8D
00D0 | F9 22 B3 3B 2C F6 93 43 3C 0E 1E 74 EC 0E E5 B8
00E0 | D4 54 EC 44 27 99 11 04 62 04 8E E5 23 F4 79 52
00F0 | FE 00 F0 60 95 D9 3D 4D E0 D5 5E 6D 4D B3 60 24
0100 | 8C 83 27 85 15 EC 85 47 DF 87 2C B3 93 54 F1 CF
0110 | A7 67 0E 2F B4 57 58 5E 0F B7 26 4D EA 8F 4D C7
0120 | DC 80 BD 93 17 69 79 62 27 C7 76 B8 BB 0F 7E 32
0130 | 01 4B 75 58 F3 69 16 94 96 DA 99 03 45 A3 8C 84
0140 | 15 E6 67 8D DC 99 33 A4 D5 F0 AC 21 3D 60 E3 A8
0150 | D9 B7 4B 8F</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 4C 0D 07 00 80 73 89 66
0010 | 40 01 00 00 BE E4 12 D7 4E 90 12 C4 75 8A 36 D6
0020 | 8D B9 02 03 46 5D 45 B2 BD 22 72 95 FA 46 54 EF
0030 | FC 02 5D 6D BB 8F 2B F0 04 4F E4 06 F3 00 00 00
0040 | 04 5A C1 AE 15 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 DC 07 90 88 5D 56 80 EC 38 C4 64 05
0060 | 09 18 DC 91 B6 5E 9E 11 C8 E4 20 A4 6C 7C D2 80
0070 | 66 AE FD B1 AF 53 58 39 61 49 29 BB C1 D1 B7 09
0080 | 9B 73 B5 51 43 27 51 D4 E6 32 8F 8D 09 E1 D2 2F
0090 | E4 7E AC BA 6D 77 D9 11 7A E7 11 8D 28 3E D6 FF
00A0 | F7 1F 2C E9 32 C6 E6 FF 84 AC 3D 41 9F 93 C6 E2
00B0 | 49 FA 05 13 3D 2C 71 01 25 2F 29 22 A0 12 E2 1C
00C0 | 96 FD 26 10 53 5F E3 D2 E7 97 43 EC 90 BB 7E 6C
00D0 | E8 D7 4B B8 A2 9D 31 BE 49 25 6D 68 F5 01 90 87
00E0 | 16 50 31 2F 2A 6F 7D E1 5F 0D 57 31 0A 90 6F 11
00F0 | CF B9 F6 DF 59 4D 6F DF 08 EF 53 19 9B 3A CE 34
0100 | C8 AE F4 44 B6 D1 0A 81 64 EC A3 2A B4 9A F2 09
0110 | 7B 7A 00 1A E5 D4 60 F2 B3 87 7E 6B 2C 5D 2B 7F
0120 | 49 90 C8 5D 52 18 EE 72 8F 23 57 78 F7 04 4B 91
0130 | E2 67 ED FD 18 C9 01 34 4C DD CD 57 99 9C 97 48
0140 | 57 43 B6 71 57 A4 EE 93 29 54 34 7E 56 F2 27 9F
0150 | CD D5 3F 27</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 = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D1953
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>E4DF0800DF678966</code></td>
<td><code>4C0D070080738966</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 = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D1953
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>044F3802A1000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1329070753</td>
<td><code>044FE406F3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1340344051</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>04600BC2AB000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1611383467</td>
<td><code>045AC1AE15000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1522642453</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 = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D1953
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE00010031338A47F38101AF1CE82D2C</code> <code>64632A2BA0497EF970194478825BDB1C</code> <code>FB0BB1CD28605D729DC0658CC756C633</code> <code>8B20459B2CBFC33EB4EB94F9D352B596</code> <code>43EC449F4C5611CA246BE2BC47152BFB</code> <code>2837AF86298F8A80175E242215169170</code> <code>C96E058A162419C2DAA0E3A1D59290DA</code> <code>A2CD5456FD2B6D569A399FFA454CF28D</code> <code>F922B33B2CF693433C0E1E74EC0EE5B8</code> <code>D454EC442799110462048EE523F47952</code> <code>FE00F06095D93D4DE0D55E6D4DB36024</code> <code>8C83278515EC8547DF872CB39354F1CF</code> <code>A7670E2FB457585E0FB7264DEA8F4DC7</code> <code>DC80BD931769796227C776B8BB0F7E32</code> <code>014B7558F369169496DA990345A38C84</code> <code>15E6678DDC9933A4D5F0AC213D60E3A8</code><br> <code>D9B74B8F</code></td>
<td><code>FE000100DC0790885D5680EC38C46405</code> <code>0918DC91B65E9E11C8E420A46C7CD280</code> <code>66AEFDB1AF535839614929BBC1D1B709</code> <code>9B73B551432751D4E6328F8D09E1D22F</code> <code>E47EACBA6D77D9117AE7118D283ED6FF</code> <code>F71F2CE932C6E6FF84AC3D419F93C6E2</code> <code>49FA05133D2C7101252F2922A012E21C</code> <code>96FD2610535FE3D2E79743EC90BB7E6C</code> <code>E8D74BB8A29D31BE49256D68F5019087</code> <code>1650312F2A6F7DE15F0D57310A906F11</code> <code>CFB9F6DF594D6FDF08EF53199B3ACE34</code> <code>C8AEF444B6D10A8164ECA32AB49AF209</code> <code>7B7A001AE5D460F2B3877E6B2C5D2B7F</code> <code>4990C85D5218EE728F235778F7044B91</code> <code>E267EDFD18C901344CDDCD57999C9748</code> <code>5743B67157A4EE932954347E56F2279F</code><br> <code>CDD53F27</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D1953
<h5><a class="anchor" href="#6-server-responds-with" id="6-server-responds-with" name="6-server-responds-with"><i class="anchor-icon"></i></a>6) Server responds with:</h5>
<!-- start server_DH_params_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 08 66 20 E0 67 89 66
0010 | E8 02 00 00 5C 07 E8 D0 24 51 93 B7 F5 9B 5B BC
0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
0030 | 53 14 82 A7 E3 C2 ED 64 FE 50 02 00 35 D5 91 1D
0040 | F0 26 5E 6E F5 2A B9 9A 6E ED 40 AD E9 59 2C 9C
0050 | E2 3A B8 B6 56 01 0E 92 B9 9E 40 8E 91 D8 60 A1
0060 | B1 A3 75 00 FD 9D AA AC B2 75 E3 1A 7B 97 84 89
0070 | 3F 6C 04 C1 18 60 ED 86 1F CD B4 BB 17 F3 76 EA
0080 | 6F F7 D3 75 94 D4 2E FF 93 9D 42 C6 9B B8 A8 BB
0090 | 4C DB CE 00 5D B7 F7 B6 D4 15 DC 8C FA B4 0D F0
00A0 | A2 A4 22 3C 49 55 B1 75 83 5D B9 3E 11 7E FD 52
00B0 | D4 8F EA 47 6C 6C BF C8 3B A1 A0 42 2B B7 C8 B8
00C0 | 44 EE B5 CA 7D E6 2F 59 54 A1 67 D8 41 E1 6F 44
00D0 | 2B B7 1C CC A7 D6 1D D5 C7 84 CC 8C 09 46 60 BF
00E0 | C5 EB CF B1 F0 37 25 87 F1 DB A4 50 0B 86 8F 2C
00F0 | E0 5B 18 AC DB 98 88 16 CF F6 66 4E 23 3A 4B 57
0100 | D2 8F FB 44 3F BE 74 C0 22 9F F3 04 29 D5 72 E9
0110 | 77 C2 7E A6 05 E7 0C 7B 0E 2C D4 3D 30 5D BB 25
0120 | FC 0B E7 04 58 F9 93 BB 48 8C 37 32 DD D6 E3 06
0130 | 72 39 82 D4 4A 49 03 A6 4D 0E FB 21 45 46 2A F8
0140 | 6A 1E 19 93 FD 8C C4 F4 2F EB AB A0 0B 86 ED CC
0150 | 50 60 17 98 79 42 07 B5 EE 67 DE 52 44 2C 7D A9
0160 | C5 F9 5C F9 DC 12 03 B0 9A 5C 7A BD 67 CC DE 63
0170 | 18 4F A1 E9 5B 20 CD EB 5F CD 91 45 20 E6 DF 62
0180 | 4B 84 4B F0 2D 5F F2 F4 89 B0 09 D9 71 5D 98 C5
0190 | A3 2A CC 6E 7E 78 E8 E0 C2 6A 89 99 97 A4 80 30
01A0 | B0 1F 3A 23 48 2D AD 5D BA 59 6D A8 FD 7C B1 5F
01B0 | 14 08 F1 F6 6A 88 36 3E 21 2A 13 3F 0D 8A D0 BD
01C0 | 04 C1 4B 06 AD 86 5C 62 1F A8 92 3C BC A9 1F 3A
01D0 | F3 4C 97 D5 26 FA 0A 1B 82 39 5B AF E0 45 C8 30
01E0 | 7C 31 5F 1C FA 05 C9 DE 22 6B 63 6C 52 46 38 95
01F0 | 80 3B 07 D0 90 2B 40 A4 48 88 51 3C F2 41 58 D7
0200 | 55 3C 84 C4 1D 32 70 1A 5E E1 68 82 F5 C5 F0 26
0210 | 1F 19 F4 7A 2C B2 3D C2 BB 92 44 5B 58 65 61 51
0220 | 62 B6 11 70 39 97 BC C9 7C 2A F7 8E 0E 2F 21 85
0230 | B2 F2 F4 7F 47 A3 9C 50 FC 77 64 D6 D7 3A A2 D9
0240 | EB BB 5D E3 95 05 F2 FD 49 E4 9F AC E0 0C F9 7A
0250 | 37 23 35 89 81 E6 40 90 80 C9 BE E4 F8 5B 0D 8E
0260 | 13 90 C8 BE B2 99 49 C8 B7 37 81 8B E6 83 1B 2C
0270 | 7C 30 7C 38 84 EA FE 8D 0E F4 11 D7 05 E1 C1 1F
0280 | EA 23 45 73 C6 61 2E 23 32 77 AC 65</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 24 B8 50 81 73 89 66
0010 | 80 02 00 00 5C 07 E8 D0 4E 90 12 C4 75 8A 36 D6
0020 | 8D B9 02 03 46 5D 45 B2 BD 22 72 95 FA 46 54 EF
0030 | FC 02 5D 6D BB 8F 2B F0 FE 50 02 00 A6 DA 00 40
0040 | 2D A7 D7 9F E8 23 17 08 D1 90 D6 B5 4F 17 0D 6F
0050 | ED F7 FA 57 40 C8 79 1D C3 69 57 3F 36 45 9F DB
0060 | 9E 62 CA B5 B5 3F 85 CA 07 F3 CB 82 D2 B7 A0 A4
0070 | DB E7 15 35 64 61 C8 C6 46 A4 A0 74 0B EA 7E 30
0080 | 19 7F F3 FD F4 38 12 DD F6 F9 8A 42 66 AD 0F 04
0090 | 43 BE 48 B2 52 DA 7E 30 B7 7C 3F D6 D4 20 FF 59
00A0 | 7F 7B 16 A4 A3 4E CF ED 6B 08 81 6D BE 0A 65 6F
00B0 | C8 D3 7F 1C B3 96 97 6C 27 C5 B4 63 23 99 D7 D7
00C0 | 04 78 87 31 D3 EC 83 EE E3 E1 F7 C3 52 6A 55 66
00D0 | 42 CD 82 45 FD 32 34 B2 05 2F FB 37 5E FA 84 D1
00E0 | CC 79 94 00 43 EE 20 F7 C6 EA AD 65 95 D2 FC D1
00F0 | 92 55 3E 22 E2 8C 04 21 CB 5C 50 5F 45 C4 98 AB
0100 | E5 E1 65 11 CC FF CE 7F 44 EC BD D1 08 2A E1 7E
0110 | 93 76 23 9D 71 CA B5 06 B2 73 6F 5C EC A3 F0 70
0120 | 28 A6 24 0D B0 71 24 A5 84 49 E9 18 C4 FD 9D 8A
0130 | CD A1 00 04 46 A7 5A BB AE FE C0 D0 01 20 17 A4
0140 | DD 2B 2D C9 F0 39 AF 85 7C 09 6D 59 A1 5F 22 60
0150 | 73 9B 3B 1F 54 B4 1E 94 F7 57 36 5B C4 9B 9E FB
0160 | 34 B3 9D A1 42 13 67 D3 8A 60 F3 9A F8 FF 50 50
0170 | DA 8F B7 5A 3E 48 5A 06 3C 69 35 30 6D 6E C2 A0
0180 | 59 A8 77 5A A2 69 15 F5 58 D6 EA 94 E7 EC EA D1
0190 | A6 DA C5 4F B5 84 F9 C5 DA B0 4D 9D CA 24 3C D0
01A0 | 75 11 72 ED DA E4 38 55 31 6E 27 0B 9B 31 CB 33
01B0 | BC CC 85 FE 73 62 9C 17 91 F3 2E 92 98 3E 98 35
01C0 | 37 E4 4F 74 9A 97 54 73 D5 22 6B DA A5 53 03 D9
01D0 | 2F 74 9E 48 DC 26 D8 8B D7 F5 0F 9A FB 43 48 9F
01E0 | 34 F2 52 01 43 18 91 2F 01 3C 86 F6 8E 31 C5 F1
01F0 | 23 37 83 F4 CD D7 4F 8B B7 B1 AB 0F 58 11 B1 F9
0200 | 4F 91 E0 F5 12 B1 31 E8 5D 2E D3 97 3A 70 80 EB
0210 | E1 64 E7 13 D5 6C AF 32 96 9C 5C 97 FC B2 45 BD
0220 | FC 67 BC F3 14 E4 A2 F0 32 C4 52 FB 4A C5 7C 27
0230 | 1D 99 E3 59 92 54 D7 96 91 27 61 B6 65 1E B5 A4
0240 | 45 8D C6 6D E3 16 48 83 94 A0 A6 48 F3 AE 0F 35
0250 | 8B 96 62 9B E1 02 51 AD 93 05 F5 E1 BA 00 DE B2
0260 | F9 4C 17 D1 80 B8 A2 95 C0 27 10 F1 D5 E9 C9 5D
0270 | 69 CA 8D 93 60 66 66 5E 5A D1 4E 4E 54 73 74 4B
0280 | 2F 3D FF 7B 4A 02 3D D3 AC 9D 6D 27</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 = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D1953
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01086620E0678966</code></td>
<td><code>0124B85081738966</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>E8020000</code> (744 in decimal)</td>
<td><code>80020000</code> (640 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D1953
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE50020035D5911DF0265E6EF52AB99A</code> <code>6EED40ADE9592C9CE23AB8B656010E92</code> <code>B99E408E91D860A1B1A37500FD9DAAAC</code> <code>B275E31A7B9784893F6C04C11860ED86</code> <code>1FCDB4BB17F376EA6FF7D37594D42EFF</code> <code>939D42C69BB8A8BB4CDBCE005DB7F7B6</code> <code>D415DC8CFAB40DF0A2A4223C4955B175</code> <code>835DB93E117EFD52D48FEA476C6CBFC8</code> <code>3BA1A0422BB7C8B844EEB5CA7DE62F59</code> <code>54A167D841E16F442BB71CCCA7D61DD5</code> <code>C784CC8C094660BFC5EBCFB1F0372587</code> <code>F1DBA4500B868F2CE05B18ACDB988816</code> <code>CFF6664E233A4B57D28FFB443FBE74C0</code> <code>229FF30429D572E977C27EA605E70C7B</code> <code>0E2CD43D305DBB25FC0BE70458F993BB</code> <code>488C3732DDD6E306723982D44A4903A6</code> <code>4D0EFB2145462AF86A1E1993FD8CC4F4</code> <code>2FEBABA00B86EDCC50601798794207B5</code> <code>EE67DE52442C7DA9C5F95CF9DC1203B0</code> <code>9A5C7ABD67CCDE63184FA1E95B20CDEB</code> <code>5FCD914520E6DF624B844BF02D5FF2F4</code> <code>89B009D9715D98C5A32ACC6E7E78E8E0</code> <code>C26A899997A48030B01F3A23482DAD5D</code> <code>BA596DA8FD7CB15F1408F1F66A88363E</code> <code>212A133F0D8AD0BD04C14B06AD865C62</code> <code>1FA8923CBCA91F3AF34C97D526FA0A1B</code> <code>82395BAFE045C8307C315F1CFA05C9DE</code> <code>226B636C52463895803B07D0902B40A4</code> <code>4888513CF24158D7553C84C41D32701A</code> <code>5EE16882F5C5F0261F19F47A2CB23DC2</code> <code>BB92445B5865615162B611703997BCC9</code> <code>7C2AF78E0E2F2185B2F2F47F47A39C50</code> <code>FC7764D6D73AA2D9EBBB5DE39505F2FD</code> <code>49E49FACE00CF97A3723358981E64090</code> <code>80C9BEE4F85B0D8E1390C8BEB29949C8</code> <code>B737818BE6831B2C7C307C3884EAFE8D</code> <code>0EF411D705E1C11FEA234573C6612E23</code><br> <code>3277AC65</code></td>
<td><code>FE500200A6DA00402DA7D79FE8231708</code> <code>D190D6B54F170D6FEDF7FA5740C8791D</code> <code>C369573F36459FDB9E62CAB5B53F85CA</code> <code>07F3CB82D2B7A0A4DBE715356461C8C6</code> <code>46A4A0740BEA7E30197FF3FDF43812DD</code> <code>F6F98A4266AD0F0443BE48B252DA7E30</code> <code>B77C3FD6D420FF597F7B16A4A34ECFED</code> <code>6B08816DBE0A656FC8D37F1CB396976C</code> <code>27C5B4632399D7D704788731D3EC83EE</code> <code>E3E1F7C3526A556642CD8245FD3234B2</code> <code>052FFB375EFA84D1CC79940043EE20F7</code> <code>C6EAAD6595D2FCD192553E22E28C0421</code> <code>CB5C505F45C498ABE5E16511CCFFCE7F</code> <code>44ECBDD1082AE17E9376239D71CAB506</code> <code>B2736F5CECA3F07028A6240DB07124A5</code> <code>8449E918C4FD9D8ACDA1000446A75ABB</code> <code>AEFEC0D0012017A4DD2B2DC9F039AF85</code> <code>7C096D59A15F2260739B3B1F54B41E94</code> <code>F757365BC49B9EFB34B39DA1421367D3</code> <code>8A60F39AF8FF5050DA8FB75A3E485A06</code> <code>3C6935306D6EC2A059A8775AA26915F5</code> <code>58D6EA94E7ECEAD1A6DAC54FB584F9C5</code> <code>DAB04D9DCA243CD0751172EDDAE43855</code> <code>316E270B9B31CB33BCCC85FE73629C17</code> <code>91F32E92983E983537E44F749A975473</code> <code>D5226BDAA55303D92F749E48DC26D88B</code> <code>D7F50F9AFB43489F34F252014318912F</code> <code>013C86F68E31C5F1233783F4CDD74F8B</code> <code>B7B1AB0F5811B1F94F91E0F512B131E8</code> <code>5D2ED3973A7080EBE164E713D56CAF32</code> <code>969C5C97FCB245BDFC67BCF314E4A2F0</code> <code>32C452FB4AC57C271D99E3599254D796</code> <code>912761B6651EB5A4458DC66DE3164883</code> <code>94A0A648F3AE0F358B96629BE10251AD</code> <code>9305F5E1BA00DEB2F94C17D180B8A295</code> <code>C02710F1D5E9C95D69CA8D936066665E</code> <code>5AD14E4E5473744B2F3DFF7B4A023DD3</code><br> <code>AC9D6D27</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = EA0DEB206D25CC5E8D38D80517DF22693C90E630FED547496596D1953
<!-- 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 = 35D5911DF0265E6EF52AB99A6EED40ADE9592C9CE23AB8B656010E92B99E408E91D860A1B1A37500FD9DAAACB275E31A7B9784893F6C04C11860ED861FCDB4BB17F376EA6FF7D37594D42EFF939D42C69BB8A8BB4CDBCE005DB7F7B6D415DC8CFAB40DF0A2A4223C4955B175835DB93E117EFD52D48FEA476C6CBFC83BA1A0422BB7C8B844EEB5CA7DE62F5954A167D841E16F442BB71CCCA7D61DD5C784CC8C094660BFC5EBCFB1F0372587F1DBA4500B868F2CE05B18ACDB988816CFF6664E233A4B57D28FFB443FBE74C0229FF30429D572E977C27EA605E70C7B0E2CD43D305DBB25FC0BE70458F993BB488C3732DDD6E306723982D44A4903A64D0EFB2145462AF86A1E1993FD8CC4F42FEBABA00B86EDCC50601798794207B5EE67DE52442C7DA9C5F95CF9DC1203B09A5C7ABD67CCDE63184FA1E95B20CDEB5FCD914520E6DF624B844BF02D5FF2F489B009D9715D98C5A32ACC6E7E78E8E0C26A899997A48030B01F3A23482DAD5DBA596DA8FD7CB15F1408F1F66A88363E212A133F0D8AD0BD04C14B06AD865C621FA8923CBCA91F3AF34C97D526FA0A1B82395BAFE045C8307C315F1CFA05C9DE226B636C52463895803B07D0902B40A44888513CF24158D7553C84C41D32701A5EE16882F5C5F0261F19F47A2CB23DC2BB92445B5865615162B611703997BCC97C2AF78E0E2F2185B2F2F47F47A39C50FC7764D6D73AA2D9EBBB5DE39505F2FD49E49FACE00CF97A3723358981E6409080C9BEE4F85B0D8E1390C8BEB29949C8B737818BE6831B2C7C307C3884EAFE8D0EF411D705E1C11FEA234573C6612E233277AC65
tmp_aes_key = EB1DEED079C861DCBB389AFC13961A14C1DFD95EED5800484B54AE157EB980B0
tmp_aes_iv = 804327EBEF76C86A7C81ACD8E82F02EDF3F5DEE0FE475FA0A8697D2C6155ECC9</code></pre>
<pre><code>encrypted_answer = A6DA00402DA7D79FE8231708D190D6B54F170D6FEDF7FA5740C8791DC369573F36459FDB9E62CAB5B53F85CA07F3CB82D2B7A0A4DBE715356461C8C646A4A0740BEA7E30197FF3FDF43812DDF6F98A4266AD0F0443BE48B252DA7E30B77C3FD6D420FF597F7B16A4A34ECFED6B08816DBE0A656FC8D37F1CB396976C27C5B4632399D7D704788731D3EC83EEE3E1F7C3526A556642CD8245FD3234B2052FFB375EFA84D1CC79940043EE20F7C6EAAD6595D2FCD192553E22E28C0421CB5C505F45C498ABE5E16511CCFFCE7F44ECBDD1082AE17E9376239D71CAB506B2736F5CECA3F07028A6240DB07124A58449E918C4FD9D8ACDA1000446A75ABBAEFEC0D0012017A4DD2B2DC9F039AF857C096D59A15F2260739B3B1F54B41E94F757365BC49B9EFB34B39DA1421367D38A60F39AF8FF5050DA8FB75A3E485A063C6935306D6EC2A059A8775AA26915F558D6EA94E7ECEAD1A6DAC54FB584F9C5DAB04D9DCA243CD0751172EDDAE43855316E270B9B31CB33BCCC85FE73629C1791F32E92983E983537E44F749A975473D5226BDAA55303D92F749E48DC26D88BD7F50F9AFB43489F34F252014318912F013C86F68E31C5F1233783F4CDD74F8BB7B1AB0F5811B1F94F91E0F512B131E85D2ED3973A7080EBE164E713D56CAF32969C5C97FCB245BDFC67BCF314E4A2F032C452FB4AC57C271D99E3599254D796912761B6651EB5A4458DC66DE316488394A0A648F3AE0F358B96629BE10251AD9305F5E1BA00DEB2F94C17D180B8A295C02710F1D5E9C95D69CA8D936066665E5AD14E4E5473744B2F3DFF7B4A023DD3AC9D6D27
tmp_aes_key = 1407755E0E6988432A52EEE9A218358F8EBE6DD36C815123E3FC9D373433B534
tmp_aes_iv = 14B31DFE04F8334F78AFC84A129CB7588957F58978B9459AA369143085E6D9B6</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = 7DF01684237F0202BA8E36E4821EB3E75D5B1FABBA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009C6DA0F03FC74CF209ABCA82CEA24A45FFA65FCDFABBC51D0256B841B6878074CA8E267FBEEB8665BEB6379FCE7037EC1BFA4493D42988A5C1327DC05B96C27778D1932EE617A499259F743AF43D0993DCBCAED1F6AB711649C3C3F844D98E3A6EA52F73EF4A05EC57054E774C7497C49B9128F28E3E4391CA3E01CB701721B2A0974ED269EAC14F5CB3966B4F9E7D149AAF769A87BC2FF224798B2B5B32FF3378AE2E4D8A3D31DF9F7F8938B310EE9ADB8784873A60F2641F55E977AC0A24458DF7793980E93043B83EC70D890E43B822CF040FDD57081C1B943396C7A5C26338FA2E66BF0022EE1A6371DCD48CDF22763BF6DEF856E0EF29967BB1674247BEE0678966C32B46BCE0A56975
answer = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009C6DA0F03FC74CF209ABCA82CEA24A45FFA65FCDFABBC51D0256B841B6878074CA8E267FBEEB8665BEB6379FCE7037EC1BFA4493D42988A5C1327DC05B96C27778D1932EE617A499259F743AF43D0993DCBCAED1F6AB711649C3C3F844D98E3A6EA52F73EF4A05EC57054E774C7497C49B9128F28E3E4391CA3E01CB701721B2A0974ED269EAC14F5CB3966B4F9E7D149AAF769A87BC2FF224798B2B5B32FF3378AE2E4D8A3D31DF9F7F8938B310EE9ADB8784873A60F2641F55E977AC0A24458DF7793980E93043B83EC70D890E43B822CF040FDD57081C1B943396C7A5C26338FA2E66BF0022EE1A6371DCD48CDF22763BF6DEF856E0EF29967BB1674247BEE0678966C32B46BCE0A56975</code></pre>
<pre><code>answer_with_hash = 386B85282691C408104D39506AF67A43DB3BF4AEBA0D89B54E9012C4758A36D68DB90203465D45B2BD227295FA4654EFFC025D6DBB8F2BF003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009E5864B4238701915F5E3F0C151F7C756C4B594684FAF0AC1E9E52C94C7BC94C48852D46BDDE0DB4FF1C24229EA54289A7C0396EA302474C8EB91DB2CA08688D1FFF95296C5A1E3552E779C7AF3F22A9390194BC30BFB385614DA0A9542BAB0422C63BE58E7FEDE7DD455F328187DAD9342AFF968612481C25377AD346326062655BD87FB1528CA28598862AD25FBE2EF8FA779877DBD633E1836C0DA980AA51E973D3F0CA590D9C4234ED82FF8798F9FE047A15794399E849B3605FC8D6D1F85AF6E7A6645468293E86BAB873F6BA228B349EDF53118550862934FAB1766839C58C0C0396FAE1154427C90F415F830CDB0F38CF6A24ED174757DFFFE8F1AD5181738966F8B51CD67E005080
answer = BA0D89B54E9012C4758A36D68DB90203465D45B2BD227295FA4654EFFC025D6DBB8F2BF003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009E5864B4238701915F5E3F0C151F7C756C4B594684FAF0AC1E9E52C94C7BC94C48852D46BDDE0DB4FF1C24229EA54289A7C0396EA302474C8EB91DB2CA08688D1FFF95296C5A1E3552E779C7AF3F22A9390194BC30BFB385614DA0A9542BAB0422C63BE58E7FEDE7DD455F328187DAD9342AFF968612481C25377AD346326062655BD87FB1528CA28598862AD25FBE2EF8FA779877DBD633E1836C0DA980AA51E973D3F0CA590D9C4234ED82FF8798F9FE047A15794399E849B3605FC8D6D1F85AF6E7A6645468293E86BAB873F6BA228B349EDF53118550862934FAB1766839C58C0C0396FAE1154427C90F415F830CDB0F38CF6A24ED174757DFFFE8F1AD5181738966F8B51CD67E005080</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 24 51 93 B7 F5 9B 5B BC 8C C5 6C B6
0010 | 43 18 20 22 12 38 54 3A 19 42 67 BC 53 14 82 A7
0020 | E3 C2 ED 64 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 4E 90 12 C4 75 8A 36 D6 8D B9 02 03
0010 | 46 5D 45 B2 BD 22 72 95 FA 46 54 EF FC 02 5D 6D
0020 | BB 8F 2B F0 03 00 00 00 FE 00 01 00 C7 1C AE B9
0030 | C6 B1 C9 04 8E 6C 52 2F 70 F1 3F 73 98 0D 40 23
0040 | 8E 3E 21 C1 49 34 D0 37 56 3D 93 0F 48 19 8A 0A
0050 | A7 C1 40 58 22 94 93 D2 25 30 F4 DB FA 33 6F 6E
@ -532,23 +532,23 @@ answer = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6
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 | 9C 6D A0 F0 3F C7 4C F2 09 AB CA 82 CE A2 4A 45
0140 | FF A6 5F CD FA BB C5 1D 02 56 B8 41 B6 87 80 74
0150 | CA 8E 26 7F BE EB 86 65 BE B6 37 9F CE 70 37 EC
0160 | 1B FA 44 93 D4 29 88 A5 C1 32 7D C0 5B 96 C2 77
0170 | 78 D1 93 2E E6 17 A4 99 25 9F 74 3A F4 3D 09 93
0180 | DC BC AE D1 F6 AB 71 16 49 C3 C3 F8 44 D9 8E 3A
0190 | 6E A5 2F 73 EF 4A 05 EC 57 05 4E 77 4C 74 97 C4
01A0 | 9B 91 28 F2 8E 3E 43 91 CA 3E 01 CB 70 17 21 B2
01B0 | A0 97 4E D2 69 EA C1 4F 5C B3 96 6B 4F 9E 7D 14
01C0 | 9A AF 76 9A 87 BC 2F F2 24 79 8B 2B 5B 32 FF 33
01D0 | 78 AE 2E 4D 8A 3D 31 DF 9F 7F 89 38 B3 10 EE 9A
01E0 | DB 87 84 87 3A 60 F2 64 1F 55 E9 77 AC 0A 24 45
01F0 | 8D F7 79 39 80 E9 30 43 B8 3E C7 0D 89 0E 43 B8
0200 | 22 CF 04 0F DD 57 08 1C 1B 94 33 96 C7 A5 C2 63
0210 | 38 FA 2E 66 BF 00 22 EE 1A 63 71 DC D4 8C DF 22
0220 | 76 3B F6 DE F8 56 E0 EF 29 96 7B B1 67 42 47 BE
0230 | E0 67 89 66</code></pre>
0130 | 9E 58 64 B4 23 87 01 91 5F 5E 3F 0C 15 1F 7C 75
0140 | 6C 4B 59 46 84 FA F0 AC 1E 9E 52 C9 4C 7B C9 4C
0150 | 48 85 2D 46 BD DE 0D B4 FF 1C 24 22 9E A5 42 89
0160 | A7 C0 39 6E A3 02 47 4C 8E B9 1D B2 CA 08 68 8D
0170 | 1F FF 95 29 6C 5A 1E 35 52 E7 79 C7 AF 3F 22 A9
0180 | 39 01 94 BC 30 BF B3 85 61 4D A0 A9 54 2B AB 04
0190 | 22 C6 3B E5 8E 7F ED E7 DD 45 5F 32 81 87 DA D9
01A0 | 34 2A FF 96 86 12 48 1C 25 37 7A D3 46 32 60 62
01B0 | 65 5B D8 7F B1 52 8C A2 85 98 86 2A D2 5F BE 2E
01C0 | F8 FA 77 98 77 DB D6 33 E1 83 6C 0D A9 80 AA 51
01D0 | E9 73 D3 F0 CA 59 0D 9C 42 34 ED 82 FF 87 98 F9
01E0 | FE 04 7A 15 79 43 99 E8 49 B3 60 5F C8 D6 D1 F8
01F0 | 5A F6 E7 A6 64 54 68 29 3E 86 BA B8 73 F6 BA 22
0200 | 8B 34 9E DF 53 11 85 50 86 29 34 FA B1 76 68 39
0210 | C5 8C 0C 03 96 FA E1 15 44 27 C9 0F 41 5F 83 0C
0220 | DB 0F 38 CF 6A 24 ED 17 47 57 DF FF E8 F1 AD 51
0230 | 81 73 89 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 = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE0001009C6DA0F03FC74CF209ABCA82</code> <code>CEA24A45FFA65FCDFABBC51D0256B841</code> <code>B6878074CA8E267FBEEB8665BEB6379F</code> <code>CE7037EC1BFA4493D42988A5C1327DC0</code> <code>5B96C27778D1932EE617A499259F743A</code> <code>F43D0993DCBCAED1F6AB711649C3C3F8</code> <code>44D98E3A6EA52F73EF4A05EC57054E77</code> <code>4C7497C49B9128F28E3E4391CA3E01CB</code> <code>701721B2A0974ED269EAC14F5CB3966B</code> <code>4F9E7D149AAF769A87BC2FF224798B2B</code> <code>5B32FF3378AE2E4D8A3D31DF9F7F8938</code> <code>B310EE9ADB8784873A60F2641F55E977</code> <code>AC0A24458DF7793980E93043B83EC70D</code> <code>890E43B822CF040FDD57081C1B943396</code> <code>C7A5C26338FA2E66BF0022EE1A6371DC</code> <code>D48CDF22763BF6DEF856E0EF29967BB1</code><br> <code>674247BE</code></td>
<td><code>FE0001009E5864B4238701915F5E3F0C</code> <code>151F7C756C4B594684FAF0AC1E9E52C9</code> <code>4C7BC94C48852D46BDDE0DB4FF1C2422</code> <code>9EA54289A7C0396EA302474C8EB91DB2</code> <code>CA08688D1FFF95296C5A1E3552E779C7</code> <code>AF3F22A9390194BC30BFB385614DA0A9</code> <code>542BAB0422C63BE58E7FEDE7DD455F32</code> <code>8187DAD9342AFF968612481C25377AD3</code> <code>46326062655BD87FB1528CA28598862A</code> <code>D25FBE2EF8FA779877DBD633E1836C0D</code> <code>A980AA51E973D3F0CA590D9C4234ED82</code> <code>FF8798F9FE047A15794399E849B3605F</code> <code>C8D6D1F85AF6E7A6645468293E86BAB8</code> <code>73F6BA228B349EDF53118550862934FA</code> <code>B1766839C58C0C0396FAE1154427C90F</code> <code>415F830CDB0F38CF6A24ED174757DFFF</code><br> <code>E8F1AD51</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>E0678966</code> (1720281056 in decimal)</td>
<td><code>81738966</code> (1720284033 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6
<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 = A2D7C1DC092B41FBD4D0E65F7EABB90AFCD1A575A1CDEC150ED971CF3ED1E63B05C18670115E3F0A708C4025E1F398CCDA44AC164696BA35004B06CF50E8656E3AF8D6E055F20D872FEB052CCD5088A106D397C540FF230475D5A5901CC81CE9662928F556189032AED0A56CCAB46C583AC16D9A66104E3BB9FB6B61353BBF0B77DCE83C7ED01280E45362B891CEE149C3505018EDC23486FB7A6062FEFC6BFFD0CB62E359CB7FCF95657A7CBF85C1F52F21BCD24166AA1A93F252E24736F65632AC73D3116EF7BE9317F066C3AC825789BCAF0DFA55AFA4D23AC25C5BA2C1E95C21927D8FBCC78F5163F2393239BFAB48537ECB8A9433030CE6925259AF3F60</code></pre>
<pre><code>b = 47E68614CF64E8E9D0298500461EAD1C2D252BCF7BB6355625F0A697BCD99B5D8002D9990B49E32F13A679E3CA4EA7058362C6B8EC0E9A06A35446C94D9CA7F1B3718B28B46ECC4D88D9142BFA05A1047AB525E7E5AA813E2C494F29E1AAA74DD08785E7FEB750E571B661C3223AB7E3F5E012C2A1E6122341F729BD5CA513EF6B110425EEC0BC1F025575EFA91710D17DEB7B8F940DD10B1139907C2A11B9F85B239F1428FE468C6170D14BFB1094F31C29A8031752A5EF345DE5D2E0EFE240A51DA52CBCDB526C305F1B7D373A4AAC20C075463C566D0B73D00D203BE974056736492C9D4308123117285E0303A7041B2D27721DB2E3668602F1914448C1AA</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 = AB97981E05567552D981606DB53FBBF54BA7A999809FDD0D0F7D023B0AD846125C39BD0B323331C71302945CFD5E5A66E1F48265E88A17A465B647DD0B14142A80AFC44E8DC7A6ECE7A48BC6F4111FA9E4CDACCD8C8E92CFBC7149B93EB362B32EB02BA9789DAF248B7335406C3891931568181BD54EF08F303430E234AA21251284A2C40D52001DF41AC3ED1A5BB83723C554B767EF2DD9B4B18ADD9AB24F9F2499084BA67D9A6D72516AA4D205113581B60E3BC8AB76530B1D00D6931FD4AAEBE4930F18C10005D935C6BC991EC46A942396C693D5224713AC74720D4EA2B784F9B47C2472CA9148C8C2CF227856FB2D226BA5BE424BD517D3A2093761C10A</code></pre>
<pre><code>g_b = 31EC02D76AAA2A359CC98FDD91C178D2A41BA1C64F79B530D93F9CCA03E8C2F9F7669A289511D14988D1566F0022C0E85848598C2D08AA459E7A156552FA4AEA8AB642744E6C405E5D736C72B780E2B142840D9A642810EBB01B2854B9991834329A0900B30AE6B80A1D545CD153FBAC10F51D83AC7EC972176C3C77EAA1D647A8F3B5500A5151C4E2944B5A0A0472A2F753D5C7E4ADAC4F70636D5CD1B47C9671B1CF787294A035830A3062C2C1EFC991177E92CF77239D20C18841894081F05302FF9AF15791CFC4022AD644127C3E9D6598FA793B8B4A589509A2005E0E340CF46D112C4CA7BB20B1179432E60B8EB0570279D783344D0CFB006ED7858C97</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 24 51 93 B7 F5 9B 5B BC 8C C5 6C B6
0010 | 43 18 20 22 12 38 54 3A 19 42 67 BC 53 14 82 A7
0020 | E3 C2 ED 64 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | AB 97 98 1E 05 56 75 52 D9 81 60 6D B5 3F BB F5
0040 | 4B A7 A9 99 80 9F DD 0D 0F 7D 02 3B 0A D8 46 12
0050 | 5C 39 BD 0B 32 33 31 C7 13 02 94 5C FD 5E 5A 66
0060 | E1 F4 82 65 E8 8A 17 A4 65 B6 47 DD 0B 14 14 2A
0070 | 80 AF C4 4E 8D C7 A6 EC E7 A4 8B C6 F4 11 1F A9
0080 | E4 CD AC CD 8C 8E 92 CF BC 71 49 B9 3E B3 62 B3
0090 | 2E B0 2B A9 78 9D AF 24 8B 73 35 40 6C 38 91 93
00A0 | 15 68 18 1B D5 4E F0 8F 30 34 30 E2 34 AA 21 25
00B0 | 12 84 A2 C4 0D 52 00 1D F4 1A C3 ED 1A 5B B8 37
00C0 | 23 C5 54 B7 67 EF 2D D9 B4 B1 8A DD 9A B2 4F 9F
00D0 | 24 99 08 4B A6 7D 9A 6D 72 51 6A A4 D2 05 11 35
00E0 | 81 B6 0E 3B C8 AB 76 53 0B 1D 00 D6 93 1F D4 AA
00F0 | EB E4 93 0F 18 C1 00 05 D9 35 C6 BC 99 1E C4 6A
0100 | 94 23 96 C6 93 D5 22 47 13 AC 74 72 0D 4E A2 B7
0110 | 84 F9 B4 7C 24 72 CA 91 48 C8 C2 CF 22 78 56 FB
0120 | 2D 22 6B A5 BE 42 4B D5 17 D3 A2 09 37 61 C1 0A</code></pre>
<pre><code>0000 | 54 B6 43 66 4E 90 12 C4 75 8A 36 D6 8D B9 02 03
0010 | 46 5D 45 B2 BD 22 72 95 FA 46 54 EF FC 02 5D 6D
0020 | BB 8F 2B F0 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 31 EC 02 D7 6A AA 2A 35 9C C9 8F DD 91 C1 78 D2
0040 | A4 1B A1 C6 4F 79 B5 30 D9 3F 9C CA 03 E8 C2 F9
0050 | F7 66 9A 28 95 11 D1 49 88 D1 56 6F 00 22 C0 E8
0060 | 58 48 59 8C 2D 08 AA 45 9E 7A 15 65 52 FA 4A EA
0070 | 8A B6 42 74 4E 6C 40 5E 5D 73 6C 72 B7 80 E2 B1
0080 | 42 84 0D 9A 64 28 10 EB B0 1B 28 54 B9 99 18 34
0090 | 32 9A 09 00 B3 0A E6 B8 0A 1D 54 5C D1 53 FB AC
00A0 | 10 F5 1D 83 AC 7E C9 72 17 6C 3C 77 EA A1 D6 47
00B0 | A8 F3 B5 50 0A 51 51 C4 E2 94 4B 5A 0A 04 72 A2
00C0 | F7 53 D5 C7 E4 AD AC 4F 70 63 6D 5C D1 B4 7C 96
00D0 | 71 B1 CF 78 72 94 A0 35 83 0A 30 62 C2 C1 EF C9
00E0 | 91 17 7E 92 CF 77 23 9D 20 C1 88 41 89 40 81 F0
00F0 | 53 02 FF 9A F1 57 91 CF C4 02 2A D6 44 12 7C 3E
0100 | 9D 65 98 FA 79 3B 8B 4A 58 95 09 A2 00 5E 0E 34
0110 | 0C F4 6D 11 2C 4C A7 BB 20 B1 17 94 32 E6 0B 8E
0120 | B0 57 02 79 D7 83 34 4D 0C FB 00 6E D7 85 8C 97</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 = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE000100AB97981E05567552D981606D</code> <code>B53FBBF54BA7A999809FDD0D0F7D023B</code> <code>0AD846125C39BD0B323331C71302945C</code> <code>FD5E5A66E1F48265E88A17A465B647DD</code> <code>0B14142A80AFC44E8DC7A6ECE7A48BC6</code> <code>F4111FA9E4CDACCD8C8E92CFBC7149B9</code> <code>3EB362B32EB02BA9789DAF248B733540</code> <code>6C3891931568181BD54EF08F303430E2</code> <code>34AA21251284A2C40D52001DF41AC3ED</code> <code>1A5BB83723C554B767EF2DD9B4B18ADD</code> <code>9AB24F9F2499084BA67D9A6D72516AA4</code> <code>D205113581B60E3BC8AB76530B1D00D6</code> <code>931FD4AAEBE4930F18C10005D935C6BC</code> <code>991EC46A942396C693D5224713AC7472</code> <code>0D4EA2B784F9B47C2472CA9148C8C2CF</code> <code>227856FB2D226BA5BE424BD517D3A209</code><br> <code>3761C10A</code></td>
<td><code>FE00010031EC02D76AAA2A359CC98FDD</code> <code>91C178D2A41BA1C64F79B530D93F9CCA</code> <code>03E8C2F9F7669A289511D14988D1566F</code> <code>0022C0E85848598C2D08AA459E7A1565</code> <code>52FA4AEA8AB642744E6C405E5D736C72</code> <code>B780E2B142840D9A642810EBB01B2854</code> <code>B9991834329A0900B30AE6B80A1D545C</code> <code>D153FBAC10F51D83AC7EC972176C3C77</code> <code>EAA1D647A8F3B5500A5151C4E2944B5A</code> <code>0A0472A2F753D5C7E4ADAC4F70636D5C</code> <code>D1B47C9671B1CF787294A035830A3062</code> <code>C2C1EFC991177E92CF77239D20C18841</code> <code>894081F05302FF9AF15791CFC4022AD6</code> <code>44127C3E9D6598FA793B8B4A589509A2</code> <code>005E0E340CF46D112C4CA7BB20B11794</code> <code>32E60B8EB0570279D783344D0CFB006E</code><br> <code>D7858C97</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 = BA0D89B5245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED6
<!-- 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 = 54B64366245193B7F59B5BBC8CC56CB6431820221238543A194267BC531482A7E3C2ED640000000000000000FE000100AB97981E05567552D981606DB53FBBF54BA7A999809FDD0D0F7D023B0AD846125C39BD0B323331C71302945CFD5E5A66E1F48265E88A17A465B647DD0B14142A80AFC44E8DC7A6ECE7A48BC6F4111FA9E4CDACCD8C8E92CFBC7149B93EB362B32EB02BA9789DAF248B7335406C3891931568181BD54EF08F303430E234AA21251284A2C40D52001DF41AC3ED1A5BB83723C554B767EF2DD9B4B18ADD9AB24F9F2499084BA67D9A6D72516AA4D205113581B60E3BC8AB76530B1D00D6931FD4AAEBE4930F18C10005D935C6BC991EC46A942396C693D5224713AC74720D4EA2B784F9B47C2472CA9148C8C2CF227856FB2D226BA5BE424BD517D3A2093761C10A
padding = A9110132D6F262C66402E6D7
tmp_aes_key = EB1DEED079C861DCBB389AFC13961A14C1DFD95EED5800484B54AE157EB980B0
tmp_aes_iv = 804327EBEF76C86A7C81ACD8E82F02EDF3F5DEE0FE475FA0A8697D2C6155ECC9</code></pre>
<pre><code>data = 54B643664E9012C4758A36D68DB90203465D45B2BD227295FA4654EFFC025D6DBB8F2BF00000000000000000FE00010031EC02D76AAA2A359CC98FDD91C178D2A41BA1C64F79B530D93F9CCA03E8C2F9F7669A289511D14988D1566F0022C0E85848598C2D08AA459E7A156552FA4AEA8AB642744E6C405E5D736C72B780E2B142840D9A642810EBB01B2854B9991834329A0900B30AE6B80A1D545CD153FBAC10F51D83AC7EC972176C3C77EAA1D647A8F3B5500A5151C4E2944B5A0A0472A2F753D5C7E4ADAC4F70636D5CD1B47C9671B1CF787294A035830A3062C2C1EFC991177E92CF77239D20C18841894081F05302FF9AF15791CFC4022AD644127C3E9D6598FA793B8B4A589509A2005E0E340CF46D112C4CA7BB20B1179432E60B8EB0570279D783344D0CFB006ED7858C97
padding = 60A8C139AA65EB15A4B46B1B
tmp_aes_key = 1407755E0E6988432A52EEE9A218358F8EBE6DD36C815123E3FC9D373433B534
tmp_aes_iv = 14B31DFE04F8334F78AFC84A129CB7588957F58978B9459AA369143085E6D9B6</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 = 5E5CFE20CCB74AE7EB61E477571FF7A76D881352C1EB1B4FD8ED80B64FDFC256B6DE061C89BB387BFECCD39D8BFEA22D8EED63984DF8980F9BF2BBF1BFDAE37F897C24BFBCCE51A8D6AD15D27EF6FBA49041432A88408B0A9E4922F9B27262A4D231CE27CEFE86C6FA15A87FA48E53C4599D315E9B3B988F054E6D6AE76CA08CCDB9F3AD12646E05C4A42D8F6BF3ADDE0D5F0388C762EE8F7454A34B3CC9854843EEC9C090AE6D74A75FA397F20C6A451B1A90DB330E15474ADB94F18AC80237E5C46B4CD9F3628BDA267948535103BEB5B8E22DF2A0C8DFC236DF0C800A36FA23FF3BB057BF33162DE271D73795BDCE094DCC02F8840022D220F4FBD89DF86E561F75C2407342BFF8C70C1E4FD2F47DDBC2866BF6F22DE9E6BFCBB502D534F75602C0305EB9E26BA03835923339B159D894DC36D1C3F9B6863FC197E5632D2495863AF73434B30F795FC44934EFF107</code></pre>
<pre><code>encrypted_data = 755639CAEC9E04D1755E20C8D621A8390DB6FC9CC1CBF50D830F31930C8381CB1DA491B3012457A93C6697CF6B4D332858D6E7A1100A384D4F6385895832FB1FB87DAB29993FDA09F4BB9CD997E6702AF358794AAAAAB2FA21A55632098295588B13F1399F0F77CDCA1E2D5CFDE833F5BCE1C9FA578D74CC53E494FD4DADBE6C231A722E4085B8A283F3586456991D592861BEBE8B406EE621DFD0FD8FA710FC20F87E7395CF01E79358C3B7DE311D6BBE436D41E1DCA7667BA3FD941806872881BD1C7AE13606FFBE7B70E0A868037C264D7C77F2AE1C5B0E64295F3B1D5109DC356C2ED36D80E020148A8174F5E31B34D9BF5CD8FDC08E449D62A5DC0B33BF86E95E9A8D90ECA849D39DE9C7FC129C363D0C876B18A150C01A306E71AA5DFB51462EADF6A918A43559B9E1B12E244386B75755C80AD509075A327E124167712E513C84811B860FECA1FD56BF4E16AB</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 A8 BC 00 00 E0 67 89 66
0010 | 78 01 00 00 1F 5F 04 F5 24 51 93 B7 F5 9B 5B BC
0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
0030 | 53 14 82 A7 E3 C2 ED 64 FE 50 01 00 5E 5C FE 20
0040 | CC B7 4A E7 EB 61 E4 77 57 1F F7 A7 6D 88 13 52
0050 | C1 EB 1B 4F D8 ED 80 B6 4F DF C2 56 B6 DE 06 1C
0060 | 89 BB 38 7B FE CC D3 9D 8B FE A2 2D 8E ED 63 98
0070 | 4D F8 98 0F 9B F2 BB F1 BF DA E3 7F 89 7C 24 BF
0080 | BC CE 51 A8 D6 AD 15 D2 7E F6 FB A4 90 41 43 2A
0090 | 88 40 8B 0A 9E 49 22 F9 B2 72 62 A4 D2 31 CE 27
00A0 | CE FE 86 C6 FA 15 A8 7F A4 8E 53 C4 59 9D 31 5E
00B0 | 9B 3B 98 8F 05 4E 6D 6A E7 6C A0 8C CD B9 F3 AD
00C0 | 12 64 6E 05 C4 A4 2D 8F 6B F3 AD DE 0D 5F 03 88
00D0 | C7 62 EE 8F 74 54 A3 4B 3C C9 85 48 43 EE C9 C0
00E0 | 90 AE 6D 74 A7 5F A3 97 F2 0C 6A 45 1B 1A 90 DB
00F0 | 33 0E 15 47 4A DB 94 F1 8A C8 02 37 E5 C4 6B 4C
0100 | D9 F3 62 8B DA 26 79 48 53 51 03 BE B5 B8 E2 2D
0110 | F2 A0 C8 DF C2 36 DF 0C 80 0A 36 FA 23 FF 3B B0
0120 | 57 BF 33 16 2D E2 71 D7 37 95 BD CE 09 4D CC 02
0130 | F8 84 00 22 D2 20 F4 FB D8 9D F8 6E 56 1F 75 C2
0140 | 40 73 42 BF F8 C7 0C 1E 4F D2 F4 7D DB C2 86 6B
0150 | F6 F2 2D E9 E6 BF CB B5 02 D5 34 F7 56 02 C0 30
0160 | 5E B9 E2 6B A0 38 35 92 33 39 B1 59 D8 94 DC 36
0170 | D1 C3 F9 B6 86 3F C1 97 E5 63 2D 24 95 86 3A F7
0180 | 34 34 B3 0F 79 5F C4 49 34 EF F1 07</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 EC 6A 0E 00 81 73 89 66
0010 | 78 01 00 00 1F 5F 04 F5 4E 90 12 C4 75 8A 36 D6
0020 | 8D B9 02 03 46 5D 45 B2 BD 22 72 95 FA 46 54 EF
0030 | FC 02 5D 6D BB 8F 2B F0 FE 50 01 00 75 56 39 CA
0040 | EC 9E 04 D1 75 5E 20 C8 D6 21 A8 39 0D B6 FC 9C
0050 | C1 CB F5 0D 83 0F 31 93 0C 83 81 CB 1D A4 91 B3
0060 | 01 24 57 A9 3C 66 97 CF 6B 4D 33 28 58 D6 E7 A1
0070 | 10 0A 38 4D 4F 63 85 89 58 32 FB 1F B8 7D AB 29
0080 | 99 3F DA 09 F4 BB 9C D9 97 E6 70 2A F3 58 79 4A
0090 | AA AA B2 FA 21 A5 56 32 09 82 95 58 8B 13 F1 39
00A0 | 9F 0F 77 CD CA 1E 2D 5C FD E8 33 F5 BC E1 C9 FA
00B0 | 57 8D 74 CC 53 E4 94 FD 4D AD BE 6C 23 1A 72 2E
00C0 | 40 85 B8 A2 83 F3 58 64 56 99 1D 59 28 61 BE BE
00D0 | 8B 40 6E E6 21 DF D0 FD 8F A7 10 FC 20 F8 7E 73
00E0 | 95 CF 01 E7 93 58 C3 B7 DE 31 1D 6B BE 43 6D 41
00F0 | E1 DC A7 66 7B A3 FD 94 18 06 87 28 81 BD 1C 7A
0100 | E1 36 06 FF BE 7B 70 E0 A8 68 03 7C 26 4D 7C 77
0110 | F2 AE 1C 5B 0E 64 29 5F 3B 1D 51 09 DC 35 6C 2E
0120 | D3 6D 80 E0 20 14 8A 81 74 F5 E3 1B 34 D9 BF 5C
0130 | D8 FD C0 8E 44 9D 62 A5 DC 0B 33 BF 86 E9 5E 9A
0140 | 8D 90 EC A8 49 D3 9D E9 C7 FC 12 9C 36 3D 0C 87
0150 | 6B 18 A1 50 C0 1A 30 6E 71 AA 5D FB 51 46 2E AD
0160 | F6 A9 18 A4 35 59 B9 E1 B1 2E 24 43 86 B7 57 55
0170 | C8 0A D5 09 07 5A 32 7E 12 41 67 71 2E 51 3C 84
0180 | 81 1B 86 0F EC A1 FD 56 BF 4E 16 AB</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>A8BC0000E0678966</code></td>
<td><code>EC6A0E0081738966</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>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE5001005E5CFE20CCB74AE7EB61E477</code> <code>571FF7A76D881352C1EB1B4FD8ED80B6</code> <code>4FDFC256B6DE061C89BB387BFECCD39D</code> <code>8BFEA22D8EED63984DF8980F9BF2BBF1</code> <code>BFDAE37F897C24BFBCCE51A8D6AD15D2</code> <code>7EF6FBA49041432A88408B0A9E4922F9</code> <code>B27262A4D231CE27CEFE86C6FA15A87F</code> <code>A48E53C4599D315E9B3B988F054E6D6A</code> <code>E76CA08CCDB9F3AD12646E05C4A42D8F</code> <code>6BF3ADDE0D5F0388C762EE8F7454A34B</code> <code>3CC9854843EEC9C090AE6D74A75FA397</code> <code>F20C6A451B1A90DB330E15474ADB94F1</code> <code>8AC80237E5C46B4CD9F3628BDA267948</code> <code>535103BEB5B8E22DF2A0C8DFC236DF0C</code> <code>800A36FA23FF3BB057BF33162DE271D7</code> <code>3795BDCE094DCC02F8840022D220F4FB</code> <code>D89DF86E561F75C2407342BFF8C70C1E</code> <code>4FD2F47DDBC2866BF6F22DE9E6BFCBB5</code> <code>02D534F75602C0305EB9E26BA0383592</code> <code>3339B159D894DC36D1C3F9B6863FC197</code> <code>E5632D2495863AF73434B30F795FC449</code><br> <code>34EFF107</code></td>
<td><code>FE500100755639CAEC9E04D1755E20C8</code> <code>D621A8390DB6FC9CC1CBF50D830F3193</code> <code>0C8381CB1DA491B3012457A93C6697CF</code> <code>6B4D332858D6E7A1100A384D4F638589</code> <code>5832FB1FB87DAB29993FDA09F4BB9CD9</code> <code>97E6702AF358794AAAAAB2FA21A55632</code> <code>098295588B13F1399F0F77CDCA1E2D5C</code> <code>FDE833F5BCE1C9FA578D74CC53E494FD</code> <code>4DADBE6C231A722E4085B8A283F35864</code> <code>56991D592861BEBE8B406EE621DFD0FD</code> <code>8FA710FC20F87E7395CF01E79358C3B7</code> <code>DE311D6BBE436D41E1DCA7667BA3FD94</code> <code>1806872881BD1C7AE13606FFBE7B70E0</code> <code>A868037C264D7C77F2AE1C5B0E64295F</code> <code>3B1D5109DC356C2ED36D80E020148A81</code> <code>74F5E31B34D9BF5CD8FDC08E449D62A5</code> <code>DC0B33BF86E95E9A8D90ECA849D39DE9</code> <code>C7FC129C363D0C876B18A150C01A306E</code> <code>71AA5DFB51462EADF6A918A43559B9E1</code> <code>B12E244386B75755C80AD509075A327E</code> <code>124167712E513C84811B860FECA1FD56</code><br> <code>BF4E16AB</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 = B2C082716DA83CFB3B63671D483EB079F74DBE33917A58E9D8DC8E04B0D30BDAB6321024875EF8E9EC124947A91814469CEE3376C801EBF4E5E49D6AEAC827B08D992641035D7A2E31856D880A770ACFBD2278886DF12EA1F71FEB4C34A8AFC9DEAE2652550ADD221B5E5EB2ABA8E316C45D2875788BE138B71BC3B1FFD8428453E979864B9DCB806041EF6609A6A514C41FCC59F8EE69FD463B477CF39F76F15694F4535C07D67C9DA807ED13426CE2D96B51053864FCBF036A5F017AE5FDE4C8AE9BA8C23E6876EE168E0AE10143B153F093E450A15A1122BBA787A0ACD0F4DF12FC9EB49577C6C3FD5700FA4E136AF529215629B1777E178B4F0399F4862B</code></pre>
<pre><code>auth_key = 0ADC8517D2336D04A4806C2CF2A698699316FD20998508DA9AC10B44B0696E8465193DF3D2A2D3C848E93646899E31781B2C92A263CFA113BC7FB8B6F32C6D254020532EFCA434D4A902AFDE72A6409788E058A3722822D74C8B56DD70A921F433A34808D8D51A73F645D03AAE15F153B3A609651B68BA9B43CAFF4BC19E10839825E11F3F958D39E47BE87141856F1C10220C59EA9146DF12DEC833D1CC1F0E50F433E6BBCD289EA264FD013BBAC5DBD9338BB2D2EFF149C1A50A19C16447B915D3FAD884A00336506F6D0B153BBCACE75CFFF63A23A2993D668E873C6698645078B9CE909613CD391A2CE9C88EA309608E7FDB2137625E16809C795963F839</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 8C E5 CF E0 67 89 66
0010 | B0 00 00 00 34 F7 CB 3B 24 51 93 B7 F5 9B 5B BC
0020 | 8C C5 6C B6 43 18 20 22 12 38 54 3A 19 42 67 BC
0030 | 53 14 82 A7 E3 C2 ED 64 11 D9 18 9A F2 62 02 34
0040 | 5F 84 29 79 BB A1 8A DA</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 B8 D4 09 82 73 89 66
0010 | 74 00 00 00 34 F7 CB 3B 4E 90 12 C4 75 8A 36 D6
0020 | 8D B9 02 03 46 5D 45 B2 BD 22 72 95 FA 46 54 EF
0030 | FC 02 5D 6D BB 8F 2B F0 0E EF 65 A8 56 1B BD 64
0040 | 55 63 BB D8 9B 45 59 14</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>018CE5CFE0678966</code></td>
<td><code>01B8D40982738966</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>B0000000</code> (176 in decimal)</td>
<td><code>74000000</code> (116 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>245193B7F59B5BBC8CC56CB643182022</code></td>
<td><code>4E9012C4758A36D68DB90203465D45B2</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>1238543A194267BC531482A7E3C2ED64</code></td>
<td><code>BD227295FA4654EFFC025D6DBB8F2BF0</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>11D9189AF26202345F842979BBA18ADA</code></td>
<td><code>0EEF65A8561BBD645563BBD89B455914</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

@ -964,7 +964,7 @@
</tr>
<tr>
<td><a href="/method/account.deleteBusinessChatLink">account.deleteBusinessChatLink</a></td>
<td> </td>
<td>Delete a <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.updatePersonalChannel">account.updatePersonalChannel</a></td>

View file

@ -8,26 +8,14 @@
Constructor
Description
businessChatLink
 
Methods
Method
Description
account.createBusinessChatLink
 
ac…">
Contains info about a business chat deep link » created by the current…">
<meta property="og:title" content="BusinessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
businessChatLink
 
Methods
Method
Description
account.createBusinessChatLink
 
ac…">
Contains info about a business chat deep link » created by the current…">
<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">
@ -91,7 +79,7 @@ ac…">
<tbody>
<tr>
<td><a href="/constructor/businessChatLink">businessChatLink</a></td>
<td> </td>
<td>Contains info about a <a href="/api/business#business-chat-links">business chat deep link »</a> created by the current account.</td>
</tr>
</tbody>
</table>
@ -106,11 +94,11 @@ ac…">
<tbody>
<tr>
<td><a href="/method/account.createBusinessChatLink">account.createBusinessChatLink</a></td>
<td> </td>
<td>Create a <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
<tr>
<td><a href="/method/account.editBusinessChatLink">account.editBusinessChatLink</a></td>
<td> </td>
<td>Edit a created <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
</tbody>
</table></div>

View file

@ -8,14 +8,14 @@
Constructor
Description
inputBusinessChatLink
 ">
Contains info about a business chat deep link » to be created…">
<meta property="og:title" content="InputBusinessChatLink">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
inputBusinessChatLink
 ">
Contains info about a business chat deep link » to be created…">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -74,7 +74,7 @@ inputBusinessChatLink
<tbody>
<tr>
<td><a href="/constructor/inputBusinessChatLink">inputBusinessChatLink</a></td>
<td> </td>
<td>Contains info about a <a href="/api/business#business-chat-links">business chat deep link »</a> to be created by the current account.</td>
</tr>
</tbody>
</table></div>

View file

@ -8,22 +8,14 @@
Constructor
Description
account.businessChatLinks
 
Methods
Method
Description
account.getBusinessChatLinks…">
Contains info about business chat deep links » created by…">
<meta property="og:title" content="account.BusinessChatLinks">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
account.businessChatLinks
 
Methods
Method
Description
account.getBusinessChatLinks…">
Contains info about business chat deep links » created by…">
<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">
@ -86,7 +78,7 @@ account.getBusinessChatLinks…">
<tbody>
<tr>
<td><a href="/constructor/account.businessChatLinks">account.businessChatLinks</a></td>
<td> </td>
<td>Contains info about <a href="/api/business#business-chat-links">business chat deep links »</a> created by the current account.</td>
</tr>
</tbody>
</table>
@ -101,7 +93,7 @@ account.getBusinessChatLinks…">
<tbody>
<tr>
<td><a href="/method/account.getBusinessChatLinks">account.getBusinessChatLinks</a></td>
<td> </td>
<td>List all created <a href="/api/business#business-chat-links">business chat deep links »</a>.</td>
</tr>
</tbody>
</table></div>

View file

@ -8,22 +8,14 @@
Constructor
Description
account.resolvedBusinessChatLinks
 
Methods
Method
Description
account.resolveBusinessChatLink…">
Contains info about a single resolved business chat…">
<meta property="og:title" content="account.ResolvedBusinessChatLinks">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
account.resolvedBusinessChatLinks
 
Methods
Method
Description
account.resolveBusinessChatLink…">
Contains info about a single resolved business chat…">
<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">
@ -86,7 +78,7 @@ account.resolveBusinessChatLink…">
<tbody>
<tr>
<td><a href="/constructor/account.resolvedBusinessChatLinks">account.resolvedBusinessChatLinks</a></td>
<td> </td>
<td>Contains info about a single resolved <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
</tbody>
</table>
@ -101,7 +93,7 @@ account.resolveBusinessChatLink…">
<tbody>
<tr>
<td><a href="/method/account.resolveBusinessChatLink">account.resolveBusinessChatLink</a></td>
<td> </td>
<td>Resolve a <a href="/api/business#business-chat-links">business chat deep link »</a>.</td>
</tr>
</tbody>
</table></div>