Update content of files

This commit is contained in:
GitHub Action 2024-08-02 19:02:04 +00:00
parent 48b6ee97d4
commit b4d37956a1
13 changed files with 270 additions and 301 deletions

View file

@ -52,6 +52,8 @@
<a href='/constructor/message'>message</a>#94345242 flags:<a href='/type/%23'>#</a> out:flags.1?<a href='/constructor/true'>true</a> mentioned:flags.4?<a href='/constructor/true'>true</a> media_unread:flags.5?<a href='/constructor/true'>true</a> silent:flags.13?<a href='/constructor/true'>true</a> post:flags.14?<a href='/constructor/true'>true</a> from_scheduled:flags.18?<a href='/constructor/true'>true</a> legacy:flags.19?<a href='/constructor/true'>true</a> edit_hide:flags.21?<a href='/constructor/true'>true</a> pinned:flags.24?<a href='/constructor/true'>true</a> noforwards:flags.26?<a href='/constructor/true'>true</a> invert_media:flags.27?<a href='/constructor/true'>true</a> flags2:<a href='/type/%23'>#</a> offline:flags2.1?<a href='/constructor/true'>true</a> id:<a href='/type/int'>int</a> from_id:flags.8?<a href='/type/Peer'>Peer</a> from_boosts_applied:flags.29?<a href='/type/int'>int</a> peer_id:<a href='/type/Peer'>Peer</a> saved_peer_id:flags.28?<a href='/type/Peer'>Peer</a> fwd_from:flags.2?<a href='/type/MessageFwdHeader'>MessageFwdHeader</a> via_bot_id:flags.11?<a href='/type/long'>long</a> via_business_bot_id:flags2.0?<a href='/type/long'>long</a> reply_to:flags.3?<a href='/type/MessageReplyHeader'>MessageReplyHeader</a> date:<a href='/type/int'>int</a> message:<a href='/type/string'>string</a> media:flags.9?<a href='/type/MessageMedia'>MessageMedia</a> reply_markup:flags.6?<a href='/type/ReplyMarkup'>ReplyMarkup</a> entities:flags.7?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; views:flags.10?<a href='/type/int'>int</a> forwards:flags.10?<a href='/type/int'>int</a> replies:flags.23?<a href='/type/MessageReplies'>MessageReplies</a> edit_date:flags.15?<a href='/type/int'>int</a> post_author:flags.16?<a href='/type/string'>string</a> grouped_id:flags.17?<a href='/type/long'>long</a> reactions:flags.20?<a href='/type/MessageReactions'>MessageReactions</a> restriction_reason:flags.22?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/RestrictionReason'>RestrictionReason</a>&gt; ttl_period:flags.25?<a href='/type/int'>int</a> quick_reply_shortcut_id:flags.30?<a href='/type/int'>int</a> effect:flags2.2?<a href='/type/long'>long</a> factcheck:flags2.3?<a href='/type/FactCheck'>FactCheck</a> = <a href='/type/Message'>Message</a>;
<a href='/constructor/draftMessage'>draftMessage</a>#2d65321f flags:<a href='/type/%23'>#</a> no_webpage:flags.1?<a href='/constructor/true'>true</a> invert_media:flags.6?<a href='/constructor/true'>true</a> reply_to:flags.4?<a href='/type/InputReplyTo'>InputReplyTo</a> message:<a href='/type/string'>string</a> entities:flags.3?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; media:flags.5?<a href='/type/InputMedia'>InputMedia</a> date:<a href='/type/int'>int</a> effect:flags.7?<a href='/type/long'>long</a> = <a href='/type/DraftMessage'>DraftMessage</a>;
---functions---
<a href='/method/messages.getAvailableEffects'>messages.getAvailableEffects</a>#dea20a39 hash:<a href='/type/int'>int</a> = <a href='/type/messages.AvailableEffects'>messages.AvailableEffects</a>;

View file

@ -74,6 +74,10 @@
<li><code>"PREMIUM_CHRISTMAS"</code> - Suggests the user to <a href="/api/premium#gifting-telegram-premium">gift Telegram Premium</a> subscriptions to friends for Christmas.</li>
<li><code>"PREMIUM_GRACE"</code> - Suggests the user to extend their expiring Telegram Premium subscription</li>
</ul>
<p>This layer introduces:</p>
<ul>
<li><a href="/api/stories#weather">Weather media areas »</a></li>
</ul>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
@ -97,7 +101,7 @@
<li>Added <a href="/constructor/bots.popularAppBots">bots.popularAppBots</a> - </li>
<li>Added <a href="/constructor/botPreviewMedia">botPreviewMedia</a> - </li>
<li>Added <a href="/constructor/bots.previewInfo">bots.previewInfo</a> - </li>
<li>Added <a href="/constructor/mediaAreaWeather">mediaAreaWeather</a> - </li>
<li>Added <a href="/constructor/mediaAreaWeather">mediaAreaWeather</a> - Represents a <a href="/api/stories#weather">weather widget »</a>.</li>
<li>Added <a href="/constructor/inputFileStoryDocument">inputFileStoryDocument</a> - </li>
</ul>
<h5><a class="anchor" href="#changed-constructors" id="changed-constructors" name="changed-constructors"><i class="anchor-icon"></i></a>Changed Constructors</h5>
@ -209,6 +213,13 @@
<a href="/method/payments.getStarsRevenueAdsAccountUrl">payments.getStarsRevenueAdsAccountUrl</a>#d1d7efc5 peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/payments.StarsRevenueAdsAccountUrl">payments.StarsRevenueAdsAccountUrl</a>;
<a href="/method/payments.getStarsTransactionsByID">payments.getStarsTransactionsByID</a>#27842d2e peer:<a href="/type/InputPeer">InputPeer</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputStarsTransaction">InputStarsTransaction</a>&gt; = <a href="/type/payments.StarsStatus">payments.StarsStatus</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-182" id="layer-182" name="layer-182"><i class="anchor-icon"></i></a><a href="/schema?layer=182">Layer 182</a></h3>
<p>This layer adds support for:</p>
<ul>
<li><a href="/api/stories#urls">URL media areas »</a></li>
<li><a href="/api/stories#location-tags">Addresses in geolocation (non-venue) media areas »</a></li>
<li><a href="/constructor/mediaAreaCoordinates">Custom radiuses for rectangle corner rounding in media areas »</a></li>
<li>Saving message <a href="/api/effects">effects</a> in <a href="/api/drafts">drafts</a></li>
</ul>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
@ -224,10 +235,10 @@
</ul>
<h5><a class="anchor" href="#new-constructors" id="new-constructors" name="new-constructors"><i class="anchor-icon"></i></a>New Constructors</h5>
<ul>
<li>Added <a href="/constructor/mediaAreaUrl">mediaAreaUrl</a> - </li>
<li>Added <a href="/constructor/mediaAreaUrl">mediaAreaUrl</a> - Represents a <a href="/api/stories#urls">URL media area</a>.</li>
<li>Added <a href="/constructor/foundStory">foundStory</a> - </li>
<li>Added <a href="/constructor/stories.foundStories">stories.foundStories</a> - </li>
<li>Added <a href="/constructor/geoPointAddress">geoPointAddress</a> - </li>
<li>Added <a href="/constructor/geoPointAddress">geoPointAddress</a> - Address optionally associated to a <a href="/constructor/geoPoint">geoPoint</a>.</li>
<li>Added <a href="/constructor/updateBusinessBotCallbackQuery">updateBusinessBotCallbackQuery</a> - </li>
<li>Added <a href="/constructor/starsRevenueStatus">starsRevenueStatus</a> - </li>
<li>Added <a href="/constructor/payments.starsRevenueStats">payments.starsRevenueStats</a> - </li>

View file

@ -275,11 +275,6 @@ When the stories of a user are marked as hidden, the <code>stories_hidden</code>
<p>Schema:</p>
<pre><code><a href='/constructor/mediaAreaCoordinates'>mediaAreaCoordinates</a>#cfc9e002 flags:<a href='/type/%23'>#</a> x:<a href='/type/double'>double</a> y:<a href='/type/double'>double</a> w:<a href='/type/double'>double</a> h:<a href='/type/double'>double</a> rotation:<a href='/type/double'>double</a> radius:flags.0?<a href='/type/double'>double</a> = <a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a>;
<a href='/constructor/mediaAreaVenue'>mediaAreaVenue</a>#be82db9c coordinates:<a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a> geo:<a href='/type/GeoPoint'>GeoPoint</a> title:<a href='/type/string'>string</a> address:<a href='/type/string'>string</a> provider:<a href='/type/string'>string</a> venue_id:<a href='/type/string'>string</a> venue_type:<a href='/type/string'>string</a> = <a href='/type/MediaArea'>MediaArea</a>;
<a href='/constructor/inputMediaAreaVenue'>inputMediaAreaVenue</a>#b282217f coordinates:<a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a> query_id:<a href='/type/long'>long</a> result_id:<a href='/type/string'>string</a> = <a href='/type/MediaArea'>MediaArea</a>;
<a href='/constructor/mediaAreaGeoPoint'>mediaAreaGeoPoint</a>#cad5452d flags:<a href='/type/%23'>#</a> coordinates:<a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a> geo:<a href='/type/GeoPoint'>GeoPoint</a> address:flags.0?<a href='/type/GeoPointAddress'>GeoPointAddress</a> = <a href='/type/MediaArea'>MediaArea</a>;
<a href='/constructor/mediaAreaSuggestedReaction'>mediaAreaSuggestedReaction</a>#14455871 flags:<a href='/type/%23'>#</a> dark:flags.0?<a href='/constructor/true'>true</a> flipped:flags.1?<a href='/constructor/true'>true</a> coordinates:<a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a> reaction:<a href='/type/Reaction'>Reaction</a> = <a href='/type/MediaArea'>MediaArea</a>;
<a href='/constructor/storyItem'>storyItem</a>#79b26a24 flags:<a href='/type/%23'>#</a> pinned:flags.5?<a href='/constructor/true'>true</a> public:flags.7?<a href='/constructor/true'>true</a> close_friends:flags.8?<a href='/constructor/true'>true</a> min:flags.9?<a href='/constructor/true'>true</a> noforwards:flags.10?<a href='/constructor/true'>true</a> edited:flags.11?<a href='/constructor/true'>true</a> contacts:flags.12?<a href='/constructor/true'>true</a> selected_contacts:flags.13?<a href='/constructor/true'>true</a> out:flags.16?<a href='/constructor/true'>true</a> id:<a href='/type/int'>int</a> date:<a href='/type/int'>int</a> from_id:flags.18?<a href='/type/Peer'>Peer</a> fwd_from:flags.17?<a href='/type/StoryFwdHeader'>StoryFwdHeader</a> expire_date:<a href='/type/int'>int</a> caption:flags.0?<a href='/type/string'>string</a> entities:flags.1?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MessageEntity'>MessageEntity</a>&gt; media:<a href='/type/MessageMedia'>MessageMedia</a> media_areas:flags.14?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/MediaArea'>MediaArea</a>&gt; privacy:flags.2?<a href='/type/Vector%20t'>Vector</a>&lt;<a href='/type/PrivacyRule'>PrivacyRule</a>&gt; views:flags.3?<a href='/type/StoryViews'>StoryViews</a> sent_reaction:flags.15?<a href='/type/Reaction'>Reaction</a> = <a href='/type/StoryItem'>StoryItem</a>;
---functions---
@ -298,6 +293,7 @@ When the stories of a user are marked as hidden, the <code>stories_hidden</code>
<h4><a class="anchor" href="#location-tags" id="location-tags" name="location-tags"><i class="anchor-icon"></i></a>Location tags</h4>
<p>Schema:</p>
<pre><code><a href='/constructor/geoPoint'>geoPoint</a>#b2a2f663 flags:<a href='/type/%23'>#</a> long:<a href='/type/double'>double</a> lat:<a href='/type/double'>double</a> access_hash:<a href='/type/long'>long</a> accuracy_radius:flags.0?<a href='/type/int'>int</a> = <a href='/type/GeoPoint'>GeoPoint</a>;
<a href='/constructor/geoPointAddress'>geoPointAddress</a>#de4c5d93 flags:<a href='/type/%23'>#</a> country_iso2:<a href='/type/string'>string</a> state:flags.0?<a href='/type/string'>string</a> city:flags.1?<a href='/type/string'>string</a> street:flags.2?<a href='/type/string'>string</a> = <a href='/type/GeoPointAddress'>GeoPointAddress</a>;
<a href='/constructor/mediaAreaGeoPoint'>mediaAreaGeoPoint</a>#cad5452d flags:<a href='/type/%23'>#</a> coordinates:<a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a> geo:<a href='/type/GeoPoint'>GeoPoint</a> address:flags.0?<a href='/type/GeoPointAddress'>GeoPointAddress</a> = <a href='/type/MediaArea'>MediaArea</a>;
<a href='/constructor/mediaAreaVenue'>mediaAreaVenue</a>#be82db9c coordinates:<a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a> geo:<a href='/type/GeoPoint'>GeoPoint</a> title:<a href='/type/string'>string</a> address:<a href='/type/string'>string</a> provider:<a href='/type/string'>string</a> venue_id:<a href='/type/string'>string</a> venue_type:<a href='/type/string'>string</a> = <a href='/type/MediaArea'>MediaArea</a>;
@ -305,7 +301,7 @@ When the stories of a user are marked as hidden, the <code>stories_hidden</code>
<a href='/constructor/inputMediaAreaVenue'>inputMediaAreaVenue</a>#b282217f coordinates:<a href='/type/MediaAreaCoordinates'>MediaAreaCoordinates</a> query_id:<a href='/type/long'>long</a> result_id:<a href='/type/string'>string</a> = <a href='/type/MediaArea'>MediaArea</a>;</code></pre>
<p>Location tags are represented by a <a href="/constructor/mediaAreaVenue">mediaAreaVenue</a> or <a href="/constructor/mediaAreaGeoPoint">mediaAreaGeoPoint</a>, associated to a location sticker on top of the story media with an associated <a href="#media-areas">clickable media area</a>. </p>
<p>Both constructors have an associated geolocation represented as a <a href="/constructor/geoPoint">geoPoint</a>, and information about the clickable media area on top of the story media as a <a href="/constructor/mediaAreaCoordinates">mediaAreaCoordinates</a> constructor. </p>
<p><a href="/constructor/mediaAreaGeoPoint">mediaAreaGeoPoint</a> is used to represent a simple geolocation without any extra information.<br>
<p><a href="/constructor/mediaAreaGeoPoint">mediaAreaGeoPoint</a> is used to represent a simple geolocation with an <em>optional</em> textual address.<br>
<a href="/constructor/mediaAreaVenue">mediaAreaVenue</a> is used to represent the location of a specific venue (i.e. a mall, a shop, a dance school et cetera), and apart from the venue's coordinates, it also contains a textual representation of the address, the venue name (<code>title</code>) and a venue type/ID (<code>venue_id</code>/<code>venue_type</code>) in a format supported by the venue provider specified in <code>provider</code>. </p>
<p>Currently, the only provider that needs to be supported is <code>foursquare</code>. </p>
<p>To send a <a href="/constructor/mediaAreaVenue">mediaAreaVenue</a>, clients should use <a href="/constructor/inputMediaAreaVenue">inputMediaAreaVenue</a>, constructed as follows:</p>

