mirror of
https://github.com/MarshalX/telegram-crawler.git
synced 2025-01-05 18:38:19 +01:00
Update content of files
This commit is contained in:
parent
e11f79629b
commit
3331367786
33 changed files with 462 additions and 604 deletions
|
@ -90,7 +90,7 @@
|
|||
<li><a href="/constructor/inputStorePaymentPremiumGiveaway">inputStorePaymentPremiumGiveaway</a> to create a giveaway, where Telegram will randomly select <code>option.users</code> subscribers to the channel specified in <code>purpose.boost_peer</code> (only new subscribers starting from the giveaway creation date if the <code>purpose.only_new_subscribers</code> field is set).<br>
|
||||
Additional channels that the user must join to participate to the giveaway can be specified in <code>additional_peers</code>.<br>
|
||||
The set of users that can participate to the giveaway can be restricted by passing an explicit whitelist of up to <a href="/api/config#giveaway-countries-max">giveaway_countries_max</a> countries, specified as two-letter ISO 3166-1 alpha-2 country codes in <code>countries_iso2</code>.<br>
|
||||
The end date of the giveaway must be specified in <code>until_date</code>, and it must be at most <a href="/api/config#giveaway-period-max">giveaway_period_max</a> seconds in the future; at that date, Telegram will randomly choose <code>option.users</code> subscribers according to the conditions specified above, and send them a Telegram Premium giftcode as a <a href="/constructor/messageActionGiftCode">messageActionGiftCode</a> constructor, that should be used client-side to generate a <a href="/api/links#premium-giftcode-links">giftcode link</a> .<br>
|
||||
The end date of the giveaway must be specified in <code>until_date</code>, and it must be at most <a href="/api/config#giveaway-period-max">giveaway_period_max</a> seconds in the future; at that date, Telegram will randomly choose <code>option.users</code> subscribers according to the conditions specified above, and send them a Telegram Premium giftcode as a <a href="/constructor/messageActionGiftCode">messageActionGiftCode</a> constructor, that should be used client-side to generate a <a href="/api/links#premium-giftcode-links">giftcode link</a>.<br>
|
||||
The channel specified in <code>boost_peer</code> will receive <a href="/api/config#giveaway-boosts-per-premium">giveaway_boosts_per_premium</a> <a href="/api/boost">boosts</a> from each user, that cannot be reassigned to another channel for the duration of the gifted subscription. </li>
|
||||
<li>or <a href="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a>, to gift <a href="/api/premium">Telegram Premium</a> subscriptions only to some specific subscribers (<code>purpose.users</code>, max <a href="/api/config#giveaway-add-peers-max">giveaway_add_peers_max</a> users) of the channel specified in <code>purpose.boost_peer</code>, which will receive <a href="/api/config#giveaway-boosts-per-premium">giveaway_boosts_per_premium</a> <a href="/api/boost">boosts</a> from each user, that cannot be reassigned to another channel for the duration of the gifted subscription.<br>
|
||||
Users may also use this method to simply gift subscriptions to contacts by <strong>not</strong> setting the <code>boost_peer</code> field: in this case, gifting a <a href="/api/premium">Telegram Premium</a> subscription to another user will create <a href="/api/config#boosts-per-send-gift">boosts_per_sent_gift</a> <a href="/api/boost">boost slots »</a> for us, and one boost slot for the destination user. </li>
|
||||
|
|
|
@ -193,18 +193,18 @@
|
|||
<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/messages.webPage">messages.webPage</a> - Represents an Instant View webpage.</li>
|
||||
<li>Added <a href="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a> - </li>
|
||||
<li>Added <a href="/constructor/inputStorePaymentPremiumGiveaway">inputStorePaymentPremiumGiveaway</a> - </li>
|
||||
<li>Added <a href="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a> - Used to gift <a href="/api/premium">Telegram Premium</a> subscriptions only to some specific subscribers of a channel or to some of our contacts, see <a href="/api/giveaways">here »</a> for more info on giveaways and gifts.</li>
|
||||
<li>Added <a href="/constructor/inputStorePaymentPremiumGiveaway">inputStorePaymentPremiumGiveaway</a> - Used to pay for a <a href="/api/giveaways">giveaway, see here »</a> for more info.</li>
|
||||
<li>Added <a href="/constructor/inputInvoicePremiumGiftCode">inputInvoicePremiumGiftCode</a> - Used if the user wishes to start a channel <a href="/api/giveaways">giveaway</a> or send some <a href="/api/giveaways">giftcodes</a> to members of a channel, in exchange for <a href="/api/boost">boosts</a>.</li>
|
||||
<li>Added <a href="/constructor/premiumGiftCodeOption">premiumGiftCodeOption</a> - </li>
|
||||
<li>Added <a href="/constructor/payments.checkedGiftCode">payments.checkedGiftCode</a> - </li>
|
||||
<li>Added <a href="/constructor/messageMediaGiveaway">messageMediaGiveaway</a> - </li>
|
||||
<li>Added <a href="/constructor/payments.checkedGiftCode">payments.checkedGiftCode</a> - Contains info about a <a href="/api/links#premium-giftcode-links">Telegram Premium giftcode link</a>.</li>
|
||||
<li>Added <a href="/constructor/messageMediaGiveaway">messageMediaGiveaway</a> - Contains info about a <a href="/api/giveaways">giveaway, see here »</a> for more info.</li>
|
||||
<li>Added <a href="/constructor/messageActionGiftCode">messageActionGiftCode</a> - Contains a <a href="/api/links#premium-giftcode-links">Telegram Premium giftcode link</a>.</li>
|
||||
<li>Added <a href="/constructor/messageActionGiveawayLaunch">messageActionGiveawayLaunch</a> - A <a href="/api/giveaways">giveaway</a> was started.</li>
|
||||
<li>Added <a href="/constructor/payments.giveawayInfo">payments.giveawayInfo</a> - </li>
|
||||
<li>Added <a href="/constructor/payments.giveawayInfoResults">payments.giveawayInfoResults</a> - </li>
|
||||
<li>Added <a href="/constructor/messageEntityBlockquote">messageEntityBlockquote</a> - Message entity representing a block quote.</li>
|
||||
<li>Added <a href="/constructor/prepaidGiveaway">prepaidGiveaway</a> - </li>
|
||||
<li>Added <a href="/constructor/prepaidGiveaway">prepaidGiveaway</a> - Contains info about a <a href="/api/giveaways">prepaid giveaway »</a>.</li>
|
||||
<li>Added <a href="/constructor/inputMediaWebPage">inputMediaWebPage</a> - Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message.</li>
|
||||
<li>Added <a href="/constructor/inputBotInlineMessageMediaWebPage">inputBotInlineMessageMediaWebPage</a> - Specifies options that will be used to generate the link preview for the message, or even a standalone link preview without an attached message.</li>
|
||||
<li>Added <a href="/constructor/botInlineMessageMediaWebPage">botInlineMessageMediaWebPage</a> - Specifies options that will be used to generate the link preview for the message, or even a standalone link preview without an attached message.</li>
|
||||
|
|
|
@ -114,7 +114,7 @@
|
|||
<tr>
|
||||
<td><strong>reply_markup</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/ReplyMarkup">ReplyMarkup</a></td>
|
||||
<td> </td>
|
||||
<td>Reply markup for sending bot buttons</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -189,7 +189,7 @@
|
|||
<tr>
|
||||
<td><strong>stories_unavailable</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags2</a>.3?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>No stories from the channel are visible.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>id</strong></td>
|
||||
|
|
|
@ -347,7 +347,7 @@
|
|||
<p>Telegram allows creating forums with multiple distinct topics.</p>
|
||||
<h4><a class="anchor" href="#channelstoggleviewforumasmessages" id="channelstoggleviewforumasmessages" name="channelstoggleviewforumasmessages"><i class="anchor-icon"></i></a><a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a></h4>
|
||||
<p>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.</p>
|
||||
<p>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a>.</p>
|
||||
<p>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</p>
|
||||
<h4><a class="anchor" href="#admin-banned-default-rights" id="admin-banned-default-rights" name="admin-banned-default-rights"><i class="anchor-icon"></i></a><a href="/api/rights">Admin, banned, default rights</a></h4>
|
||||
<p>How to handle admin permissions, granular bans and global permissions in channels, groups and supergroups.</p>
|
||||
<h4><a class="anchor" href="#channels-supergroups-gigagroups-and-basic-groups" id="channels-supergroups-gigagroups-and-basic-groups" name="channels-supergroups-gigagroups-and-basic-groups"><i class="anchor-icon"></i></a><a href="/api/channel">Channels, supergroups, gigagroups and basic groups</a></h4>
|
||||
|
|
|
@ -155,7 +155,7 @@
|
|||
<p>Telegram allows creating forums with multiple distinct topics.</p>
|
||||
<h4><a class="anchor" href="#channelstoggleviewforumasmessages" id="channelstoggleviewforumasmessages" name="channelstoggleviewforumasmessages"><i class="anchor-icon"></i></a><a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a></h4>
|
||||
<p>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.</p>
|
||||
<p>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a>.</p>
|
||||
<p>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</p>
|
||||
<h4><a class="anchor" href="#mentions" id="mentions" name="mentions"><i class="anchor-icon"></i></a><a href="/api/mentions">Mentions</a></h4>
|
||||
<p>Telegram allows mentioning other users in case of urgent duckling matters, and quickly navigating to those mentions in order to read them as swiftly as possible.</p>
|
||||
<h4><a class="anchor" href="#working-with-updates" id="working-with-updates" name="working-with-updates"><i class="anchor-icon"></i></a><a href="/api/updates">Working with Updates</a></h4>
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>inputInvoicePremiumGiftCode</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
purpose
|
||||
InputStorePaymentPurpose
|
||||
|
||||
option
|
||||
PremiumGiftCodeOption
|
||||
|
||||
Type
|
||||
InputInvoice">
|
||||
<meta property="description" content="Used if the user wishes to start a channel giveaway or send some giftcodes to members of a channel, in exchange for boosts.">
|
||||
<meta property="og:title" content="inputInvoicePremiumGiftCode">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
purpose
|
||||
InputStorePaymentPurpose
|
||||
|
||||
option
|
||||
PremiumGiftCodeOption
|
||||
|
||||
Type
|
||||
InputInvoice">
|
||||
<meta property="og:description" content="Used if the user wishes to start a channel giveaway or send some giftcodes to members of a channel, in exchange for boosts.">
|
||||
<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 @@ InputInvoice">
|
|||
<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/inputInvoicePremiumGiftCode" >inputInvoicePremiumGiftCode</a></li></ul></div>
|
||||
<h1 id="dev_page_title">inputInvoicePremiumGiftCode</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Used if the user wishes to start a channel <a href="/api/giveaways">giveaway</a> or send some <a href="/api/giveaways">giftcodes</a> to members of a channel, in exchange for <a href="/api/boost">boosts</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 167 <b class="caret"></b></a>
|
||||
|
@ -90,17 +69,28 @@ InputInvoice">
|
|||
<tr>
|
||||
<td><strong>purpose</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</a></td>
|
||||
<td> </td>
|
||||
<td>Should be populated with <a href="/constructor/inputStorePaymentPremiumGiveaway">inputStorePaymentPremiumGiveaway</a> for <a href="/api/giveaways">giveaways</a> and <a href="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a> for <a href="/api/giveaways">gifts</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>option</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/PremiumGiftCodeOption">PremiumGiftCodeOption</a></td>
|
||||
<td> </td>
|
||||
<td>Should be populated with one of the giveaway options returned by <a href="/method/payments.getPremiumGiftCodeOptions">payments.getPremiumGiftCodeOptions</a>, see the <a href="/api/giveaways">giveaways »</a> documentation for more info.</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/InputInvoice">InputInvoice</a></p></div>
|
||||
<p><a href="/type/InputInvoice">InputInvoice</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="#inputstorepaymentpremiumgiveaway" id="inputstorepaymentpremiumgiveaway" name="inputstorepaymentpremiumgiveaway"><i class="anchor-icon"></i></a><a href="/constructor/inputStorePaymentPremiumGiveaway">inputStorePaymentPremiumGiveaway</a></h4>
|
||||
<p>Used to pay for a <a href="/api/giveaways">giveaway, see here »</a> for more info.</p>
|
||||
<h4><a class="anchor" href="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p>
|
||||
<h4><a class="anchor" href="#inputstorepaymentpremiumgiftcode" id="inputstorepaymentpremiumgiftcode" name="inputstorepaymentpremiumgiftcode"><i class="anchor-icon"></i></a><a href="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a></h4>
|
||||
<p>Used to gift <a href="/api/premium">Telegram Premium</a> subscriptions only to some specific subscribers of a channel or to some of our contacts, see <a href="/api/giveaways">here »</a> for more info on giveaways and gifts.</p>
|
||||
<h4><a class="anchor" href="#paymentsgetpremiumgiftcodeoptions" id="paymentsgetpremiumgiftcodeoptions" name="paymentsgetpremiumgiftcodeoptions"><i class="anchor-icon"></i></a><a href="/method/payments.getPremiumGiftCodeOptions">payments.getPremiumGiftCodeOptions</a></h4>
|
||||
<p>Obtain a list of Telegram Premium <a href="/api/giveaways">giveaway/gift code »</a> options.</p>
|
||||
<h4><a class="anchor" href="#channel-boosts" id="channel-boosts" name="channel-boosts"><i class="anchor-icon"></i></a><a href="/api/boost">Channel boosts</a></h4>
|
||||
<p>Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>inputStorePaymentPremiumGiftCode</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
|
||||
users
|
||||
Vector<InputUser>
|
||||
|
||||
boost_peer
|
||||
flags.0?InputPeer…">
|
||||
<meta property="description" content="Used to gift Telegram Premium subscriptions only to some specific subscribers of a channel or to some of our contacts, see here » for more info on giveaways and gifts.">
|
||||
<meta property="og:title" content="inputStorePaymentPremiumGiftCode">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
users
|
||||
Vector<InputUser>
|
||||
|
||||
boost_peer
|
||||
flags.0?InputPeer…">
|
||||
<meta property="og:description" content="Used to gift Telegram Premium subscriptions only to some specific subscribers of a channel or to some of our contacts, see here » for more info on giveaways and gifts.">
|
||||
<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?InputPeer…">
|
|||
<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/inputStorePaymentPremiumGiftCode" >inputStorePaymentPremiumGiftCode</a></li></ul></div>
|
||||
<h1 id="dev_page_title">inputStorePaymentPremiumGiftCode</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Used to gift <a href="/api/premium">Telegram Premium</a> subscriptions only to some specific subscribers of a channel or to some of our contacts, see <a href="/api/giveaways">here »</a> for more info on giveaways and gifts.</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 167 <b class="caret"></b></a>
|
||||
|
@ -95,27 +74,35 @@ flags.0?InputPeer…">
|
|||
<tr>
|
||||
<td><strong>users</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a><<a href="/type/InputUser">InputUser</a>></td>
|
||||
<td> </td>
|
||||
<td>The users that will receive the <a href="/api/premium">Telegram Premium</a> subscriptions.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>boost_peer</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/InputPeer">InputPeer</a></td>
|
||||
<td> </td>
|
||||
<td>If set, the gifts will be sent on behalf of a channel we are an admin of, which will also assign some <a href="/api/boost">boosts</a> to it. Otherwise, the gift will be sent directly from the currently logged in users, and we will gain some extra <a href="/api/boost">boost slots</a>. See <a href="/api/giveaways">here »</a> for more info on giveaways and gifts.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>currency</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/string">string</a></td>
|
||||
<td> </td>
|
||||
<td>Three-letter ISO 4217 <a href="/bots/payments#supported-currencies">currency</a> code</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>amount</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td> </td>
|
||||
<td>Total price in the smallest units of the currency (integer, not float/double). For example, for a price of <code>US$ 1.45</code> pass <code>amount = 145</code>. See the exp parameter in <a href="/bots/payments/currencies.json">currencies.json</a>, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).</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/InputStorePaymentPurpose">InputStorePaymentPurpose</a></p></div>
|
||||
<p><a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</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="#telegram-premium" id="telegram-premium" name="telegram-premium"><i class="anchor-icon"></i></a><a href="/api/premium">Telegram Premium</a></h4>
|
||||
<p>Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.</p>
|
||||
<h4><a class="anchor" href="#channel-boosts" id="channel-boosts" name="channel-boosts"><i class="anchor-icon"></i></a><a href="/api/boost">Channel boosts</a></h4>
|
||||
<p>Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.</p>
|
||||
<h4><a class="anchor" href="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p>
|
||||
<h4><a class="anchor" href="#bot-payments-api" id="bot-payments-api" name="bot-payments-api"><i class="anchor-icon"></i></a><a href="/bots/payments">Bot Payments API</a></h4></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,30 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>inputStorePaymentPremiumGiveaway</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
|
||||
only_new_subscribers
|
||||
flags.0?true
|
||||
|
||||
boost_peer…">
|
||||
<meta property="description" content="Used to pay for a giveaway, see here » for more info.">
|
||||
<meta property="og:title" content="inputStorePaymentPremiumGiveaway">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
only_new_subscribers
|
||||
flags.0?true
|
||||
|
||||
boost_peer…">
|
||||
<meta property="og:description" content="Used to pay for a giveaway, see here » for more info.">
|
||||
<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">
|
||||
|
@ -62,7 +42,8 @@ boost_peer…">
|
|||
<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/inputStorePaymentPremiumGiveaway" >inputStorePaymentPremiumGiveaway</a></li></ul></div>
|
||||
<h1 id="dev_page_title">inputStorePaymentPremiumGiveaway</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Used to pay for a <a href="/api/giveaways">giveaway, see here »</a> for more info.</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 167 <b class="caret"></b></a>
|
||||
|
@ -93,47 +74,55 @@ boost_peer…">
|
|||
<tr>
|
||||
<td><strong>only_new_subscribers</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>If set, only new subscribers starting from the giveaway creation date will be able to participate to the giveaway.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>boost_peer</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/InputPeer">InputPeer</a></td>
|
||||
<td> </td>
|
||||
<td>The channel starting the giveaway, that the user must join to participate, that will receive the giveaway <a href="/api/boost">boosts</a>; see <a href="/api/giveaways">here »</a> for more info on giveaways.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>additional_peers</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/Vector%20t">Vector</a><<a href="/type/InputPeer">InputPeer</a>></td>
|
||||
<td> </td>
|
||||
<td>Additional channels that the user must join to participate to the giveaway can be specified here.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>countries_iso2</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/type/Vector%20t">Vector</a><<a href="/type/string">string</a>></td>
|
||||
<td> </td>
|
||||
<td>The set of users that can participate to the giveaway can be restricted by passing here an explicit whitelist of up to <a href="/api/config#giveaway-countries-max">giveaway_countries_max</a> countries, specified as two-letter ISO 3166-1 alpha-2 country codes.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>random_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td> </td>
|
||||
<td>Random ID to avoid resending the giveaway</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>until_date</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>The end date of the giveaway, must be at most <a href="/api/config#giveaway-period-max">giveaway_period_max</a> seconds in the future; see <a href="/api/giveaways">here »</a> for more info on giveaways.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>currency</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/string">string</a></td>
|
||||
<td> </td>
|
||||
<td>Three-letter ISO 4217 <a href="/bots/payments#supported-currencies">currency</a> code</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>amount</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td> </td>
|
||||
<td>Total price in the smallest units of the currency (integer, not float/double). For example, for a price of <code>US$ 1.45</code> pass <code>amount = 145</code>. See the exp parameter in <a href="/bots/payments/currencies.json">currencies.json</a>, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies).</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/InputStorePaymentPurpose">InputStorePaymentPurpose</a></p></div>
|
||||
<p><a href="/type/InputStorePaymentPurpose">InputStorePaymentPurpose</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="#channel-boosts" id="channel-boosts" name="channel-boosts"><i class="anchor-icon"></i></a><a href="/api/boost">Channel boosts</a></h4>
|
||||
<p>Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.</p>
|
||||
<h4><a class="anchor" href="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p>
|
||||
<h4><a class="anchor" href="#client-configuration" id="client-configuration" name="client-configuration"><i class="anchor-icon"></i></a><a href="/api/config">Client configuration</a></h4>
|
||||
<p>The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.</p>
|
||||
<h4><a class="anchor" href="#bot-payments-api" id="bot-payments-api" name="bot-payments-api"><i class="anchor-icon"></i></a><a href="/bots/payments">Bot Payments API</a></h4></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messageActionGiftCode</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
|
||||
via_giveaway
|
||||
flags.0?true
|
||||
|
||||
unclaimed
|
||||
flags.2?true…">
|
||||
<meta property="description" content="Contains a Telegram Premium giftcode link.">
|
||||
<meta property="og:title" content="messageActionGiftCode">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
via_giveaway
|
||||
flags.0?true
|
||||
|
||||
unclaimed
|
||||
flags.2?true…">
|
||||
<meta property="og:description" content="Contains a Telegram Premium giftcode 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">
|
||||
|
@ -64,7 +42,8 @@ flags.2?true…">
|
|||
<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/messageActionGiftCode" >messageActionGiftCode</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messageActionGiftCode</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Contains a <a href="/api/links#premium-giftcode-links">Telegram Premium giftcode 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 167 <b class="caret"></b></a>
|
||||
|
@ -95,32 +74,41 @@ flags.2?true…">
|
|||
<tr>
|
||||
<td><strong>via_giveaway</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>If set, this gift code was received from a <a href="/api/giveaways">giveaway »</a> started by a channel we're subscribed to.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>unclaimed</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>If set, the link was not <a href="/api/links#premium-giftcode-links">redeemed</a> yet.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>boost_peer</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/Peer">Peer</a></td>
|
||||
<td> </td>
|
||||
<td>Identifier of the channel that created the gift code <a href="/api/giveaways">either directly or through a giveaway</a>: if we import this giftcode link, we will also automatically <a href="/api/boost">boost</a> this channel.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>months</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Duration in months of the gifted <a href="/api/premium">Telegram Premium subscription</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>slug</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/string">string</a></td>
|
||||
<td> </td>
|
||||
<td>Slug of the <a href="/api/links#premium-giftcode-links">Telegram Premium giftcode link</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
|
||||
<p><a href="/type/MessageAction">MessageAction</a></p></div>
|
||||
<p><a href="/type/MessageAction">MessageAction</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="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p>
|
||||
<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="#channel-boosts" id="channel-boosts" name="channel-boosts"><i class="anchor-icon"></i></a><a href="/api/boost">Channel boosts</a></h4>
|
||||
<p>Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.</p>
|
||||
<h4><a class="anchor" href="#telegram-premium" id="telegram-premium" name="telegram-premium"><i class="anchor-icon"></i></a><a href="/api/premium">Telegram Premium</a></h4>
|
||||
<p>Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,16 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messageActionGiveawayLaunch</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Type
|
||||
MessageAction">
|
||||
<meta property="description" content="A giveaway was started.">
|
||||
<meta property="og:title" content="messageActionGiveawayLaunch">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
This constructor does not require any parameters.
|
||||
Type
|
||||
MessageAction">
|
||||
<meta property="og:description" content="A giveaway was started.">
|
||||
<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 @@ MessageAction">
|
|||
<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/messageActionGiveawayLaunch" >messageActionGiveawayLaunch</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messageActionGiveawayLaunch</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>A <a href="/api/giveaways">giveaway</a> was started.</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 167 <b class="caret"></b></a>
|
||||
|
@ -64,7 +59,10 @@ MessageAction">
|
|||
<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="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
|
||||
<p><a href="/type/MessageAction">MessageAction</a></p></div>
|
||||
<p><a href="/type/MessageAction">MessageAction</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="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messageActionGiveawayResults</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
winners_count
|
||||
int
|
||||
|
||||
unclaimed_count
|
||||
int
|
||||
|
||||
Type
|
||||
MessageAction">
|
||||
<meta property="description" content="A giveaway has ended.">
|
||||
<meta property="og:title" content="messageActionGiveawayResults">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
winners_count
|
||||
int
|
||||
|
||||
unclaimed_count
|
||||
int
|
||||
|
||||
Type
|
||||
MessageAction">
|
||||
<meta property="og:description" content="A giveaway has ended.">
|
||||
<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 @@ MessageAction">
|
|||
<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/messageActionGiveawayResults" >messageActionGiveawayResults</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messageActionGiveawayResults</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>A <a href="/api/giveaways">giveaway</a> has ended.</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 167 <b class="caret"></b></a>
|
||||
|
@ -90,17 +69,20 @@ MessageAction">
|
|||
<tr>
|
||||
<td><strong>winners_count</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Number of winners in the giveaway</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>unclaimed_count</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Number of undistributed prizes</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/MessageAction">MessageAction</a></p></div>
|
||||
<p><a href="/type/MessageAction">MessageAction</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="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,30 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>messageMediaGiveaway</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
|
||||
only_new_subscribers
|
||||
flags.0?true
|
||||
|
||||
channels…">
|
||||
<meta property="description" content="Contains info about a giveaway, see here » for more info.">
|
||||
<meta property="og:title" content="messageMediaGiveaway">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
only_new_subscribers
|
||||
flags.0?true
|
||||
|
||||
channels…">
|
||||
<meta property="og:description" content="Contains info about a giveaway, see here » for more info.">
|
||||
<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">
|
||||
|
@ -62,7 +42,8 @@ channels…">
|
|||
<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/messageMediaGiveaway" >messageMediaGiveaway</a></li></ul></div>
|
||||
<h1 id="dev_page_title">messageMediaGiveaway</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Contains info about a <a href="/api/giveaways">giveaway, see here »</a> for more info.</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 167 <b class="caret"></b></a>
|
||||
|
@ -93,37 +74,42 @@ channels…">
|
|||
<tr>
|
||||
<td><strong>only_new_subscribers</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>If set, only new subscribers starting from the giveaway creation date will be able to participate to the giveaway.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>channels</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a><<a href="/type/long">long</a>></td>
|
||||
<td> </td>
|
||||
<td>The channels that the user must join to participate in the giveaway.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>countries_iso2</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/Vector%20t">Vector</a><<a href="/type/string">string</a>></td>
|
||||
<td> </td>
|
||||
<td>If set, only users residing in these countries can participate in the giveaway, (specified as a list of two-letter ISO 3166-1 alpha-2 country codes); otherwise there are no country-based limitations.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>quantity</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Number of <a href="/api/premium">Telegram Premium</a> subscriptions given away.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>months</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Duration in months of each <a href="/api/premium">Telegram Premium</a> subscription in the giveaway.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>until_date</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>The end date of the giveaway.</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/MessageMedia">MessageMedia</a></p></div>
|
||||
<p><a href="/type/MessageMedia">MessageMedia</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="#telegram-premium" id="telegram-premium" name="telegram-premium"><i class="anchor-icon"></i></a><a href="/api/premium">Telegram Premium</a></h4>
|
||||
<p>Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.</p>
|
||||
<h4><a class="anchor" href="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,36 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>payments.checkedGiftCode</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
|
||||
via_giveaway
|
||||
flags.2?true
|
||||
|
||||
from_id
|
||||
Peer
|
||||
|
||||
giveaway_msg_id…">
|
||||
<meta property="description" content="Contains info about a Telegram Premium giftcode link.">
|
||||
<meta property="og:title" content="payments.checkedGiftCode">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
flags
|
||||
#
|
||||
Flags, see TL conditional fields
|
||||
via_giveaway
|
||||
flags.2?true
|
||||
|
||||
from_id
|
||||
Peer
|
||||
|
||||
giveaway_msg_id…">
|
||||
<meta property="og:description" content="Contains info about a Telegram Premium giftcode 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 @@ giveaway_msg_id…">
|
|||
<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/payments.checkedGiftCode" >payments.checkedGiftCode</a></li></ul></div>
|
||||
<h1 id="dev_page_title">payments.checkedGiftCode</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Contains info about a <a href="/api/links#premium-giftcode-links">Telegram Premium giftcode 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 167 <b class="caret"></b></a>
|
||||
|
@ -99,52 +74,59 @@ giveaway_msg_id…">
|
|||
<tr>
|
||||
<td><strong>via_giveaway</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>Whether this giftcode was created by a <a href="/api/giveaways">giveaway</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>from_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Peer">Peer</a></td>
|
||||
<td> </td>
|
||||
<td>The peer that created the gift code.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>giveaway_msg_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.3?<a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Message ID of the giveaway in the channel specified in <code>from_id</code>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>to_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/long">long</a></td>
|
||||
<td> </td>
|
||||
<td>The destination user of the gift.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>date</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Creation date of the gift code.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>months</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Duration in months of the gifted <a href="/api/premium">Telegram Premium</a> subscription.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>used_date</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.1?<a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>When was the giftcode imported, if it was imported.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>chats</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a><<a href="/type/Chat">Chat</a>></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><<a href="/type/User">User</a>></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/payments.CheckedGiftCode">payments.CheckedGiftCode</a></p></div>
|
||||
<p><a href="/type/payments.CheckedGiftCode">payments.CheckedGiftCode</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="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p>
|
||||
<h4><a class="anchor" href="#telegram-premium" id="telegram-premium" name="telegram-premium"><i class="anchor-icon"></i></a><a href="/api/premium">Telegram Premium</a></h4>
|
||||
<p>Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.</p>
|
||||
<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></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
<meta charset="utf-8">
|
||||
<title>payments.giveawayInfoResults</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
<meta property="description" content="A giveaway has ended.
|
||||
Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
|
@ -14,12 +15,11 @@ Flags, see TL conditional fields
|
|||
winner
|
||||
flags.0?true
|
||||
|
||||
refunded
|
||||
flags.1?true
|
||||
…">
|
||||
refunded…">
|
||||
<meta property="og:title" content="payments.giveawayInfoResults">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
<meta property="og:description" content="A giveaway has ended.
|
||||
Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
|
@ -29,9 +29,7 @@ Flags, see TL conditional fields
|
|||
winner
|
||||
flags.0?true
|
||||
|
||||
refunded
|
||||
flags.1?true
|
||||
…">
|
||||
refunded…">
|
||||
<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 +64,8 @@ flags.1?true
|
|||
<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/payments.giveawayInfoResults" >payments.giveawayInfoResults</a></li></ul></div>
|
||||
<h1 id="dev_page_title">payments.giveawayInfoResults</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>A <a href="/api/giveaways">giveaway</a> has ended.</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 167 <b class="caret"></b></a>
|
||||
|
@ -107,7 +106,7 @@ flags.1?true
|
|||
<tr>
|
||||
<td><strong>start_date</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Start date of the giveaway</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>gift_code_slug</strong></td>
|
||||
|
@ -117,7 +116,7 @@ flags.1?true
|
|||
<tr>
|
||||
<td><strong>finish_date</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>End date of the giveaway. May be bigger than the end date specified in parameters of the giveaway.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>winners_count</strong></td>
|
||||
|
|
|
@ -4,44 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>prepaidGiveaway</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
id
|
||||
long
|
||||
|
||||
months
|
||||
int
|
||||
|
||||
quantity
|
||||
int
|
||||
|
||||
date
|
||||
int
|
||||
|
||||
Type
|
||||
PrepaidGiveaway">
|
||||
<meta property="description" content="Contains info about a prepaid giveaway ».">
|
||||
<meta property="og:title" content="prepaidGiveaway">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
id
|
||||
long
|
||||
|
||||
months
|
||||
int
|
||||
|
||||
quantity
|
||||
int
|
||||
|
||||
date
|
||||
int
|
||||
|
||||
Type
|
||||
PrepaidGiveaway">
|
||||
<meta property="og:description" content="Contains info about a prepaid giveaway ».">
|
||||
<link rel="icon" type="image/svg+xml" href="/img/website_icon.svg?4">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/img/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/img/favicon-32x32.png">
|
||||
|
@ -76,7 +42,8 @@ PrepaidGiveaway">
|
|||
<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/prepaidGiveaway" >prepaidGiveaway</a></li></ul></div>
|
||||
<h1 id="dev_page_title">prepaidGiveaway</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Contains info about a <a href="/api/giveaways">prepaid giveaway »</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 167 <b class="caret"></b></a>
|
||||
|
@ -102,27 +69,32 @@ PrepaidGiveaway">
|
|||
<tr>
|
||||
<td><strong>id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td> </td>
|
||||
<td>Prepaid giveaway ID.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>months</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Duration in months of each gifted <a href="/api/premium">Telegram Premium</a> subscription.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>quantity</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Number of given away <a href="/api/premium">Telegram Premium</a> subscriptions.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>date</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>Payment date.</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/PrepaidGiveaway">PrepaidGiveaway</a></p></div>
|
||||
<p><a href="/type/PrepaidGiveaway">PrepaidGiveaway</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="#telegram-premium" id="telegram-premium" name="telegram-premium"><i class="anchor-icon"></i></a><a href="/api/premium">Telegram Premium</a></h4>
|
||||
<p>Telegram Premium is an optional subscription service that unlocks additional exclusive client-side and API-side features, while helping support the development of the app.</p>
|
||||
<h4><a class="anchor" href="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -4,32 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>updateChannelViewForumAsMessages</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
channel_id
|
||||
long
|
||||
|
||||
enabled
|
||||
Bool
|
||||
|
||||
Type
|
||||
Update">
|
||||
<meta property="description" content="Users may also choose to display messages from all topics as if they were sent to a normal group, using a "View as messages" setting in the local client. This setting only affects the current account, and is synced to other logged in sessions using the channels.toggleViewForumAsMessages method; invoking this method will update the value of the view_forum_as_messages flag of channelFull or dialog and emit an updateChannelViewForumAsMessages.">
|
||||
<meta property="og:title" content="updateChannelViewForumAsMessages">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
channel_id
|
||||
long
|
||||
|
||||
enabled
|
||||
Bool
|
||||
|
||||
Type
|
||||
Update">
|
||||
<meta property="og:description" content="Users may also choose to display messages from all topics as if they were sent to a normal group, using a "View as messages" setting in the local client. This setting only affects the current account, and is synced to other logged in sessions using the channels.toggleViewForumAsMessages method; invoking this method will update the value of the view_forum_as_messages flag of channelFull or dialog and emit an updateChannelViewForumAsMessages.">
|
||||
<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,9 @@ Update">
|
|||
<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/updateChannelViewForumAsMessages" >updateChannelViewForumAsMessages</a></li></ul></div>
|
||||
<h1 id="dev_page_title">updateChannelViewForumAsMessages</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Users may also choose to display messages from all topics as if they were sent to a normal group, using a "View as messages" setting in the local client.<br>
|
||||
This setting only affects the current account, and is synced to other logged in sessions using the <a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a> method; invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</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 167 <b class="caret"></b></a>
|
||||
|
@ -90,17 +70,28 @@ Update">
|
|||
<tr>
|
||||
<td><strong>channel_id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/long">long</a></td>
|
||||
<td> </td>
|
||||
<td>The forum ID</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>enabled</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Bool">Bool</a></td>
|
||||
<td> </td>
|
||||
<td>The new value of the toggle.</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/Update">Update</a></p></div>
|
||||
<p><a href="/type/Update">Update</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="#channelstoggleviewforumasmessages" id="channelstoggleviewforumasmessages" name="channelstoggleviewforumasmessages"><i class="anchor-icon"></i></a><a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a></h4>
|
||||
<p>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.</p>
|
||||
<p>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</p>
|
||||
<h4><a class="anchor" href="#channelfull" id="channelfull" name="channelfull"><i class="anchor-icon"></i></a><a href="/constructor/channelFull">channelFull</a></h4>
|
||||
<p>Full info about a <a href="/api/channel#channels">channel</a>, <a href="/api/channel#supergroups">supergroup</a> or <a href="/api/channel#gigagroups">gigagroup</a>.</p>
|
||||
<h4><a class="anchor" href="#dialog" id="dialog" name="dialog"><i class="anchor-icon"></i></a><a href="/constructor/dialog">dialog</a></h4>
|
||||
<p>Chat</p>
|
||||
<h4><a class="anchor" href="#updatechannelviewforumasmessages" id="updatechannelviewforumasmessages" name="updatechannelviewforumasmessages"><i class="anchor-icon"></i></a><a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a></h4>
|
||||
<p>Users may also choose to display messages from all topics as if they were sent to a normal group, using a "View as messages" setting in the local client.<br>
|
||||
This setting only affects the current account, and is synced to other logged in sessions using the <a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a> method; invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
<tr>
|
||||
<td><strong>date</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.0?<a href="/type/int">int</a></td>
|
||||
<td> </td>
|
||||
<td>When was the last message in <code>messages</code> marked as read.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -184,7 +184,7 @@
|
|||
<tr>
|
||||
<td><strong>stories_unavailable</strong></td>
|
||||
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags2</a>.4?<a href="/constructor/true">true</a></td>
|
||||
<td> </td>
|
||||
<td>No stories from this user are visible.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>id</strong></td>
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>channels.toggleViewForumAsMessages</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method. Invoking this method will update the value of the view_forum_as_messages flag of channelFull or dialog.">
|
||||
<meta property="description" content="Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method. Invoking this method will update the value of the view_forum_as_messages flag of channelFull or dialog and emit an updateChannelViewForumAsMessages.">
|
||||
<meta property="og:title" content="channels.toggleViewForumAsMessages">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method. Invoking this method will update the value of the view_forum_as_messages flag of channelFull or dialog.">
|
||||
<meta property="og:description" content="Users may also choose to display messages from all topics of a forum as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method. Invoking this method will update the value of the view_forum_as_messages flag of channelFull or dialog and emit an updateChannelViewForumAsMessages.">
|
||||
<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">
|
||||
|
@ -43,7 +43,7 @@
|
|||
<h1 id="dev_page_title">channels.toggleViewForumAsMessages</h1>
|
||||
|
||||
<div id="dev_page_content"><p>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.</p>
|
||||
<p>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a>.</p>
|
||||
<p>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</p>
|
||||
<p><div class="clearfix">
|
||||
<ul class="dev_layer_select slightly-pull-right nav nav-pills">
|
||||
<li class="dropdown">
|
||||
|
@ -112,7 +112,10 @@
|
|||
<h4><a class="anchor" href="#channelfull" id="channelfull" name="channelfull"><i class="anchor-icon"></i></a><a href="/constructor/channelFull">channelFull</a></h4>
|
||||
<p>Full info about a <a href="/api/channel#channels">channel</a>, <a href="/api/channel#supergroups">supergroup</a> or <a href="/api/channel#gigagroups">gigagroup</a>.</p>
|
||||
<h4><a class="anchor" href="#dialog" id="dialog" name="dialog"><i class="anchor-icon"></i></a><a href="/constructor/dialog">dialog</a></h4>
|
||||
<p>Chat</p></div>
|
||||
<p>Chat</p>
|
||||
<h4><a class="anchor" href="#updatechannelviewforumasmessages" id="updatechannelviewforumasmessages" name="updatechannelviewforumasmessages"><i class="anchor-icon"></i></a><a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a></h4>
|
||||
<p>Users may also choose to display messages from all topics as if they were sent to a normal group, using a "View as messages" setting in the local client.<br>
|
||||
This setting only affects the current account, and is synced to other logged in sessions using the <a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a> method; invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</p></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
|
|
@ -102,6 +102,7 @@
|
|||
</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="#messageactiongiveawaylaunch" id="messageactiongiveawaylaunch" name="messageactiongiveawaylaunch"><i class="anchor-icon"></i></a><a href="/constructor/messageActionGiveawayLaunch">messageActionGiveawayLaunch</a></h4>
|
||||
<p>A <a href="/api/giveaways">giveaway</a> was started.</p>
|
||||
<h4><a class="anchor" href="#giveaways" id="giveaways" name="giveaways"><i class="anchor-icon"></i></a><a href="/api/giveaways">Giveaways</a></h4>
|
||||
<p>Telegram <a href="/api/channel">channel</a> administrators may launch giveaways to randomly distribute <a href="/api/premium">Telegram Premium</a> subscriptions and other gifts among their followers, in exchange for <a href="/api/boost">boosts</a>.</p></div>
|
||||
|
||||
|
|
|
@ -4,26 +4,10 @@
|
|||
<meta charset="utf-8">
|
||||
<title>stories.getPeerMaxIDs</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
id
|
||||
Vector<InputPeer>
|
||||
|
||||
Result
|
||||
Vector<int>">
|
||||
<meta property="description" content="Get the IDs of the maximum read stories for a set of peers.">
|
||||
<meta property="og:title" content="stories.getPeerMaxIDs">
|
||||
<meta property="og:image" content="">
|
||||
<meta property="og:description" content="Parameters
|
||||
Name
|
||||
Type
|
||||
Description
|
||||
id
|
||||
Vector<InputPeer>
|
||||
|
||||
Result
|
||||
Vector<int>">
|
||||
<meta property="og:description" content="Get the IDs of the maximum read stories for a set of peers.">
|
||||
<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 @@ Vector<int>">
|
|||
<div class="dev_page_bread_crumbs"><ul class="breadcrumb clearfix"><li><a href="/api" >API</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/methods" >All Methods</a></li><i class="icon icon-breadcrumb-divider"></i><li><a href="/method/stories.getPeerMaxIDs" >stories.getPeerMaxIDs</a></li></ul></div>
|
||||
<h1 id="dev_page_title">stories.getPeerMaxIDs</h1>
|
||||
|
||||
<div id="dev_page_content"><p><div class="clearfix">
|
||||
<div id="dev_page_content"><p>Get the IDs of the maximum read stories for a set of peers.</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 167 <b class="caret"></b></a>
|
||||
|
@ -85,7 +70,7 @@ Vector<int>">
|
|||
<tr>
|
||||
<td><strong>id</strong></td>
|
||||
<td style="text-align: center;"><a href="/type/Vector%20t">Vector</a><<a href="/type/InputPeer">InputPeer</a>></td>
|
||||
<td> </td>
|
||||
<td>Peers</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -1162,6 +1162,10 @@ Look for updates of telegram's terms of service…">
|
|||
<td><a href="/method/channels.deleteTopicHistory">channels.deleteTopicHistory</a></td>
|
||||
<td>Delete message history of a <a href="/api/forum">forum topic</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a></td>
|
||||
<td>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.<br><br>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-fragmentcom-usernames" id="working-with-fragmentcom-usernames" name="working-with-fragmentcom-usernames"><i class="anchor-icon"></i></a>Working with <a href="/api/fragment">fragment.com usernames</a></h3>
|
||||
|
@ -1203,6 +1207,48 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-gift-codes" id="working-with-gift-codes" name="working-with-gift-codes"><i class="anchor-icon"></i></a>Working with <a href="/api/links#premium-giftcode-links">gift codes</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/payments.checkGiftCode">payments.checkGiftCode</a></td>
|
||||
<td>Obtain information about a <a href="/api/giveaways">Telegram Premium giftcode »</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/payments.applyGiftCode">payments.applyGiftCode</a></td>
|
||||
<td>Apply a <a href="/api/giveaways">Telegram Premium giftcode »</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-giveaways-amp-gifts" id="working-with-giveaways-amp-gifts" name="working-with-giveaways-amp-gifts"><i class="anchor-icon"></i></a>Working with <a href="/api/giveaways">giveaways & gifts</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/payments.getPremiumGiftCodeOptions">payments.getPremiumGiftCodeOptions</a></td>
|
||||
<td>Obtain a list of Telegram Premium <a href="/api/giveaways">giveaway/gift code »</a> options.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/payments.getGiveawayInfo">payments.getGiveawayInfo</a></td>
|
||||
<td>Obtain information about a <a href="/api/giveaways">Telegram Premium giveaway »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/payments.launchPrepaidGiveaway">payments.launchPrepaidGiveaway</a></td>
|
||||
<td>Launch a <a href="/api/giveaways">prepaid giveaway »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#working-with-instant-view-pages" id="working-with-instant-view-pages" name="working-with-instant-view-pages"><i class="anchor-icon"></i></a>Working with <a href="https://instantview.telegram.org">instant view pages</a></h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
|
@ -1659,7 +1705,7 @@ Look for updates of telegram's terms of service…">
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/stories.getPeerMaxIDs">stories.getPeerMaxIDs</a></td>
|
||||
<td> </td>
|
||||
<td>Get the IDs of the maximum read stories for a set of peers.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/stories.getChatsToSend">stories.getChatsToSend</a></td>
|
||||
|
@ -3057,41 +3103,6 @@ Look for updates of telegram's terms of service…">
|
|||
<td>Resolve a @username to get peer info</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3><a class="anchor" href="#other" id="other" name="other"><i class="anchor-icon"></i></a>Other</h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/method/payments.getPremiumGiftCodeOptions">payments.getPremiumGiftCodeOptions</a></td>
|
||||
<td>Obtain a list of Telegram Premium <a href="/api/giveaways">giveaway/gift code »</a> options.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/payments.checkGiftCode">payments.checkGiftCode</a></td>
|
||||
<td>Obtain information about a <a href="/api/giveaways">Telegram Premium giftcode »</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/payments.applyGiftCode">payments.applyGiftCode</a></td>
|
||||
<td>Apply a <a href="/api/giveaways">Telegram Premium giftcode »</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/payments.getGiveawayInfo">payments.getGiveawayInfo</a></td>
|
||||
<td>Obtain information about a <a href="/api/giveaways">Telegram Premium giveaway »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/payments.launchPrepaidGiveaway">payments.launchPrepaidGiveaway</a></td>
|
||||
<td>Launch a <a href="/api/giveaways">prepaid giveaway »</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a></td>
|
||||
<td>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.<br><br>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -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 64 C7 07 00 AB D5 85 65
|
||||
0010 | 14 00 00 00 F1 8E 7E BE EE 38 98 81 A2 78 AD E0
|
||||
0020 | 15 5B 03 1B B8 7D D8 29</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 08 DD 00 00 FC E9 85 65
|
||||
0010 | 14 00 00 00 F1 8E 7E BE 18 9E 5D FD 0E 6A C8 14
|
||||
0020 | 5A E0 53 B6 B0 B0 FE AD</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>64C70700ABD58565</code></td>
|
||||
<td><code>08DD0000FCE98565</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -95,7 +95,7 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</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 44 64 47 AB D5 85 65
|
||||
0010 | A0 00 00 00 63 24 16 05 EE 38 98 81 A2 78 AD E0
|
||||
0020 | 15 5B 03 1B B8 7D D8 29 93 C1 B1 8D 31 46 40 18
|
||||
0030 | ED A8 55 E5 30 D8 9A 96 08 30 4E 2B 2C CB 3D CA
|
||||
0040 | AF 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 14 54 F4 FC E9 85 65
|
||||
0010 | B0 00 00 00 63 24 16 05 18 9E 5D FD 0E 6A C8 14
|
||||
0020 | 5A E0 53 B6 B0 B0 FE AD 53 D8 C9 E6 C3 EE C9 29
|
||||
0030 | BC 82 84 C2 00 37 4D 19 08 19 E2 B1 2F F3 F5 6D
|
||||
0040 | DB 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>01446447ABD58565</code></td>
|
||||
<td><code>011454F4FCE98565</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>A0000000</code> (160 in decimal)</td>
|
||||
<td><code>B0000000</code> (176 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -150,19 +150,19 @@
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Server-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pq</td>
|
||||
<td>56, 12</td>
|
||||
<td><code>08304E2B2CCB3DCAAF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 3480767033392351919</td>
|
||||
<td><code>0819E2B12FF3F56DDB000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1865248015199333851</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 < q.</h5>
|
||||
<!-- start pq -->
|
||||
<pre><code>pq = 3480767033392351919</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>3480767033392351919 = 1778205773 * 1957460203</code></p>
|
||||
<pre><code>p = 1778205773
|
||||
q = 1957460203</code></pre>
|
||||
<pre><code>pq = 1865248015199333851</code></pre>
|
||||
<p>Decompose into 2 prime cofactors <code>p < q</code>: <code>1865248015199333851 = 1360104203 * 1371400817</code></p>
|
||||
<pre><code>p = 1360104203
|
||||
q = 1371400817</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 30 4E 2B 2C CB 3D CA AF 00 00 00
|
||||
0010 | 04 69 FD 44 4D 00 00 00 04 74 AC 78 EB 00 00 00
|
||||
0020 | EE 38 98 81 A2 78 AD E0 15 5B 03 1B B8 7D D8 29
|
||||
0030 | 93 C1 B1 8D 31 46 40 18 ED A8 55 E5 30 D8 9A 96
|
||||
0040 | D0 9D 3A B9 DF 74 DB F9 60 41 4E D6 E5 7C 83 F0
|
||||
0050 | 6A 3C CD 3C FE 45 C1 D9 B2 58 21 CC 17 98 86 1C
|
||||
<pre><code>0000 | 95 5F F5 A9 08 19 E2 B1 2F F3 F5 6D DB 00 00 00
|
||||
0010 | 04 51 11 8B 0B 00 00 00 04 51 BD EA 71 00 00 00
|
||||
0020 | 18 9E 5D FD 0E 6A C8 14 5A E0 53 B6 B0 B0 FE AD
|
||||
0030 | 53 D8 C9 E6 C3 EE C9 29 BC 82 84 C2 00 37 4D 19
|
||||
0040 | 98 09 E1 28 A2 07 99 22 A3 4A D1 63 6C 13 EC 96
|
||||
0050 | 27 A4 14 39 27 CF 85 6F F4 BC B4 80 F7 65 DC 87
|
||||
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 = 1957460203</code></pre>
|
|||
<tr>
|
||||
<td>pq</td>
|
||||
<td>4, 12</td>
|
||||
<td><code>08304E2B2CCB3DCAAF000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 3480767033392351919</td>
|
||||
<td><code>0819E2B12FF3F56DDB000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1865248015199333851</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>0469FD444D000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1778205773</td>
|
||||
<td><code>0451118B0B000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1360104203</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>0474AC78EB000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1957460203</td>
|
||||
<td><code>0451BDEA71000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1371400817</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>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>48, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce</td>
|
||||
<td>64, 32</td>
|
||||
<td><code>D09D3AB9DF74DBF960414ED6E57C83F0</code> <code>6A3CCD3CFE45C1D9B25821CC1798861C</code></td>
|
||||
<td><code>9809E128A2079922A34AD1636C13EC96</code> <code>27A4143927CF856FF4BCB480F765DC87</code></td>
|
||||
<td>Client-generated random number</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -291,39 +291,39 @@ q = 1957460203</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 = 955FF5A908304E2B2CCB3DCAAF0000000469FD444D0000000474AC78EB000000EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A96D09D3AB9DF74DBF960414ED6E57C83F06A3CCD3CFE45C1D9B25821CC1798861C02000000
|
||||
random_padding_bytes = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C6361F08244287CC541D9683A47982C059107979BE96622AC0F1BF7B008BCEE0AC6DE9A7B6F7A026E155FDD7A412C006615D9816719A713D7C73AA1E389EF3E94C7</code></pre>
|
||||
<pre><code>data = 955FF5A90819E2B12FF3F56DDB0000000451118B0B0000000451BDEA71000000189E5DFD0E6AC8145AE053B6B0B0FEAD53D8C9E6C3EEC929BC8284C200374D199809E128A2079922A34AD1636C13EC9627A4143927CF856FF4BCB480F765DC8702000000
|
||||
random_padding_bytes = F1B99B993826203137EE714326EB604212EFAF4B4A4CEEBDB438E83BD6A9F4E1F67F4B90DF9DCDE98B728F05077D43EC959CA6156EF6170DDC99C66D99FE280D8218B0246E58524151003DDABEDD0BE2D2A40253B9DDB386B4DDE84D</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 = AA43C12F2B6194B90DC524FDBB12F8DD84E5EC62EA7BB054DF832C4D57E6B6BED7E3638E4498FE385ED2D49B881E0264A344AEDB4B8D19C05E5A0D1C1EF9C78FDABFF36746D675F2D70D8FBBB25F48F2856D1DED8BC10DD5DCE0ACF1A6639101E6619F6E55B01BE1D30428F166D03242F2BB2126347B41EFE18F34334294BACB95AF029626D6A10B0CB6FFD174EE17DA859FB58DB900F2F545DD2AFC004C28890B1ECDB3FF65CF345907D29DC9E48F32C7B2E169614610FCEDB05A424BDDB69D487B28A04076E2555B1DDBC1AA8521EB7E36BB0C2DD6F2AEA100FD3488C53AC7129A08795115CBFA08ADFC4604005339B9131BBD31807658BEF6FE107BA49EE0</code></pre>
|
||||
<pre><code>encrypted_data = 1F64F729F5C625295B90ED89A2814938FAD946F39E8DF77A0227524711C12E40F0796785D680C88326299B17421C2DBBDA9A9A9236A5F3510792DA02CDEC51E8F0AF64A81EB189BFE0F1EDDB5336EE023EA44D451E79422B13045000E7262813AF0829535CD09112651D652DE8B814876D6F44FD8056E25DA0CB9F253FFE43D448C16680DD07317AD5FCC696FCFA9E2EF0A0682BCBD16D5A166683E083D71483E2C9E596C9F9A2FA217EB9036CAC4DD603ACF9A90A79363E62D0A85AC980A90719B297DCD5B8414C0F4BF1EACEFBA4FBDBA3B1A293FAD696DBC46A6D9E26D891EBD50DA2D1CB3168EA0864FE7B85EDF555CB9CC78DABBA727F40893CD6E0C523</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 38 23 0B 00 AB D5 85 65
|
||||
0010 | 40 01 00 00 BE E4 12 D7 EE 38 98 81 A2 78 AD E0
|
||||
0020 | 15 5B 03 1B B8 7D D8 29 93 C1 B1 8D 31 46 40 18
|
||||
0030 | ED A8 55 E5 30 D8 9A 96 04 69 FD 44 4D 00 00 00
|
||||
0040 | 04 74 AC 78 EB 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 AA 43 C1 2F 2B 61 94 B9 0D C5 24 FD
|
||||
0060 | BB 12 F8 DD 84 E5 EC 62 EA 7B B0 54 DF 83 2C 4D
|
||||
0070 | 57 E6 B6 BE D7 E3 63 8E 44 98 FE 38 5E D2 D4 9B
|
||||
0080 | 88 1E 02 64 A3 44 AE DB 4B 8D 19 C0 5E 5A 0D 1C
|
||||
0090 | 1E F9 C7 8F DA BF F3 67 46 D6 75 F2 D7 0D 8F BB
|
||||
00A0 | B2 5F 48 F2 85 6D 1D ED 8B C1 0D D5 DC E0 AC F1
|
||||
00B0 | A6 63 91 01 E6 61 9F 6E 55 B0 1B E1 D3 04 28 F1
|
||||
00C0 | 66 D0 32 42 F2 BB 21 26 34 7B 41 EF E1 8F 34 33
|
||||
00D0 | 42 94 BA CB 95 AF 02 96 26 D6 A1 0B 0C B6 FF D1
|
||||
00E0 | 74 EE 17 DA 85 9F B5 8D B9 00 F2 F5 45 DD 2A FC
|
||||
00F0 | 00 4C 28 89 0B 1E CD B3 FF 65 CF 34 59 07 D2 9D
|
||||
0100 | C9 E4 8F 32 C7 B2 E1 69 61 46 10 FC ED B0 5A 42
|
||||
0110 | 4B DD B6 9D 48 7B 28 A0 40 76 E2 55 5B 1D DB C1
|
||||
0120 | AA 85 21 EB 7E 36 BB 0C 2D D6 F2 AE A1 00 FD 34
|
||||
0130 | 88 C5 3A C7 12 9A 08 79 51 15 CB FA 08 AD FC 46
|
||||
0140 | 04 00 53 39 B9 13 1B BD 31 80 76 58 BE F6 FE 10
|
||||
0150 | 7B A4 9E E0</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 0C D0 0C 00 FD E9 85 65
|
||||
0010 | 40 01 00 00 BE E4 12 D7 18 9E 5D FD 0E 6A C8 14
|
||||
0020 | 5A E0 53 B6 B0 B0 FE AD 53 D8 C9 E6 C3 EE C9 29
|
||||
0030 | BC 82 84 C2 00 37 4D 19 04 51 11 8B 0B 00 00 00
|
||||
0040 | 04 51 BD EA 71 00 00 00 85 FD 64 DE 85 1D 9D D0
|
||||
0050 | FE 00 01 00 1F 64 F7 29 F5 C6 25 29 5B 90 ED 89
|
||||
0060 | A2 81 49 38 FA D9 46 F3 9E 8D F7 7A 02 27 52 47
|
||||
0070 | 11 C1 2E 40 F0 79 67 85 D6 80 C8 83 26 29 9B 17
|
||||
0080 | 42 1C 2D BB DA 9A 9A 92 36 A5 F3 51 07 92 DA 02
|
||||
0090 | CD EC 51 E8 F0 AF 64 A8 1E B1 89 BF E0 F1 ED DB
|
||||
00A0 | 53 36 EE 02 3E A4 4D 45 1E 79 42 2B 13 04 50 00
|
||||
00B0 | E7 26 28 13 AF 08 29 53 5C D0 91 12 65 1D 65 2D
|
||||
00C0 | E8 B8 14 87 6D 6F 44 FD 80 56 E2 5D A0 CB 9F 25
|
||||
00D0 | 3F FE 43 D4 48 C1 66 80 DD 07 31 7A D5 FC C6 96
|
||||
00E0 | FC FA 9E 2E F0 A0 68 2B CB D1 6D 5A 16 66 83 E0
|
||||
00F0 | 83 D7 14 83 E2 C9 E5 96 C9 F9 A2 FA 21 7E B9 03
|
||||
0100 | 6C AC 4D D6 03 AC F9 A9 0A 79 36 3E 62 D0 A8 5A
|
||||
0110 | C9 80 A9 07 19 B2 97 DC D5 B8 41 4C 0F 4B F1 EA
|
||||
0120 | CE FB A4 FB DB A3 B1 A2 93 FA D6 96 DB C4 6A 6D
|
||||
0130 | 9E 26 D8 91 EB D5 0D A2 D1 CB 31 68 EA 08 64 FE
|
||||
0140 | 7B 85 ED F5 55 CB 9C C7 8D AB BA 72 7F 40 89 3C
|
||||
0150 | D6 E0 C5 23</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 = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C636
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>38230B00ABD58565</code></td>
|
||||
<td><code>0CD00C00FDE98565</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -363,25 +363,25 @@ random_padding_bytes = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C636
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>p</td>
|
||||
<td>56, 8</td>
|
||||
<td><code>0469FD444D000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1778205773</td>
|
||||
<td><code>0451118B0B000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1360104203</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>0474AC78EB000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1957460203</td>
|
||||
<td><code>0451BDEA71000000</code><br>TL byte deserialization <br>=> bigendian conversion to decimal<br>=> 1371400817</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 = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C636
|
|||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>80, 260</td>
|
||||
<td><code>FE000100AA43C12F2B6194B90DC524FD</code> <code>BB12F8DD84E5EC62EA7BB054DF832C4D</code> <code>57E6B6BED7E3638E4498FE385ED2D49B</code> <code>881E0264A344AEDB4B8D19C05E5A0D1C</code> <code>1EF9C78FDABFF36746D675F2D70D8FBB</code> <code>B25F48F2856D1DED8BC10DD5DCE0ACF1</code> <code>A6639101E6619F6E55B01BE1D30428F1</code> <code>66D03242F2BB2126347B41EFE18F3433</code> <code>4294BACB95AF029626D6A10B0CB6FFD1</code> <code>74EE17DA859FB58DB900F2F545DD2AFC</code> <code>004C28890B1ECDB3FF65CF345907D29D</code> <code>C9E48F32C7B2E169614610FCEDB05A42</code> <code>4BDDB69D487B28A04076E2555B1DDBC1</code> <code>AA8521EB7E36BB0C2DD6F2AEA100FD34</code> <code>88C53AC7129A08795115CBFA08ADFC46</code> <code>04005339B9131BBD31807658BEF6FE10</code><br> <code>7BA49EE0</code></td>
|
||||
<td><code>FE0001001F64F729F5C625295B90ED89</code> <code>A2814938FAD946F39E8DF77A02275247</code> <code>11C12E40F0796785D680C88326299B17</code> <code>421C2DBBDA9A9A9236A5F3510792DA02</code> <code>CDEC51E8F0AF64A81EB189BFE0F1EDDB</code> <code>5336EE023EA44D451E79422B13045000</code> <code>E7262813AF0829535CD09112651D652D</code> <code>E8B814876D6F44FD8056E25DA0CB9F25</code> <code>3FFE43D448C16680DD07317AD5FCC696</code> <code>FCFA9E2EF0A0682BCBD16D5A166683E0</code> <code>83D71483E2C9E596C9F9A2FA217EB903</code> <code>6CAC4DD603ACF9A90A79363E62D0A85A</code> <code>C980A90719B297DCD5B8414C0F4BF1EA</code> <code>CEFBA4FBDBA3B1A293FAD696DBC46A6D</code> <code>9E26D891EBD50DA2D1CB3168EA0864FE</code> <code>7B85EDF555CB9CC78DABBA727F40893C</code><br> <code>D6E0C523</code></td>
|
||||
<td>Value generated above</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -402,47 +402,47 @@ random_padding_bytes = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C636
|
|||
<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 F4 D6 F0 AB D5 85 65
|
||||
0010 | DC 02 00 00 5C 07 E8 D0 EE 38 98 81 A2 78 AD E0
|
||||
0020 | 15 5B 03 1B B8 7D D8 29 93 C1 B1 8D 31 46 40 18
|
||||
0030 | ED A8 55 E5 30 D8 9A 96 FE 50 02 00 9E 32 D2 A5
|
||||
0040 | 31 30 F5 B7 C1 F5 D0 D6 60 7F 31 CF 72 9F 0F B3
|
||||
0050 | E7 99 6A 61 44 A3 61 D4 58 0F 42 EB C1 D4 BF 95
|
||||
0060 | BC E8 34 57 20 FE 6A E8 8A 0C D7 5E 7B 33 EE 13
|
||||
0070 | EB CB A8 8A F1 8B B6 AD 26 10 92 C8 63 39 56 4E
|
||||
0080 | D6 07 CC C1 9A 2B 33 C0 7C 23 32 15 5E 74 F0 40
|
||||
0090 | 9A 1C 65 36 94 C9 E5 E5 A5 F0 B6 16 C7 E2 13 58
|
||||
00A0 | 26 28 B2 0C 3B DB 23 7B B0 A1 3E AB AD 13 87 15
|
||||
00B0 | 49 5C 1B C8 47 E3 72 48 4D 18 C1 B8 48 4C CB 49
|
||||
00C0 | DC 40 23 B9 BE F2 0E F6 90 BE 12 55 C7 AA 3A A2
|
||||
00D0 | 5D 12 7B CA 47 C1 2C 56 09 75 4B 15 DD 05 EA DC
|
||||
00E0 | D3 7F A2 62 A6 42 F9 9B B5 6B 74 EA 00 CA 44 AB
|
||||
00F0 | FB 7A 44 F0 AA B8 99 C4 C5 B4 14 4C 1E 53 96 E1
|
||||
0100 | CB CD C6 C2 AE 53 44 E5 F5 36 0A 9C EC 92 EC 61
|
||||
0110 | 70 9A 9C BA 70 40 C4 B9 12 5C F8 7F 85 58 7B 7C
|
||||
0120 | C2 A8 DA 94 61 33 1F 0C AB EA 29 29 59 DC 0F 2D
|
||||
0130 | 3F A6 D2 8B 36 C4 CC BC D3 2C D0 63 1E 8B C6 50
|
||||
0140 | 37 A8 C6 28 0A 26 38 AE 6C 12 5B 72 A5 F3 45 20
|
||||
0150 | 6B 59 4C 72 96 27 F9 9A EA 5F 29 ED C7 69 21 DF
|
||||
0160 | 82 99 C6 7F 9C B2 A0 A3 38 66 84 5D 79 C6 0D B8
|
||||
0170 | 88 6A D6 8A 18 DC 9D 9F 87 BB 3C 1E 40 E3 0E B0
|
||||
0180 | 57 46 0A 93 04 B4 F6 F7 D6 DE 90 18 64 7C AA 6A
|
||||
0190 | 7C 07 19 CE F2 4C 89 80 51 F3 54 DB E3 71 7C C3
|
||||
01A0 | C8 31 1F 4A 01 D3 60 9C 07 1A ED 51 57 E6 F8 4A
|
||||
01B0 | 33 11 58 6F 76 09 D8 FA C2 92 05 0A 9D 1E B2 EB
|
||||
01C0 | E1 F7 C9 B4 39 92 38 07 7B FC 64 6A A7 5E AE 30
|
||||
01D0 | 0E 11 2F BF 52 A4 4F 59 17 85 8B E7 6D 68 C1 06
|
||||
01E0 | B6 4F 74 C0 E6 66 D5 D7 33 BA 39 31 8A 4E 2C 82
|
||||
01F0 | A6 F0 A1 05 80 51 20 55 6C DA D4 FD 56 F5 3B BC
|
||||
0200 | A6 ED 93 9D 8D 78 65 1A AD 42 27 4E 2E 5E 67 20
|
||||
0210 | CE 7A 90 43 98 AC 11 6F 6F 5E E8 91 05 74 4F 3A
|
||||
0220 | 64 A8 06 09 82 C4 78 18 12 C3 88 46 F5 85 B5 98
|
||||
0230 | 40 E3 9E D3 D9 F8 44 A0 45 9D 0F 54 E1 A3 FD C4
|
||||
0240 | DF 30 54 73 66 06 14 44 7A B8 8E F1 C8 D4 06 CA
|
||||
0250 | 70 C7 85 85 55 F8 31 8D 17 CA 87 DF 79 D0 A1 00
|
||||
0260 | 52 49 C9 50 F8 B1 70 0D D8 7C 18 41 6D A2 AB 20
|
||||
0270 | 17 D6 23 47 47 0E 92 1B DB 93 82 D2 0B 84 BC EF
|
||||
0280 | 4F E0 D9 CC EB A8 2F 41 E5 71 29 D9</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 C4 ED BC FD E9 85 65
|
||||
0010 | F0 02 00 00 5C 07 E8 D0 18 9E 5D FD 0E 6A C8 14
|
||||
0020 | 5A E0 53 B6 B0 B0 FE AD 53 D8 C9 E6 C3 EE C9 29
|
||||
0030 | BC 82 84 C2 00 37 4D 19 FE 50 02 00 49 90 94 4E
|
||||
0040 | 5D F7 F7 1E 3A DF 19 44 8A 7C 01 AE 8B 58 77 64
|
||||
0050 | 45 B7 78 84 4A 7A 4C 2B FD F9 60 CC A6 A7 C2 23
|
||||
0060 | A2 1D 65 B3 E4 90 EC 38 D1 6E 47 CA 68 B1 A3 15
|
||||
0070 | 91 D8 F7 33 0A 82 EF 64 D1 21 B2 5D E6 E4 11 56
|
||||
0080 | 5F C7 13 F0 24 10 45 89 F7 33 AA 30 F7 4A D9 86
|
||||
0090 | 99 05 74 DB 20 C3 24 2E E8 96 F9 68 23 3D 97 D8
|
||||
00A0 | 83 FB 20 96 6F C8 D9 72 CD 3F 28 E3 B1 45 1B 9A
|
||||
00B0 | 11 43 53 81 59 86 5A 1E 3A 00 5C 36 DA 95 97 DA
|
||||
00C0 | 16 79 2E AC A0 D8 0E ED 34 2A 8E 96 E9 D3 C9 8E
|
||||
00D0 | B2 A5 15 20 DC 51 67 7A C4 5F 76 8A 5C 7E 87 9A
|
||||
00E0 | 67 8A 87 3D 61 AD 3A 5E 74 95 D2 AA 05 1B 56 09
|
||||
00F0 | 4E 45 BB D9 AA 03 D8 EB 25 32 B8 85 C3 2A E5 65
|
||||
0100 | 7A E0 16 2C 3E 0A 47 80 96 1D 3B D5 A1 7D 67 E8
|
||||
0110 | A6 FA BB 2A 86 FA B6 12 8A D9 EC 1F 05 2E 72 CF
|
||||
0120 | BF 9B 40 C3 15 1D 4C 40 2F DD 5E FA 7B 69 EF 25
|
||||
0130 | B4 FF 73 C1 19 D9 12 89 6A 90 B7 3C 81 00 91 EE
|
||||
0140 | A4 47 57 51 D2 AB 51 9A FA AA 21 AB B2 DD CE 35
|
||||
0150 | 3F C8 84 F3 10 24 7E 06 30 7F 13 49 34 A9 FF D3
|
||||
0160 | BC 03 12 5B B2 29 7A 5C 46 7B 2F 13 EC 2E AF E7
|
||||
0170 | 35 DE 0E 07 28 98 EF 6C AB E5 7D D6 51 6C F8 87
|
||||
0180 | 3E 8F 5D 1B 64 D9 52 72 4B D0 C4 6F B3 C3 12 07
|
||||
0190 | DE 30 DB 90 04 19 0A 00 60 28 00 7B 22 10 D1 7E
|
||||
01A0 | 7F 10 2D 07 D3 12 8D C4 FB 21 DA E6 6C 6C FC 1A
|
||||
01B0 | 07 53 94 16 4B 4A FE 5E E4 C4 7F 44 DC 62 91 3D
|
||||
01C0 | 35 42 88 26 97 0D 0E 01 7D CF 93 04 C9 F3 78 3D
|
||||
01D0 | 76 28 05 73 BB EC EC 3D 1B 5E CD D3 F5 16 BA 5D
|
||||
01E0 | 96 3C 05 EE 87 FA C8 1E A5 82 4A C4 6A 67 55 C1
|
||||
01F0 | 08 12 58 23 08 94 9E F7 45 2E 62 87 49 07 A5 26
|
||||
0200 | A3 D4 02 4C A8 8F 2F 06 4B 36 AB F9 D8 F3 C4 EA
|
||||
0210 | 3F 5B 5D 4B 3A C2 33 C1 93 AA 24 62 0F DE 7B BC
|
||||
0220 | 1A 6C 4D B6 F5 11 A3 F0 2D BE E6 AB CF B3 89 B9
|
||||
0230 | 66 2F 4C 68 D4 86 01 9E 57 34 F1 83 63 4B DA C0
|
||||
0240 | 24 C0 88 DA 08 29 79 32 AC 85 87 69 AB B2 C9 35
|
||||
0250 | 10 A4 0F 73 C3 07 60 62 0D 63 12 26 3A A0 BF 29
|
||||
0260 | AA C0 41 E4 6E F9 C0 2A AB 1B 80 23 4F 42 F8 E0
|
||||
0270 | 53 CE 04 64 6B 4D AC 98 8A 17 24 E9 E0 E7 A2 4F
|
||||
0280 | 51 1D 44 41 E0 E7 BE AC 8C A0 94 AB</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 = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C636
|
|||
<tr>
|
||||
<td>message_id</td>
|
||||
<td>8, 8</td>
|
||||
<td><code>01F4D6F0ABD58565</code></td>
|
||||
<td><code>01C4EDBCFDE98565</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>DC020000</code> (732 in decimal)</td>
|
||||
<td><code>F0020000</code> (752 in decimal)</td>
|
||||
<td>Message body length</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -482,19 +482,19 @@ random_padding_bytes = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C636
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>24, 16</td>
|
||||
<td><code>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_answer</td>
|
||||
<td>56, 596</td>
|
||||
<td><code>FE5002009E32D2A53130F5B7C1F5D0D6</code> <code>607F31CF729F0FB3E7996A6144A361D4</code> <code>580F42EBC1D4BF95BCE8345720FE6AE8</code> <code>8A0CD75E7B33EE13EBCBA88AF18BB6AD</code> <code>261092C86339564ED607CCC19A2B33C0</code> <code>7C2332155E74F0409A1C653694C9E5E5</code> <code>A5F0B616C7E213582628B20C3BDB237B</code> <code>B0A13EABAD138715495C1BC847E37248</code> <code>4D18C1B8484CCB49DC4023B9BEF20EF6</code> <code>90BE1255C7AA3AA25D127BCA47C12C56</code> <code>09754B15DD05EADCD37FA262A642F99B</code> <code>B56B74EA00CA44ABFB7A44F0AAB899C4</code> <code>C5B4144C1E5396E1CBCDC6C2AE5344E5</code> <code>F5360A9CEC92EC61709A9CBA7040C4B9</code> <code>125CF87F85587B7CC2A8DA9461331F0C</code> <code>ABEA292959DC0F2D3FA6D28B36C4CCBC</code> <code>D32CD0631E8BC65037A8C6280A2638AE</code> <code>6C125B72A5F345206B594C729627F99A</code> <code>EA5F29EDC76921DF8299C67F9CB2A0A3</code> <code>3866845D79C60DB8886AD68A18DC9D9F</code> <code>87BB3C1E40E30EB057460A9304B4F6F7</code> <code>D6DE9018647CAA6A7C0719CEF24C8980</code> <code>51F354DBE3717CC3C8311F4A01D3609C</code> <code>071AED5157E6F84A3311586F7609D8FA</code> <code>C292050A9D1EB2EBE1F7C9B439923807</code> <code>7BFC646AA75EAE300E112FBF52A44F59</code> <code>17858BE76D68C106B64F74C0E666D5D7</code> <code>33BA39318A4E2C82A6F0A10580512055</code> <code>6CDAD4FD56F53BBCA6ED939D8D78651A</code> <code>AD42274E2E5E6720CE7A904398AC116F</code> <code>6F5EE89105744F3A64A8060982C47818</code> <code>12C38846F585B59840E39ED3D9F844A0</code> <code>459D0F54E1A3FDC4DF30547366061444</code> <code>7AB88EF1C8D406CA70C7858555F8318D</code> <code>17CA87DF79D0A1005249C950F8B1700D</code> <code>D87C18416DA2AB2017D62347470E921B</code> <code>DB9382D20B84BCEF4FE0D9CCEBA82F41</code><br> <code>E57129D9</code></td>
|
||||
<td><code>FE5002004990944E5DF7F71E3ADF1944</code> <code>8A7C01AE8B58776445B778844A7A4C2B</code> <code>FDF960CCA6A7C223A21D65B3E490EC38</code> <code>D16E47CA68B1A31591D8F7330A82EF64</code> <code>D121B25DE6E411565FC713F024104589</code> <code>F733AA30F74AD986990574DB20C3242E</code> <code>E896F968233D97D883FB20966FC8D972</code> <code>CD3F28E3B1451B9A1143538159865A1E</code> <code>3A005C36DA9597DA16792EACA0D80EED</code> <code>342A8E96E9D3C98EB2A51520DC51677A</code> <code>C45F768A5C7E879A678A873D61AD3A5E</code> <code>7495D2AA051B56094E45BBD9AA03D8EB</code> <code>2532B885C32AE5657AE0162C3E0A4780</code> <code>961D3BD5A17D67E8A6FABB2A86FAB612</code> <code>8AD9EC1F052E72CFBF9B40C3151D4C40</code> <code>2FDD5EFA7B69EF25B4FF73C119D91289</code> <code>6A90B73C810091EEA4475751D2AB519A</code> <code>FAAA21ABB2DDCE353FC884F310247E06</code> <code>307F134934A9FFD3BC03125BB2297A5C</code> <code>467B2F13EC2EAFE735DE0E072898EF6C</code> <code>ABE57DD6516CF8873E8F5D1B64D95272</code> <code>4BD0C46FB3C31207DE30DB9004190A00</code> <code>6028007B2210D17E7F102D07D3128DC4</code> <code>FB21DAE66C6CFC1A075394164B4AFE5E</code> <code>E4C47F44DC62913D35428826970D0E01</code> <code>7DCF9304C9F3783D76280573BBECEC3D</code> <code>1B5ECDD3F516BA5D963C05EE87FAC81E</code> <code>A5824AC46A6755C10812582308949EF7</code> <code>452E62874907A526A3D4024CA88F2F06</code> <code>4B36ABF9D8F3C4EA3F5B5D4B3AC233C1</code> <code>93AA24620FDE7BBC1A6C4DB6F511A3F0</code> <code>2DBEE6ABCFB389B9662F4C68D486019E</code> <code>5734F183634BDAC024C088DA08297932</code> <code>AC858769ABB2C93510A40F73C3076062</code> <code>0D6312263AA0BF29AAC041E46EF9C02A</code> <code>AB1B80234F42F8E053CE04646B4DAC98</code> <code>8A1724E9E0E7A24F511D4441E0E7BEAC</code><br> <code>8CA094AB</code></td>
|
||||
<td>See below</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -502,20 +502,20 @@ random_padding_bytes = 0ABD7F39D43CB931315CAF76A899C408E263FD8BE399D070DB104C636
|
|||
<!-- 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 = 9E32D2A53130F5B7C1F5D0D6607F31CF729F0FB3E7996A6144A361D4580F42EBC1D4BF95BCE8345720FE6AE88A0CD75E7B33EE13EBCBA88AF18BB6AD261092C86339564ED607CCC19A2B33C07C2332155E74F0409A1C653694C9E5E5A5F0B616C7E213582628B20C3BDB237BB0A13EABAD138715495C1BC847E372484D18C1B8484CCB49DC4023B9BEF20EF690BE1255C7AA3AA25D127BCA47C12C5609754B15DD05EADCD37FA262A642F99BB56B74EA00CA44ABFB7A44F0AAB899C4C5B4144C1E5396E1CBCDC6C2AE5344E5F5360A9CEC92EC61709A9CBA7040C4B9125CF87F85587B7CC2A8DA9461331F0CABEA292959DC0F2D3FA6D28B36C4CCBCD32CD0631E8BC65037A8C6280A2638AE6C125B72A5F345206B594C729627F99AEA5F29EDC76921DF8299C67F9CB2A0A33866845D79C60DB8886AD68A18DC9D9F87BB3C1E40E30EB057460A9304B4F6F7D6DE9018647CAA6A7C0719CEF24C898051F354DBE3717CC3C8311F4A01D3609C071AED5157E6F84A3311586F7609D8FAC292050A9D1EB2EBE1F7C9B4399238077BFC646AA75EAE300E112FBF52A44F5917858BE76D68C106B64F74C0E666D5D733BA39318A4E2C82A6F0A105805120556CDAD4FD56F53BBCA6ED939D8D78651AAD42274E2E5E6720CE7A904398AC116F6F5EE89105744F3A64A8060982C4781812C38846F585B59840E39ED3D9F844A0459D0F54E1A3FDC4DF305473660614447AB88EF1C8D406CA70C7858555F8318D17CA87DF79D0A1005249C950F8B1700DD87C18416DA2AB2017D62347470E921BDB9382D20B84BCEF4FE0D9CCEBA82F41E57129D9
|
||||
tmp_aes_key = B9999F36CF51D0F3AB415490489808866DA6081900CB17D50BFF98218DE10C1A
|
||||
tmp_aes_iv = 0729C72EBEC2A2611B8AFBD181369F15641F2B635D5C9DA3B6F30AA2D09D3AB9</code></pre>
|
||||
<pre><code>encrypted_answer = 4990944E5DF7F71E3ADF19448A7C01AE8B58776445B778844A7A4C2BFDF960CCA6A7C223A21D65B3E490EC38D16E47CA68B1A31591D8F7330A82EF64D121B25DE6E411565FC713F024104589F733AA30F74AD986990574DB20C3242EE896F968233D97D883FB20966FC8D972CD3F28E3B1451B9A1143538159865A1E3A005C36DA9597DA16792EACA0D80EED342A8E96E9D3C98EB2A51520DC51677AC45F768A5C7E879A678A873D61AD3A5E7495D2AA051B56094E45BBD9AA03D8EB2532B885C32AE5657AE0162C3E0A4780961D3BD5A17D67E8A6FABB2A86FAB6128AD9EC1F052E72CFBF9B40C3151D4C402FDD5EFA7B69EF25B4FF73C119D912896A90B73C810091EEA4475751D2AB519AFAAA21ABB2DDCE353FC884F310247E06307F134934A9FFD3BC03125BB2297A5C467B2F13EC2EAFE735DE0E072898EF6CABE57DD6516CF8873E8F5D1B64D952724BD0C46FB3C31207DE30DB9004190A006028007B2210D17E7F102D07D3128DC4FB21DAE66C6CFC1A075394164B4AFE5EE4C47F44DC62913D35428826970D0E017DCF9304C9F3783D76280573BBECEC3D1B5ECDD3F516BA5D963C05EE87FAC81EA5824AC46A6755C10812582308949EF7452E62874907A526A3D4024CA88F2F064B36ABF9D8F3C4EA3F5B5D4B3AC233C193AA24620FDE7BBC1A6C4DB6F511A3F02DBEE6ABCFB389B9662F4C68D486019E5734F183634BDAC024C088DA08297932AC858769ABB2C93510A40F73C30760620D6312263AA0BF29AAC041E46EF9C02AAB1B80234F42F8E053CE04646B4DAC988A1724E9E0E7A24F511D4441E0E7BEAC8CA094AB
|
||||
tmp_aes_key = CF537FDF9879314FFB2E219E429CB37756678D2AEB597079226589C313999341
|
||||
tmp_aes_iv = 8E954BAA06C039F427BA6C8E77E1DA643CFBA6CBA2129FE6EEEDFD2A9809E128</code></pre>
|
||||
<!-- end server_DH_inner_data_input -->
|
||||
<p>Yielding:</p>
|
||||
<!-- start server_DH_inner_data_output -->
|
||||
<pre><code>answer_with_hash = 58C17ABE181B5823DD267BBEAD3FEFA7943B5F3DBA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010074F237BC03131D4A943668B9CC26401877C263803EC3BB9DBF1CFA9F9AC1A9ED568FFF2EC0622F129E680BBA4B00CCBE9C7559FB7F524A88EB2D6CA771DC0E329321F19F27BDB4AEFFD2CBF00F6132E76E3C5E2B7A5DA7840DB2D583016B30C9319A918208FE4C8D7633C85F664ED10C92D5DCBEFFC3D174B4B2D1F0C83AD7236320E663B9E746EE438F4EDEE14F7268F74C2AFC6D301174136FE45A7D2C744E1B87F98E5D73DC0B448ECEB83B8448F1C593D444D76B5B5E3E81C30E105E1B786D12A77EBD199CD24214AF0BEF457E7B172C43A5A6E64F35B26919BA8BBBEAF31E5F8CEACEE4D927EF1F4B48A9D6EF0F16E733EE45B556ABBF975D263823CA24ABD58565875C69B9E992834B
|
||||
answer = BA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010074F237BC03131D4A943668B9CC26401877C263803EC3BB9DBF1CFA9F9AC1A9ED568FFF2EC0622F129E680BBA4B00CCBE9C7559FB7F524A88EB2D6CA771DC0E329321F19F27BDB4AEFFD2CBF00F6132E76E3C5E2B7A5DA7840DB2D583016B30C9319A918208FE4C8D7633C85F664ED10C92D5DCBEFFC3D174B4B2D1F0C83AD7236320E663B9E746EE438F4EDEE14F7268F74C2AFC6D301174136FE45A7D2C744E1B87F98E5D73DC0B448ECEB83B8448F1C593D444D76B5B5E3E81C30E105E1B786D12A77EBD199CD24214AF0BEF457E7B172C43A5A6E64F35B26919BA8BBBEAF31E5F8CEACEE4D927EF1F4B48A9D6EF0F16E733EE45B556ABBF975D263823CA24ABD58565875C69B9E992834B</code></pre>
|
||||
<pre><code>answer_with_hash = 2E1091F67B717BFE1238DFB01549A0059899F8E0BA0D89B5189E5DFD0E6AC8145AE053B6B0B0FEAD53D8C9E6C3EEC929BC8284C200374D1903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010024CD49B6D8668347B8F4FA18D3671B54F83CDE7D5F21C601EDA62AE9802120613779E02ED620C76D6A96C782031725EB5168FCA81D8FFC2ABA304B41470C3E5114D5A5A7A2AA53A5CBAA26B40ABAE18E9A04009627CD1A74A7A10ED4ECE9BFE8BFF975DACF64130821B767B36F169BF27167EBD7647CC100458879DC784AE18DB3CB4FF9862F0F3F88A1515434E0A716F75B972BD57C9AD082A640D096A6481412051DF94BBD1B68D4356655153D6666F5B1008094BB2DADC262F15C92C89733363CD524916B49E6E381F7C38CDD361D77FA59A136F19785EC744A002AE803D4A984B04B8EE975A45F148B53CE8743C41252F8D43DA2F98BEA692F7F3A3A8AB4FDE98565DD0DD30FDDB9F187
|
||||
answer = BA0D89B5189E5DFD0E6AC8145AE053B6B0B0FEAD53D8C9E6C3EEC929BC8284C200374D1903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010024CD49B6D8668347B8F4FA18D3671B54F83CDE7D5F21C601EDA62AE9802120613779E02ED620C76D6A96C782031725EB5168FCA81D8FFC2ABA304B41470C3E5114D5A5A7A2AA53A5CBAA26B40ABAE18E9A04009627CD1A74A7A10ED4ECE9BFE8BFF975DACF64130821B767B36F169BF27167EBD7647CC100458879DC784AE18DB3CB4FF9862F0F3F88A1515434E0A716F75B972BD57C9AD082A640D096A6481412051DF94BBD1B68D4356655153D6666F5B1008094BB2DADC262F15C92C89733363CD524916B49E6E381F7C38CDD361D77FA59A136F19785EC744A002AE803D4A984B04B8EE975A45F148B53CE8743C41252F8D43DA2F98BEA692F7F3A3A8AB4FDE98565DD0DD30FDDB9F187</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 EE 38 98 81 A2 78 AD E0 15 5B 03 1B
|
||||
0010 | B8 7D D8 29 93 C1 B1 8D 31 46 40 18 ED A8 55 E5
|
||||
0020 | 30 D8 9A 96 03 00 00 00 FE 00 01 00 C7 1C AE B9
|
||||
<pre><code>0000 | BA 0D 89 B5 18 9E 5D FD 0E 6A C8 14 5A E0 53 B6
|
||||
0010 | B0 B0 FE AD 53 D8 C9 E6 C3 EE C9 29 BC 82 84 C2
|
||||
0020 | 00 37 4D 19 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 = BA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9
|
|||
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 | 74 F2 37 BC 03 13 1D 4A 94 36 68 B9 CC 26 40 18
|
||||
0140 | 77 C2 63 80 3E C3 BB 9D BF 1C FA 9F 9A C1 A9 ED
|
||||
0150 | 56 8F FF 2E C0 62 2F 12 9E 68 0B BA 4B 00 CC BE
|
||||
0160 | 9C 75 59 FB 7F 52 4A 88 EB 2D 6C A7 71 DC 0E 32
|
||||
0170 | 93 21 F1 9F 27 BD B4 AE FF D2 CB F0 0F 61 32 E7
|
||||
0180 | 6E 3C 5E 2B 7A 5D A7 84 0D B2 D5 83 01 6B 30 C9
|
||||
0190 | 31 9A 91 82 08 FE 4C 8D 76 33 C8 5F 66 4E D1 0C
|
||||
01A0 | 92 D5 DC BE FF C3 D1 74 B4 B2 D1 F0 C8 3A D7 23
|
||||
01B0 | 63 20 E6 63 B9 E7 46 EE 43 8F 4E DE E1 4F 72 68
|
||||
01C0 | F7 4C 2A FC 6D 30 11 74 13 6F E4 5A 7D 2C 74 4E
|
||||
01D0 | 1B 87 F9 8E 5D 73 DC 0B 44 8E CE B8 3B 84 48 F1
|
||||
01E0 | C5 93 D4 44 D7 6B 5B 5E 3E 81 C3 0E 10 5E 1B 78
|
||||
01F0 | 6D 12 A7 7E BD 19 9C D2 42 14 AF 0B EF 45 7E 7B
|
||||
0200 | 17 2C 43 A5 A6 E6 4F 35 B2 69 19 BA 8B BB EA F3
|
||||
0210 | 1E 5F 8C EA CE E4 D9 27 EF 1F 4B 48 A9 D6 EF 0F
|
||||
0220 | 16 E7 33 EE 45 B5 56 AB BF 97 5D 26 38 23 CA 24
|
||||
0230 | AB D5 85 65</code></pre>
|
||||
0130 | 24 CD 49 B6 D8 66 83 47 B8 F4 FA 18 D3 67 1B 54
|
||||
0140 | F8 3C DE 7D 5F 21 C6 01 ED A6 2A E9 80 21 20 61
|
||||
0150 | 37 79 E0 2E D6 20 C7 6D 6A 96 C7 82 03 17 25 EB
|
||||
0160 | 51 68 FC A8 1D 8F FC 2A BA 30 4B 41 47 0C 3E 51
|
||||
0170 | 14 D5 A5 A7 A2 AA 53 A5 CB AA 26 B4 0A BA E1 8E
|
||||
0180 | 9A 04 00 96 27 CD 1A 74 A7 A1 0E D4 EC E9 BF E8
|
||||
0190 | BF F9 75 DA CF 64 13 08 21 B7 67 B3 6F 16 9B F2
|
||||
01A0 | 71 67 EB D7 64 7C C1 00 45 88 79 DC 78 4A E1 8D
|
||||
01B0 | B3 CB 4F F9 86 2F 0F 3F 88 A1 51 54 34 E0 A7 16
|
||||
01C0 | F7 5B 97 2B D5 7C 9A D0 82 A6 40 D0 96 A6 48 14
|
||||
01D0 | 12 05 1D F9 4B BD 1B 68 D4 35 66 55 15 3D 66 66
|
||||
01E0 | F5 B1 00 80 94 BB 2D AD C2 62 F1 5C 92 C8 97 33
|
||||
01F0 | 36 3C D5 24 91 6B 49 E6 E3 81 F7 C3 8C DD 36 1D
|
||||
0200 | 77 FA 59 A1 36 F1 97 85 EC 74 4A 00 2A E8 03 D4
|
||||
0210 | A9 84 B0 4B 8E E9 75 A4 5F 14 8B 53 CE 87 43 C4
|
||||
0220 | 12 52 F8 D4 3D A2 F9 8B EA 69 2F 7F 3A 3A 8A B4
|
||||
0230 | FD E9 85 65</code></pre>
|
||||
<p>Payload (de)serialization:</p>
|
||||
<pre><code>server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;</code></pre>
|
||||
<table class="table">
|
||||
|
@ -570,13 +570,13 @@ answer = BA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -594,13 +594,13 @@ answer = BA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9
|
|||
<tr>
|
||||
<td>g_a</td>
|
||||
<td>300, 260</td>
|
||||
<td><code>FE00010074F237BC03131D4A943668B9</code> <code>CC26401877C263803EC3BB9DBF1CFA9F</code> <code>9AC1A9ED568FFF2EC0622F129E680BBA</code> <code>4B00CCBE9C7559FB7F524A88EB2D6CA7</code> <code>71DC0E329321F19F27BDB4AEFFD2CBF0</code> <code>0F6132E76E3C5E2B7A5DA7840DB2D583</code> <code>016B30C9319A918208FE4C8D7633C85F</code> <code>664ED10C92D5DCBEFFC3D174B4B2D1F0</code> <code>C83AD7236320E663B9E746EE438F4EDE</code> <code>E14F7268F74C2AFC6D301174136FE45A</code> <code>7D2C744E1B87F98E5D73DC0B448ECEB8</code> <code>3B8448F1C593D444D76B5B5E3E81C30E</code> <code>105E1B786D12A77EBD199CD24214AF0B</code> <code>EF457E7B172C43A5A6E64F35B26919BA</code> <code>8BBBEAF31E5F8CEACEE4D927EF1F4B48</code> <code>A9D6EF0F16E733EE45B556ABBF975D26</code><br> <code>3823CA24</code></td>
|
||||
<td><code>FE00010024CD49B6D8668347B8F4FA18</code> <code>D3671B54F83CDE7D5F21C601EDA62AE9</code> <code>802120613779E02ED620C76D6A96C782</code> <code>031725EB5168FCA81D8FFC2ABA304B41</code> <code>470C3E5114D5A5A7A2AA53A5CBAA26B4</code> <code>0ABAE18E9A04009627CD1A74A7A10ED4</code> <code>ECE9BFE8BFF975DACF64130821B767B3</code> <code>6F169BF27167EBD7647CC100458879DC</code> <code>784AE18DB3CB4FF9862F0F3F88A15154</code> <code>34E0A716F75B972BD57C9AD082A640D0</code> <code>96A6481412051DF94BBD1B68D4356655</code> <code>153D6666F5B1008094BB2DADC262F15C</code> <code>92C89733363CD524916B49E6E381F7C3</code> <code>8CDD361D77FA59A136F19785EC744A00</code> <code>2AE803D4A984B04B8EE975A45F148B53</code> <code>CE8743C41252F8D43DA2F98BEA692F7F</code><br> <code>3A3A8AB4</code></td>
|
||||
<td><code>g_a</code> diffie-hellman parameter</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_time</td>
|
||||
<td>560, 4</td>
|
||||
<td><code>ABD58565</code> (1703269803 in decimal)</td>
|
||||
<td><code>FDE98565</code> (1703275005 in decimal)</td>
|
||||
<td>Server time</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
@ -609,34 +609,34 @@ answer = BA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9
|
|||
<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 = D66F739F17DEEDA1C9F49C223DCD4DF0255C78819AAB02C2D69E95D846CD9B9F790835C59713AF53A2CF5AA06F855AA1E4B835B8B9EBA25EF92068D86B78A648286A99449104471FB7BF424E3FAED841A60FD290D39263A2CF1072910F38D510F377634896B3FADD459C028A77FFCF5A5BD3810EE57D49FE693EEC09E98934900B562D854876F9CD197A746C2958FBC2B5D59CEF64B7354674D7268B3728C2546BC9E111650BFDFF216D6AE7AAF20E3DB7AA1C04F30EDA10F9DC0368CA8AA02818A3FE53A1A798B4DBCF3BDBD43305693FD01EB7389AEFD099DF7B0121E6CCF9AB69CA66D292631C5C75617AA0758CEDFD55784738BAE6A31124D77596A5982B</code></pre>
|
||||
<pre><code>b = 80C01C6C35246EEE787F9FEA25B1FA1836E71B6EC710FE2080D0581FEEA7C3DA14B40A9787FDDE368250AD6459B482A61C5EC80EB69E45157443F11AC12606251079FCB2EAFEC2A4550759B8A1240A6D43AD853F8C02E1C29783DBE5FEE22F42DF61D12A29271A2597CA404AE11329EE0714DCBAEE2BEBDACC9200D773D9F6E6639F5B9BED0FBE8FE919842934971F591060BE5AC5C5E3864839872734AB8179D9BEB281F87E3047ED04DDF40A158017B22536BF2BBCD2759495CF1FA23C757EE02F2C7EEE9F04CA6CE1D6841EE004C3EAF2E2A18AE66B1E0FCE2C8FDB4A8DD3ABFD740E3B755D9B719D0DEA741782252922C576DCFC4F6D1184313BA28C3EE9</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 = 601769B88D746B65AAAA1C6105EBCBBBA5EFD3891E0F618E16309AFF062609E3D126784E6B67EF632C432B08C2CEEC7D243D5174A1D78558FC3F18BE5B02A4FDA8B88C0E6F5BDF87E1FC2E2DE7D690F1EEAB14F16A587DA85BC144FB7B5808191760F2ADDB20E3C97E56DC4A27531788A08AC76B4EC9C207BC07696D2C42CFF03EA1C1AC4F78DC347B00F0D7E8F683AE5BDC9422C7605D391D12BA21E88B89A28B59A1AA3B510ED9558C26C02C6EAEB653550BE3C6FCFC8A7F2B58C7F718CB35CB079DEC9189A00DB6815528AD93A2ECA99A50828B324A55117C97C2165918E43958B926844FB0957FA419FC9343CEF5347A5A2384B293AF3BCF5DE635DB0F1C</code></pre>
|
||||
<pre><code>g_b = 0B6BAF090D24DE7CD22B6F4C1F9AC06AED68D3EF23DC60DC9BFDAF3A5EB1870F4E8DEC6AE2AD832904F3C3185FE2160347C4EBBEAD18DAB0CEFA78C7E13B17E8A2377FE54A2F9FFDEA51FF3953D309FC618E034FDCC300120DB9A75E2F62D68AF288164A38E2206EDCE2AB74D76886D0D5CA742F3C825AAE199AB606EBA20966C7BCB3811FB51988A9281428E46D00017D6C05A34DB9FB444181229BE40639BB964DD109DEC9998A83AD5D634B799F0ED323BB310BA0D2E4F76363418A3666655C086B6CFC71B9890D7ADFEB87B0B592C4A3506FEBF7730C9BE1DACE3E41B006870F41E9A4E89B4CFA672BC459D31BD34B1A18592B639DF2FFB4679C46559114</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 EE 38 98 81 A2 78 AD E0 15 5B 03 1B
|
||||
0010 | B8 7D D8 29 93 C1 B1 8D 31 46 40 18 ED A8 55 E5
|
||||
0020 | 30 D8 9A 96 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 60 17 69 B8 8D 74 6B 65 AA AA 1C 61 05 EB CB BB
|
||||
0040 | A5 EF D3 89 1E 0F 61 8E 16 30 9A FF 06 26 09 E3
|
||||
0050 | D1 26 78 4E 6B 67 EF 63 2C 43 2B 08 C2 CE EC 7D
|
||||
0060 | 24 3D 51 74 A1 D7 85 58 FC 3F 18 BE 5B 02 A4 FD
|
||||
0070 | A8 B8 8C 0E 6F 5B DF 87 E1 FC 2E 2D E7 D6 90 F1
|
||||
0080 | EE AB 14 F1 6A 58 7D A8 5B C1 44 FB 7B 58 08 19
|
||||
0090 | 17 60 F2 AD DB 20 E3 C9 7E 56 DC 4A 27 53 17 88
|
||||
00A0 | A0 8A C7 6B 4E C9 C2 07 BC 07 69 6D 2C 42 CF F0
|
||||
00B0 | 3E A1 C1 AC 4F 78 DC 34 7B 00 F0 D7 E8 F6 83 AE
|
||||
00C0 | 5B DC 94 22 C7 60 5D 39 1D 12 BA 21 E8 8B 89 A2
|
||||
00D0 | 8B 59 A1 AA 3B 51 0E D9 55 8C 26 C0 2C 6E AE B6
|
||||
00E0 | 53 55 0B E3 C6 FC FC 8A 7F 2B 58 C7 F7 18 CB 35
|
||||
00F0 | CB 07 9D EC 91 89 A0 0D B6 81 55 28 AD 93 A2 EC
|
||||
0100 | A9 9A 50 82 8B 32 4A 55 11 7C 97 C2 16 59 18 E4
|
||||
0110 | 39 58 B9 26 84 4F B0 95 7F A4 19 FC 93 43 CE F5
|
||||
0120 | 34 7A 5A 23 84 B2 93 AF 3B CF 5D E6 35 DB 0F 1C</code></pre>
|
||||
<pre><code>0000 | 54 B6 43 66 18 9E 5D FD 0E 6A C8 14 5A E0 53 B6
|
||||
0010 | B0 B0 FE AD 53 D8 C9 E6 C3 EE C9 29 BC 82 84 C2
|
||||
0020 | 00 37 4D 19 00 00 00 00 00 00 00 00 FE 00 01 00
|
||||
0030 | 0B 6B AF 09 0D 24 DE 7C D2 2B 6F 4C 1F 9A C0 6A
|
||||
0040 | ED 68 D3 EF 23 DC 60 DC 9B FD AF 3A 5E B1 87 0F
|
||||
0050 | 4E 8D EC 6A E2 AD 83 29 04 F3 C3 18 5F E2 16 03
|
||||
0060 | 47 C4 EB BE AD 18 DA B0 CE FA 78 C7 E1 3B 17 E8
|
||||
0070 | A2 37 7F E5 4A 2F 9F FD EA 51 FF 39 53 D3 09 FC
|
||||
0080 | 61 8E 03 4F DC C3 00 12 0D B9 A7 5E 2F 62 D6 8A
|
||||
0090 | F2 88 16 4A 38 E2 20 6E DC E2 AB 74 D7 68 86 D0
|
||||
00A0 | D5 CA 74 2F 3C 82 5A AE 19 9A B6 06 EB A2 09 66
|
||||
00B0 | C7 BC B3 81 1F B5 19 88 A9 28 14 28 E4 6D 00 01
|
||||
00C0 | 7D 6C 05 A3 4D B9 FB 44 41 81 22 9B E4 06 39 BB
|
||||
00D0 | 96 4D D1 09 DE C9 99 8A 83 AD 5D 63 4B 79 9F 0E
|
||||
00E0 | D3 23 BB 31 0B A0 D2 E4 F7 63 63 41 8A 36 66 65
|
||||
00F0 | 5C 08 6B 6C FC 71 B9 89 0D 7A DF EB 87 B0 B5 92
|
||||
0100 | C4 A3 50 6F EB F7 73 0C 9B E1 DA CE 3E 41 B0 06
|
||||
0110 | 87 0F 41 E9 A4 E8 9B 4C FA 67 2B C4 59 D3 1B D3
|
||||
0120 | 4B 1A 18 59 2B 63 9D F2 FF B4 67 9C 46 55 91 14</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 = BA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9
|
|||
<tr>
|
||||
<td>nonce</td>
|
||||
<td>4, 16</td>
|
||||
<td><code>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>20, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>g_b</td>
|
||||
<td>36, 260</td>
|
||||
<td><code>FE000100601769B88D746B65AAAA1C61</code> <code>05EBCBBBA5EFD3891E0F618E16309AFF</code> <code>062609E3D126784E6B67EF632C432B08</code> <code>C2CEEC7D243D5174A1D78558FC3F18BE</code> <code>5B02A4FDA8B88C0E6F5BDF87E1FC2E2D</code> <code>E7D690F1EEAB14F16A587DA85BC144FB</code> <code>7B5808191760F2ADDB20E3C97E56DC4A</code> <code>27531788A08AC76B4EC9C207BC07696D</code> <code>2C42CFF03EA1C1AC4F78DC347B00F0D7</code> <code>E8F683AE5BDC9422C7605D391D12BA21</code> <code>E88B89A28B59A1AA3B510ED9558C26C0</code> <code>2C6EAEB653550BE3C6FCFC8A7F2B58C7</code> <code>F718CB35CB079DEC9189A00DB6815528</code> <code>AD93A2ECA99A50828B324A55117C97C2</code> <code>165918E43958B926844FB0957FA419FC</code> <code>9343CEF5347A5A2384B293AF3BCF5DE6</code><br> <code>35DB0F1C</code></td>
|
||||
<td><code>FE0001000B6BAF090D24DE7CD22B6F4C</code> <code>1F9AC06AED68D3EF23DC60DC9BFDAF3A</code> <code>5EB1870F4E8DEC6AE2AD832904F3C318</code> <code>5FE2160347C4EBBEAD18DAB0CEFA78C7</code> <code>E13B17E8A2377FE54A2F9FFDEA51FF39</code> <code>53D309FC618E034FDCC300120DB9A75E</code> <code>2F62D68AF288164A38E2206EDCE2AB74</code> <code>D76886D0D5CA742F3C825AAE199AB606</code> <code>EBA20966C7BCB3811FB51988A9281428</code> <code>E46D00017D6C05A34DB9FB444181229B</code> <code>E40639BB964DD109DEC9998A83AD5D63</code> <code>4B799F0ED323BB310BA0D2E4F7636341</code> <code>8A3666655C086B6CFC71B9890D7ADFEB</code> <code>87B0B592C4A3506FEBF7730C9BE1DACE</code> <code>3E41B006870F41E9A4E89B4CFA672BC4</code> <code>59D31BD34B1A18592B639DF2FFB4679C</code><br> <code>46559114</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 = BA0D89B5EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A9
|
|||
<!-- 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 = 54B64366EE389881A278ADE0155B031BB87DD82993C1B18D31464018EDA855E530D89A960000000000000000FE000100601769B88D746B65AAAA1C6105EBCBBBA5EFD3891E0F618E16309AFF062609E3D126784E6B67EF632C432B08C2CEEC7D243D5174A1D78558FC3F18BE5B02A4FDA8B88C0E6F5BDF87E1FC2E2DE7D690F1EEAB14F16A587DA85BC144FB7B5808191760F2ADDB20E3C97E56DC4A27531788A08AC76B4EC9C207BC07696D2C42CFF03EA1C1AC4F78DC347B00F0D7E8F683AE5BDC9422C7605D391D12BA21E88B89A28B59A1AA3B510ED9558C26C02C6EAEB653550BE3C6FCFC8A7F2B58C7F718CB35CB079DEC9189A00DB6815528AD93A2ECA99A50828B324A55117C97C2165918E43958B926844FB0957FA419FC9343CEF5347A5A2384B293AF3BCF5DE635DB0F1C
|
||||
padding = 8408E875F1DD235836F0162B
|
||||
tmp_aes_key = B9999F36CF51D0F3AB415490489808866DA6081900CB17D50BFF98218DE10C1A
|
||||
tmp_aes_iv = 0729C72EBEC2A2611B8AFBD181369F15641F2B635D5C9DA3B6F30AA2D09D3AB9</code></pre>
|
||||
<pre><code>data = 54B64366189E5DFD0E6AC8145AE053B6B0B0FEAD53D8C9E6C3EEC929BC8284C200374D190000000000000000FE0001000B6BAF090D24DE7CD22B6F4C1F9AC06AED68D3EF23DC60DC9BFDAF3A5EB1870F4E8DEC6AE2AD832904F3C3185FE2160347C4EBBEAD18DAB0CEFA78C7E13B17E8A2377FE54A2F9FFDEA51FF3953D309FC618E034FDCC300120DB9A75E2F62D68AF288164A38E2206EDCE2AB74D76886D0D5CA742F3C825AAE199AB606EBA20966C7BCB3811FB51988A9281428E46D00017D6C05A34DB9FB444181229BE40639BB964DD109DEC9998A83AD5D634B799F0ED323BB310BA0D2E4F76363418A3666655C086B6CFC71B9890D7ADFEB87B0B592C4A3506FEBF7730C9BE1DACE3E41B006870F41E9A4E89B4CFA672BC459D31BD34B1A18592B639DF2FFB4679C46559114
|
||||
padding = 9F846C85D3C7DD330FECD76D
|
||||
tmp_aes_key = CF537FDF9879314FFB2E219E429CB37756678D2AEB597079226589C313999341
|
||||
tmp_aes_iv = 8E954BAA06C039F427BA6C8E77E1DA643CFBA6CBA2129FE6EEEDFD2A9809E128</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 = 10261D5A6B92AE7AF5B7A0258B9308FC18E06974A1AD1D49B2839CD60990A5A92FD755D54D0E24E9010E2AA0B50DEE6E18FB06A78C76E2D2F5F02781675A95F501B6EA76D1885C693BE75B4B99FFCDCB64782CB8617720E2690A87007714CEB5320533285EE1F5800613EC0F3ED2DC0DB5002936C24944B0646FF023E86C529DCCD6FAA56533BBF532123B463EB51243368BFC297ADA2C2BB585FF48F0C476D3DD899FD04A964830D4F4CA27939D4D226A5663A9C4C9731AC44E334BF84F98E03B8003A04C889D86D81CFC559A31AF449C9C9085BFE50149D3F0B3555906468F579BA86A129AA0EB2FEE03BF1FCD30CBDDA4BD88B4B2D73DDF766E3C181A5161AA8293DDBD44A22D83EB4CC1907B1394F4BCAE4CE52D9FD3F8DB897AD9C5F43CBD487799DF69ABE119AF7511E3F640FCC211538075A06BC531E6B4597E5B56D283D534B79667BC3BCA94E53EBC7B3BEA</code></pre>
|
||||
<pre><code>encrypted_data = 9F28C26255696EB825338D79912369103C7784D8C0B31EDA9EBD4962CBBEC508F3BAF2B1BDE659282DB2E16EA6C94DC6E7C42FDEB51004CEAB3812269A14D4C584E03D0D6DDBC19D900A469B11DDC9879235F2F74EB124C3D365C96F5B6B4B92729A760F724996129DD9202225B0F63B05690B3889D60FF553FD28EA57EFBDEB3E5EE6780CEC17503623FFD466DF8E2D4B74143501839B3E3E14005E7627EDA5D2D39872B600D324BF7C4804355D52ECD700B509524EB5C2DA2E791D2983A240F8908394985F78D0855BFBFF58C0961FED41B5FBBB4D2865EF58C62FBA6BE1F119B36FAA8481248C35266DE83D6388F777736A0731FF7C557464580DAF234532AEBA9A13BD8F7E3B6F6BD581BC9D16174016CBD141298210FC60B294129FA0F8D795FE6095BDDE307C212E5E95090EFDC7958CEEFD05DF8122714753B4642FD04A2981DE3A54DDB9B3FE4698C0093EA0</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 BC B6 0B 00 AB D5 85 65
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 EE 38 98 81 A2 78 AD E0
|
||||
0020 | 15 5B 03 1B B8 7D D8 29 93 C1 B1 8D 31 46 40 18
|
||||
0030 | ED A8 55 E5 30 D8 9A 96 FE 50 01 00 10 26 1D 5A
|
||||
0040 | 6B 92 AE 7A F5 B7 A0 25 8B 93 08 FC 18 E0 69 74
|
||||
0050 | A1 AD 1D 49 B2 83 9C D6 09 90 A5 A9 2F D7 55 D5
|
||||
0060 | 4D 0E 24 E9 01 0E 2A A0 B5 0D EE 6E 18 FB 06 A7
|
||||
0070 | 8C 76 E2 D2 F5 F0 27 81 67 5A 95 F5 01 B6 EA 76
|
||||
0080 | D1 88 5C 69 3B E7 5B 4B 99 FF CD CB 64 78 2C B8
|
||||
0090 | 61 77 20 E2 69 0A 87 00 77 14 CE B5 32 05 33 28
|
||||
00A0 | 5E E1 F5 80 06 13 EC 0F 3E D2 DC 0D B5 00 29 36
|
||||
00B0 | C2 49 44 B0 64 6F F0 23 E8 6C 52 9D CC D6 FA A5
|
||||
00C0 | 65 33 BB F5 32 12 3B 46 3E B5 12 43 36 8B FC 29
|
||||
00D0 | 7A DA 2C 2B B5 85 FF 48 F0 C4 76 D3 DD 89 9F D0
|
||||
00E0 | 4A 96 48 30 D4 F4 CA 27 93 9D 4D 22 6A 56 63 A9
|
||||
00F0 | C4 C9 73 1A C4 4E 33 4B F8 4F 98 E0 3B 80 03 A0
|
||||
0100 | 4C 88 9D 86 D8 1C FC 55 9A 31 AF 44 9C 9C 90 85
|
||||
0110 | BF E5 01 49 D3 F0 B3 55 59 06 46 8F 57 9B A8 6A
|
||||
0120 | 12 9A A0 EB 2F EE 03 BF 1F CD 30 CB DD A4 BD 88
|
||||
0130 | B4 B2 D7 3D DF 76 6E 3C 18 1A 51 61 AA 82 93 DD
|
||||
0140 | BD 44 A2 2D 83 EB 4C C1 90 7B 13 94 F4 BC AE 4C
|
||||
0150 | E5 2D 9F D3 F8 DB 89 7A D9 C5 F4 3C BD 48 77 99
|
||||
0160 | DF 69 AB E1 19 AF 75 11 E3 F6 40 FC C2 11 53 80
|
||||
0170 | 75 A0 6B C5 31 E6 B4 59 7E 5B 56 D2 83 D5 34 B7
|
||||
0180 | 96 67 BC 3B CA 94 E5 3E BC 7B 3B EA</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 10 D0 0C 00 FD E9 85 65
|
||||
0010 | 78 01 00 00 1F 5F 04 F5 18 9E 5D FD 0E 6A C8 14
|
||||
0020 | 5A E0 53 B6 B0 B0 FE AD 53 D8 C9 E6 C3 EE C9 29
|
||||
0030 | BC 82 84 C2 00 37 4D 19 FE 50 01 00 9F 28 C2 62
|
||||
0040 | 55 69 6E B8 25 33 8D 79 91 23 69 10 3C 77 84 D8
|
||||
0050 | C0 B3 1E DA 9E BD 49 62 CB BE C5 08 F3 BA F2 B1
|
||||
0060 | BD E6 59 28 2D B2 E1 6E A6 C9 4D C6 E7 C4 2F DE
|
||||
0070 | B5 10 04 CE AB 38 12 26 9A 14 D4 C5 84 E0 3D 0D
|
||||
0080 | 6D DB C1 9D 90 0A 46 9B 11 DD C9 87 92 35 F2 F7
|
||||
0090 | 4E B1 24 C3 D3 65 C9 6F 5B 6B 4B 92 72 9A 76 0F
|
||||
00A0 | 72 49 96 12 9D D9 20 22 25 B0 F6 3B 05 69 0B 38
|
||||
00B0 | 89 D6 0F F5 53 FD 28 EA 57 EF BD EB 3E 5E E6 78
|
||||
00C0 | 0C EC 17 50 36 23 FF D4 66 DF 8E 2D 4B 74 14 35
|
||||
00D0 | 01 83 9B 3E 3E 14 00 5E 76 27 ED A5 D2 D3 98 72
|
||||
00E0 | B6 00 D3 24 BF 7C 48 04 35 5D 52 EC D7 00 B5 09
|
||||
00F0 | 52 4E B5 C2 DA 2E 79 1D 29 83 A2 40 F8 90 83 94
|
||||
0100 | 98 5F 78 D0 85 5B FB FF 58 C0 96 1F ED 41 B5 FB
|
||||
0110 | BB 4D 28 65 EF 58 C6 2F BA 6B E1 F1 19 B3 6F AA
|
||||
0120 | 84 81 24 8C 35 26 6D E8 3D 63 88 F7 77 73 6A 07
|
||||
0130 | 31 FF 7C 55 74 64 58 0D AF 23 45 32 AE BA 9A 13
|
||||
0140 | BD 8F 7E 3B 6F 6B D5 81 BC 9D 16 17 40 16 CB D1
|
||||
0150 | 41 29 82 10 FC 60 B2 94 12 9F A0 F8 D7 95 FE 60
|
||||
0160 | 95 BD DE 30 7C 21 2E 5E 95 09 0E FD C7 95 8C EE
|
||||
0170 | FD 05 DF 81 22 71 47 53 B4 64 2F D0 4A 29 81 DE
|
||||
0180 | 3A 54 DD B9 B3 FE 46 98 C0 09 3E A0</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>BCB60B00ABD58565</code></td>
|
||||
<td><code>10D00C00FDE98565</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 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>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>encrypted_data</td>
|
||||
<td>56, 340</td>
|
||||
<td><code>FE50010010261D5A6B92AE7AF5B7A025</code> <code>8B9308FC18E06974A1AD1D49B2839CD6</code> <code>0990A5A92FD755D54D0E24E9010E2AA0</code> <code>B50DEE6E18FB06A78C76E2D2F5F02781</code> <code>675A95F501B6EA76D1885C693BE75B4B</code> <code>99FFCDCB64782CB8617720E2690A8700</code> <code>7714CEB5320533285EE1F5800613EC0F</code> <code>3ED2DC0DB5002936C24944B0646FF023</code> <code>E86C529DCCD6FAA56533BBF532123B46</code> <code>3EB51243368BFC297ADA2C2BB585FF48</code> <code>F0C476D3DD899FD04A964830D4F4CA27</code> <code>939D4D226A5663A9C4C9731AC44E334B</code> <code>F84F98E03B8003A04C889D86D81CFC55</code> <code>9A31AF449C9C9085BFE50149D3F0B355</code> <code>5906468F579BA86A129AA0EB2FEE03BF</code> <code>1FCD30CBDDA4BD88B4B2D73DDF766E3C</code> <code>181A5161AA8293DDBD44A22D83EB4CC1</code> <code>907B1394F4BCAE4CE52D9FD3F8DB897A</code> <code>D9C5F43CBD487799DF69ABE119AF7511</code> <code>E3F640FCC211538075A06BC531E6B459</code> <code>7E5B56D283D534B79667BC3BCA94E53E</code><br> <code>BC7B3BEA</code></td>
|
||||
<td><code>FE5001009F28C26255696EB825338D79</code> <code>912369103C7784D8C0B31EDA9EBD4962</code> <code>CBBEC508F3BAF2B1BDE659282DB2E16E</code> <code>A6C94DC6E7C42FDEB51004CEAB381226</code> <code>9A14D4C584E03D0D6DDBC19D900A469B</code> <code>11DDC9879235F2F74EB124C3D365C96F</code> <code>5B6B4B92729A760F724996129DD92022</code> <code>25B0F63B05690B3889D60FF553FD28EA</code> <code>57EFBDEB3E5EE6780CEC17503623FFD4</code> <code>66DF8E2D4B74143501839B3E3E14005E</code> <code>7627EDA5D2D39872B600D324BF7C4804</code> <code>355D52ECD700B509524EB5C2DA2E791D</code> <code>2983A240F8908394985F78D0855BFBFF</code> <code>58C0961FED41B5FBBB4D2865EF58C62F</code> <code>BA6BE1F119B36FAA8481248C35266DE8</code> <code>3D6388F777736A0731FF7C557464580D</code> <code>AF234532AEBA9A13BD8F7E3B6F6BD581</code> <code>BC9D16174016CBD141298210FC60B294</code> <code>129FA0F8D795FE6095BDDE307C212E5E</code> <code>95090EFDC7958CEEFD05DF8122714753</code> <code>B4642FD04A2981DE3A54DDB9B3FE4698</code><br> <code>C0093EA0</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 = A094E7B849A3D77BF20868297AEA3E0CD4A885853B671328F2E8589A88FC397208A0DD5809878E5B5CB459D02A26045E0740DD3A70981F1C3C326AD0B22BDD934482A92679D1BF71A51B1286882151943BD1707BD00BBA0E275230AC3886CD7FD2512430638671FBB8EF0C10136021D700057A7DFC619AD9528719B5C0AA8885B7909A6ED5DC6FC244B540B1474B2636B1E2950E84BFE2B07B008A5B6DE3B54CCC4DBF01243C70F9BA14FCFC663E1BC13DFFFEAF642116C54600AFB3CF85B48B6F64736419E1BEFC79F8E082251041EC648BFD94EC96438310A5E6A91BA7A286CAEA3FF2AECAD5FF436675A3328FA077AA8BA9B88BCA282100915628F0471AEF</code></pre>
|
||||
<pre><code>auth_key = 86E125594578BDE4CBCB496A8F0DAF54B10C16893A48C9E92D340734CF0052DAD976AD808ADB14AB8C34A32D0D85E18588C43E5A859337792CC7729640230D367D60FFD71BCEB4A810FF8FD0EF0597A6DE4E71E0A487C1BDF1765BC7F5C9F78C8EF66E49291838021A522C3686772DA45F40760C7E3F371A6F47F48AE9AE5AFD93BFE63C156FC8651691AD40BCDB41D5A7C0A1596AD707C34BF61C8D5723F367FCEB198F321869E3E1D44A9EB433E8DD44625FA0511913FB74AFA6ACA6CC6A8842A9EB2032D6DE5822564F74F75B32972231932240C68EF463AD123DD93A34096010989213784A5F15DCA9B5D3CB25CF3AED9BEBDAB25271B9520C9EEA5B86EC</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 18 9F 42 AC D5 85 65
|
||||
0010 | 94 00 00 00 34 F7 CB 3B EE 38 98 81 A2 78 AD E0
|
||||
0020 | 15 5B 03 1B B8 7D D8 29 93 C1 B1 8D 31 46 40 18
|
||||
0030 | ED A8 55 E5 30 D8 9A 96 5A 8C F1 49 6A 43 A2 62
|
||||
0040 | 8A 54 F3 1D 8B 88 07 AD</code></pre>
|
||||
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 6C 55 0F FE E9 85 65
|
||||
0010 | AC 00 00 00 34 F7 CB 3B 18 9E 5D FD 0E 6A C8 14
|
||||
0020 | 5A E0 53 B6 B0 B0 FE AD 53 D8 C9 E6 C3 EE C9 29
|
||||
0030 | BC 82 84 C2 00 37 4D 19 EE DD 05 3D B1 27 BC 7C
|
||||
0040 | 83 B0 CA 44 80 25 EA A9</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>01189F42ACD58565</code></td>
|
||||
<td><code>016C550FFEE98565</code></td>
|
||||
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() << 32) + (N*4)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>message_length</td>
|
||||
<td>16, 4</td>
|
||||
<td><code>94000000</code> (148 in decimal)</td>
|
||||
<td><code>AC000000</code> (172 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>EE389881A278ADE0155B031BB87DD829</code></td>
|
||||
<td><code>189E5DFD0E6AC8145AE053B6B0B0FEAD</code></td>
|
||||
<td>Value generated by client in Step 1</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>server_nonce</td>
|
||||
<td>40, 16</td>
|
||||
<td><code>93C1B18D31464018EDA855E530D89A96</code></td>
|
||||
<td><code>53D8C9E6C3EEC929BC8284C200374D19</code></td>
|
||||
<td>Value received from server in Step 2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>new_nonce_hash1</td>
|
||||
<td>56, 16</td>
|
||||
<td><code>5A8CF1496A43A2628A54F31D8B8807AD</code></td>
|
||||
<td><code>EEDD053DB127BC7C83B0CA448025EAA9</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>
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/inputInvoicePremiumGiftCode">inputInvoicePremiumGiftCode</a></td>
|
||||
<td> </td>
|
||||
<td>Used if the user wishes to start a channel <a href="/api/giveaways">giveaway</a> or send some <a href="/api/giveaways">giftcodes</a> to members of a channel, in exchange for <a href="/api/boost">boosts</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
|
@ -78,11 +78,11 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/inputStorePaymentPremiumGiftCode">inputStorePaymentPremiumGiftCode</a></td>
|
||||
<td> </td>
|
||||
<td>Used to gift <a href="/api/premium">Telegram Premium</a> subscriptions only to some specific subscribers of a channel or to some of our contacts, see <a href="/api/giveaways">here »</a> for more info on giveaways and gifts.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/inputStorePaymentPremiumGiveaway">inputStorePaymentPremiumGiveaway</a></td>
|
||||
<td> </td>
|
||||
<td>Used to pay for a <a href="/api/giveaways">giveaway, see here »</a> for more info.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
|
@ -259,15 +259,15 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/messageActionGiftCode">messageActionGiftCode</a></td>
|
||||
<td> </td>
|
||||
<td>Contains a <a href="/api/links#premium-giftcode-links">Telegram Premium giftcode link</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/messageActionGiveawayLaunch">messageActionGiveawayLaunch</a></td>
|
||||
<td> </td>
|
||||
<td>A <a href="/api/giveaways">giveaway</a> was started.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/messageActionGiveawayResults">messageActionGiveawayResults</a></td>
|
||||
<td> </td>
|
||||
<td>A <a href="/api/giveaways">giveaway</a> has ended.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
|
@ -143,7 +143,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/messageMediaGiveaway">messageMediaGiveaway</a></td>
|
||||
<td> </td>
|
||||
<td>Contains info about a <a href="/api/giveaways">giveaway, see here »</a> for more info.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/constructor/prepaidGiveaway">prepaidGiveaway</a></td>
|
||||
<td> </td>
|
||||
<td>Contains info about a <a href="/api/giveaways">prepaid giveaway »</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -658,7 +658,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a></td>
|
||||
<td> </td>
|
||||
<td>Users may also choose to display messages from all topics as if they were sent to a normal group, using a "View as messages" setting in the local client. <br>This setting only affects the current account, and is synced to other logged in sessions using the <a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a> method; invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="/constructor/updatePeerWallpaper">updatePeerWallpaper</a></td>
|
||||
|
|
|
@ -606,7 +606,7 @@
|
|||
</tr>
|
||||
<tr>
|
||||
<td><a href="/method/channels.toggleViewForumAsMessages">channels.toggleViewForumAsMessages</a></td>
|
||||
<td>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.<br><br>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a>.</td>
|
||||
<td>Users may also choose to display messages from all topics of a <a href="/api/forum">forum</a> as if they were sent to a normal group, using a "View as messages" setting in the local client: this setting only affects the current account, and is synced to other logged in sessions using this method.<br><br>Invoking this method will update the value of the <code>view_forum_as_messages</code> flag of <a href="/constructor/channelFull">channelFull</a> or <a href="/constructor/dialog">dialog</a> and emit an <a href="/constructor/updateChannelViewForumAsMessages">updateChannelViewForumAsMessages</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
|
|
|
@ -71,7 +71,7 @@
|
|||
<tbody>
|
||||
<tr>
|
||||
<td><a href="/constructor/payments.checkedGiftCode">payments.checkedGiftCode</a></td>
|
||||
<td> </td>
|
||||
<td>Contains info about a <a href="/api/links#premium-giftcode-links">Telegram Premium giftcode link</a>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
@ -2218,12 +2218,6 @@ a.pr-account-button-wrap:focus {
|
|||
.field-readonly .pr-form-control-wrap:after {
|
||||
display: none;
|
||||
}
|
||||
.pr-form-control-wrap.has-locked .input,
|
||||
.pr-form-control-wrap.has-locked input.form-control,
|
||||
.pr-form-control-wrap.has-locked .select {
|
||||
padding-right: 40px;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.pr-form-control-wrap.has-photo .pr-form-control,
|
||||
.pr-form-control-wrap.has-progress.field-loading .pr-form-control {
|
||||
padding-right: 48px;
|
||||
|
|
Loading…
Reference in a new issue