diff --git a/data/web/corefork.telegram.org/api/action-bar.html b/data/web/corefork.telegram.org/api/action-bar.html
index b347c98fe0..c7bdc8ffdc 100644
--- a/data/web/corefork.telegram.org/api/action-bar.html
+++ b/data/web/corefork.telegram.org/api/action-bar.html
@@ -2,12 +2,12 @@
- Action-bar
+ Action bar
-
-
+
+
-
+
@@ -39,8 +39,8 @@
-
-
Action-bar
+
+
Action bar
@@ -92,7 +92,6 @@ Optionally, the
peerSettings .
need_
Condition : the peerSettings .report_spam
flag must be set, and the peerSettings .add_contact
, peerSettings .block_contact
flags must not be set.
Additionally, if the chat was automatically archived » (according to peerSettings .autoarchived
), an extra button can be shown to unarchive the chat as specified here » instead of reporting it.
Add contact
-Schema:
---functions---
contacts.addContact #e8f463d0 flags:# add_phone_privacy_exception:flags.0?true id:InputUser first_name:string last_name:string phone:string = Updates ;
@@ -104,7 +103,6 @@ Optionally, the peerSettings .need_
Optionally, the peerSettings .need_contacts_exception
flag may also be set: if so, the add_phone_privacy_exception
flag must be set if the user clicks on the add contact button, invoking contacts.addContact .
Share phone number
-Schema:
---functions---
contacts.acceptContact #f831a20f id:InputUser = Updates ;
@@ -120,7 +118,6 @@ Optionally, the peerSettings .need_
This bar indicates that the associated location-based supergroup can be reported for having an unrelated location using a bar button that invokes account.reportPeer with reason
inputReportReasonGeoIrrelevant .
Condition : the peerSettings .report_geo
flag must be set.
Invite new members
-Schema:
---functions---
messages.addChatUser #f24753e3 chat_id:long user_id:InputUser fwd_limit:int = Updates ;
diff --git a/data/web/corefork.telegram.org/api/block.html b/data/web/corefork.telegram.org/api/block.html
index 62370ae49c..3aede65ac7 100644
--- a/data/web/corefork.telegram.org/api/block.html
+++ b/data/web/corefork.telegram.org/api/block.html
@@ -2,18 +2,12 @@
- Block
+ Blocklist
-
-
+
+
-
+
@@ -45,8 +39,8 @@ contacts.blocked#ade1591…">
-
-
Block
+
+
Blocklist
+
Administrators can also choose to send a message to the user before admitting them into the group: in this case, graphical clients on the user side should display a message on the dialog bar of the chat with the admin, indicating that the chat was initiated by the admin of a chat/channel they have recently requested to join, see the action bar documentation » for more info.
diff --git a/data/web/corefork.telegram.org/api/links.html b/data/web/corefork.telegram.org/api/links.html
index 9801d5b5bb..9b66ca277f 100644
--- a/data/web/corefork.telegram.org/api/links.html
+++ b/data/web/corefork.telegram.org/api/links.html
@@ -366,7 +366,7 @@ tg://addemoji?set=<slug>
Boost links
Used by users to boost channels » , granting them the ability to post stories.
-
Use the channel information to boost the channel as describere here » .
+
Use the channel information to boost the channel as described here » .
t.me
syntax (public channels):
t.me/<username>?boost
t.me
syntax (private channels):
diff --git a/data/web/corefork.telegram.org/api/nearby.html b/data/web/corefork.telegram.org/api/nearby.html
index 1e51420969..a4ef677787 100644
--- a/data/web/corefork.telegram.org/api/nearby.html
+++ b/data/web/corefork.telegram.org/api/nearby.html
@@ -2,14 +2,12 @@
-
Nearby
+
Nearby users&chats
-
-
+
+
-
+
@@ -41,8 +39,8 @@ Fetching nearby users & geogroups…">
-
-
Nearby
+
+
Nearby users&chats
@@ -54,7 +52,7 @@ Fetching nearby users & geogroups…">
contacts.getLocated #d348bc44 flags:
# background:flags.1?
true geo_point:
InputGeoPoint self_expires:flags.0?
int =
Updates ;
Use contacts.getLocated to fetch a list of nearby users and groups.
-
Do not set any of the background
, self_expires
flags: only populate geo_point
with the current geolocation of the user: a list of users and geochats located nearby will be returned.
+
Do not set any of the background
, self_expires
flags: only populate geo_point
with the current geolocation of the user: a list of users and geochats located nearby will be returned (without publishing the current location of the user).
This functionality is useful for example to exchange contacts with a nearby Telegram user, or join a location-based group chat, see here » for more usecases.
See here » for more info on how to create a geogroup, and here » for more info on how to advertise our current location to other users.
Creating a geogroup
@@ -78,8 +76,7 @@ Fetching nearby users & geogroups…">
This flag is used to specify the expiration TTL of the passed geolocation (i.e. the geolocation will expire after self_expires
seconds); pass `0x7fffffff`` to disable expiry, 0 to make the current geolocation private.
The method will also return a list of nearby users and chats, but only if the passed expiration TTL is not equal to zero.
Users may still fetch nearby users and chats without making their geolocation public by simply not setting the flag, see here » for more info.
-
While the geolocation of the current user is public, clients should update it in the background every half-an-hour or so (or in any case before the expiration date specified with self_expires
), while setting this flag.
-
If the new location is more than 1 KM away from the previous one, or if the previous location is unknown, the background
flag should be set when invoking contacts.getLocated .
+
While the geolocation of the current user is public, clients should update it in the background every half-an-hour or so (or in any case before the expiration date specified with self_expires
), while setting this flag: if the new location is more than 1 KM away from the previous one, or if the previous location is unknown, the background
flag should be set.
diff --git a/data/web/corefork.telegram.org/api/premium.html b/data/web/corefork.telegram.org/api/premium.html
index 14732b718a..9bc144e419 100644
--- a/data/web/corefork.telegram.org/api/premium.html
+++ b/data/web/corefork.telegram.org/api/premium.html
@@ -4,10 +4,10 @@
Telegram Premium
-
+
-
+
diff --git a/data/web/corefork.telegram.org/api/privacy.html b/data/web/corefork.telegram.org/api/privacy.html
index da9ac1ab3b..27b08eae48 100644
--- a/data/web/corefork.telegram.org/api/privacy.html
+++ b/data/web/corefork.telegram.org/api/privacy.html
@@ -4,10 +4,10 @@
Privacy
-
+
-
+
diff --git a/data/web/corefork.telegram.org/api/takeout.html b/data/web/corefork.telegram.org/api/takeout.html
index 0a08b1a4e6..7db8044118 100644
--- a/data/web/corefork.telegram.org/api/takeout.html
+++ b/data/web/corefork.telegram.org/api/takeout.html
@@ -4,12 +4,10 @@
Takeout
-
+
-
+
diff --git a/data/web/corefork.telegram.org/constructor/auth.sentCodeTypeEmailCode.html b/data/web/corefork.telegram.org/constructor/auth.sentCodeTypeEmailCode.html
index 988c3fb24f..ebc37a2742 100644
--- a/data/web/corefork.telegram.org/constructor/auth.sentCodeTypeEmailCode.html
+++ b/data/web/corefork.telegram.org/constructor/auth.sentCodeTypeEmailCode.html
@@ -111,6 +111,7 @@
Reset the login email » .
+
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.
How to register a user's phone to start using the API.
diff --git a/data/web/corefork.telegram.org/constructor/help.premiumPromo.html b/data/web/corefork.telegram.org/constructor/help.premiumPromo.html
index 9295eea1cb..9faa81ba28 100644
--- a/data/web/corefork.telegram.org/constructor/help.premiumPromo.html
+++ b/data/web/corefork.telegram.org/constructor/help.premiumPromo.html
@@ -106,7 +106,8 @@ The keys in
video_sections
correspond to a specific feature identif
Related pages
How to create styled text with message entities
-
+
+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.
diff --git a/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html b/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html
index f09c88d584..4a506deaa1 100644
--- a/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html
+++ b/data/web/corefork.telegram.org/constructor/requestPeerTypeUser.html
@@ -86,7 +86,8 @@
Type
RequestPeerType
Related pages
-
+
+
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.
diff --git a/data/web/corefork.telegram.org/constructor/updatePeerBlocked.html b/data/web/corefork.telegram.org/constructor/updatePeerBlocked.html
index 4f2028b452..ff0c200af1 100644
--- a/data/web/corefork.telegram.org/constructor/updatePeerBlocked.html
+++ b/data/web/corefork.telegram.org/constructor/updatePeerBlocked.html
@@ -91,7 +91,8 @@
Type
Update
Related pages
-
+
+Working with the blocklist.
diff --git a/data/web/corefork.telegram.org/method/channels.createForumTopic.html b/data/web/corefork.telegram.org/method/channels.createForumTopic.html
index 2c63949233..d7088e997b 100644
--- a/data/web/corefork.telegram.org/method/channels.createForumTopic.html
+++ b/data/web/corefork.telegram.org/method/channels.createForumTopic.html
@@ -152,6 +152,7 @@
Telegram allows including animated and static custom emojis inside of messages.
+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.
Default custom emoji stickerset for forum topic icons
diff --git a/data/web/corefork.telegram.org/method/channels.editForumTopic.html b/data/web/corefork.telegram.org/method/channels.editForumTopic.html
index 9d9091cf76..f96effd9b6 100644
--- a/data/web/corefork.telegram.org/method/channels.editForumTopic.html
+++ b/data/web/corefork.telegram.org/method/channels.editForumTopic.html
@@ -165,6 +165,7 @@
Telegram allows including animated and static custom emojis inside of messages.
+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.
Default custom emoji stickerset for forum topic icons
diff --git a/data/web/corefork.telegram.org/method/contacts.acceptContact.html b/data/web/corefork.telegram.org/method/contacts.acceptContact.html
index a92703eec3..7066fe19eb 100644
--- a/data/web/corefork.telegram.org/method/contacts.acceptContact.html
+++ b/data/web/corefork.telegram.org/method/contacts.acceptContact.html
@@ -4,10 +4,10 @@
contacts.acceptContact
-
+
-
+
@@ -42,7 +42,7 @@
contacts.acceptContact
- If the peer settings of a new user allow us to add them as contact, add that user as contact
+
If the add contact action bar is active , add that user as contact
+
+
Sometimes, when interacting with Telegram users via private or secret chats, an action bar must be shown on top of the chat, offering convenient action buttons or notices regarding the user.
diff --git a/data/web/corefork.telegram.org/method/contacts.block.html b/data/web/corefork.telegram.org/method/contacts.block.html
index 16e7488bcb..a944260f33 100644
--- a/data/web/corefork.telegram.org/method/contacts.block.html
+++ b/data/web/corefork.telegram.org/method/contacts.block.html
@@ -126,7 +126,8 @@
Related pages
-
+
+Working with the blocklist.
diff --git a/data/web/corefork.telegram.org/method/contacts.unblock.html b/data/web/corefork.telegram.org/method/contacts.unblock.html
index d9cd3ead8a..8635f7c0e1 100644
--- a/data/web/corefork.telegram.org/method/contacts.unblock.html
+++ b/data/web/corefork.telegram.org/method/contacts.unblock.html
@@ -121,7 +121,8 @@
Related pages
-
+
+Working with the blocklist.
diff --git a/data/web/corefork.telegram.org/method/messages.translateText.html b/data/web/corefork.telegram.org/method/messages.translateText.html
index bcc1c0a8d5..4d070a6399 100644
--- a/data/web/corefork.telegram.org/method/messages.translateText.html
+++ b/data/web/corefork.telegram.org/method/messages.translateText.html
@@ -133,7 +133,8 @@
Related pages
How to create styled text with message entities
-
+
+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.
diff --git a/data/web/corefork.telegram.org/method/stories.canSendStory.html b/data/web/corefork.telegram.org/method/stories.canSendStory.html
index 955a31711f..0450fc778d 100644
--- a/data/web/corefork.telegram.org/method/stories.canSendStory.html
+++ b/data/web/corefork.telegram.org/method/stories.canSendStory.html
@@ -130,7 +130,8 @@
Telegram users and channels can easily post and view stories through the API.
The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.
-
+
+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.
diff --git a/data/web/corefork.telegram.org/method/stories.editStory.html b/data/web/corefork.telegram.org/method/stories.editStory.html
index 0d2a62b60c..8c47b0a294 100644
--- a/data/web/corefork.telegram.org/method/stories.editStory.html
+++ b/data/web/corefork.telegram.org/method/stories.editStory.html
@@ -162,7 +162,8 @@ Peer where the story was posted.…">
Telegram users and channels can easily post and view stories through the API.
How to create styled text with message entities
-
+
+Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways.
diff --git a/data/web/corefork.telegram.org/method/stories.sendStory.html b/data/web/corefork.telegram.org/method/stories.sendStory.html
index 8ce36d5d6e..ad27c3d412 100644
--- a/data/web/corefork.telegram.org/method/stories.sendStory.html
+++ b/data/web/corefork.telegram.org/method/stories.sendStory.html
@@ -201,9 +201,11 @@
How to create styled text with message entities
+Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways.
The MTProto API has multiple configuration parameters that can be fetched with the appropriate methods.
-
+
+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.
diff --git a/data/web/corefork.telegram.org/mtproto/samples-auth_key.html b/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
index a3276aaf9e..4629c68268 100644
--- a/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
+++ b/data/web/corefork.telegram.org/mtproto/samples-auth_key.html
@@ -53,9 +53,9 @@
1) Client sends query to server
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 CC CE 0A 00 F7 1E 38 65
-0010 | 14 00 00 00 F1 8E 7E BE 80 79 E1 6E 86 7B C4 82
-0020 | F9 B4 8E 24 88 E9 54 B3
+0000 | 00 00 00 00 00 00 00 00 44 24 09 00 B2 81 3A 65
+0010 | 14 00 00 00 F1 8E 7E BE 5B C4 75 40 D7 80 0C F2
+0020 | 57 0E 01 B2 0E 7A C4 96
Payload (de)serialization:
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@
message_id
8, 8
-CCCE0A00F71E3865
+44240900B2813A65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -95,7 +95,7 @@
nonce
24, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Random number
@@ -104,11 +104,11 @@
2) Server sends response of the form
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 A8 36 D7 F2 1E 38 65
-0010 | 58 00 00 00 63 24 16 05 80 79 E1 6E 86 7B C4 82
-0020 | F9 B4 8E 24 88 E9 54 B3 AF 73 D5 1E 13 D1 A9 25
-0030 | 59 21 3C 56 96 1D 02 F8 08 27 CD 14 EF 69 B2 A0
-0040 | 97 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
+0000 | 00 00 00 00 00 00 00 00 01 9C 32 E1 AE 81 3A 65
+0010 | 74 00 00 00 63 24 16 05 5B C4 75 40 D7 80 0C F2
+0020 | 57 0E 01 B2 0E 7A C4 96 A3 5B C5 BC D1 78 47 75
+0030 | 79 57 68 32 EF F8 E6 3F 08 28 27 1F 2A AC 25 46
+0040 | ED 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
Payload (de)serialization:
@@ -132,13 +132,13 @@
message_id
8, 8
-01A836D7F21E3865
+019C32E1AE813A65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-58000000
(88 in decimal)
+74000000
(116 in decimal)
Message body length
@@ -150,19 +150,19 @@
nonce
24, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
40, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Server-generated random number
pq
56, 12
-0827CD14EF69B2A097000000
TL byte deserialization => bigendian conversion to decimal => 2867971556207927447
+0828271F2AAC2546ED000000
TL byte deserialization => bigendian conversion to decimal => 2893315553746044653
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
@@ -208,22 +208,22 @@
Proof of work
3) Client decomposes pq into prime factors such that p < q.
-pq = 2867971556207927447
-Decompose into 2 prime cofactors p < q
: 2867971556207927447 = 1536892391 * 1866084817
-p = 1536892391
-q = 1866084817
+pq = 2893315553746044653
+Decompose into 2 prime cofactors p < q
: 2893315553746044653 = 1546123877 * 1871334889
+p = 1546123877
+q = 1871334889
Presenting proof of work; Server authentication
4) encrypted_data
payload generation
First of all, generate an encrypted_data
payload as follows:
Generated payload (excluding transport headers/trailers):
-0000 | 95 5F F5 A9 08 27 CD 14 EF 69 B2 A0 97 00 00 00
-0010 | 04 5B 9B 1D E7 00 00 00 04 6F 3A 31 D1 00 00 00
-0020 | 80 79 E1 6E 86 7B C4 82 F9 B4 8E 24 88 E9 54 B3
-0030 | AF 73 D5 1E 13 D1 A9 25 59 21 3C 56 96 1D 02 F8
-0040 | 12 93 82 9C F9 BA 13 56 3D 7D 8B B1 30 85 16 0F
-0050 | 12 F8 9F BB 40 A1 DB 01 81 54 D5 FB 0F 49 E1 C0
+0000 | 95 5F F5 A9 08 28 27 1F 2A AC 25 46 ED 00 00 00
+0010 | 04 5C 27 FA 65 00 00 00 04 6F 8A 4D E9 00 00 00
+0020 | 5B C4 75 40 D7 80 0C F2 57 0E 01 B2 0E 7A C4 96
+0030 | A3 5B C5 BC D1 78 47 75 79 57 68 32 EF F8 E6 3F
+0040 | CA 93 8B A9 ED 98 8E D7 58 30 62 8A 66 F0 94 34
+0050 | 72 82 4E 42 D5 D5 D6 72 9B CA 1B B2 07 6A 45 D2
0060 | 02 00 00 00
Payload (de)serialization:
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;
@@ -246,37 +246,37 @@ q = 1866084817
pq
4, 12
-0827CD14EF69B2A097000000
TL byte deserialization => bigendian conversion to decimal => 2867971556207927447
+0828271F2AAC2546ED000000
TL byte deserialization => bigendian conversion to decimal => 2893315553746044653
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p
16, 8
-045B9B1DE7000000
TL byte deserialization => bigendian conversion to decimal => 1536892391
+045C27FA65000000
TL byte deserialization => bigendian conversion to decimal => 1546123877
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
24, 8
-046F3A31D1000000
TL byte deserialization => bigendian conversion to decimal => 1866084817
+046F8A4DE9000000
TL byte deserialization => bigendian conversion to decimal => 1871334889
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce
32, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
48, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Value received from server in Step 2
new_nonce
64, 32
-1293829CF9BA13563D7D8BB13085160F
12F89FBB40A1DB018154D5FB0F49E1C0
+CA938BA9ED988ED75830628A66F09434
72824E42D5D5D6729BCA1BB2076A45D2
Client-generated random number
@@ -291,39 +291,39 @@ q = 1866084817
The serialization of P_Q_inner_data produces data , which is used to generate encrypted_data as specified in step 4.1 .
These are the inputs to the algorithm specified in step 4.1 :
-data = 955FF5A90827CD14EF69B2A097000000045B9B1DE7000000046F3A31D10000008079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F81293829CF9BA13563D7D8BB13085160F12F89FBB40A1DB018154D5FB0F49E1C002000000
-random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD1856B522A66588C59C98F6EE1DDA6957F8245529139DDD320D3E0BCA8AF412B97C4D50B4352D83BD3D57DCE3C81B6716E32EB46CD47696FAAAD1B345D4F275B70
+data = 955FF5A90828271F2AAC2546ED000000045C27FA65000000046F8A4DE90000005BC47540D7800CF2570E01B20E7AC496A35BC5BCD178477579576832EFF8E63FCA938BA9ED988ED75830628A66F0943472824E42D5D5D6729BCA1BB2076A45D202000000
+random_padding_bytes = 870F8330DC0083AD325B066CAEAF9131E9D692B19576290095EDBD0097D22103BBE1B169A4E52E96B5A58F47B9F9254B7E100C5C672A11012B6A1869E6978174BE3A9E93E723F5E92B68C668E84F3799966F2783FB8EF22F6B29B12B
And this is the output:
-encrypted_data = 82173D59A38D252E539A2D5AD472A3844B56759CD56D4DC6BC4F8F9CD99E9E82BA5E15B9D2BFAAFCEFAB14F7C11A1095FB38069983B436C7BA43F7A3CFB9726FFF3D7A42D6053D8EF484DDEB7960498CBDAE44E31D460D02356C4334072D174A28CD00353C0C5BE53C615CBC5E780CD3DC370AA987E71AE44F9406C0F1CC1782CD4B5C10CD96A67D3B0A414C2DA4DE0BBED3660A94C854D917ABB942D0F512E0A7DB2874761637FA7F25181E6E931F3A0FD2F45C68B5602EBD50FA2319D7F4841A76BE3808555D40ED962B1F0E7B7BC5D13107A64883B6654EAD1DED778BECDF5BCC89036F5175C886281A00F2A3E959EBB9C8ED42DF93713098AC2A80AC400C
+encrypted_data = C06B72C499F627197E6B852125A4AA546767EC843715E479C400F9FD2B6709358593715B6ECCF7E12C996E7C60F2F998C448750613CC5F6BF8E8524B368AE8AAE6A60F00A88C5D85D6298D16B7C098BF0C4068FD7D4976DCEF2C605F7BE6B42F0D666BD451345D1E2B6A4A5B3614CA9BF9BA2BBDC9452C517342831E01073B57B7D113DAF10DF7C3851F5CA00891EAA8EAD81182D35ADFA8FCAB7B935A5B16F1DA1FC199F68C7A32FCC85154A0C6CD6C68511596D9EFC278066D1D0C60A8DF0B586E35823E428522DB314116770D69582C120F69624CE6D74029E0EC57B88F3B6ABBD613E294715D5E664322ABCC5E351AB396CCFA8B180AE31F831857C13439
The length of the final string is 256 bytes.
5) Send req_DH_params query with generated encrypted_data
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 D0 CE 0A 00 F7 1E 38 65
-0010 | 40 01 00 00 BE E4 12 D7 80 79 E1 6E 86 7B C4 82
-0020 | F9 B4 8E 24 88 E9 54 B3 AF 73 D5 1E 13 D1 A9 25
-0030 | 59 21 3C 56 96 1D 02 F8 04 5B 9B 1D E7 00 00 00
-0040 | 04 6F 3A 31 D1 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 82 17 3D 59 A3 8D 25 2E 53 9A 2D 5A
-0060 | D4 72 A3 84 4B 56 75 9C D5 6D 4D C6 BC 4F 8F 9C
-0070 | D9 9E 9E 82 BA 5E 15 B9 D2 BF AA FC EF AB 14 F7
-0080 | C1 1A 10 95 FB 38 06 99 83 B4 36 C7 BA 43 F7 A3
-0090 | CF B9 72 6F FF 3D 7A 42 D6 05 3D 8E F4 84 DD EB
-00A0 | 79 60 49 8C BD AE 44 E3 1D 46 0D 02 35 6C 43 34
-00B0 | 07 2D 17 4A 28 CD 00 35 3C 0C 5B E5 3C 61 5C BC
-00C0 | 5E 78 0C D3 DC 37 0A A9 87 E7 1A E4 4F 94 06 C0
-00D0 | F1 CC 17 82 CD 4B 5C 10 CD 96 A6 7D 3B 0A 41 4C
-00E0 | 2D A4 DE 0B BE D3 66 0A 94 C8 54 D9 17 AB B9 42
-00F0 | D0 F5 12 E0 A7 DB 28 74 76 16 37 FA 7F 25 18 1E
-0100 | 6E 93 1F 3A 0F D2 F4 5C 68 B5 60 2E BD 50 FA 23
-0110 | 19 D7 F4 84 1A 76 BE 38 08 55 5D 40 ED 96 2B 1F
-0120 | 0E 7B 7B C5 D1 31 07 A6 48 83 B6 65 4E AD 1D ED
-0130 | 77 8B EC DF 5B CC 89 03 6F 51 75 C8 86 28 1A 00
-0140 | F2 A3 E9 59 EB B9 C8 ED 42 DF 93 71 30 98 AC 2A
-0150 | 80 AC 40 0C
+0000 | 00 00 00 00 00 00 00 00 78 AC 0E 00 B3 81 3A 65
+0010 | 40 01 00 00 BE E4 12 D7 5B C4 75 40 D7 80 0C F2
+0020 | 57 0E 01 B2 0E 7A C4 96 A3 5B C5 BC D1 78 47 75
+0030 | 79 57 68 32 EF F8 E6 3F 04 5C 27 FA 65 00 00 00
+0040 | 04 6F 8A 4D E9 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 C0 6B 72 C4 99 F6 27 19 7E 6B 85 21
+0060 | 25 A4 AA 54 67 67 EC 84 37 15 E4 79 C4 00 F9 FD
+0070 | 2B 67 09 35 85 93 71 5B 6E CC F7 E1 2C 99 6E 7C
+0080 | 60 F2 F9 98 C4 48 75 06 13 CC 5F 6B F8 E8 52 4B
+0090 | 36 8A E8 AA E6 A6 0F 00 A8 8C 5D 85 D6 29 8D 16
+00A0 | B7 C0 98 BF 0C 40 68 FD 7D 49 76 DC EF 2C 60 5F
+00B0 | 7B E6 B4 2F 0D 66 6B D4 51 34 5D 1E 2B 6A 4A 5B
+00C0 | 36 14 CA 9B F9 BA 2B BD C9 45 2C 51 73 42 83 1E
+00D0 | 01 07 3B 57 B7 D1 13 DA F1 0D F7 C3 85 1F 5C A0
+00E0 | 08 91 EA A8 EA D8 11 82 D3 5A DF A8 FC AB 7B 93
+00F0 | 5A 5B 16 F1 DA 1F C1 99 F6 8C 7A 32 FC C8 51 54
+0100 | A0 C6 CD 6C 68 51 15 96 D9 EF C2 78 06 6D 1D 0C
+0110 | 60 A8 DF 0B 58 6E 35 82 3E 42 85 22 DB 31 41 16
+0120 | 77 0D 69 58 2C 12 0F 69 62 4C E6 D7 40 29 E0 EC
+0130 | 57 B8 8F 3B 6A BB D6 13 E2 94 71 5D 5E 66 43 22
+0140 | AB CC 5E 35 1A B3 96 CC FA 8B 18 0A E3 1F 83 18
+0150 | 57 C1 34 39
Payload (de)serialization:
req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;
@@ -345,7 +345,7 @@ random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD18
message_id
8, 8
-D0CE0A00F71E3865
+78AC0E00B3813A65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -363,25 +363,25 @@ random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD18
nonce
24, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
40, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Value received from server in Step 2
p
56, 8
-045B9B1DE7000000
TL byte deserialization => bigendian conversion to decimal => 1536892391
+045C27FA65000000
TL byte deserialization => bigendian conversion to decimal => 1546123877
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
64, 8
-046F3A31D1000000
TL byte deserialization => bigendian conversion to decimal => 1866084817
+046F8A4DE9000000
TL byte deserialization => bigendian conversion to decimal => 1871334889
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
@@ -393,7 +393,7 @@ random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD18
encrypted_data
80, 260
-FE00010082173D59A38D252E539A2D5A
D472A3844B56759CD56D4DC6BC4F8F9C
D99E9E82BA5E15B9D2BFAAFCEFAB14F7
C11A1095FB38069983B436C7BA43F7A3
CFB9726FFF3D7A42D6053D8EF484DDEB
7960498CBDAE44E31D460D02356C4334
072D174A28CD00353C0C5BE53C615CBC
5E780CD3DC370AA987E71AE44F9406C0
F1CC1782CD4B5C10CD96A67D3B0A414C
2DA4DE0BBED3660A94C854D917ABB942
D0F512E0A7DB2874761637FA7F25181E
6E931F3A0FD2F45C68B5602EBD50FA23
19D7F4841A76BE3808555D40ED962B1F
0E7B7BC5D13107A64883B6654EAD1DED
778BECDF5BCC89036F5175C886281A00
F2A3E959EBB9C8ED42DF93713098AC2A
80AC400C
+FE000100C06B72C499F627197E6B8521
25A4AA546767EC843715E479C400F9FD
2B6709358593715B6ECCF7E12C996E7C
60F2F998C448750613CC5F6BF8E8524B
368AE8AAE6A60F00A88C5D85D6298D16
B7C098BF0C4068FD7D4976DCEF2C605F
7BE6B42F0D666BD451345D1E2B6A4A5B
3614CA9BF9BA2BBDC9452C517342831E
01073B57B7D113DAF10DF7C3851F5CA0
0891EAA8EAD81182D35ADFA8FCAB7B93
5A5B16F1DA1FC199F68C7A32FCC85154
A0C6CD6C68511596D9EFC278066D1D0C
60A8DF0B586E35823E428522DB314116
770D69582C120F69624CE6D74029E0EC
57B88F3B6ABBD613E294715D5E664322
ABCC5E351AB396CCFA8B180AE31F8318
57C13439
Value generated above
@@ -402,47 +402,47 @@ random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD18
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 00 89 71 F3 1E 38 65
-0010 | C4 02 00 00 5C 07 E8 D0 80 79 E1 6E 86 7B C4 82
-0020 | F9 B4 8E 24 88 E9 54 B3 AF 73 D5 1E 13 D1 A9 25
-0030 | 59 21 3C 56 96 1D 02 F8 FE 50 02 00 EF EE F8 03
-0040 | D6 35 27 21 2D 15 4C 9D 65 7B 4A C4 2D 06 88 AC
-0050 | 04 06 4D B1 08 5B 51 F2 F3 0A F6 B4 D1 F9 20 9D
-0060 | E8 19 A5 AD 70 0F 1C 9F DD 0B 77 CC 40 A0 43 5C
-0070 | A5 39 E5 25 50 53 16 82 00 02 10 B8 94 DB D8 35
-0080 | CD D4 5F A3 18 DF 68 67 B3 07 8A 24 99 D2 E0 A7
-0090 | 7C 6D ED D0 F1 72 E8 D5 34 92 90 94 6C 89 57 12
-00A0 | 5F D8 B9 FF E6 85 90 1B 28 96 27 5D F8 6A DF 8A
-00B0 | 0B C4 0D EC 76 4C E9 95 92 32 A2 7A 7A 5D 34 EB
-00C0 | 0C 31 B6 87 6A 5E 2E 7B 7F 0C 73 02 65 EE F0 87
-00D0 | 7A C1 B7 32 D6 7E 57 9A CF A1 E4 F0 27 21 02 E9
-00E0 | 49 16 D5 FA D8 3F A2 12 A7 7B 74 1B CC 2B C2 F1
-00F0 | 82 52 33 73 C9 1A CF 85 D3 09 23 F2 FA FF 5C 08
-0100 | 5E 93 30 6B 51 3C B7 F9 DF F9 85 2F 68 77 24 04
-0110 | 6F DD F2 13 CB 28 6B 2E 9E 55 61 6D B4 81 AB 6A
-0120 | C0 EF 75 81 F6 7B F1 80 38 FB 19 26 3E 5D 39 53
-0130 | 67 D5 AE EB 30 C6 98 F0 EF 1E A0 BB 44 9B 08 CD
-0140 | F4 33 99 8A FC 89 63 B3 BC 08 88 B9 B2 A4 18 C7
-0150 | E3 25 E1 6A 9B 53 B8 B2 09 44 15 AA 1A EF FA 3E
-0160 | 5E 6F 2B CA B1 A5 11 45 F5 FC B2 C7 A0 40 74 22
-0170 | 4D C3 6B A5 A5 8D AB 01 DB 6D 32 4E 6B 69 14 DE
-0180 | 69 40 B2 E8 A4 2E 77 BE EB 60 63 8B 7E D0 1C 61
-0190 | 2E 4E 76 B9 7E 46 C1 60 F0 23 D6 B9 C0 19 D4 83
-01A0 | 99 34 A4 44 A3 2C DC 2A 0D D8 9F EB D8 FD 4D C8
-01B0 | BD 44 02 B6 09 F2 81 72 C5 0B 0E 8E A6 85 7C BA
-01C0 | EA C7 5D C0 50 64 AD CE D0 F5 E1 F0 57 69 40 F9
-01D0 | 01 06 A8 A6 4D 4B 34 EF EA 6B A2 61 44 F6 1B FE
-01E0 | 27 00 78 64 8B 08 74 4D 00 87 A3 B0 F9 F9 FF F5
-01F0 | 00 27 19 B7 79 3A 9B FA 7D E8 40 F4 30 49 99 09
-0200 | 61 F4 86 A2 38 90 CB 0E 5D 9B 9E 2D DE 94 A9 5B
-0210 | BE 13 A4 E3 4C D4 A1 90 0A FD E0 E2 90 A9 8A B2
-0220 | D3 13 EC AB 03 A1 C0 6D 09 0B E6 62 65 37 2E 7B
-0230 | C6 92 DB 91 25 AC 04 F6 58 05 D8 B6 03 60 A0 DB
-0240 | E4 CD 5C B8 5A 91 1D AA 29 32 8A 49 03 B6 2F 6F
-0250 | 89 8C 59 13 AF 01 75 6F 1C B8 08 C9 D1 71 22 69
-0260 | 25 51 1B E9 D6 32 A5 C2 5E D6 7C EC 0D C3 4A 2A
-0270 | 3E 45 A0 B8 7D 58 B6 9D 41 08 1F 02 B0 2A C3 20
-0280 | 3E EA EA 6B D2 CF 36 F5 71 24 FD CE
+0000 | 00 00 00 00 00 00 00 00 01 BC E1 83 AF 81 3A 65
+0010 | 78 02 00 00 5C 07 E8 D0 5B C4 75 40 D7 80 0C F2
+0020 | 57 0E 01 B2 0E 7A C4 96 A3 5B C5 BC D1 78 47 75
+0030 | 79 57 68 32 EF F8 E6 3F FE 50 02 00 6D 38 D0 7A
+0040 | A7 A5 E4 47 6D EF 58 94 49 6B 33 1D 11 D2 51 B6
+0050 | 04 F9 C1 0C D4 5B E3 78 C3 01 37 7C B2 95 D7 85
+0060 | F8 60 7B 6F 70 20 FE 24 DF 66 00 7F BB 81 79 84
+0070 | D5 88 12 FF 38 C1 1D 4F FE 59 1B E0 A6 51 AF 4A
+0080 | DC 29 19 66 A0 59 56 C7 EB 51 C5 0B D5 7E 26 79
+0090 | F2 75 3C 4E 5F 14 87 3A 95 AC C7 96 10 58 19 EB
+00A0 | 14 3C FF 3E 4D ED C0 FB 2E 1F 75 A5 65 FA 41 F7
+00B0 | C4 4C 75 3F 2D FA 34 4C 40 86 1E F3 C1 EF EC 10
+00C0 | 7D 71 99 EA 30 EF F1 23 A7 16 9C 76 87 97 05 F8
+00D0 | 1A D6 A9 FD 21 B6 BE 69 99 90 0A CD 62 A2 E6 BB
+00E0 | CA 44 DA B4 45 83 8E 48 AC 16 5A AA 09 24 00 29
+00F0 | 5E A6 22 E7 4C 19 CE 4D C4 E0 98 4E F2 01 1C B0
+0100 | 68 BC F0 AF 5E 7F 5A 4A F0 E5 31 5E 58 A7 79 6E
+0110 | F3 4B C3 9E 91 34 64 E0 65 AB 72 83 CC 7A A3 5E
+0120 | 18 C0 A5 D2 0A FE 51 C5 A4 13 B5 EC E4 FC 22 E8
+0130 | 06 C0 45 99 DF 6E 84 9B A9 F1 A7 EE A7 67 FA FF
+0140 | F0 4E B5 D9 87 6C 78 06 5F 61 97 69 CD 4F 73 DF
+0150 | EC 43 61 B7 0A 30 5C 77 83 3E 84 DB BA 00 57 3A
+0160 | 5C C0 62 ED 1D 75 A6 8F 5C ED 0B 19 29 0B 1D 0F
+0170 | 8E 43 4F F5 18 86 A4 31 67 7E B3 2E 02 9A 9B 89
+0180 | 9A 05 09 8D 35 9A E5 55 51 EE 61 B0 4E E0 D7 9A
+0190 | 23 0C 12 7B 9A 68 2D 3C 4B 49 ED BF 6C 7B 1B 98
+01A0 | 12 5F D3 46 66 FC 36 5D 10 B1 AF 3A 67 BC 9E DD
+01B0 | 50 E9 77 C4 8C 61 9E 9B 60 4C CC D5 39 E9 5B 7E
+01C0 | 0D D6 47 E5 73 D1 61 47 64 E8 E1 D9 A0 17 CD 0C
+01D0 | 23 9A 2A A1 68 B2 75 15 20 68 9A 06 98 BE FE C8
+01E0 | 54 AC D3 ED 73 74 31 6A 1F 3D 80 C5 0D 18 54 12
+01F0 | 6A B7 9B EA DC 91 8C 3F 01 2E 50 80 FA 85 C6 C2
+0200 | EA C4 70 9A BC B4 A9 3D EF 99 6C EE 8D F7 B8 B1
+0210 | 70 7C 7C 01 D0 B6 18 41 0E 4F D6 AA 2B B8 13 C0
+0220 | 12 7C 57 67 E4 F4 95 C2 F0 CA 6C 35 CD F9 D7 B9
+0230 | 4E 8F 1D 7B AA 6E 51 0B 34 AF 4E 3E 4C D7 46 E3
+0240 | 4D 21 B0 26 75 D9 DC C0 08 EA 88 E2 84 52 20 E6
+0250 | E9 8C 2B 24 6A F4 79 CB 93 8C 16 D3 3C E1 5B A6
+0260 | 3F 17 E4 CD FF C0 11 CA 98 B2 6F BC A2 74 E3 CA
+0270 | D4 D4 2C DE F8 09 1C 0D BA 67 3A 64 5C 0E 79 F0
+0280 | DB 08 1C 9A F6 6C 14 EC 18 10 D8 2E
Payload (de)serialization:
server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
@@ -464,13 +464,13 @@ random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD18
message_id
8, 8
-01008971F31E3865
+01BCE183AF813A65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-C4020000
(708 in decimal)
+78020000
(632 in decimal)
Message body length
@@ -482,19 +482,19 @@ random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD18
nonce
24, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
40, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Value received from server in Step 2
encrypted_answer
56, 596
-FE500200EFEEF803D63527212D154C9D
657B4AC42D0688AC04064DB1085B51F2
F30AF6B4D1F9209DE819A5AD700F1C9F
DD0B77CC40A0435CA539E52550531682
000210B894DBD835CDD45FA318DF6867
B3078A2499D2E0A77C6DEDD0F172E8D5
349290946C8957125FD8B9FFE685901B
2896275DF86ADF8A0BC40DEC764CE995
9232A27A7A5D34EB0C31B6876A5E2E7B
7F0C730265EEF0877AC1B732D67E579A
CFA1E4F0272102E94916D5FAD83FA212
A77B741BCC2BC2F182523373C91ACF85
D30923F2FAFF5C085E93306B513CB7F9
DFF9852F687724046FDDF213CB286B2E
9E55616DB481AB6AC0EF7581F67BF180
38FB19263E5D395367D5AEEB30C698F0
EF1EA0BB449B08CDF433998AFC8963B3
BC0888B9B2A418C7E325E16A9B53B8B2
094415AA1AEFFA3E5E6F2BCAB1A51145
F5FCB2C7A04074224DC36BA5A58DAB01
DB6D324E6B6914DE6940B2E8A42E77BE
EB60638B7ED01C612E4E76B97E46C160
F023D6B9C019D4839934A444A32CDC2A
0DD89FEBD8FD4DC8BD4402B609F28172
C50B0E8EA6857CBAEAC75DC05064ADCE
D0F5E1F0576940F90106A8A64D4B34EF
EA6BA26144F61BFE270078648B08744D
0087A3B0F9F9FFF5002719B7793A9BFA
7DE840F43049990961F486A23890CB0E
5D9B9E2DDE94A95BBE13A4E34CD4A190
0AFDE0E290A98AB2D313ECAB03A1C06D
090BE66265372E7BC692DB9125AC04F6
5805D8B60360A0DBE4CD5CB85A911DAA
29328A4903B62F6F898C5913AF01756F
1CB808C9D171226925511BE9D632A5C2
5ED67CEC0DC34A2A3E45A0B87D58B69D
41081F02B02AC3203EEAEA6BD2CF36F5
7124FDCE
+FE5002006D38D07AA7A5E4476DEF5894
496B331D11D251B604F9C10CD45BE378
C301377CB295D785F8607B6F7020FE24
DF66007FBB817984D58812FF38C11D4F
FE591BE0A651AF4ADC291966A05956C7
EB51C50BD57E2679F2753C4E5F14873A
95ACC796105819EB143CFF3E4DEDC0FB
2E1F75A565FA41F7C44C753F2DFA344C
40861EF3C1EFEC107D7199EA30EFF123
A7169C76879705F81AD6A9FD21B6BE69
99900ACD62A2E6BBCA44DAB445838E48
AC165AAA092400295EA622E74C19CE4D
C4E0984EF2011CB068BCF0AF5E7F5A4A
F0E5315E58A7796EF34BC39E913464E0
65AB7283CC7AA35E18C0A5D20AFE51C5
A413B5ECE4FC22E806C04599DF6E849B
A9F1A7EEA767FAFFF04EB5D9876C7806
5F619769CD4F73DFEC4361B70A305C77
833E84DBBA00573A5CC062ED1D75A68F
5CED0B19290B1D0F8E434FF51886A431
677EB32E029A9B899A05098D359AE555
51EE61B04EE0D79A230C127B9A682D3C
4B49EDBF6C7B1B98125FD34666FC365D
10B1AF3A67BC9EDD50E977C48C619E9B
604CCCD539E95B7E0DD647E573D16147
64E8E1D9A017CD0C239A2AA168B27515
20689A0698BEFEC854ACD3ED7374316A
1F3D80C50D1854126AB79BEADC918C3F
012E5080FA85C6C2EAC4709ABCB4A93D
EF996CEE8DF7B8B1707C7C01D0B61841
0E4FD6AA2BB813C0127C5767E4F495C2
F0CA6C35CDF9D7B94E8F1D7BAA6E510B
34AF4E3E4CD746E34D21B02675D9DCC0
08EA88E2845220E6E98C2B246AF479CB
938C16D33CE15BA63F17E4CDFFC011CA
98B26FBCA274E3CAD4D42CDEF8091C0D
BA673A645C0E79F0DB081C9AF66C14EC
1810D82E
See below
@@ -502,20 +502,20 @@ random_padding_bytes = 4152FDA2C238E2874D9E0FADFE547195489786640FDCBF7AEC9AEFD18
Decrypt encrypted_answer
using the reverse of the process specified in step 6 :
-encrypted_answer = EFEEF803D63527212D154C9D657B4AC42D0688AC04064DB1085B51F2F30AF6B4D1F9209DE819A5AD700F1C9FDD0B77CC40A0435CA539E52550531682000210B894DBD835CDD45FA318DF6867B3078A2499D2E0A77C6DEDD0F172E8D5349290946C8957125FD8B9FFE685901B2896275DF86ADF8A0BC40DEC764CE9959232A27A7A5D34EB0C31B6876A5E2E7B7F0C730265EEF0877AC1B732D67E579ACFA1E4F0272102E94916D5FAD83FA212A77B741BCC2BC2F182523373C91ACF85D30923F2FAFF5C085E93306B513CB7F9DFF9852F687724046FDDF213CB286B2E9E55616DB481AB6AC0EF7581F67BF18038FB19263E5D395367D5AEEB30C698F0EF1EA0BB449B08CDF433998AFC8963B3BC0888B9B2A418C7E325E16A9B53B8B2094415AA1AEFFA3E5E6F2BCAB1A51145F5FCB2C7A04074224DC36BA5A58DAB01DB6D324E6B6914DE6940B2E8A42E77BEEB60638B7ED01C612E4E76B97E46C160F023D6B9C019D4839934A444A32CDC2A0DD89FEBD8FD4DC8BD4402B609F28172C50B0E8EA6857CBAEAC75DC05064ADCED0F5E1F0576940F90106A8A64D4B34EFEA6BA26144F61BFE270078648B08744D0087A3B0F9F9FFF5002719B7793A9BFA7DE840F43049990961F486A23890CB0E5D9B9E2DDE94A95BBE13A4E34CD4A1900AFDE0E290A98AB2D313ECAB03A1C06D090BE66265372E7BC692DB9125AC04F65805D8B60360A0DBE4CD5CB85A911DAA29328A4903B62F6F898C5913AF01756F1CB808C9D171226925511BE9D632A5C25ED67CEC0DC34A2A3E45A0B87D58B69D41081F02B02AC3203EEAEA6BD2CF36F57124FDCE
-tmp_aes_key = 080DA9E05172968714AF9C8E91343901A142E5CB189A138DC1C3EE1C63F22B7C
-tmp_aes_iv = 495338BB912C906CF13D1E6101F7D81735ABFAE146A2F19A7F2EC16A1293829C
+encrypted_answer = 6D38D07AA7A5E4476DEF5894496B331D11D251B604F9C10CD45BE378C301377CB295D785F8607B6F7020FE24DF66007FBB817984D58812FF38C11D4FFE591BE0A651AF4ADC291966A05956C7EB51C50BD57E2679F2753C4E5F14873A95ACC796105819EB143CFF3E4DEDC0FB2E1F75A565FA41F7C44C753F2DFA344C40861EF3C1EFEC107D7199EA30EFF123A7169C76879705F81AD6A9FD21B6BE6999900ACD62A2E6BBCA44DAB445838E48AC165AAA092400295EA622E74C19CE4DC4E0984EF2011CB068BCF0AF5E7F5A4AF0E5315E58A7796EF34BC39E913464E065AB7283CC7AA35E18C0A5D20AFE51C5A413B5ECE4FC22E806C04599DF6E849BA9F1A7EEA767FAFFF04EB5D9876C78065F619769CD4F73DFEC4361B70A305C77833E84DBBA00573A5CC062ED1D75A68F5CED0B19290B1D0F8E434FF51886A431677EB32E029A9B899A05098D359AE55551EE61B04EE0D79A230C127B9A682D3C4B49EDBF6C7B1B98125FD34666FC365D10B1AF3A67BC9EDD50E977C48C619E9B604CCCD539E95B7E0DD647E573D1614764E8E1D9A017CD0C239A2AA168B2751520689A0698BEFEC854ACD3ED7374316A1F3D80C50D1854126AB79BEADC918C3F012E5080FA85C6C2EAC4709ABCB4A93DEF996CEE8DF7B8B1707C7C01D0B618410E4FD6AA2BB813C0127C5767E4F495C2F0CA6C35CDF9D7B94E8F1D7BAA6E510B34AF4E3E4CD746E34D21B02675D9DCC008EA88E2845220E6E98C2B246AF479CB938C16D33CE15BA63F17E4CDFFC011CA98B26FBCA274E3CAD4D42CDEF8091C0DBA673A645C0E79F0DB081C9AF66C14EC1810D82E
+tmp_aes_key = 8F1B855F685543EEBC158D37252B4C1609AFBD767149C011C89005DCA2BA9EE4
+tmp_aes_iv = D332730E4F33F366440193503837B56ADB3667C4B76F079787BB40D8CA938BA9
Yielding:
-answer_with_hash = D8B49B780EE0EFEC0C7CE08F534621D6A03A2BCABA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100C5325311ADFFE69972D90622CCA1BEEFC865A493A8AB7ED9C59F9C46DE4455CEFF6369538B6EDB45A2B0463AC2B77FE7DC0B48E8F2C4DF7E7C0CD007A16BD2F44AECF5A1C18FDD65E266B304107843650DCF09B46E0979F23DDB43EBDFF590D0E28675C2BF13081B0E3EF9B09CBE1034B49DBA936ECA4E00C0CCF4F928EBCEE5579EE53ABA0752EC0A8ECEFD96847A32778D49E1DEBFFB4C29101E30AA235BF55D15B6D5198A2912B1810DAB2A97DBA3EF30CD9E6EE108F3B259149CAD84754B1AB7DC8311D9B61C9161A030931FFE046CEE5026E87ECBBA3EDB0763A193639233360E24A78B4076ED6829878414F6D48FCC9E7CAD7F44E257F02DBD9BBB32A6F31E386592A592AEF4E86100
-answer = BA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100C5325311ADFFE69972D90622CCA1BEEFC865A493A8AB7ED9C59F9C46DE4455CEFF6369538B6EDB45A2B0463AC2B77FE7DC0B48E8F2C4DF7E7C0CD007A16BD2F44AECF5A1C18FDD65E266B304107843650DCF09B46E0979F23DDB43EBDFF590D0E28675C2BF13081B0E3EF9B09CBE1034B49DBA936ECA4E00C0CCF4F928EBCEE5579EE53ABA0752EC0A8ECEFD96847A32778D49E1DEBFFB4C29101E30AA235BF55D15B6D5198A2912B1810DAB2A97DBA3EF30CD9E6EE108F3B259149CAD84754B1AB7DC8311D9B61C9161A030931FFE046CEE5026E87ECBBA3EDB0763A193639233360E24A78B4076ED6829878414F6D48FCC9E7CAD7F44E257F02DBD9BBB32A6F31E386592A592AEF4E86100
+answer_with_hash = 328A6890300E40B3594EDC2AF8A58EF65F882214BA0D89B55BC47540D7800CF2570E01B20E7AC496A35BC5BCD178477579576832EFF8E63F03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002C51E6585757AC05CDE65EAA95E45B3990882F39471D8A371C6C2506A3E642FAAEDF28D26A270C6DA89A5B23DAE7D53285907089B0D13BFC9823AB87E5443AE44636F7E2E553E7E70B750FCCFE78AABB50A148DB0F56809E864EF221BF0896E58262DFA8DD07CEB4907613D2221A9BE437753324AB71354F0AA4F0653B57C99B3B042B9512E457766E84C4271C476998F345A9AF97E8D4F3D5B936484354ACE0EF3D05D16907C5AC596274F774544965EEE315E48AFF8DC6766B5F53037EADBDEF5570AB5ED831F517BB5845A6BFB4D57B93ECCEC292328D10018EE45D177273E8E891CD7A3DC0F33EDFA4451C0C7B27959D49E2BCA10CD6AF261B6C0955CA81AF813A652CDC093CF0112680
+answer = BA0D89B55BC47540D7800CF2570E01B20E7AC496A35BC5BCD178477579576832EFF8E63F03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002C51E6585757AC05CDE65EAA95E45B3990882F39471D8A371C6C2506A3E642FAAEDF28D26A270C6DA89A5B23DAE7D53285907089B0D13BFC9823AB87E5443AE44636F7E2E553E7E70B750FCCFE78AABB50A148DB0F56809E864EF221BF0896E58262DFA8DD07CEB4907613D2221A9BE437753324AB71354F0AA4F0653B57C99B3B042B9512E457766E84C4271C476998F345A9AF97E8D4F3D5B936484354ACE0EF3D05D16907C5AC596274F774544965EEE315E48AFF8DC6766B5F53037EADBDEF5570AB5ED831F517BB5845A6BFB4D57B93ECCEC292328D10018EE45D177273E8E891CD7A3DC0F33EDFA4451C0C7B27959D49E2BCA10CD6AF261B6C0955CA81AF813A652CDC093CF0112680
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 80 79 E1 6E 86 7B C4 82 F9 B4 8E 24
-0010 | 88 E9 54 B3 AF 73 D5 1E 13 D1 A9 25 59 21 3C 56
-0020 | 96 1D 02 F8 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 5B C4 75 40 D7 80 0C F2 57 0E 01 B2
+0010 | 0E 7A C4 96 A3 5B C5 BC D1 78 47 75 79 57 68 32
+0020 | EF F8 E6 3F 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 = BA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F
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 | C5 32 53 11 AD FF E6 99 72 D9 06 22 CC A1 BE EF
-0140 | C8 65 A4 93 A8 AB 7E D9 C5 9F 9C 46 DE 44 55 CE
-0150 | FF 63 69 53 8B 6E DB 45 A2 B0 46 3A C2 B7 7F E7
-0160 | DC 0B 48 E8 F2 C4 DF 7E 7C 0C D0 07 A1 6B D2 F4
-0170 | 4A EC F5 A1 C1 8F DD 65 E2 66 B3 04 10 78 43 65
-0180 | 0D CF 09 B4 6E 09 79 F2 3D DB 43 EB DF F5 90 D0
-0190 | E2 86 75 C2 BF 13 08 1B 0E 3E F9 B0 9C BE 10 34
-01A0 | B4 9D BA 93 6E CA 4E 00 C0 CC F4 F9 28 EB CE E5
-01B0 | 57 9E E5 3A BA 07 52 EC 0A 8E CE FD 96 84 7A 32
-01C0 | 77 8D 49 E1 DE BF FB 4C 29 10 1E 30 AA 23 5B F5
-01D0 | 5D 15 B6 D5 19 8A 29 12 B1 81 0D AB 2A 97 DB A3
-01E0 | EF 30 CD 9E 6E E1 08 F3 B2 59 14 9C AD 84 75 4B
-01F0 | 1A B7 DC 83 11 D9 B6 1C 91 61 A0 30 93 1F FE 04
-0200 | 6C EE 50 26 E8 7E CB BA 3E DB 07 63 A1 93 63 92
-0210 | 33 36 0E 24 A7 8B 40 76 ED 68 29 87 84 14 F6 D4
-0220 | 8F CC 9E 7C AD 7F 44 E2 57 F0 2D BD 9B BB 32 A6
-0230 | F3 1E 38 65
+0130 | 2C 51 E6 58 57 57 AC 05 CD E6 5E AA 95 E4 5B 39
+0140 | 90 88 2F 39 47 1D 8A 37 1C 6C 25 06 A3 E6 42 FA
+0150 | AE DF 28 D2 6A 27 0C 6D A8 9A 5B 23 DA E7 D5 32
+0160 | 85 90 70 89 B0 D1 3B FC 98 23 AB 87 E5 44 3A E4
+0170 | 46 36 F7 E2 E5 53 E7 E7 0B 75 0F CC FE 78 AA BB
+0180 | 50 A1 48 DB 0F 56 80 9E 86 4E F2 21 BF 08 96 E5
+0190 | 82 62 DF A8 DD 07 CE B4 90 76 13 D2 22 1A 9B E4
+01A0 | 37 75 33 24 AB 71 35 4F 0A A4 F0 65 3B 57 C9 9B
+01B0 | 3B 04 2B 95 12 E4 57 76 6E 84 C4 27 1C 47 69 98
+01C0 | F3 45 A9 AF 97 E8 D4 F3 D5 B9 36 48 43 54 AC E0
+01D0 | EF 3D 05 D1 69 07 C5 AC 59 62 74 F7 74 54 49 65
+01E0 | EE E3 15 E4 8A FF 8D C6 76 6B 5F 53 03 7E AD BD
+01F0 | EF 55 70 AB 5E D8 31 F5 17 BB 58 45 A6 BF B4 D5
+0200 | 7B 93 EC CE C2 92 32 8D 10 01 8E E4 5D 17 72 73
+0210 | E8 E8 91 CD 7A 3D C0 F3 3E DF A4 45 1C 0C 7B 27
+0220 | 95 9D 49 E2 BC A1 0C D6 AF 26 1B 6C 09 55 CA 81
+0230 | AF 81 3A 65
Payload (de)serialization:
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;
@@ -570,13 +570,13 @@ answer = BA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F
nonce
4, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
20, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Value received from server in Step 2
@@ -594,13 +594,13 @@ answer = BA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F
g_a
300, 260
-FE000100C5325311ADFFE69972D90622
CCA1BEEFC865A493A8AB7ED9C59F9C46
DE4455CEFF6369538B6EDB45A2B0463A
C2B77FE7DC0B48E8F2C4DF7E7C0CD007
A16BD2F44AECF5A1C18FDD65E266B304
107843650DCF09B46E0979F23DDB43EB
DFF590D0E28675C2BF13081B0E3EF9B0
9CBE1034B49DBA936ECA4E00C0CCF4F9
28EBCEE5579EE53ABA0752EC0A8ECEFD
96847A32778D49E1DEBFFB4C29101E30
AA235BF55D15B6D5198A2912B1810DAB
2A97DBA3EF30CD9E6EE108F3B259149C
AD84754B1AB7DC8311D9B61C9161A030
931FFE046CEE5026E87ECBBA3EDB0763
A193639233360E24A78B4076ED682987
8414F6D48FCC9E7CAD7F44E257F02DBD
9BBB32A6
+FE0001002C51E6585757AC05CDE65EAA
95E45B3990882F39471D8A371C6C2506
A3E642FAAEDF28D26A270C6DA89A5B23
DAE7D53285907089B0D13BFC9823AB87
E5443AE44636F7E2E553E7E70B750FCC
FE78AABB50A148DB0F56809E864EF221
BF0896E58262DFA8DD07CEB4907613D2
221A9BE437753324AB71354F0AA4F065
3B57C99B3B042B9512E457766E84C427
1C476998F345A9AF97E8D4F3D5B93648
4354ACE0EF3D05D16907C5AC596274F7
74544965EEE315E48AFF8DC6766B5F53
037EADBDEF5570AB5ED831F517BB5845
A6BFB4D57B93ECCEC292328D10018EE4
5D177273E8E891CD7A3DC0F33EDFA445
1C0C7B27959D49E2BCA10CD6AF261B6C
0955CA81
g_a
diffie-hellman parameter
server_time
560, 4
-F31E3865
(1698176755 in decimal)
+AF813A65
(1698333103 in decimal)
Server time
@@ -609,34 +609,34 @@ answer = BA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F
7) Client computes random 2048-bit number b (using a sufficient amount of entropy) and sends the server a message
First, generate a secure random 2048-bit number b:
-b = 6D2A58D0BEE6590111486859CD31894613AB8D54F482D3F6F00B0BB2EF5477D2BAA0C95923DE65F3A377225E21E928D51CE6E172767DA9A61EC7DF5BE8232697D9760F120373E4D7662BACA15172E886872730827946B2BCC4548BC28C788273DF8047B43BB71DBA454C68C5E3764F72B702234ACAD127E09F8E120A928664D5AE424E42B045D48D21600947E2CE1B57CA224D6F3A96435705E777984AFBB3CAC8E1E25D4177769053C6C23E62C231B662789373480B8F77CF60849F21ADE9722850927587B08B664222F652C14F78BE126F24CC22B11792FC2D43E7E6E6285D0AF857A221EBD8C6111773B0A0B6DBC6D34BB7B53D0BD8E685874A108A1F3BFB
+b = 22364BC52FE22E197509E17EC88E8EAC8EC6C4A9977437747BCB7615E28F964E8ED7B414617CDD0A892C756DA23376894C0AE7D85C7D6D951535AABB60212A21CB3D7C6C13186DE1D416412B0ACDC53C360F7A08CD032A635AE1AB2B901FE6DF9C5DB62BCDB8226749098824109B4284047463B36582B497CB6408B3D92CB1AA2C578398AB9CB85DFC575F6647C0BBAD892A20C0F73EA564C0B68F48444221AC0E23FB849FC5D294328C7019F251B0373A72A30F44CAE7A45BECC3BC90A978C4AF2F05B3C2A98BC972164054DB153C6DF033B747C42E21A49091705CD6B7614D0A3C132BE3435A04E2FA3A1FD42ED1A5D94E8FC6AC0BFF4552D7453B3BBDF340
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 0626BC9CE2117393C48CB279242C068CCDF636D364F38A119E9D551778F62B4E04807A3F604D69464E49B30F60479BB952376D72276D6E87408CA34745A0C35E7E4E505DCA1EEB233C4D4FB00CDC1B1B7414CB50A6A017F3E8F038814CECE50676FBB9CA533E8A23FD69A3AB17DDFD9BE10713214CF6DEE327B005A358697D4D56C3529EDB238C280A6C2D75314E9B49CDAC0FB1D2D22B7BCF6302AE315BE029477F4E01F28E07F825DEB486522788FB0ECFE3D852FFFD4092336E68EBDE6F9908F32694EDD4537384DB149BFAB09321B27362F9DB405D8427584BC02B36F5B735EBE90C8FACB837971C166DF683EB8FD0BC38E96F09504B8161215494B29605
+g_b = 962D9EAC96083ADEC9DBD5147CC105C7EBF175FC65DF93DC9AE66BBED609687673ECB29FD81A5150663D1673FB78758E8131B9328C6328750DEC1AF449B7FF15E39D5BA24958204267730E4B8897A7FCC41043B2B748AD22CCA6F67F1D6AC873E9AE4EADD39ADF32705B4BF78D3C250F97A8C80FE03845CB8DE483AB646AF8ADCFCBB554346E4C4ED3F3886DC111787F3271A8A71214F1F89FE45C68F7624B1D62D66950E6AFE3AFAF4601636C81361FC01A397BB606CC54FBC70042870EA521160F509963AE1E90778135B1458980D47C663FF34BDE1666433C33DE04335608305F0E1849107B1A6D733CCB9B951D40477D58B5515E41DEE9D7ECD8785E5927
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 80 79 E1 6E 86 7B C4 82 F9 B4 8E 24
-0010 | 88 E9 54 B3 AF 73 D5 1E 13 D1 A9 25 59 21 3C 56
-0020 | 96 1D 02 F8 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 06 26 BC 9C E2 11 73 93 C4 8C B2 79 24 2C 06 8C
-0040 | CD F6 36 D3 64 F3 8A 11 9E 9D 55 17 78 F6 2B 4E
-0050 | 04 80 7A 3F 60 4D 69 46 4E 49 B3 0F 60 47 9B B9
-0060 | 52 37 6D 72 27 6D 6E 87 40 8C A3 47 45 A0 C3 5E
-0070 | 7E 4E 50 5D CA 1E EB 23 3C 4D 4F B0 0C DC 1B 1B
-0080 | 74 14 CB 50 A6 A0 17 F3 E8 F0 38 81 4C EC E5 06
-0090 | 76 FB B9 CA 53 3E 8A 23 FD 69 A3 AB 17 DD FD 9B
-00A0 | E1 07 13 21 4C F6 DE E3 27 B0 05 A3 58 69 7D 4D
-00B0 | 56 C3 52 9E DB 23 8C 28 0A 6C 2D 75 31 4E 9B 49
-00C0 | CD AC 0F B1 D2 D2 2B 7B CF 63 02 AE 31 5B E0 29
-00D0 | 47 7F 4E 01 F2 8E 07 F8 25 DE B4 86 52 27 88 FB
-00E0 | 0E CF E3 D8 52 FF FD 40 92 33 6E 68 EB DE 6F 99
-00F0 | 08 F3 26 94 ED D4 53 73 84 DB 14 9B FA B0 93 21
-0100 | B2 73 62 F9 DB 40 5D 84 27 58 4B C0 2B 36 F5 B7
-0110 | 35 EB E9 0C 8F AC B8 37 97 1C 16 6D F6 83 EB 8F
-0120 | D0 BC 38 E9 6F 09 50 4B 81 61 21 54 94 B2 96 05
+0000 | 54 B6 43 66 5B C4 75 40 D7 80 0C F2 57 0E 01 B2
+0010 | 0E 7A C4 96 A3 5B C5 BC D1 78 47 75 79 57 68 32
+0020 | EF F8 E6 3F 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 96 2D 9E AC 96 08 3A DE C9 DB D5 14 7C C1 05 C7
+0040 | EB F1 75 FC 65 DF 93 DC 9A E6 6B BE D6 09 68 76
+0050 | 73 EC B2 9F D8 1A 51 50 66 3D 16 73 FB 78 75 8E
+0060 | 81 31 B9 32 8C 63 28 75 0D EC 1A F4 49 B7 FF 15
+0070 | E3 9D 5B A2 49 58 20 42 67 73 0E 4B 88 97 A7 FC
+0080 | C4 10 43 B2 B7 48 AD 22 CC A6 F6 7F 1D 6A C8 73
+0090 | E9 AE 4E AD D3 9A DF 32 70 5B 4B F7 8D 3C 25 0F
+00A0 | 97 A8 C8 0F E0 38 45 CB 8D E4 83 AB 64 6A F8 AD
+00B0 | CF CB B5 54 34 6E 4C 4E D3 F3 88 6D C1 11 78 7F
+00C0 | 32 71 A8 A7 12 14 F1 F8 9F E4 5C 68 F7 62 4B 1D
+00D0 | 62 D6 69 50 E6 AF E3 AF AF 46 01 63 6C 81 36 1F
+00E0 | C0 1A 39 7B B6 06 CC 54 FB C7 00 42 87 0E A5 21
+00F0 | 16 0F 50 99 63 AE 1E 90 77 81 35 B1 45 89 80 D4
+0100 | 7C 66 3F F3 4B DE 16 66 43 3C 33 DE 04 33 56 08
+0110 | 30 5F 0E 18 49 10 7B 1A 6D 73 3C CB 9B 95 1D 40
+0120 | 47 7D 58 B5 51 5E 41 DE E9 D7 EC D8 78 5E 59 27
Payload (de)serialization:
client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
@@ -658,19 +658,19 @@ answer = BA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F
nonce
4, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
20, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Value received from server in Step 2
g_b
36, 260
-FE0001000626BC9CE2117393C48CB279
242C068CCDF636D364F38A119E9D5517
78F62B4E04807A3F604D69464E49B30F
60479BB952376D72276D6E87408CA347
45A0C35E7E4E505DCA1EEB233C4D4FB0
0CDC1B1B7414CB50A6A017F3E8F03881
4CECE50676FBB9CA533E8A23FD69A3AB
17DDFD9BE10713214CF6DEE327B005A3
58697D4D56C3529EDB238C280A6C2D75
314E9B49CDAC0FB1D2D22B7BCF6302AE
315BE029477F4E01F28E07F825DEB486
522788FB0ECFE3D852FFFD4092336E68
EBDE6F9908F32694EDD4537384DB149B
FAB09321B27362F9DB405D8427584BC0
2B36F5B735EBE90C8FACB837971C166D
F683EB8FD0BC38E96F09504B81612154
94B29605
+FE000100962D9EAC96083ADEC9DBD514
7CC105C7EBF175FC65DF93DC9AE66BBE
D609687673ECB29FD81A5150663D1673
FB78758E8131B9328C6328750DEC1AF4
49B7FF15E39D5BA24958204267730E4B
8897A7FCC41043B2B748AD22CCA6F67F
1D6AC873E9AE4EADD39ADF32705B4BF7
8D3C250F97A8C80FE03845CB8DE483AB
646AF8ADCFCBB554346E4C4ED3F3886D
C111787F3271A8A71214F1F89FE45C68
F7624B1D62D66950E6AFE3AFAF460163
6C81361FC01A397BB606CC54FBC70042
870EA521160F509963AE1E90778135B1
458980D47C663FF34BDE1666433C33DE
04335608305F0E1849107B1A6D733CCB
9B951D40477D58B5515E41DEE9D7ECD8
785E5927
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -684,47 +684,47 @@ answer = BA0D89B58079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F
The serialization of Client_DH_Inner_Data produces a string data . This is used to generate encrypted_data as specified in step 6 , using the following inputs:
-data = 54B643668079E16E867BC482F9B48E2488E954B3AF73D51E13D1A92559213C56961D02F80000000000000000FE0001000626BC9CE2117393C48CB279242C068CCDF636D364F38A119E9D551778F62B4E04807A3F604D69464E49B30F60479BB952376D72276D6E87408CA34745A0C35E7E4E505DCA1EEB233C4D4FB00CDC1B1B7414CB50A6A017F3E8F038814CECE50676FBB9CA533E8A23FD69A3AB17DDFD9BE10713214CF6DEE327B005A358697D4D56C3529EDB238C280A6C2D75314E9B49CDAC0FB1D2D22B7BCF6302AE315BE029477F4E01F28E07F825DEB486522788FB0ECFE3D852FFFD4092336E68EBDE6F9908F32694EDD4537384DB149BFAB09321B27362F9DB405D8427584BC02B36F5B735EBE90C8FACB837971C166DF683EB8FD0BC38E96F09504B8161215494B29605
-padding = 7857EE13181263277AE0ADF9
-tmp_aes_key = 080DA9E05172968714AF9C8E91343901A142E5CB189A138DC1C3EE1C63F22B7C
-tmp_aes_iv = 495338BB912C906CF13D1E6101F7D81735ABFAE146A2F19A7F2EC16A1293829C
+data = 54B643665BC47540D7800CF2570E01B20E7AC496A35BC5BCD178477579576832EFF8E63F0000000000000000FE000100962D9EAC96083ADEC9DBD5147CC105C7EBF175FC65DF93DC9AE66BBED609687673ECB29FD81A5150663D1673FB78758E8131B9328C6328750DEC1AF449B7FF15E39D5BA24958204267730E4B8897A7FCC41043B2B748AD22CCA6F67F1D6AC873E9AE4EADD39ADF32705B4BF78D3C250F97A8C80FE03845CB8DE483AB646AF8ADCFCBB554346E4C4ED3F3886DC111787F3271A8A71214F1F89FE45C68F7624B1D62D66950E6AFE3AFAF4601636C81361FC01A397BB606CC54FBC70042870EA521160F509963AE1E90778135B1458980D47C663FF34BDE1666433C33DE04335608305F0E1849107B1A6D733CCB9B951D40477D58B5515E41DEE9D7ECD8785E5927
+padding = F7543DED13D642559C6340C5
+tmp_aes_key = 8F1B855F685543EEBC158D37252B4C1609AFBD767149C011C89005DCA2BA9EE4
+tmp_aes_iv = D332730E4F33F366440193503837B56ADB3667C4B76F079787BB40D8CA938BA9
Process:
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);
Output:
-encrypted_data = 5CD0C82F80942D51715459C037E1458D7C1462F593E011D2AE4760446F37478B954E7096043F465A728D909ED915705D0AFF9A065D41934A3339B39DCC227495593B50AE231623D42ADAF20CA895BECEBF500B840B4B04D68EDA601BFFF53F9B9991B8C355CAA67A4E8C5ED8E4531C7143554CF380C447FB38C5951597186CE04B32779048B0417E5F12757AFF123FD4817999312A7875CC4F6E566B286FE131A41AF4725757762994184796855C9A296BAA2B6364E73037BEE0637C0FD8345EFBD1F572E0B90D130065F8F6CA449D3D0ED1C759C930C803559E4A42C33BA1D046A406AB5E5A8C9A5D5066854AE4B635621C21F84F4CB55D304EC8F3665ADB59FA5A614F03E33835972567009D1CC32A6232E8551B9966E0BDEDF34AC74FE62372E9ABA32FCC5CE234315379598509721BE36A522B3C55DBAE92DD0FEA088E2356FC14960D4A0EDAAFAAFFA70CAE707C
+encrypted_data = C4AF8EC9E830FADDE7B443E428C8FC181874C57FA121D51B966C24B5DDDF6BED72756F18F8C4904FD5E30D732D43F0171AB9141C4D04B5B69FA8F78AC247FD458CAA619373DDC95AC4FD8B9C5614298E4B59C3EE63C04B430E836B2122B55937B0702128255C4E5A15D2072A0E1A2C2E05E651C41124DC504818991E11AA115E31E25547574B7596EDC3662013A07DCD01724E28C3D8A5AD31ADFF95C06A60BFBEBB605F0B48A6AB4C312BB6EFA999CE5F704E684E7B47EE06E582495E79DBE8A201FD025ED31C911C61B24FD3811E9D519C3EF64F78E332995B101C86A6647D51EEEFF0FB369B6623A90E12E30C77724A2DB8BFC5E88A8607750FFF28D53BF2A693383DB9A7ABCEA53D07BB97F6EE97B12AB21EE93B0A84BACC25F609972A3D715FC1E05E6300713AF5C46FC158C355045A4AF73C369C11A2ACCB4EEF5A0F32AE003B2C283B387F23D91D1FCEA69FB0
The length of the final string is 336 bytes.
7.2) set_client_DH_params query
Sent payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 D4 CE 0A 00 F7 1E 38 65
-0010 | 78 01 00 00 1F 5F 04 F5 80 79 E1 6E 86 7B C4 82
-0020 | F9 B4 8E 24 88 E9 54 B3 AF 73 D5 1E 13 D1 A9 25
-0030 | 59 21 3C 56 96 1D 02 F8 FE 50 01 00 5C D0 C8 2F
-0040 | 80 94 2D 51 71 54 59 C0 37 E1 45 8D 7C 14 62 F5
-0050 | 93 E0 11 D2 AE 47 60 44 6F 37 47 8B 95 4E 70 96
-0060 | 04 3F 46 5A 72 8D 90 9E D9 15 70 5D 0A FF 9A 06
-0070 | 5D 41 93 4A 33 39 B3 9D CC 22 74 95 59 3B 50 AE
-0080 | 23 16 23 D4 2A DA F2 0C A8 95 BE CE BF 50 0B 84
-0090 | 0B 4B 04 D6 8E DA 60 1B FF F5 3F 9B 99 91 B8 C3
-00A0 | 55 CA A6 7A 4E 8C 5E D8 E4 53 1C 71 43 55 4C F3
-00B0 | 80 C4 47 FB 38 C5 95 15 97 18 6C E0 4B 32 77 90
-00C0 | 48 B0 41 7E 5F 12 75 7A FF 12 3F D4 81 79 99 31
-00D0 | 2A 78 75 CC 4F 6E 56 6B 28 6F E1 31 A4 1A F4 72
-00E0 | 57 57 76 29 94 18 47 96 85 5C 9A 29 6B AA 2B 63
-00F0 | 64 E7 30 37 BE E0 63 7C 0F D8 34 5E FB D1 F5 72
-0100 | E0 B9 0D 13 00 65 F8 F6 CA 44 9D 3D 0E D1 C7 59
-0110 | C9 30 C8 03 55 9E 4A 42 C3 3B A1 D0 46 A4 06 AB
-0120 | 5E 5A 8C 9A 5D 50 66 85 4A E4 B6 35 62 1C 21 F8
-0130 | 4F 4C B5 5D 30 4E C8 F3 66 5A DB 59 FA 5A 61 4F
-0140 | 03 E3 38 35 97 25 67 00 9D 1C C3 2A 62 32 E8 55
-0150 | 1B 99 66 E0 BD ED F3 4A C7 4F E6 23 72 E9 AB A3
-0160 | 2F CC 5C E2 34 31 53 79 59 85 09 72 1B E3 6A 52
-0170 | 2B 3C 55 DB AE 92 DD 0F EA 08 8E 23 56 FC 14 96
-0180 | 0D 4A 0E DA AF AA FF A7 0C AE 70 7C
+0000 | 00 00 00 00 00 00 00 00 7C AC 0E 00 B3 81 3A 65
+0010 | 78 01 00 00 1F 5F 04 F5 5B C4 75 40 D7 80 0C F2
+0020 | 57 0E 01 B2 0E 7A C4 96 A3 5B C5 BC D1 78 47 75
+0030 | 79 57 68 32 EF F8 E6 3F FE 50 01 00 C4 AF 8E C9
+0040 | E8 30 FA DD E7 B4 43 E4 28 C8 FC 18 18 74 C5 7F
+0050 | A1 21 D5 1B 96 6C 24 B5 DD DF 6B ED 72 75 6F 18
+0060 | F8 C4 90 4F D5 E3 0D 73 2D 43 F0 17 1A B9 14 1C
+0070 | 4D 04 B5 B6 9F A8 F7 8A C2 47 FD 45 8C AA 61 93
+0080 | 73 DD C9 5A C4 FD 8B 9C 56 14 29 8E 4B 59 C3 EE
+0090 | 63 C0 4B 43 0E 83 6B 21 22 B5 59 37 B0 70 21 28
+00A0 | 25 5C 4E 5A 15 D2 07 2A 0E 1A 2C 2E 05 E6 51 C4
+00B0 | 11 24 DC 50 48 18 99 1E 11 AA 11 5E 31 E2 55 47
+00C0 | 57 4B 75 96 ED C3 66 20 13 A0 7D CD 01 72 4E 28
+00D0 | C3 D8 A5 AD 31 AD FF 95 C0 6A 60 BF BE BB 60 5F
+00E0 | 0B 48 A6 AB 4C 31 2B B6 EF A9 99 CE 5F 70 4E 68
+00F0 | 4E 7B 47 EE 06 E5 82 49 5E 79 DB E8 A2 01 FD 02
+0100 | 5E D3 1C 91 1C 61 B2 4F D3 81 1E 9D 51 9C 3E F6
+0110 | 4F 78 E3 32 99 5B 10 1C 86 A6 64 7D 51 EE EF F0
+0120 | FB 36 9B 66 23 A9 0E 12 E3 0C 77 72 4A 2D B8 BF
+0130 | C5 E8 8A 86 07 75 0F FF 28 D5 3B F2 A6 93 38 3D
+0140 | B9 A7 AB CE A5 3D 07 BB 97 F6 EE 97 B1 2A B2 1E
+0150 | E9 3B 0A 84 BA CC 25 F6 09 97 2A 3D 71 5F C1 E0
+0160 | 5E 63 00 71 3A F5 C4 6F C1 58 C3 55 04 5A 4A F7
+0170 | 3C 36 9C 11 A2 AC CB 4E EF 5A 0F 32 AE 00 3B 2C
+0180 | 28 3B 38 7F 23 D9 1D 1F CE A6 9F B0
Payload (de)serialization:
set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
@@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id
8, 8
-D4CE0A00F71E3865
+7CAC0E00B3813A65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce
24, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
40, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Value received from server in Step 2
encrypted_data
56, 340
-FE5001005CD0C82F80942D51715459C0
37E1458D7C1462F593E011D2AE476044
6F37478B954E7096043F465A728D909E
D915705D0AFF9A065D41934A3339B39D
CC227495593B50AE231623D42ADAF20C
A895BECEBF500B840B4B04D68EDA601B
FFF53F9B9991B8C355CAA67A4E8C5ED8
E4531C7143554CF380C447FB38C59515
97186CE04B32779048B0417E5F12757A
FF123FD4817999312A7875CC4F6E566B
286FE131A41AF4725757762994184796
855C9A296BAA2B6364E73037BEE0637C
0FD8345EFBD1F572E0B90D130065F8F6
CA449D3D0ED1C759C930C803559E4A42
C33BA1D046A406AB5E5A8C9A5D506685
4AE4B635621C21F84F4CB55D304EC8F3
665ADB59FA5A614F03E3383597256700
9D1CC32A6232E8551B9966E0BDEDF34A
C74FE62372E9ABA32FCC5CE234315379
598509721BE36A522B3C55DBAE92DD0F
EA088E2356FC14960D4A0EDAAFAAFFA7
0CAE707C
+FE500100C4AF8EC9E830FADDE7B443E4
28C8FC181874C57FA121D51B966C24B5
DDDF6BED72756F18F8C4904FD5E30D73
2D43F0171AB9141C4D04B5B69FA8F78A
C247FD458CAA619373DDC95AC4FD8B9C
5614298E4B59C3EE63C04B430E836B21
22B55937B0702128255C4E5A15D2072A
0E1A2C2E05E651C41124DC504818991E
11AA115E31E25547574B7596EDC36620
13A07DCD01724E28C3D8A5AD31ADFF95
C06A60BFBEBB605F0B48A6AB4C312BB6
EFA999CE5F704E684E7B47EE06E58249
5E79DBE8A201FD025ED31C911C61B24F
D3811E9D519C3EF64F78E332995B101C
86A6647D51EEEFF0FB369B6623A90E12
E30C77724A2DB8BFC5E88A8607750FFF
28D53BF2A693383DB9A7ABCEA53D07BB
97F6EE97B12AB21EE93B0A84BACC25F6
09972A3D715FC1E05E6300713AF5C46F
C158C355045A4AF73C369C11A2ACCB4E
EF5A0F32AE003B2C283B387F23D91D1F
CEA69FB0
Encrypted client_DH_inner_data generated previously, serialized as a TL byte string
@@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
8) Auth key generation
The client computes the auth_key using formula g_a^b mod dh_prime
:
-auth_key = 4A8A768A6D38ECD7877A8A5913BABE5F905CEFC4D2B3D280A5878F88A3CE7FA6C38EA436FD2E032B2942B335F4FC58334A7C24D5D76B6DC3A55A46DBA36A26E96F48C078438D1080223EBA143BA47645EF0D62A2F783667EBC2CAC8A0D7D99B65B76D2B174419C39C191F8C112ECA797D45C1FC2F1EF82B97270FCECDA7A940F30049D0E132AEF507FC9003A625CB7037D9EB569A78DFAEB2A9ED5DC3705D0638374587AAF4B566457B0C4BBF2B3B50F6ABBA76B0D13C44C5DD90A29146A98A9D9F260B737403F10381E832DE220DBE37F52A841EE2A3E5B96DF679601CC0681D809BBC1A755C4E0D7663D6315A83E5EC3F6888C008AD60E84C3C99AC25ED7CA
+auth_key = 4068B2CF903CC148609AE00C7C2CC189D50B86881C907D1600BBACDC535A8312C59585F2ACAF1922F8368F45C87E2D5331903D462CBBB479509D39FF24CE63FE907855F2A3189B6ACA77D7D9E148F21180D6A0A0A7DA847A90765ECBE1361C7DE1B54901F2839068885F8EE5B04A84EF91B99402BE61D8E816E56040FBEEA9EAD609E02A5ECB2146C92E53FAB2472DB93E556D75780551F37988D2CD42B3FC38EDE50BBDCCD1D8275A92E5B5CA7443FE7994F6DFF2DD8447DD79EF64FA149FAA235EBBF86902879364126BD4F34EBA5C12141C8CFFDAE5498CA1C2C1F59A301E54C726034E24BAA56C94F07AB756DE6DF7C4998F96A20B5F4626773F8CF32C28
9) Final server reply
The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 9C 88 C4 F3 1E 38 65
-0010 | 68 00 00 00 34 F7 CB 3B 80 79 E1 6E 86 7B C4 82
-0020 | F9 B4 8E 24 88 E9 54 B3 AF 73 D5 1E 13 D1 A9 25
-0030 | 59 21 3C 56 96 1D 02 F8 BF 8E 6C 87 59 5D 8B 4F
-0040 | B7 CB 2E 57 94 1D 91 CE
+0000 | 00 00 00 00 00 00 00 00 01 B0 03 E2 AF 81 3A 65
+0010 | 50 00 00 00 34 F7 CB 3B 5B C4 75 40 D7 80 0C F2
+0020 | 57 0E 01 B2 0E 7A C4 96 A3 5B C5 BC D1 78 47 75
+0030 | 79 57 68 32 EF F8 E6 3F 32 05 65 2D 21 F4 F8 E2
+0040 | 8C 0B 5D 34 B5 30 63 1E
Payload (de)serialization:
dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
@@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id
8, 8
-019C88C4F31E3865
+01B003E2AF813A65
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-68000000
(104 in decimal)
+50000000
(80 in decimal)
Message body length
@@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce
24, 16
-8079E16E867BC482F9B48E2488E954B3
+5BC47540D7800CF2570E01B20E7AC496
Value generated by client in Step 1
server_nonce
40, 16
-AF73D51E13D1A92559213C56961D02F8
+A35BC5BCD178477579576832EFF8E63F
Value received from server in Step 2
new_nonce_hash1
56, 16
-BF8E6C87595D8B4FB7CB2E57941D91CE
+3205652D21F4F8E28C0B5D34B530631E
The 128 lower-order bits of SHA1 of the byte string derived from the new_nonce
string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with auth_key_aux_hash
. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.
diff --git a/data/web/corefork.telegram.org/type/InputPrivacyKey.html b/data/web/corefork.telegram.org/type/InputPrivacyKey.html
index 2f91439c53..5409315f68 100644
--- a/data/web/corefork.telegram.org/type/InputPrivacyKey.html
+++ b/data/web/corefork.telegram.org/type/InputPrivacyKey.html
@@ -119,6 +119,7 @@
Related pages
+Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways.
Privacy keys together with privacy rules » indicate what can or can't someone do and are specified by a PrivacyKey constructor, and its input counterpart InputPrivacyKey .
See the privacy documentation » for more info.
diff --git a/data/web/corefork.telegram.org/type/InputPrivacyRule.html b/data/web/corefork.telegram.org/type/InputPrivacyRule.html
index cdb2567c84..996939f3a6 100644
--- a/data/web/corefork.telegram.org/type/InputPrivacyRule.html
+++ b/data/web/corefork.telegram.org/type/InputPrivacyRule.html
@@ -119,7 +119,8 @@
Privacy rules indicate who can or can't do something and are specified by a PrivacyRule , and its input counterpart InputPrivacyRule .
See the privacy documentation » for more info.
-
+
+Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways.
diff --git a/data/web/corefork.telegram.org/type/PrivacyKey.html b/data/web/corefork.telegram.org/type/PrivacyKey.html
index 2ee8d102cb..498199e6b6 100644
--- a/data/web/corefork.telegram.org/type/PrivacyKey.html
+++ b/data/web/corefork.telegram.org/type/PrivacyKey.html
@@ -119,6 +119,7 @@
Related pages
+Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways.
Privacy keys together with privacy rules » indicate what can or can't someone do and are specified by a PrivacyKey constructor, and its input counterpart InputPrivacyKey .
See the privacy documentation » for more info.
diff --git a/data/web/corefork.telegram.org/type/PrivacyRule.html b/data/web/corefork.telegram.org/type/PrivacyRule.html
index 91dc515986..20673deaa1 100644
--- a/data/web/corefork.telegram.org/type/PrivacyRule.html
+++ b/data/web/corefork.telegram.org/type/PrivacyRule.html
@@ -114,6 +114,7 @@
Related pages
+Telegram allows users to specify granular privacy settings, choosing which users can or can't interact with them in certain ways.
Privacy keys together with privacy rules » indicate what can or can't someone do and are specified by a PrivacyKey constructor, and its input counterpart InputPrivacyKey .
See the privacy documentation » for more info.
diff --git a/data/web/corefork.telegram.org/type/Updates.html b/data/web/corefork.telegram.org/type/Updates.html
index 923d7a9c60..3051c1ecdb 100644
--- a/data/web/corefork.telegram.org/type/Updates.html
+++ b/data/web/corefork.telegram.org/type/Updates.html
@@ -378,7 +378,7 @@
contacts.acceptContact
-If the peer settings of a new user allow us to add them as contact, add that user as contact
+If the add contact action bar is active , add that user as contact
channels.editCreator