View file

@ -109,7 +109,7 @@
<tr>
<td><strong>effect</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.7?<a href="/type/long">long</a></td>
<td> </td>
<td>A <a href="/api/effects">message effect that should be played as specified here »</a>.</td>
</tr>
</tbody>
</table>
@ -118,6 +118,8 @@
<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>
<h4><a class="anchor" href="#animated-message-effects" id="animated-message-effects" name="animated-message-effects"><i class="anchor-icon"></i></a><a href="/api/effects">Animated message effects</a></h4>
<p>Telegram allows adding spectacular animated effects to messages you send.</p>
<h4><a class="anchor" href="#message-drafts" id="message-drafts" name="message-drafts"><i class="anchor-icon"></i></a><a href="/api/drafts">Message drafts</a></h4>
<p>How to handle message drafts</p></div>

View file

@ -4,34 +4,10 @@
<meta charset="utf-8">
<title>geoPointAddress</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
country_iso2
string
 
state
flags.0?string
 …">
<meta property="description" content="Address optionally associated to a geoPoint.">
<meta property="og:title" content="geoPointAddress">
<meta property="og:image" content="">
<meta property="og:description" content="Parameters
Name
Type
Description
flags
#
Flags, see TL conditional fields
country_iso2
string
 
state
flags.0?string
 …">
<meta property="og:description" content="Address optionally associated to a geoPoint.">
<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 @@ flags.0?string
<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/geoPointAddress" >geoPointAddress</a></li></ul></div>
<h1 id="dev_page_title">geoPointAddress</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Address optionally associated to a <a href="/constructor/geoPoint">geoPoint</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 185 <b class="caret"></b></a>
@ -97,27 +74,30 @@ flags.0?string
<tr>
<td><strong>country_iso2</strong></td>
<td style="text-align: center;"><a href="/type/string">string</a></td>
<td> </td>
<td>Two-letter ISO 3166-1 alpha-2 country code</td>
</tr>
<tr>
<td><strong>state</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/string">string</a></td>
<td> </td>
<td>State</td>
</tr>
<tr>
<td><strong>city</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>City</td>
</tr>
<tr>
<td><strong>street</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/string">string</a></td>
<td> </td>
<td>Street</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/GeoPointAddress">GeoPointAddress</a></p></div>
<p><a href="/type/GeoPointAddress">GeoPointAddress</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="#geopoint" id="geopoint" name="geopoint"><i class="anchor-icon"></i></a><a href="/constructor/geoPoint">geoPoint</a></h4>
<p>GeoPoint.</p></div>
</div>

View file

@ -99,7 +99,7 @@
<tr>
<td><strong>radius</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/double">double</a></td>
<td> </td>
<td>The radius of the rectangle corner rounding, as a percentage of the media width.</td>
</tr>
</tbody>
</table>

View file

@ -84,7 +84,7 @@
<tr>
<td><strong>address</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/GeoPointAddress">GeoPointAddress</a></td>
<td> </td>
<td>Optional textual representation of the address.</td>
</tr>
</tbody>
</table>

View file

@ -4,24 +4,10 @@
<meta charset="utf-8">
<title>mediaAreaUrl</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Represents a URL media area.
Parameters
Name
Type
Description
coordinates
MediaAreaCoordinates
The size and location of…">
<meta property="description" content="Represents a URL media area.">
<meta property="og:title" content="mediaAreaUrl">
<meta property="og:image" content="">
<meta property="og:description" content="Represents a URL media area.
Parameters
Name
Type
Description
coordinates
MediaAreaCoordinates
The size and location of…">
<meta property="og:description" content="Represents a URL media area.">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -56,7 +42,7 @@ The size and location of…">
<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/mediaAreaUrl" >mediaAreaUrl</a></li></ul></div>
<h1 id="dev_page_title">mediaAreaUrl</h1>
<div id="dev_page_content"><p>Represents a <a href="/api/stories#urls">URL media area</a>. </p>
<div id="dev_page_content"><p>Represents a <a href="/api/stories#urls">URL media area</a>.</p>
<p><div class="clearfix">
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
<li class="dropdown">
@ -93,7 +79,10 @@ The size and location of…">
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/MediaArea">MediaArea</a></p></div>
<p><a href="/type/MediaArea">MediaArea</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="#stories" id="stories" name="stories"><i class="anchor-icon"></i></a><a href="/api/stories">Stories</a></h4>
<p>Telegram users and channels can easily post and view stories through the API.</p></div>
</div>

View file

@ -4,24 +4,10 @@
<meta charset="utf-8">
<title>mediaAreaWeather</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Represents a weather widget ».
Parameters
Name
Type
Description
coordinates
MediaAreaCoordinates
The size and location of…">
<meta property="description" content="Represents a weather widget ».">
<meta property="og:title" content="mediaAreaWeather">
<meta property="og:image" content="">
<meta property="og:description" content="Represents a weather widget ».
Parameters
Name
Type
Description
coordinates
MediaAreaCoordinates
The size and location of…">
<meta property="og:description" content="Represents a weather widget ».">
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
@ -103,7 +89,12 @@ The size and location of…">
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/MediaArea">MediaArea</a></p></div>
<p><a href="/type/MediaArea">MediaArea</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="#animated-emojis" id="animated-emojis" name="animated-emojis"><i class="anchor-icon"></i></a><a href="/api/animated-emojis">Animated Emojis</a></h4>
<p>Graphical telegram clients should transform emojis into their respective animated version.</p>
<h4><a class="anchor" href="#stories" id="stories" name="stories"><i class="anchor-icon"></i></a><a href="/api/stories">Stories</a></h4>
<p>Telegram users and channels can easily post and view stories through the API.</p></div>
</div>

View file

@ -112,7 +112,7 @@
<tr>
<td><strong>effect</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.7?<a href="/type/long">long</a></td>
<td> </td>
<td>Specifies a <a href="/api/effects">message effect »</a> to use for the message.</td>
</tr>
</tbody>
</table>
@ -148,6 +148,8 @@
<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>
<h4><a class="anchor" href="#animated-message-effects" id="animated-message-effects" name="animated-message-effects"><i class="anchor-icon"></i></a><a href="/api/effects">Animated message effects</a></h4>
<p>Telegram allows adding spectacular animated effects to messages you send.</p>
<h4><a class="anchor" href="#message-drafts" id="message-drafts" name="message-drafts"><i class="anchor-icon"></i></a><a href="/api/drafts">Message drafts</a></h4>
<p>How to handle message drafts</p></div>

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 F6 02 00 2B 15 AD 66
0010 | 14 00 00 00 F1 8E 7E BE 84 05 86 8C 6A F5 1C 60
0020 | EE DA B4 E2 E3 5D 8F 62</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 00 5D 09 00 B0 2B AD 66
0010 | 14 00 00 00 F1 8E 7E BE 82 91 BF CD 2A 9A 38 CE
0020 | F5 EB EE 6C AD 60 F4 63</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>E0F602002B15AD66</code></td>
<td><code>005D0900B02BAD66</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>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</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 5C 12 CF 2B 15 AD 66
0010 | C8 00 00 00 63 24 16 05 84 05 86 8C 6A F5 1C 60
0020 | EE DA B4 E2 E3 5D 8F 62 36 87 B7 62 03 12 9A 48
0030 | 85 4F 7D B1 C4 67 19 E7 08 29 65 71 63 31 36 BF
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 0C 41 22 B0 2B AD 66
0010 | 80 00 00 00 63 24 16 05 82 91 BF CD 2A 9A 38 CE
0020 | F5 EB EE 6C AD 60 F4 63 A1 EE AF 50 0B C3 0D 41
0030 | 09 77 56 B4 2D 34 DE 4D 08 1D 84 81 1A 9E 2F 59
0040 | F3 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>015C12CF2B15AD66</code></td>
<td><code>010C4122B02BAD66</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>C8000000</code> (200 in decimal)</td>
<td><code>80000000</code> (128 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>08296571633136BF8B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2982914999044194187</td>
<td><code>081D84811A9E2F59F3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2126966875348752883</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 = 2982914999044194187</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2982914999044194187 = 1575493681 * 1893320827</code></p>
<pre><code>p = 1575493681
q = 1893320827</code></pre>
<pre><code>pq = 2126966875348752883</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2126966875348752883 = 1142860457 * 1861090619</code></p>
<pre><code>p = 1142860457
q = 1861090619</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 29 65 71 63 31 36 BF 8B 00 00 00
0010 | 04 5D E8 20 31 00 00 00 04 70 D9 C8 7B 00 00 00
0020 | 84 05 86 8C 6A F5 1C 60 EE DA B4 E2 E3 5D 8F 62
0030 | 36 87 B7 62 03 12 9A 48 85 4F 7D B1 C4 67 19 E7
0040 | 23 3E 32 A4 FB AA EC C5 15 30 C7 EA 05 9A DD 39
0050 | 5D 81 4A 75 4A 04 BB 12 6F 2B 42 53 AB 14 7B 16
<pre><code>0000 | 95 5F F5 A9 08 1D 84 81 1A 9E 2F 59 F3 00 00 00
0010 | 04 44 1E AA A9 00 00 00 04 6E ED FD 3B 00 00 00
0020 | 82 91 BF CD 2A 9A 38 CE F5 EB EE 6C AD 60 F4 63
0030 | A1 EE AF 50 0B C3 0D 41 09 77 56 B4 2D 34 DE 4D
0040 | E0 FD 6F AF 1B 19 C2 06 30 2B F3 8B A4 6A AD 96
0050 | FE 2E AC BC 62 11 8E FE 9A D9 1D BC 9B 5D 35 96
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 = 1893320827</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>08296571633136BF8B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2982914999044194187</td>
<td><code>081D84811A9E2F59F3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2126966875348752883</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>045DE82031000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1575493681</td>
<td><code>04441EAAA9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1142860457</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>0470D9C87B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1893320827</td>
<td><code>046EEDFD3B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1861090619</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>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>233E32A4FBAAECC51530C7EA059ADD39</code> <code>5D814A754A04BB126F2B4253AB147B16</code></td>
<td><code>E0FD6FAF1B19C206302BF38BA46AAD96</code> <code>FE2EACBC62118EFE9AD91DBC9B5D3596</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1893320827</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 = 955FF5A908296571633136BF8B000000045DE820310000000470D9C87B0000008405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E7233E32A4FBAAECC51530C7EA059ADD395D814A754A04BB126F2B4253AB147B1602000000
random_padding_bytes = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825585F756FA5546E50431F1362A0F006630540D4487AC9C233559FF2D25236B4A945BB60FC64EA312D18A27708C8CFB620B9E1203EBC9484983DFCAE2CF39A5EC</code></pre>
<pre><code>data = 955FF5A9081D84811A9E2F59F300000004441EAAA9000000046EEDFD3B0000008291BFCD2A9A38CEF5EBEE6CAD60F463A1EEAF500BC30D41097756B42D34DE4DE0FD6FAF1B19C206302BF38BA46AAD96FE2EACBC62118EFE9AD91DBC9B5D359602000000
random_padding_bytes = DAB834055781E41EA6A1AB7A455298F68CD372DB39D83DD17D29D8B9095DEED7F588C302C0E95EE57F2FFE72A78149DE28B6B39D22C9ACC112302ADCF7CA01774C6922018F5CE769A351682F66908202298FC3A0710BDD69C7AF1FA5</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 = 2BE67D929331B31C99982B1DB3E44E800D9A15C4B5732DB411BBC0CD6E936DED789411CC297722AD7EB99C44C7D0B0BE5CAA6141A9AA54FBF7043E23E4075F2C174951358FBE4CD386D8FAB60A12AAAC14A10506C330C3E02E3183209FDEFE6754576903261A556D8D911D4238D2C31B37034EE81FFD5AE937F701A4D5169A6F8AE8B301A5C334E74B5FCEFCC5D8D277506417754598890DA783B08512925A4CCC91E2709D169B9952F3F176B5779F21B3CAC9A399545A6B858DB3033695F8F5E6E5C2595E44AC225EDD45E94CFB4E147EEC441A81218C0BE8CC599923FFC249DF0E50E91F909B0475D6935EBE70DC1641C7C5CA6BDD93263A1F51939B3C867C</code></pre>
<pre><code>encrypted_data = 5C1D9E4E77F14C499F888FB25DD6AF577825AEE3A5F72615BF629FC52625FA8E0C01CEC78586D42FD6FA0995F506E2EE380CA35D4900D16716BA17667B3AFF9B829EBF3A238CC925A67384F8A0526390F57EDC9B56AA0705F7BB44C7900B3AF4D5F7F12B15FDD6EE91122C388B1294B8ECC2B1E7C34DBB2607BE6B8BD002A3E73ED6FC0128255E92E2EC9245764E8C5B55416E715BF0BAD2F8A926EAD0D90ECD64DA6BF1C3905ED158E66BE3FF5E0FE0ADE8F8B403C285300B2D686D4E6C70375EF2E14E74365CF952862E0F88004FB70CBCDC45E96FE03423AF921C11BB7893D4E3362A29561D84D752ABCA7A2CE3C7DBB8E01826821A512D6A2EA24F05C6E3</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 F6 02 00 2B 15 AD 66
0010 | 40 01 00 00 BE E4 12 D7 84 05 86 8C 6A F5 1C 60
0020 | EE DA B4 E2 E3 5D 8F 62 36 87 B7 62 03 12 9A 48
0030 | 85 4F 7D B1 C4 67 19 E7 04 5D E8 20 31 00 00 00
0040 | 04 70 D9 C8 7B 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 2B E6 7D 92 93 31 B3 1C 99 98 2B 1D
0060 | B3 E4 4E 80 0D 9A 15 C4 B5 73 2D B4 11 BB C0 CD
0070 | 6E 93 6D ED 78 94 11 CC 29 77 22 AD 7E B9 9C 44
0080 | C7 D0 B0 BE 5C AA 61 41 A9 AA 54 FB F7 04 3E 23
0090 | E4 07 5F 2C 17 49 51 35 8F BE 4C D3 86 D8 FA B6
00A0 | 0A 12 AA AC 14 A1 05 06 C3 30 C3 E0 2E 31 83 20
00B0 | 9F DE FE 67 54 57 69 03 26 1A 55 6D 8D 91 1D 42
00C0 | 38 D2 C3 1B 37 03 4E E8 1F FD 5A E9 37 F7 01 A4
00D0 | D5 16 9A 6F 8A E8 B3 01 A5 C3 34 E7 4B 5F CE FC
00E0 | C5 D8 D2 77 50 64 17 75 45 98 89 0D A7 83 B0 85
00F0 | 12 92 5A 4C CC 91 E2 70 9D 16 9B 99 52 F3 F1 76
0100 | B5 77 9F 21 B3 CA C9 A3 99 54 5A 6B 85 8D B3 03
0110 | 36 95 F8 F5 E6 E5 C2 59 5E 44 AC 22 5E DD 45 E9
0120 | 4C FB 4E 14 7E EC 44 1A 81 21 8C 0B E8 CC 59 99
0130 | 23 FF C2 49 DF 0E 50 E9 1F 90 9B 04 75 D6 93 5E
0140 | BE 70 DC 16 41 C7 C5 CA 6B DD 93 26 3A 1F 51 93
0150 | 9B 3C 86 7C</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 0C 68 0E 00 B0 2B AD 66
0010 | 40 01 00 00 BE E4 12 D7 82 91 BF CD 2A 9A 38 CE
0020 | F5 EB EE 6C AD 60 F4 63 A1 EE AF 50 0B C3 0D 41
0030 | 09 77 56 B4 2D 34 DE 4D 04 44 1E AA A9 00 00 00
0040 | 04 6E ED FD 3B 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 5C 1D 9E 4E 77 F1 4C 49 9F 88 8F B2
0060 | 5D D6 AF 57 78 25 AE E3 A5 F7 26 15 BF 62 9F C5
0070 | 26 25 FA 8E 0C 01 CE C7 85 86 D4 2F D6 FA 09 95
0080 | F5 06 E2 EE 38 0C A3 5D 49 00 D1 67 16 BA 17 66
0090 | 7B 3A FF 9B 82 9E BF 3A 23 8C C9 25 A6 73 84 F8
00A0 | A0 52 63 90 F5 7E DC 9B 56 AA 07 05 F7 BB 44 C7
00B0 | 90 0B 3A F4 D5 F7 F1 2B 15 FD D6 EE 91 12 2C 38
00C0 | 8B 12 94 B8 EC C2 B1 E7 C3 4D BB 26 07 BE 6B 8B
00D0 | D0 02 A3 E7 3E D6 FC 01 28 25 5E 92 E2 EC 92 45
00E0 | 76 4E 8C 5B 55 41 6E 71 5B F0 BA D2 F8 A9 26 EA
00F0 | D0 D9 0E CD 64 DA 6B F1 C3 90 5E D1 58 E6 6B E3
0100 | FF 5E 0F E0 AD E8 F8 B4 03 C2 85 30 0B 2D 68 6D
0110 | 4E 6C 70 37 5E F2 E1 4E 74 36 5C F9 52 86 2E 0F
0120 | 88 00 4F B7 0C BC DC 45 E9 6F E0 34 23 AF 92 1C
0130 | 11 BB 78 93 D4 E3 36 2A 29 56 1D 84 D7 52 AB CA
0140 | 7A 2C E3 C7 DB B8 E0 18 26 82 1A 51 2D 6A 2E A2
0150 | 4F 05 C6 E3</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 = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>E4F602002B15AD66</code></td>
<td><code>0C680E00B02BAD66</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 = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>045DE82031000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1575493681</td>
<td><code>04441EAAA9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1142860457</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>0470D9C87B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1893320827</td>
<td><code>046EEDFD3B000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1861090619</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 = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE0001002BE67D929331B31C99982B1D</code> <code>B3E44E800D9A15C4B5732DB411BBC0CD</code> <code>6E936DED789411CC297722AD7EB99C44</code> <code>C7D0B0BE5CAA6141A9AA54FBF7043E23</code> <code>E4075F2C174951358FBE4CD386D8FAB6</code> <code>0A12AAAC14A10506C330C3E02E318320</code> <code>9FDEFE6754576903261A556D8D911D42</code> <code>38D2C31B37034EE81FFD5AE937F701A4</code> <code>D5169A6F8AE8B301A5C334E74B5FCEFC</code> <code>C5D8D277506417754598890DA783B085</code> <code>12925A4CCC91E2709D169B9952F3F176</code> <code>B5779F21B3CAC9A399545A6B858DB303</code> <code>3695F8F5E6E5C2595E44AC225EDD45E9</code> <code>4CFB4E147EEC441A81218C0BE8CC5999</code> <code>23FFC249DF0E50E91F909B0475D6935E</code> <code>BE70DC1641C7C5CA6BDD93263A1F5193</code><br> <code>9B3C867C</code></td>
<td><code>FE0001005C1D9E4E77F14C499F888FB2</code> <code>5DD6AF577825AEE3A5F72615BF629FC5</code> <code>2625FA8E0C01CEC78586D42FD6FA0995</code> <code>F506E2EE380CA35D4900D16716BA1766</code> <code>7B3AFF9B829EBF3A238CC925A67384F8</code> <code>A0526390F57EDC9B56AA0705F7BB44C7</code> <code>900B3AF4D5F7F12B15FDD6EE91122C38</code> <code>8B1294B8ECC2B1E7C34DBB2607BE6B8B</code> <code>D002A3E73ED6FC0128255E92E2EC9245</code> <code>764E8C5B55416E715BF0BAD2F8A926EA</code> <code>D0D90ECD64DA6BF1C3905ED158E66BE3</code> <code>FF5E0FE0ADE8F8B403C285300B2D686D</code> <code>4E6C70375EF2E14E74365CF952862E0F</code> <code>88004FB70CBCDC45E96FE03423AF921C</code> <code>11BB7893D4E3362A29561D84D752ABCA</code> <code>7A2CE3C7DBB8E01826821A512D6A2EA2</code><br> <code>4F05C6E3</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825
<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 2C 33 95 2C 15 AD 66
0010 | 8C 02 00 00 5C 07 E8 D0 84 05 86 8C 6A F5 1C 60
0020 | EE DA B4 E2 E3 5D 8F 62 36 87 B7 62 03 12 9A 48
0030 | 85 4F 7D B1 C4 67 19 E7 FE 50 02 00 3E AE A0 66
0040 | D8 F1 E4 3D B7 F7 55 E0 B5 92 E6 C9 00 75 41 7C
0050 | 60 7E F3 20 1C C7 E6 A0 15 91 14 B8 77 AC 73 E1
0060 | 71 39 E7 2B 71 AF 24 35 26 F6 C2 EC 7A C1 73 D5
0070 | D9 76 E3 7B B3 4A 3B BE D9 76 D1 27 4F 5F 08 B5
0080 | F6 78 BC 29 58 8F 56 73 50 F5 A6 90 1E 4F DB 21
0090 | 01 13 6C 26 47 C3 E0 5C B2 0D 85 6B 25 C4 4D C5
00A0 | D1 BA 23 31 73 1E 12 74 DA 31 58 D6 9A F3 62 A4
00B0 | 43 40 E6 E8 7D F4 BB 8A 6F E4 E6 D7 74 28 D0 15
00C0 | EE 5E B9 D5 7F E8 A7 57 86 60 DD 95 67 E6 4B E5
00D0 | 66 CC 4E 80 F8 9D 17 09 14 B6 C3 0B 37 2B 23 22
00E0 | 9E C2 04 A0 7D D9 A4 72 90 42 A5 B4 EC BF B8 10
00F0 | B7 1B 62 48 FA 29 B9 D9 E3 0B 30 1E AC B2 E5 D8
0100 | F4 CF F0 A0 A3 C1 C9 87 63 2D 26 64 C6 10 16 71
0110 | 90 7A 7A C2 0C FC 83 8E FC 58 83 45 5C 04 47 6B
0120 | 6A 83 E8 74 61 D4 52 75 60 04 3C D4 11 DA 29 C6
0130 | 5F 66 E2 89 A4 D3 7C 40 48 9A 4D 0E 80 06 86 64
0140 | 51 01 AD 7D EB 1E 8E 29 66 9C 9E 3C 95 5F D9 11
0150 | 2F B6 45 4E D2 C2 B0 B0 18 91 62 DB 78 E8 5A 56
0160 | AA 63 F0 7C 66 20 3F 3A D8 5F 00 EB D6 DF 37 8E
0170 | 66 F9 86 A0 C4 CD 25 F3 AF D7 4B 22 22 DE E0 A0
0180 | E5 BD C2 D6 48 A9 CB FB 58 7C D5 B0 62 77 40 92
0190 | 9E 45 F1 C2 11 BB 6E 5B 95 24 AC 54 35 4F B3 F2
01A0 | 25 79 88 3C 7F 77 EE 62 37 F2 18 38 0B F9 99 DE
01B0 | 4D A1 80 FB C7 45 D0 4F 60 7A 92 A4 3B 06 EE 33
01C0 | 11 91 39 9C AF B1 92 7A 09 C3 C0 6E CA D7 A2 07
01D0 | 37 01 61 13 51 71 09 74 A5 73 E3 3A E1 64 E5 22
01E0 | A9 5B 1A 97 F0 69 09 2A EF FA A8 A1 5D 6C E0 05
01F0 | 1E 26 CE F5 6C 4F 94 9B C2 15 AF 8F 02 D6 4C AE
0200 | A9 9E AA 38 C9 F6 50 4E 8B C8 9D 51 C7 12 03 15
0210 | 27 FE 55 15 6C 58 82 B1 67 46 EB 54 78 3F 2D 5C
0220 | BD BF 15 FC A2 68 FF 07 91 2B 0B 32 C1 78 CF D7
0230 | E8 70 33 5C C4 77 67 1C E3 20 47 50 CF 29 F8 BE
0240 | A9 E2 E7 89 3E B4 3B 1F 35 F8 BE A8 AA 66 78 A8
0250 | A5 0F 52 E9 2B 6B 8A BD 2B 06 E1 F8 61 F8 41 1E
0260 | DE D8 3A ED BE 0D 7B BB CB FD F9 39 A1 DD 25 B3
0270 | B1 36 DD A2 07 CD E1 47 37 F5 67 F0 04 54 C2 B1
0280 | AA 1F 67 E6 2B 4C E8 8E D4 8B E9 46</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 D0 45 F2 B0 2B AD 66
0010 | 78 02 00 00 5C 07 E8 D0 82 91 BF CD 2A 9A 38 CE
0020 | F5 EB EE 6C AD 60 F4 63 A1 EE AF 50 0B C3 0D 41
0030 | 09 77 56 B4 2D 34 DE 4D FE 50 02 00 89 0C 30 D8
0040 | 26 06 8A 80 A7 19 07 E4 5D 17 3E 47 57 0B 28 ED
0050 | 48 8D D0 EB C2 10 39 2D 79 99 D1 8D 11 10 DB 65
0060 | 00 41 9B 5B B5 8A 11 D0 63 11 22 99 E8 7E C0 E4
0070 | 49 7F C6 13 9D 55 CB 4E 59 8E 1C 92 FB 77 DA 96
0080 | 61 5C 22 34 47 5B E3 61 5D 9E 79 82 6E AE E4 85
0090 | DD 2D 30 22 18 68 66 8E 9B A9 D6 62 19 30 DF 0E
00A0 | A2 D4 44 F4 B2 00 75 58 67 EC 82 98 F4 86 67 97
00B0 | 77 BA 82 5C 0A 01 97 60 BD CD 28 FF 79 E7 C9 A4
00C0 | D3 70 26 BE BD A0 9D F0 D6 EF B0 AA FC 70 C7 D0
00D0 | A7 2F A5 FA A0 72 EA BB EE 22 6C FA 81 E4 14 F5
00E0 | E1 4B 18 99 50 71 A9 0B 4B AD 6C 85 51 AB AF 69
00F0 | F6 70 19 8D 29 01 49 FF 98 E3 CC D0 6A 8E 22 33
0100 | 91 82 D0 42 DE CA FB 01 1F 43 44 21 36 3F 63 AC
0110 | DB 41 A8 0F 05 EB DE 43 F5 19 50 7D 0E 7B 05 B1
0120 | E6 CA 23 75 9F 62 BC E5 1E B0 B4 FD 7A 75 C9 AA
0130 | A8 36 C0 31 1A C1 90 64 BF 5B E6 CE 41 2E E1 82
0140 | C3 41 3E C6 F7 5C 57 84 7E 1B 55 9F 6B 9C 1A 0A
0150 | 86 03 A4 13 FC CD 45 37 F1 D1 41 DB 99 69 47 AD
0160 | C2 E4 49 A2 E7 FD BB A5 56 9C D3 07 FD 3C 3F 6C
0170 | 34 B5 9B CC C0 D4 0E F1 29 B9 B7 FF AE 60 B5 A4
0180 | 32 FD BF 66 A7 47 D6 18 A9 A1 3D 31 4C B9 5A 5A
0190 | BE 53 3D 60 26 BF 92 C0 93 8D C3 DB E7 B0 71 3E
01A0 | 09 BE 93 85 44 EA CC 85 D3 3D 39 CD 8F 2F C4 FA
01B0 | FB 52 D0 D0 75 6E 36 6E 35 4D C3 F0 4D EB 6D 69
01C0 | 50 60 10 0E B4 BC F6 6A 04 92 11 A7 3D AC 4E 2E
01D0 | 94 E9 75 19 CA 0E 7A 78 F7 1C 49 E8 04 6E 64 80
01E0 | 44 CA 50 C9 3F 2F FB 12 32 A2 7B FB D7 D3 BB 3A
01F0 | 4B 20 08 88 E1 1A 68 0A A9 B6 3F CB 79 D7 9A 5E
0200 | 78 EF DA 6F 95 FF 0C A9 63 A2 3C B3 41 F0 47 34
0210 | 2A 0D 8A B4 E3 EB 51 E8 17 1F DD 3D 8A B0 56 C2
0220 | BE A4 54 E3 60 AE F3 D2 12 72 4F 34 A1 E9 2F 4C
0230 | 77 27 D3 54 F8 8F 6B 2F 13 A1 A8 61 29 F3 08 2C
0240 | 9E C2 24 2C 67 57 9B 71 33 56 77 7A 7E EE 19 C7
0250 | 52 34 CD 26 47 C8 B8 F0 50 35 CA F4 07 99 22 C0
0260 | 4C 1C D4 0B 73 1D 40 87 57 86 27 CE 44 EC 04 67
0270 | 06 91 9E 6B 38 4F 8A D9 B5 9E D5 89 A2 51 2B A5
0280 | 75 26 B6 DE EA B5 B9 FA 4F 63 52 11</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 = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>012C33952C15AD66</code></td>
<td><code>01D045F2B02BAD66</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>8C020000</code> (652 in decimal)</td>
<td><code>78020000</code> (632 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE5002003EAEA066D8F1E43DB7F755E0</code> <code>B592E6C90075417C607EF3201CC7E6A0</code> <code>159114B877AC73E17139E72B71AF2435</code> <code>26F6C2EC7AC173D5D976E37BB34A3BBE</code> <code>D976D1274F5F08B5F678BC29588F5673</code> <code>50F5A6901E4FDB2101136C2647C3E05C</code> <code>B20D856B25C44DC5D1BA2331731E1274</code> <code>DA3158D69AF362A44340E6E87DF4BB8A</code> <code>6FE4E6D77428D015EE5EB9D57FE8A757</code> <code>8660DD9567E64BE566CC4E80F89D1709</code> <code>14B6C30B372B23229EC204A07DD9A472</code> <code>9042A5B4ECBFB810B71B6248FA29B9D9</code> <code>E30B301EACB2E5D8F4CFF0A0A3C1C987</code> <code>632D2664C6101671907A7AC20CFC838E</code> <code>FC5883455C04476B6A83E87461D45275</code> <code>60043CD411DA29C65F66E289A4D37C40</code> <code>489A4D0E800686645101AD7DEB1E8E29</code> <code>669C9E3C955FD9112FB6454ED2C2B0B0</code> <code>189162DB78E85A56AA63F07C66203F3A</code> <code>D85F00EBD6DF378E66F986A0C4CD25F3</code> <code>AFD74B2222DEE0A0E5BDC2D648A9CBFB</code> <code>587CD5B0627740929E45F1C211BB6E5B</code> <code>9524AC54354FB3F22579883C7F77EE62</code> <code>37F218380BF999DE4DA180FBC745D04F</code> <code>607A92A43B06EE331191399CAFB1927A</code> <code>09C3C06ECAD7A2073701611351710974</code> <code>A573E33AE164E522A95B1A97F069092A</code> <code>EFFAA8A15D6CE0051E26CEF56C4F949B</code> <code>C215AF8F02D64CAEA99EAA38C9F6504E</code> <code>8BC89D51C712031527FE55156C5882B1</code> <code>6746EB54783F2D5CBDBF15FCA268FF07</code> <code>912B0B32C178CFD7E870335CC477671C</code> <code>E3204750CF29F8BEA9E2E7893EB43B1F</code> <code>35F8BEA8AA6678A8A50F52E92B6B8ABD</code> <code>2B06E1F861F8411EDED83AEDBE0D7BBB</code> <code>CBFDF939A1DD25B3B136DDA207CDE147</code> <code>37F567F00454C2B1AA1F67E62B4CE88E</code><br> <code>D48BE946</code></td>
<td><code>FE500200890C30D826068A80A71907E4</code> <code>5D173E47570B28ED488DD0EBC210392D</code> <code>7999D18D1110DB6500419B5BB58A11D0</code> <code>63112299E87EC0E4497FC6139D55CB4E</code> <code>598E1C92FB77DA96615C2234475BE361</code> <code>5D9E79826EAEE485DD2D30221868668E</code> <code>9BA9D6621930DF0EA2D444F4B2007558</code> <code>67EC8298F486679777BA825C0A019760</code> <code>BDCD28FF79E7C9A4D37026BEBDA09DF0</code> <code>D6EFB0AAFC70C7D0A72FA5FAA072EABB</code> <code>EE226CFA81E414F5E14B18995071A90B</code> <code>4BAD6C8551ABAF69F670198D290149FF</code> <code>98E3CCD06A8E22339182D042DECAFB01</code> <code>1F434421363F63ACDB41A80F05EBDE43</code> <code>F519507D0E7B05B1E6CA23759F62BCE5</code> <code>1EB0B4FD7A75C9AAA836C0311AC19064</code> <code>BF5BE6CE412EE182C3413EC6F75C5784</code> <code>7E1B559F6B9C1A0A8603A413FCCD4537</code> <code>F1D141DB996947ADC2E449A2E7FDBBA5</code> <code>569CD307FD3C3F6C34B59BCCC0D40EF1</code> <code>29B9B7FFAE60B5A432FDBF66A747D618</code> <code>A9A13D314CB95A5ABE533D6026BF92C0</code> <code>938DC3DBE7B0713E09BE938544EACC85</code> <code>D33D39CD8F2FC4FAFB52D0D0756E366E</code> <code>354DC3F04DEB6D695060100EB4BCF66A</code> <code>049211A73DAC4E2E94E97519CA0E7A78</code> <code>F71C49E8046E648044CA50C93F2FFB12</code> <code>32A27BFBD7D3BB3A4B200888E11A680A</code> <code>A9B63FCB79D79A5E78EFDA6F95FF0CA9</code> <code>63A23CB341F047342A0D8AB4E3EB51E8</code> <code>171FDD3D8AB056C2BEA454E360AEF3D2</code> <code>12724F34A1E92F4C7727D354F88F6B2F</code> <code>13A1A86129F3082C9EC2242C67579B71</code> <code>3356777A7EEE19C75234CD2647C8B8F0</code> <code>5035CAF4079922C04C1CD40B731D4087</code> <code>578627CE44EC046706919E6B384F8AD9</code> <code>B59ED589A2512BA57526B6DEEAB5B9FA</code><br> <code>4F635211</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 0203D03BB3F34D7592F44F38B79C2A2905B56B71995C2FEDCBBB1E825
<!-- 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 = 3EAEA066D8F1E43DB7F755E0B592E6C90075417C607EF3201CC7E6A0159114B877AC73E17139E72B71AF243526F6C2EC7AC173D5D976E37BB34A3BBED976D1274F5F08B5F678BC29588F567350F5A6901E4FDB2101136C2647C3E05CB20D856B25C44DC5D1BA2331731E1274DA3158D69AF362A44340E6E87DF4BB8A6FE4E6D77428D015EE5EB9D57FE8A7578660DD9567E64BE566CC4E80F89D170914B6C30B372B23229EC204A07DD9A4729042A5B4ECBFB810B71B6248FA29B9D9E30B301EACB2E5D8F4CFF0A0A3C1C987632D2664C6101671907A7AC20CFC838EFC5883455C04476B6A83E87461D4527560043CD411DA29C65F66E289A4D37C40489A4D0E800686645101AD7DEB1E8E29669C9E3C955FD9112FB6454ED2C2B0B0189162DB78E85A56AA63F07C66203F3AD85F00EBD6DF378E66F986A0C4CD25F3AFD74B2222DEE0A0E5BDC2D648A9CBFB587CD5B0627740929E45F1C211BB6E5B9524AC54354FB3F22579883C7F77EE6237F218380BF999DE4DA180FBC745D04F607A92A43B06EE331191399CAFB1927A09C3C06ECAD7A2073701611351710974A573E33AE164E522A95B1A97F069092AEFFAA8A15D6CE0051E26CEF56C4F949BC215AF8F02D64CAEA99EAA38C9F6504E8BC89D51C712031527FE55156C5882B16746EB54783F2D5CBDBF15FCA268FF07912B0B32C178CFD7E870335CC477671CE3204750CF29F8BEA9E2E7893EB43B1F35F8BEA8AA6678A8A50F52E92B6B8ABD2B06E1F861F8411EDED83AEDBE0D7BBBCBFDF939A1DD25B3B136DDA207CDE14737F567F00454C2B1AA1F67E62B4CE88ED48BE946
tmp_aes_key = CAAA386C8996AF8549A7FD7EA2DEA9CAACA298F3A7235AD0C24EA1C2671398A0
tmp_aes_iv = 80B4E4587896E5DF12D94DA6D820055B54C1F39EFFE44BFCA8374351233E32A4</code></pre>
<pre><code>encrypted_answer = 890C30D826068A80A71907E45D173E47570B28ED488DD0EBC210392D7999D18D1110DB6500419B5BB58A11D063112299E87EC0E4497FC6139D55CB4E598E1C92FB77DA96615C2234475BE3615D9E79826EAEE485DD2D30221868668E9BA9D6621930DF0EA2D444F4B200755867EC8298F486679777BA825C0A019760BDCD28FF79E7C9A4D37026BEBDA09DF0D6EFB0AAFC70C7D0A72FA5FAA072EABBEE226CFA81E414F5E14B18995071A90B4BAD6C8551ABAF69F670198D290149FF98E3CCD06A8E22339182D042DECAFB011F434421363F63ACDB41A80F05EBDE43F519507D0E7B05B1E6CA23759F62BCE51EB0B4FD7A75C9AAA836C0311AC19064BF5BE6CE412EE182C3413EC6F75C57847E1B559F6B9C1A0A8603A413FCCD4537F1D141DB996947ADC2E449A2E7FDBBA5569CD307FD3C3F6C34B59BCCC0D40EF129B9B7FFAE60B5A432FDBF66A747D618A9A13D314CB95A5ABE533D6026BF92C0938DC3DBE7B0713E09BE938544EACC85D33D39CD8F2FC4FAFB52D0D0756E366E354DC3F04DEB6D695060100EB4BCF66A049211A73DAC4E2E94E97519CA0E7A78F71C49E8046E648044CA50C93F2FFB1232A27BFBD7D3BB3A4B200888E11A680AA9B63FCB79D79A5E78EFDA6F95FF0CA963A23CB341F047342A0D8AB4E3EB51E8171FDD3D8AB056C2BEA454E360AEF3D212724F34A1E92F4C7727D354F88F6B2F13A1A86129F3082C9EC2242C67579B713356777A7EEE19C75234CD2647C8B8F05035CAF4079922C04C1CD40B731D4087578627CE44EC046706919E6B384F8AD9B59ED589A2512BA57526B6DEEAB5B9FA4F635211
tmp_aes_key = 6D848880E69F68B2DCF8956FADABFA6670B22AD2FA517E2DE6D304C85C9037E7
tmp_aes_iv = F53CBAADFD57CD5DA787712E20BFAA9A7EE079C06825E4DE074FAAD1E0FD6FAF</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = 61A02AC89583209552173E91365A9BD569A28DAABA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100497EE07350DDE83D682BDEB16F7CA5D0D3EC7F0EF5FF24BFB3C1BECD3894853AE1A1B752C8737E9848AC1D897296C25AC38D3F6BF8EF3035E8A8AD42E27B5561577ED5E2570F26D45FE42A2275B761E9FA0C1667D7EAA62E745E8EA1CA787F48F7C2444D67F74E46BB5BE2B2F77CE804F5D950843411A1C0C2946209E2A2BA9A2E8754A8A7B73A5A2CA19C84B477BF78945D5EA95616D2D89B7A11F7EBBE465523B8A37AFFA8C44C009387B140755D7EB072518073DD6E6F412EA610C225320DB477DAA2EC3C441450656CCF5966FA82DF7CD03C11D8BC7AD2B23A4C074D438D6FAF67162241E5DD156C26CE4C262C52C8B2BB559FDB8E149CAC5B822CDD59C22C15AD667D0652BCC1D6C5E4
answer = BA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100497EE07350DDE83D682BDEB16F7CA5D0D3EC7F0EF5FF24BFB3C1BECD3894853AE1A1B752C8737E9848AC1D897296C25AC38D3F6BF8EF3035E8A8AD42E27B5561577ED5E2570F26D45FE42A2275B761E9FA0C1667D7EAA62E745E8EA1CA787F48F7C2444D67F74E46BB5BE2B2F77CE804F5D950843411A1C0C2946209E2A2BA9A2E8754A8A7B73A5A2CA19C84B477BF78945D5EA95616D2D89B7A11F7EBBE465523B8A37AFFA8C44C009387B140755D7EB072518073DD6E6F412EA610C225320DB477DAA2EC3C441450656CCF5966FA82DF7CD03C11D8BC7AD2B23A4C074D438D6FAF67162241E5DD156C26CE4C262C52C8B2BB559FDB8E149CAC5B822CDD59C22C15AD667D0652BCC1D6C5E4</code></pre>
<pre><code>answer_with_hash = 1549CE96572BA03A35EF560F6EC58EC2D9851823BA0D89B58291BFCD2A9A38CEF5EBEE6CAD60F463A1EEAF500BC30D41097756B42D34DE4D03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001000A9322F43BC15A8C0AF7F41311899555F92420BA08DA07B79E3E9DCD12C19A700D60D5DCA48260651A90F586D49E5BED116CCEA6EF35412F6EE5E9DC9DE04235851A3D997B093803B12BB68AE0C36A9DD7B73AE3061B02B42B999613E178BBA7E7920700F6FF8AA1BEC34D2A6AFCA1242A2661DEB61D2EA15A4A9C4738E494D22627C4BCEE44E9D344C9E48E600D1387FDA1699F4A0FF1D7D3D18F60131101F3B9C41B0C91EC1D3D7A28E25CDBEBDEB274539996171F0C8D0B117C65F5E6AF799B772EFE062AA3EEA195B5B4663570C83B26AD596020ED27C85AA31EC1EE3AC0A11FBEA062E044A386D6D82009BE96504DAE4354529DAB9794D514BCC5CBD801B02BAD6683C513BE6E3A9F89
answer = BA0D89B58291BFCD2A9A38CEF5EBEE6CAD60F463A1EEAF500BC30D41097756B42D34DE4D03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001000A9322F43BC15A8C0AF7F41311899555F92420BA08DA07B79E3E9DCD12C19A700D60D5DCA48260651A90F586D49E5BED116CCEA6EF35412F6EE5E9DC9DE04235851A3D997B093803B12BB68AE0C36A9DD7B73AE3061B02B42B999613E178BBA7E7920700F6FF8AA1BEC34D2A6AFCA1242A2661DEB61D2EA15A4A9C4738E494D22627C4BCEE44E9D344C9E48E600D1387FDA1699F4A0FF1D7D3D18F60131101F3B9C41B0C91EC1D3D7A28E25CDBEBDEB274539996171F0C8D0B117C65F5E6AF799B772EFE062AA3EEA195B5B4663570C83B26AD596020ED27C85AA31EC1EE3AC0A11FBEA062E044A386D6D82009BE96504DAE4354529DAB9794D514BCC5CBD801B02BAD6683C513BE6E3A9F89</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 84 05 86 8C 6A F5 1C 60 EE DA B4 E2
0010 | E3 5D 8F 62 36 87 B7 62 03 12 9A 48 85 4F 7D B1
0020 | C4 67 19 E7 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 82 91 BF CD 2A 9A 38 CE F5 EB EE 6C
0010 | AD 60 F4 63 A1 EE AF 50 0B C3 0D 41 09 77 56 B4
0020 | 2D 34 DE 4D 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 = BA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E
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 | 49 7E E0 73 50 DD E8 3D 68 2B DE B1 6F 7C A5 D0
0140 | D3 EC 7F 0E F5 FF 24 BF B3 C1 BE CD 38 94 85 3A
0150 | E1 A1 B7 52 C8 73 7E 98 48 AC 1D 89 72 96 C2 5A
0160 | C3 8D 3F 6B F8 EF 30 35 E8 A8 AD 42 E2 7B 55 61
0170 | 57 7E D5 E2 57 0F 26 D4 5F E4 2A 22 75 B7 61 E9
0180 | FA 0C 16 67 D7 EA A6 2E 74 5E 8E A1 CA 78 7F 48
0190 | F7 C2 44 4D 67 F7 4E 46 BB 5B E2 B2 F7 7C E8 04
01A0 | F5 D9 50 84 34 11 A1 C0 C2 94 62 09 E2 A2 BA 9A
01B0 | 2E 87 54 A8 A7 B7 3A 5A 2C A1 9C 84 B4 77 BF 78
01C0 | 94 5D 5E A9 56 16 D2 D8 9B 7A 11 F7 EB BE 46 55
01D0 | 23 B8 A3 7A FF A8 C4 4C 00 93 87 B1 40 75 5D 7E
01E0 | B0 72 51 80 73 DD 6E 6F 41 2E A6 10 C2 25 32 0D
01F0 | B4 77 DA A2 EC 3C 44 14 50 65 6C CF 59 66 FA 82
0200 | DF 7C D0 3C 11 D8 BC 7A D2 B2 3A 4C 07 4D 43 8D
0210 | 6F AF 67 16 22 41 E5 DD 15 6C 26 CE 4C 26 2C 52
0220 | C8 B2 BB 55 9F DB 8E 14 9C AC 5B 82 2C DD 59 C2
0230 | 2C 15 AD 66</code></pre>
0130 | 0A 93 22 F4 3B C1 5A 8C 0A F7 F4 13 11 89 95 55
0140 | F9 24 20 BA 08 DA 07 B7 9E 3E 9D CD 12 C1 9A 70
0150 | 0D 60 D5 DC A4 82 60 65 1A 90 F5 86 D4 9E 5B ED
0160 | 11 6C CE A6 EF 35 41 2F 6E E5 E9 DC 9D E0 42 35
0170 | 85 1A 3D 99 7B 09 38 03 B1 2B B6 8A E0 C3 6A 9D
0180 | D7 B7 3A E3 06 1B 02 B4 2B 99 96 13 E1 78 BB A7
0190 | E7 92 07 00 F6 FF 8A A1 BE C3 4D 2A 6A FC A1 24
01A0 | 2A 26 61 DE B6 1D 2E A1 5A 4A 9C 47 38 E4 94 D2
01B0 | 26 27 C4 BC EE 44 E9 D3 44 C9 E4 8E 60 0D 13 87
01C0 | FD A1 69 9F 4A 0F F1 D7 D3 D1 8F 60 13 11 01 F3
01D0 | B9 C4 1B 0C 91 EC 1D 3D 7A 28 E2 5C DB EB DE B2
01E0 | 74 53 99 96 17 1F 0C 8D 0B 11 7C 65 F5 E6 AF 79
01F0 | 9B 77 2E FE 06 2A A3 EE A1 95 B5 B4 66 35 70 C8
0200 | 3B 26 AD 59 60 20 ED 27 C8 5A A3 1E C1 EE 3A C0
0210 | A1 1F BE A0 62 E0 44 A3 86 D6 D8 20 09 BE 96 50
0220 | 4D AE 43 54 52 9D AB 97 94 D5 14 BC C5 CB D8 01
0230 | B0 2B AD 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 = BA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE000100497EE07350DDE83D682BDEB1</code> <code>6F7CA5D0D3EC7F0EF5FF24BFB3C1BECD</code> <code>3894853AE1A1B752C8737E9848AC1D89</code> <code>7296C25AC38D3F6BF8EF3035E8A8AD42</code> <code>E27B5561577ED5E2570F26D45FE42A22</code> <code>75B761E9FA0C1667D7EAA62E745E8EA1</code> <code>CA787F48F7C2444D67F74E46BB5BE2B2</code> <code>F77CE804F5D950843411A1C0C2946209</code> <code>E2A2BA9A2E8754A8A7B73A5A2CA19C84</code> <code>B477BF78945D5EA95616D2D89B7A11F7</code> <code>EBBE465523B8A37AFFA8C44C009387B1</code> <code>40755D7EB072518073DD6E6F412EA610</code> <code>C225320DB477DAA2EC3C441450656CCF</code> <code>5966FA82DF7CD03C11D8BC7AD2B23A4C</code> <code>074D438D6FAF67162241E5DD156C26CE</code> <code>4C262C52C8B2BB559FDB8E149CAC5B82</code><br> <code>2CDD59C2</code></td>
<td><code>FE0001000A9322F43BC15A8C0AF7F413</code> <code>11899555F92420BA08DA07B79E3E9DCD</code> <code>12C19A700D60D5DCA48260651A90F586</code> <code>D49E5BED116CCEA6EF35412F6EE5E9DC</code> <code>9DE04235851A3D997B093803B12BB68A</code> <code>E0C36A9DD7B73AE3061B02B42B999613</code> <code>E178BBA7E7920700F6FF8AA1BEC34D2A</code> <code>6AFCA1242A2661DEB61D2EA15A4A9C47</code> <code>38E494D22627C4BCEE44E9D344C9E48E</code> <code>600D1387FDA1699F4A0FF1D7D3D18F60</code> <code>131101F3B9C41B0C91EC1D3D7A28E25C</code> <code>DBEBDEB274539996171F0C8D0B117C65</code> <code>F5E6AF799B772EFE062AA3EEA195B5B4</code> <code>663570C83B26AD596020ED27C85AA31E</code> <code>C1EE3AC0A11FBEA062E044A386D6D820</code> <code>09BE96504DAE4354529DAB9794D514BC</code><br> <code>C5CBD801</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>2C15AD66</code> (1722619180 in decimal)</td>
<td><code>B02BAD66</code> (1722624944 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E
<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 = 93B445C01C9006A9CBB244751539B5E69FE9F848193FA75876CD18A59B33AE0DE83E0DB260BA6D81A90EDE4D11AB47756418E459ACC909D1D7DA4F198F024565D86662F6E0A052E67C77B5DB145A54AE176DC072E2771F89E73742722772BEDAB93B0D1921C2933DBB6CE6C17783C0F673BEAB325584E112A1DDF02BF778059185FECB66A3613C539247D055BCF9FE3A0B4A764213ACD1A52F8C836F1C885E969A8865FD0BE170E581B8FD2EA3E8EF5E45433C45159FE57ACB101F090029F18AEA06D79DA3A4475D0A5801C9CD94FAF1725ECBA9254F3C24E5AB619C3EB4FFA0FBCF6869E8BBBAAC6CD633791ABBCA01D9B7FCBEB87E5A3B70E3B088E1A7E33D</code></pre>
<pre><code>b = ECC62DE6CA382AA921460B5A4D2392808E7FCDB0CAA212113D10E3882BCAE0B6F259E3D7E2F406694590CA60C472240702F2B40F0A09A51843367F6CECCB4F4815B3F90011915FF9267116BAD195860FCAF6E4B27A20E196C95FED261E4D6C0B40FF15D4318E5710357DD9EAB8C3683C0134BE9C415B83518EA585DEDABE89AD7C0EBC39E28432E4954C42B69EBEAF1919F3A203A5E7184605D91D95D07A92792E1201DCAB3F0882CC4285D6185D515A90F39C9B54CCB847263B772F71594DC852F41CE9FF3C9CA0A8C4BF54336A946F0CCE02BB8BC33EE10F85610A4954F1F8452B704F3BB11C83C3E53AB52185B22BD01E6EC98FE77E8FC770CA82A79E98F3</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 = 5063278946679FE2F2A2642B8FA6659D5FA00EBE8BA1B30A724BD47CEA323F860C1A4948B6355DEA182CD3F6DA3CD33142162C2E84910A47D69CA5C767C84185BD9964B78CD36FAB427AFEC0447CD40F347E17D23D67FC8132C6B5B00BA22D13F85605E74918F242108DACFD724E4BF90D8708BCB20B3A681BA48FD494248AAFC3577A1B47D6FB806342B21A15D74CE61DD64526493F6CDB8965D0E8AC1C78457F003F934318B3F16DFFD0E4151D87B4F1D328DB9F14D1F785A2AF469E9B76EE7B5B64F3FC62AF1BD8BD18333F27B41D07D643BD0C6385578DA56F0E0CDA9AF0FE6DBCB9246F158140B0B161104C972BE07632F98764CE3C40B98EDA499D8663</code></pre>
<pre><code>g_b = A5562D78CDE79D9C8BFB9732B939B00A7F5783C7653775BF92CA7376A4ED7E445A48EC4DB8DBE741FE02A8A3E5577990A668B80DE7066D6BA7AE53C1FA9C71331A22AF5F9837A9D1555CF55FA5AC245F0AE3CEDDB86F6795743BEA444A8242FC7D62E777AF350F55F9A03A6610BD302FA9B52EC2700EE1814501C15BBCFD8105F54E48835BE72D099010069ECD40193519D1D43705A52B55D4E4E1ADE192746A817FCCAA4462017E4EA9377B23ECDC4513C5E8E622EBCC601F64B903036EEF680ADC7BE8B530EE514B7D1F55AA7531AE849E0AA178B1D0F56C2C20FD4DA92E830150FBE272714F73788208832BDB0DA4AEC617C3170EAE75BD9CFB7592E594E6</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 84 05 86 8C 6A F5 1C 60 EE DA B4 E2
0010 | E3 5D 8F 62 36 87 B7 62 03 12 9A 48 85 4F 7D B1
0020 | C4 67 19 E7 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 50 63 27 89 46 67 9F E2 F2 A2 64 2B 8F A6 65 9D
0040 | 5F A0 0E BE 8B A1 B3 0A 72 4B D4 7C EA 32 3F 86
0050 | 0C 1A 49 48 B6 35 5D EA 18 2C D3 F6 DA 3C D3 31
0060 | 42 16 2C 2E 84 91 0A 47 D6 9C A5 C7 67 C8 41 85
0070 | BD 99 64 B7 8C D3 6F AB 42 7A FE C0 44 7C D4 0F
0080 | 34 7E 17 D2 3D 67 FC 81 32 C6 B5 B0 0B A2 2D 13
0090 | F8 56 05 E7 49 18 F2 42 10 8D AC FD 72 4E 4B F9
00A0 | 0D 87 08 BC B2 0B 3A 68 1B A4 8F D4 94 24 8A AF
00B0 | C3 57 7A 1B 47 D6 FB 80 63 42 B2 1A 15 D7 4C E6
00C0 | 1D D6 45 26 49 3F 6C DB 89 65 D0 E8 AC 1C 78 45
00D0 | 7F 00 3F 93 43 18 B3 F1 6D FF D0 E4 15 1D 87 B4
00E0 | F1 D3 28 DB 9F 14 D1 F7 85 A2 AF 46 9E 9B 76 EE
00F0 | 7B 5B 64 F3 FC 62 AF 1B D8 BD 18 33 3F 27 B4 1D
0100 | 07 D6 43 BD 0C 63 85 57 8D A5 6F 0E 0C DA 9A F0
0110 | FE 6D BC B9 24 6F 15 81 40 B0 B1 61 10 4C 97 2B
0120 | E0 76 32 F9 87 64 CE 3C 40 B9 8E DA 49 9D 86 63</code></pre>
<pre><code>0000 | 54 B6 43 66 82 91 BF CD 2A 9A 38 CE F5 EB EE 6C
0010 | AD 60 F4 63 A1 EE AF 50 0B C3 0D 41 09 77 56 B4
0020 | 2D 34 DE 4D 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | A5 56 2D 78 CD E7 9D 9C 8B FB 97 32 B9 39 B0 0A
0040 | 7F 57 83 C7 65 37 75 BF 92 CA 73 76 A4 ED 7E 44
0050 | 5A 48 EC 4D B8 DB E7 41 FE 02 A8 A3 E5 57 79 90
0060 | A6 68 B8 0D E7 06 6D 6B A7 AE 53 C1 FA 9C 71 33
0070 | 1A 22 AF 5F 98 37 A9 D1 55 5C F5 5F A5 AC 24 5F
0080 | 0A E3 CE DD B8 6F 67 95 74 3B EA 44 4A 82 42 FC
0090 | 7D 62 E7 77 AF 35 0F 55 F9 A0 3A 66 10 BD 30 2F
00A0 | A9 B5 2E C2 70 0E E1 81 45 01 C1 5B BC FD 81 05
00B0 | F5 4E 48 83 5B E7 2D 09 90 10 06 9E CD 40 19 35
00C0 | 19 D1 D4 37 05 A5 2B 55 D4 E4 E1 AD E1 92 74 6A
00D0 | 81 7F CC AA 44 62 01 7E 4E A9 37 7B 23 EC DC 45
00E0 | 13 C5 E8 E6 22 EB CC 60 1F 64 B9 03 03 6E EF 68
00F0 | 0A DC 7B E8 B5 30 EE 51 4B 7D 1F 55 AA 75 31 AE
0100 | 84 9E 0A A1 78 B1 D0 F5 6C 2C 20 FD 4D A9 2E 83
0110 | 01 50 FB E2 72 71 4F 73 78 82 08 83 2B DB 0D A4
0120 | AE C6 17 C3 17 0E AE 75 BD 9C FB 75 92 E5 94 E6</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 = BA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE0001005063278946679FE2F2A2642B</code> <code>8FA6659D5FA00EBE8BA1B30A724BD47C</code> <code>EA323F860C1A4948B6355DEA182CD3F6</code> <code>DA3CD33142162C2E84910A47D69CA5C7</code> <code>67C84185BD9964B78CD36FAB427AFEC0</code> <code>447CD40F347E17D23D67FC8132C6B5B0</code> <code>0BA22D13F85605E74918F242108DACFD</code> <code>724E4BF90D8708BCB20B3A681BA48FD4</code> <code>94248AAFC3577A1B47D6FB806342B21A</code> <code>15D74CE61DD64526493F6CDB8965D0E8</code> <code>AC1C78457F003F934318B3F16DFFD0E4</code> <code>151D87B4F1D328DB9F14D1F785A2AF46</code> <code>9E9B76EE7B5B64F3FC62AF1BD8BD1833</code> <code>3F27B41D07D643BD0C6385578DA56F0E</code> <code>0CDA9AF0FE6DBCB9246F158140B0B161</code> <code>104C972BE07632F98764CE3C40B98EDA</code><br> <code>499D8663</code></td>
<td><code>FE000100A5562D78CDE79D9C8BFB9732</code> <code>B939B00A7F5783C7653775BF92CA7376</code> <code>A4ED7E445A48EC4DB8DBE741FE02A8A3</code> <code>E5577990A668B80DE7066D6BA7AE53C1</code> <code>FA9C71331A22AF5F9837A9D1555CF55F</code> <code>A5AC245F0AE3CEDDB86F6795743BEA44</code> <code>4A8242FC7D62E777AF350F55F9A03A66</code> <code>10BD302FA9B52EC2700EE1814501C15B</code> <code>BCFD8105F54E48835BE72D099010069E</code> <code>CD40193519D1D43705A52B55D4E4E1AD</code> <code>E192746A817FCCAA4462017E4EA9377B</code> <code>23ECDC4513C5E8E622EBCC601F64B903</code> <code>036EEF680ADC7BE8B530EE514B7D1F55</code> <code>AA7531AE849E0AA178B1D0F56C2C20FD</code> <code>4DA92E830150FBE272714F7378820883</code> <code>2BDB0DA4AEC617C3170EAE75BD9CFB75</code><br> <code>92E594E6</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 = BA0D89B58405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E
<!-- 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 = 54B643668405868C6AF51C60EEDAB4E2E35D8F623687B76203129A48854F7DB1C46719E70000000000000000FE0001005063278946679FE2F2A2642B8FA6659D5FA00EBE8BA1B30A724BD47CEA323F860C1A4948B6355DEA182CD3F6DA3CD33142162C2E84910A47D69CA5C767C84185BD9964B78CD36FAB427AFEC0447CD40F347E17D23D67FC8132C6B5B00BA22D13F85605E74918F242108DACFD724E4BF90D8708BCB20B3A681BA48FD494248AAFC3577A1B47D6FB806342B21A15D74CE61DD64526493F6CDB8965D0E8AC1C78457F003F934318B3F16DFFD0E4151D87B4F1D328DB9F14D1F785A2AF469E9B76EE7B5B64F3FC62AF1BD8BD18333F27B41D07D643BD0C6385578DA56F0E0CDA9AF0FE6DBCB9246F158140B0B161104C972BE07632F98764CE3C40B98EDA499D8663
padding = 4788453480F6342FCA009400
tmp_aes_key = CAAA386C8996AF8549A7FD7EA2DEA9CAACA298F3A7235AD0C24EA1C2671398A0
tmp_aes_iv = 80B4E4587896E5DF12D94DA6D820055B54C1F39EFFE44BFCA8374351233E32A4</code></pre>
<pre><code>data = 54B643668291BFCD2A9A38CEF5EBEE6CAD60F463A1EEAF500BC30D41097756B42D34DE4D0000000000000000FE000100A5562D78CDE79D9C8BFB9732B939B00A7F5783C7653775BF92CA7376A4ED7E445A48EC4DB8DBE741FE02A8A3E5577990A668B80DE7066D6BA7AE53C1FA9C71331A22AF5F9837A9D1555CF55FA5AC245F0AE3CEDDB86F6795743BEA444A8242FC7D62E777AF350F55F9A03A6610BD302FA9B52EC2700EE1814501C15BBCFD8105F54E48835BE72D099010069ECD40193519D1D43705A52B55D4E4E1ADE192746A817FCCAA4462017E4EA9377B23ECDC4513C5E8E622EBCC601F64B903036EEF680ADC7BE8B530EE514B7D1F55AA7531AE849E0AA178B1D0F56C2C20FD4DA92E830150FBE272714F73788208832BDB0DA4AEC617C3170EAE75BD9CFB7592E594E6
padding = 3E72C6297A21CAC75CA2CB11
tmp_aes_key = 6D848880E69F68B2DCF8956FADABFA6670B22AD2FA517E2DE6D304C85C9037E7
tmp_aes_iv = F53CBAADFD57CD5DA787712E20BFAA9A7EE079C06825E4DE074FAAD1E0FD6FAF</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 = 3199357C80569C8868E8B25F6C57535A898118F564D4662D06BA5BCBD458232A7A0214AE93E2FE0609382164494B22A22059906FA01663BCA20BEA013D2DC9B1C7AB5BAE21F528C802C40F13D45A6014CD0E2AC3AB40CFE7F7D23A812B37E7DD19AE4C1A1CD6487505F7F208596FFAEE0C338A47F5571CB20321473BF2BB65AE77030DE2575E20F3D1CA44DEC42CC0A9126CE95689B8F251C0B231CC5A0D0B14B6DBF37C7A247B7ACB8EB8284A40C9BD72F9A78F4DBC12D4F528E1CC0BF1FB3E0A7C62C61E410B7E83D87D42C293FA28634B34C06E22EC98C1565D85D385BD2698CF5F167C5A008B251E8E00026A79907DD95A3940A5E100316632EE71C0F60CC5D66445605535C567B53EDBF65B0D445128B5D25C995FC8048EDF47F0760349E132D27CED0FB491A9C6A7D4480E7B4B9B79B06DB20ABB7901A0D5FA8D35CD9C4F67E96B2BE07E8D64A8A4C00F94073E</code></pre>
<pre><code>encrypted_data = 896CD15E5BD7D97ACF6D62726F22C7347401FB362966ED17F14C59E3C391EDDE598E058692ABF10A20C0E4C5A9FA6009005CCBDF4146F658AC01C5DEBF5C790E0714E27F6EA124AD6C8BB1F78F40B2132B7789BDCCA32290161D628F583324B1E4ADD666BC50C79DDC1126043009CA36446B0692424A51E8609B738C316825BEBC27AC78485DF524E9D1F1E060AB6322FCB2BC2485164022E664693D4591245951CE83B649F9C3D8CB7BFAAF7D7C6FCCC241D3C4599FA792C3C5FD422946759B8F6FA25960BF67A7291F041F1447024B16EAD2363635A7F9CDA97E07E89C3C6DFB7B7DA7F5CBB48815ECB86CBABA51E248B6DC98276CF71F18DB4701DB79471D24F8A6C4079B1136CD03A8B3E5A4F867088343EC77EC8F1BC9AD253A982D6068CD5528BFDC9FC0C0CCB7B600EA775EA1ED15B21E050434C316CA5EF093D796C50492C84989450B55240456AB155AD5C9</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 F8 27 05 00 2C 15 AD 66
0010 | 78 01 00 00 1F 5F 04 F5 84 05 86 8C 6A F5 1C 60
0020 | EE DA B4 E2 E3 5D 8F 62 36 87 B7 62 03 12 9A 48
0030 | 85 4F 7D B1 C4 67 19 E7 FE 50 01 00 31 99 35 7C
0040 | 80 56 9C 88 68 E8 B2 5F 6C 57 53 5A 89 81 18 F5
0050 | 64 D4 66 2D 06 BA 5B CB D4 58 23 2A 7A 02 14 AE
0060 | 93 E2 FE 06 09 38 21 64 49 4B 22 A2 20 59 90 6F
0070 | A0 16 63 BC A2 0B EA 01 3D 2D C9 B1 C7 AB 5B AE
0080 | 21 F5 28 C8 02 C4 0F 13 D4 5A 60 14 CD 0E 2A C3
0090 | AB 40 CF E7 F7 D2 3A 81 2B 37 E7 DD 19 AE 4C 1A
00A0 | 1C D6 48 75 05 F7 F2 08 59 6F FA EE 0C 33 8A 47
00B0 | F5 57 1C B2 03 21 47 3B F2 BB 65 AE 77 03 0D E2
00C0 | 57 5E 20 F3 D1 CA 44 DE C4 2C C0 A9 12 6C E9 56
00D0 | 89 B8 F2 51 C0 B2 31 CC 5A 0D 0B 14 B6 DB F3 7C
00E0 | 7A 24 7B 7A CB 8E B8 28 4A 40 C9 BD 72 F9 A7 8F
00F0 | 4D BC 12 D4 F5 28 E1 CC 0B F1 FB 3E 0A 7C 62 C6
0100 | 1E 41 0B 7E 83 D8 7D 42 C2 93 FA 28 63 4B 34 C0
0110 | 6E 22 EC 98 C1 56 5D 85 D3 85 BD 26 98 CF 5F 16
0120 | 7C 5A 00 8B 25 1E 8E 00 02 6A 79 90 7D D9 5A 39
0130 | 40 A5 E1 00 31 66 32 EE 71 C0 F6 0C C5 D6 64 45
0140 | 60 55 35 C5 67 B5 3E DB F6 5B 0D 44 51 28 B5 D2
0150 | 5C 99 5F C8 04 8E DF 47 F0 76 03 49 E1 32 D2 7C
0160 | ED 0F B4 91 A9 C6 A7 D4 48 0E 7B 4B 9B 79 B0 6D
0170 | B2 0A BB 79 01 A0 D5 FA 8D 35 CD 9C 4F 67 E9 6B
0180 | 2B E0 7E 8D 64 A8 A4 C0 0F 94 07 3E</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 C0 92 0A 00 B1 2B AD 66
0010 | 78 01 00 00 1F 5F 04 F5 82 91 BF CD 2A 9A 38 CE
0020 | F5 EB EE 6C AD 60 F4 63 A1 EE AF 50 0B C3 0D 41
0030 | 09 77 56 B4 2D 34 DE 4D FE 50 01 00 89 6C D1 5E
0040 | 5B D7 D9 7A CF 6D 62 72 6F 22 C7 34 74 01 FB 36
0050 | 29 66 ED 17 F1 4C 59 E3 C3 91 ED DE 59 8E 05 86
0060 | 92 AB F1 0A 20 C0 E4 C5 A9 FA 60 09 00 5C CB DF
0070 | 41 46 F6 58 AC 01 C5 DE BF 5C 79 0E 07 14 E2 7F
0080 | 6E A1 24 AD 6C 8B B1 F7 8F 40 B2 13 2B 77 89 BD
0090 | CC A3 22 90 16 1D 62 8F 58 33 24 B1 E4 AD D6 66
00A0 | BC 50 C7 9D DC 11 26 04 30 09 CA 36 44 6B 06 92
00B0 | 42 4A 51 E8 60 9B 73 8C 31 68 25 BE BC 27 AC 78
00C0 | 48 5D F5 24 E9 D1 F1 E0 60 AB 63 22 FC B2 BC 24
00D0 | 85 16 40 22 E6 64 69 3D 45 91 24 59 51 CE 83 B6
00E0 | 49 F9 C3 D8 CB 7B FA AF 7D 7C 6F CC C2 41 D3 C4
00F0 | 59 9F A7 92 C3 C5 FD 42 29 46 75 9B 8F 6F A2 59
0100 | 60 BF 67 A7 29 1F 04 1F 14 47 02 4B 16 EA D2 36
0110 | 36 35 A7 F9 CD A9 7E 07 E8 9C 3C 6D FB 7B 7D A7
0120 | F5 CB B4 88 15 EC B8 6C BA BA 51 E2 48 B6 DC 98
0130 | 27 6C F7 1F 18 DB 47 01 DB 79 47 1D 24 F8 A6 C4
0140 | 07 9B 11 36 CD 03 A8 B3 E5 A4 F8 67 08 83 43 EC
0150 | 77 EC 8F 1B C9 AD 25 3A 98 2D 60 68 CD 55 28 BF
0160 | DC 9F C0 C0 CC B7 B6 00 EA 77 5E A1 ED 15 B2 1E
0170 | 05 04 34 C3 16 CA 5E F0 93 D7 96 C5 04 92 C8 49
0180 | 89 45 0B 55 24 04 56 AB 15 5A D5 C9</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>F82705002C15AD66</code></td>
<td><code>C0920A00B12BAD66</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>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE5001003199357C80569C8868E8B25F</code> <code>6C57535A898118F564D4662D06BA5BCB</code> <code>D458232A7A0214AE93E2FE0609382164</code> <code>494B22A22059906FA01663BCA20BEA01</code> <code>3D2DC9B1C7AB5BAE21F528C802C40F13</code> <code>D45A6014CD0E2AC3AB40CFE7F7D23A81</code> <code>2B37E7DD19AE4C1A1CD6487505F7F208</code> <code>596FFAEE0C338A47F5571CB20321473B</code> <code>F2BB65AE77030DE2575E20F3D1CA44DE</code> <code>C42CC0A9126CE95689B8F251C0B231CC</code> <code>5A0D0B14B6DBF37C7A247B7ACB8EB828</code> <code>4A40C9BD72F9A78F4DBC12D4F528E1CC</code> <code>0BF1FB3E0A7C62C61E410B7E83D87D42</code> <code>C293FA28634B34C06E22EC98C1565D85</code> <code>D385BD2698CF5F167C5A008B251E8E00</code> <code>026A79907DD95A3940A5E100316632EE</code> <code>71C0F60CC5D66445605535C567B53EDB</code> <code>F65B0D445128B5D25C995FC8048EDF47</code> <code>F0760349E132D27CED0FB491A9C6A7D4</code> <code>480E7B4B9B79B06DB20ABB7901A0D5FA</code> <code>8D35CD9C4F67E96B2BE07E8D64A8A4C0</code><br> <code>0F94073E</code></td>
<td><code>FE500100896CD15E5BD7D97ACF6D6272</code> <code>6F22C7347401FB362966ED17F14C59E3</code> <code>C391EDDE598E058692ABF10A20C0E4C5</code> <code>A9FA6009005CCBDF4146F658AC01C5DE</code> <code>BF5C790E0714E27F6EA124AD6C8BB1F7</code> <code>8F40B2132B7789BDCCA32290161D628F</code> <code>583324B1E4ADD666BC50C79DDC112604</code> <code>3009CA36446B0692424A51E8609B738C</code> <code>316825BEBC27AC78485DF524E9D1F1E0</code> <code>60AB6322FCB2BC2485164022E664693D</code> <code>4591245951CE83B649F9C3D8CB7BFAAF</code> <code>7D7C6FCCC241D3C4599FA792C3C5FD42</code> <code>2946759B8F6FA25960BF67A7291F041F</code> <code>1447024B16EAD2363635A7F9CDA97E07</code> <code>E89C3C6DFB7B7DA7F5CBB48815ECB86C</code> <code>BABA51E248B6DC98276CF71F18DB4701</code> <code>DB79471D24F8A6C4079B1136CD03A8B3</code> <code>E5A4F867088343EC77EC8F1BC9AD253A</code> <code>982D6068CD5528BFDC9FC0C0CCB7B600</code> <code>EA775EA1ED15B21E050434C316CA5EF0</code> <code>93D796C50492C84989450B55240456AB</code><br> <code>155AD5C9</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 = BBC2E2B5108649272C2FAF6FECA64FE0881A2ECD86CD68A6F698E4056A4361229CA5D3BF26F4E24B01C296D63B66CCA1C46EDB5F6FAF476ECEF47460691D8D0816EA63AC560BF872D836A7624BA9075A7D7B3C0F132700935DEC01EC8C45791A75D3CC12462D3D87B973BEC4E6545D9CA502B348F5BFAB99B376D13CE52A5F03DC7F477AE83B07A30347DC214D84D2BD6B964B6B9BB204D9B9D0AB50AE00BA1D10FF640B16EAC3C3C127D90660EE549018BCCF7384C0A5B100B21A82002BD312FA0B4C4670E35C5B903477CA08C236A39B9995D6C7186120881A54E3D32FFAD7E98188AFB2351188E66B00D8FCD28B575262891DF9D32A48E29D3D707124C6C0</code></pre>
<pre><code>auth_key = 899610CDC590BF2CB34BD46C6098072E43779543CFAD667B2DE5A4F785F75E806ED20D5C89625A8E0E6D13A97CCE3EF0923D6DE31BDC722032792FE0FF4F51D59583E766644298EB29FC7728C30106FD2A095E4F4556BB655F6D8E96BB11B5C0DBCD849765C09690FAB6DF692A9BB90FFDBAF98B2052F589D4F54A3F6E823320083A3101E8B417C682CF1C432B8AA58A3C1B0F50589856E75DB38A7338DFFFE1C732CE91A2EE41427C155A58145B2F53B91DA189AFCDC80373F75E6A043358F424A3540CC9B18B7F072250D2DCB8FFF794FCB825FD241599F262BD9E0381420CE586022DC42F12D32E9F11173153C5C5D2211E5C828E0E20497543207AC9F999</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 68 F9 31 2D 15 AD 66
0010 | 84 00 00 00 34 F7 CB 3B 84 05 86 8C 6A F5 1C 60
0020 | EE DA B4 E2 E3 5D 8F 62 36 87 B7 62 03 12 9A 48
0030 | 85 4F 7D B1 C4 67 19 E7 61 9C 61 4F 85 83 56 90
0040 | 1F 83 A4 04 6B A6 71 B1</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 78 5C 8C B2 2B AD 66
0010 | 94 00 00 00 34 F7 CB 3B 82 91 BF CD 2A 9A 38 CE
0020 | F5 EB EE 6C AD 60 F4 63 A1 EE AF 50 0B C3 0D 41
0030 | 09 77 56 B4 2D 34 DE 4D 00 F0 D0 9C 50 95 F4 06
0040 | 94 ED BD 9D 6C 81 80 02</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>0168F9312D15AD66</code></td>
<td><code>01785C8CB22BAD66</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>84000000</code> (132 in decimal)</td>
<td><code>94000000</code> (148 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>8405868C6AF51C60EEDAB4E2E35D8F62</code></td>
<td><code>8291BFCD2A9A38CEF5EBEE6CAD60F463</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>3687B76203129A48854F7DB1C46719E7</code></td>
<td><code>A1EEAF500BC30D41097756B42D34DE4D</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>619C614F858356901F83A4046BA671B1</code></td>
<td><code>00F0D09C5095F40694EDBD9D6C818002</code></td>
<td>The 128 lower-order bits of SHA1 of the byte string derived from the <code>new_nonce</code> string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with <code>auth_key_aux_hash</code>. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.</td>
</tr>
</tbody>

View file

@ -4,18 +4,10 @@
<meta charset="utf-8">
<title>GeoPointAddress</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta property="description" content="Constructors
Constructor
Description
geoPointAddress
 ">
<meta property="description" content="Address optionally associated to a geoPoint.">
<meta property="og:title" content="GeoPointAddress">
<meta property="og:image" content="">
<meta property="og:description" content="Constructors
Constructor
Description
geoPointAddress
 ">
<meta property="og:description" content="Address optionally associated to a geoPoint.">
<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">
@ -50,7 +42,8 @@ geoPointAddress
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/schema" >TL-schema</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/type/GeoPointAddress" >GeoPointAddress</a></li></ul></div>
<h1 id="dev_page_title">GeoPointAddress</h1>
<div id="dev_page_content"><p><div class="clearfix">
<div id="dev_page_content"><p>Address optionally associated to a <a href="/constructor/geoPoint">geoPoint</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 185 <b class="caret"></b></a>
@ -74,10 +67,13 @@ geoPointAddress
<tbody>
<tr>
<td><a href="/constructor/geoPointAddress">geoPointAddress</a></td>
<td> </td>
<td>Address optionally associated to a <a href="/constructor/geoPoint">geoPoint</a>.</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="#geopoint" id="geopoint" name="geopoint"><i class="anchor-icon"></i></a><a href="/constructor/geoPoint">geoPoint</a></h4>
<p>GeoPoint.</p></div>
</div>

View file

@ -98,11 +98,11 @@
</tr>
<tr>
<td><a href="/constructor/mediaAreaUrl">mediaAreaUrl</a></td>
<td> </td>
<td>Represents a <a href="/api/stories#urls">URL media area</a>.</td>
</tr>
<tr>
<td><a href="/constructor/mediaAreaWeather">mediaAreaWeather</a></td>
<td> </td>
<td>Represents a <a href="/api/stories#weather">weather widget »</a>.</td>
</tr>
</tbody>
</table>