From 42a2129ab029f27747e208d51d38cd066305c27b Mon Sep 17 00:00:00 2001
From: GitHub Action slug
should be used to generate a giftcode link, that the user can use to redeem the subscription, or re-gift it to someone else.
If winners_are_visible
flag is set while starting a giveaway, giveaway winners are public and will be listed in a messageMediaGiveawayResults message that will be automatically sent to the channel once the giveaway ends.
Any user can invoke payments.checkGiftCode with the link's slug to obtain info about the giveaway, such as the channel that gifted the subscription (from_id
), and the user that originally received the gift (to_id
).
This can also be useful to channel administrators to precisely determine the winners of a giveaway, for example if the giveaway also included some extra gifts apart from Premium subscriptions (like Teslas): the winners can simply send their link as undisputable proof that they won the giveaway, because the user that received the gift can be viewed in the to_id
field returned by Telegram when invoking payments.checkGiftCode on the slug.
Another way for admins to check who received the gifts is to simply use premium.getBoostsList while the boosts received by the gifts are still active.
Clients may also re-use an existing mediaAreaVenue from a previously uploaded story.
+Clients may only re-use existing mediaAreaVenues when repositioning a pre-existing location tag when editing a story; use inputMediaAreaVenue when posting a new story or adding a new location tag to an existing story.
Schema:
reactionEmoji#1b2286b8 emoticon:string = Reaction;
diff --git a/data/web/corefork.telegram.org/constructor/inputStorePaymentPremiumGiveaway.html b/data/web/corefork.telegram.org/constructor/inputStorePaymentPremiumGiveaway.html
index 14ef2592b0..d96eee3927 100644
--- a/data/web/corefork.telegram.org/constructor/inputStorePaymentPremiumGiveaway.html
+++ b/data/web/corefork.telegram.org/constructor/inputStorePaymentPremiumGiveaway.html
@@ -79,7 +79,7 @@
winners_are_visible
flags.3?true
-
+If set, giveaway winners are public and will be listed in a messageMediaGiveawayResults message that will be automatically sent to the channel once the giveaway ends.
boost_peer
@@ -126,6 +126,8 @@
Type
Related pages
+messageMediaGiveawayResults
+A giveaway with public winners has finished, this constructor contains info about the winners.
Channel boosts
Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.
Giveaways
diff --git a/data/web/corefork.telegram.org/constructor/messageMediaGiveaway.html b/data/web/corefork.telegram.org/constructor/messageMediaGiveaway.html
index 0fc15c0b41..91ed153216 100644
--- a/data/web/corefork.telegram.org/constructor/messageMediaGiveaway.html
+++ b/data/web/corefork.telegram.org/constructor/messageMediaGiveaway.html
@@ -79,7 +79,7 @@
winners_are_visible
flags.2?true
-
+If set, giveaway winners are public and will be listed in a messageMediaGiveawayResults message that will be automatically sent to the channel once the giveaway ends.
channels
@@ -116,6 +116,8 @@
Type
Related pages
+messageMediaGiveawayResults
+A giveaway with public winners has finished, this constructor contains info about the winners.
Telegram Premium
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.
Giveaways
diff --git a/data/web/corefork.telegram.org/constructor/messageMediaGiveawayResults.html b/data/web/corefork.telegram.org/constructor/messageMediaGiveawayResults.html
index 7c056592a3..36dab71595 100644
--- a/data/web/corefork.telegram.org/constructor/messageMediaGiveawayResults.html
+++ b/data/web/corefork.telegram.org/constructor/messageMediaGiveawayResults.html
@@ -4,30 +4,10 @@
messageMediaGiveawayResults
-
+
-
+
@@ -62,7 +42,8 @@ refunded…">
messageMediaGiveawayResults
-
+ A giveaway with public winners has finished, this constructor contains info about the winners.
+
-
Layer 170
@@ -93,47 +74,47 @@ refunded…">
only_new_subscribers
flags.0?true
-
+If set, only new subscribers starting from the giveaway creation date participated in the giveaway.
refunded
flags.2?true
-
+If set, the giveaway was canceled and was fully refunded.
channel_id
long
-
+ID of the channel that was automatically boosted by the winners of the giveaway for duration of the Premium subscription.
additional_peers_count
flags.3?int
-
+Number of other channels that participated in the giveaway.
launch_msg_id
int
-
+Identifier of the message with the giveaway in channel_id
.
winners_count
int
-
+Total number of winners in the giveaway.
unclaimed_count
int
-
+Number of not-yet-claimed prizes.
winners
Vector<long>
-
+Up to 100 user identifiers of the winners of the giveaway.
months
int
-
+Duration in months of each Telegram Premium subscription in the giveaway.
prize_description
@@ -143,12 +124,17 @@ refunded…">
until_date
int
-
+Point in time (Unix timestamp) when the winners were selected. May be bigger than winners selection date specified in initial parameters of the giveaway.
Type
-
+
+Related pages
+Channel boosts
+Telegram Premium users can grant their favorite channels additional features like the ability to post stories by giving them boosts.
+Telegram Premium
+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/stickerSet.html b/data/web/corefork.telegram.org/constructor/stickerSet.html
index 58cdbab975..f2849254db 100644
--- a/data/web/corefork.telegram.org/constructor/stickerSet.html
+++ b/data/web/corefork.telegram.org/constructor/stickerSet.html
@@ -171,6 +171,8 @@
Type
Related pages
+Emoji status
+Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.
Deep links
Telegram clients must handle special tg:// and t.me deep links encountered in messages, link entities and in other apps by registering OS handlers.
messages.getCustomEmojiDocuments
diff --git a/data/web/corefork.telegram.org/constructor/stories.storyViewsList.html b/data/web/corefork.telegram.org/constructor/stories.storyViewsList.html
index 4782070a91..0860f4e38a 100644
--- a/data/web/corefork.telegram.org/constructor/stories.storyViewsList.html
+++ b/data/web/corefork.telegram.org/constructor/stories.storyViewsList.html
@@ -99,7 +99,7 @@
chats
Vector<Chat>
-
+Mentioned chats
users
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 b89f6f905c..aa8e142a14 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 80 4D 04 00 5A 3E A8 65
-0010 | 14 00 00 00 F1 8E 7E BE D2 AC 74 53 3A 31 3A 58
-0020 | 87 0E 49 D5 3B A6 8A 05
+0000 | 00 00 00 00 00 00 00 00 38 82 0A 00 39 41 A8 65
+0010 | 14 00 00 00 F1 8E 7E BE 50 C9 33 C4 AD E5 B6 C3
+0020 | B5 B5 5C 41 15 81 CB 21
Payload (de)serialization:
req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@
message_id
8, 8
-804D04005A3EA865
+38820A003941A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -95,7 +95,7 @@
nonce
24, 16
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
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 40 72 63 5A 3E A8 65
-0010 | 64 00 00 00 63 24 16 05 D2 AC 74 53 3A 31 3A 58
-0020 | 87 0E 49 D5 3B A6 8A 05 00 09 D4 B0 4B A7 57 78
-0030 | C5 60 95 8C 4F 18 A6 BA 08 18 55 3B 47 CA 48 33
-0040 | B3 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 50 FA E1 39 41 A8 65
+0010 | 5C 00 00 00 63 24 16 05 50 C9 33 C4 AD E5 B6 C3
+0020 | B5 B5 5C 41 15 81 CB 21 FE CE EF E9 4A DA F6 67
+0030 | EE 9B 81 67 AC 97 61 C8 08 19 98 AE D4 EB D1 8E
+0040 | 23 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
-014072635A3EA865
+0150FAE13941A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-64000000
(100 in decimal)
+5C000000
(92 in decimal)
Message body length
@@ -150,19 +150,19 @@
nonce
24, 16
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
40, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Server-generated random number
pq
56, 12
-0818553B47CA4833B3000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1753372809453122483
+081998AED4EBD18E23000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1844416276920897059
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 = 1753372809453122483
-Decompose into 2 prime cofactors p < q
: 1753372809453122483 = 1027255513 * 1706851691
-p = 1027255513
-q = 1706851691
+pq = 1844416276920897059
+Decompose into 2 prime cofactors p < q
: 1844416276920897059 = 1173828283 * 1571282873
+p = 1173828283
+q = 1571282873
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 18 55 3B 47 CA 48 33 B3 00 00 00
-0010 | 04 3D 3A AC D9 00 00 00 04 65 BC 7D 6B 00 00 00
-0020 | D2 AC 74 53 3A 31 3A 58 87 0E 49 D5 3B A6 8A 05
-0030 | 00 09 D4 B0 4B A7 57 78 C5 60 95 8C 4F 18 A6 BA
-0040 | 14 82 ED 11 D3 91 DA 9A 4B A3 AC 53 A5 CC 82 4D
-0050 | 1E 11 6D 38 49 FB F1 E1 3A FF 05 C0 48 5B FC 45
+0000 | 95 5F F5 A9 08 19 98 AE D4 EB D1 8E 23 00 00 00
+0010 | 04 45 F7 32 BB 00 00 00 04 5D A7 DF B9 00 00 00
+0020 | 50 C9 33 C4 AD E5 B6 C3 B5 B5 5C 41 15 81 CB 21
+0030 | FE CE EF E9 4A DA F6 67 EE 9B 81 67 AC 97 61 C8
+0040 | 81 3B 52 FD DC 32 6E D3 8C F0 23 8F 4E 61 F8 CD
+0050 | 6A D5 42 4B 2A A6 C5 4F 86 77 88 7D 60 E2 B1 CA
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 = 1706851691
pq
4, 12
-0818553B47CA4833B3000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1753372809453122483
+081998AED4EBD18E23000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1844416276920897059
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p
16, 8
-043D3AACD9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1027255513
+0445F732BB000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1173828283
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
24, 8
-0465BC7D6B000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1706851691
+045DA7DFB9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1571282873
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce
32, 16
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
48, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Value received from server in Step 2
new_nonce
64, 32
-1482ED11D391DA9A4BA3AC53A5CC824D
1E116D3849FBF1E13AFF05C0485BFC45
+813B52FDDC326ED38CF0238F4E61F8CD
6AD5424B2AA6C54F8677887D60E2B1CA
Client-generated random number
@@ -291,39 +291,39 @@ q = 1706851691
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 = 955FF5A90818553B47CA4833B3000000043D3AACD90000000465BC7D6B000000D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6BA1482ED11D391DA9A4BA3AC53A5CC824D1E116D3849FBF1E13AFF05C0485BFC4502000000
-random_padding_bytes = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77DD4F33846520BEB3EAEF5A0423BFD70C0D2D0629D7A6A3C07954CBBD347E91BC3B3E25A7165553BF722647FDFE358ED7A5C6857F884CBB258DCE9E02F7C0C323
+data = 955FF5A9081998AED4EBD18E230000000445F732BB000000045DA7DFB900000050C933C4ADE5B6C3B5B55C411581CB21FECEEFE94ADAF667EE9B8167AC9761C8813B52FDDC326ED38CF0238F4E61F8CD6AD5424B2AA6C54F8677887D60E2B1CA02000000
+random_padding_bytes = D41C27B55AC6C90986F05AA29498119E4924CB7AB29542F9CD5138F4B2F73F223852D71E9838F5ECDA53FE8955E97A4B8A53E6ED37EDCE837E68C48B8666C67D8B3E91A30E2F107D4792EF61B7CC792E5297FDA7B7C49F83C1DBA897
And this is the output:
-encrypted_data = 43FFEB0FFD274E0C28BCB989DF1979D84C12B8500A1EB5E0A74A85F17CFC77D525C25B87C7B600B64DD3FC3065CB58C58C157FA3EA35A57780DD1E68A7B5AD97EBE7F756DC7BEE3516F38B5024288705214D11E625DC478F61DC9D86AD18964134D07BBDF2D5FA5980E1D74CC93BCC24BF9735DD09950A09B9D203C57288534E3CEDC3394EEC8560FD388A6B27843166B625A412C7542F907A1A0341C142EBF6FEE41DDE739FE7D3AB0BF5B0290286D7F9AEF9EDDEB36B8E08633480DAC476A887597FD9C48BFFCFAFC8BD8F899DCF675D858E2728F443FB5D80006F56AFD5B82A85DFF3EF59F57F15F83C81A52BA9F30B27FF796DB00DAF6FF9A8263F024005
+encrypted_data = 08089F6165330532285E349EC82A8C56B6B6B16FB17FA9EA72B5DDFC96F6E7C4B7DF7FB7F197DB819228CAB957D49AA5E7DAA4CAB4D0DDB1584958BA4C584269C24B752ED796CE59E9A496D1FA5D1756820468DD1430DFFD80CD86780F39A1DDBADD0685C221380B5CF56D4ED57F8DC868259FE5EC75F0204636DDA1F721875BF4788B9843200888C5536AF8954C18C6D6F54E34584A5AD152CA7C3C8A6BDF9E346C5546C7B1AE323BF8D598D8912EB776435F3E604D9511FA19EF75C33A509A328076AA98239510D00061FAC782C41577C330B303E4736A1B1D3E59F58A74EA3FEE697F02EFBFA7DA520A6FAC91F68883351C555F02A4744F5274982CDB9F29
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 84 4D 04 00 5A 3E A8 65
-0010 | 40 01 00 00 BE E4 12 D7 D2 AC 74 53 3A 31 3A 58
-0020 | 87 0E 49 D5 3B A6 8A 05 00 09 D4 B0 4B A7 57 78
-0030 | C5 60 95 8C 4F 18 A6 BA 04 3D 3A AC D9 00 00 00
-0040 | 04 65 BC 7D 6B 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 43 FF EB 0F FD 27 4E 0C 28 BC B9 89
-0060 | DF 19 79 D8 4C 12 B8 50 0A 1E B5 E0 A7 4A 85 F1
-0070 | 7C FC 77 D5 25 C2 5B 87 C7 B6 00 B6 4D D3 FC 30
-0080 | 65 CB 58 C5 8C 15 7F A3 EA 35 A5 77 80 DD 1E 68
-0090 | A7 B5 AD 97 EB E7 F7 56 DC 7B EE 35 16 F3 8B 50
-00A0 | 24 28 87 05 21 4D 11 E6 25 DC 47 8F 61 DC 9D 86
-00B0 | AD 18 96 41 34 D0 7B BD F2 D5 FA 59 80 E1 D7 4C
-00C0 | C9 3B CC 24 BF 97 35 DD 09 95 0A 09 B9 D2 03 C5
-00D0 | 72 88 53 4E 3C ED C3 39 4E EC 85 60 FD 38 8A 6B
-00E0 | 27 84 31 66 B6 25 A4 12 C7 54 2F 90 7A 1A 03 41
-00F0 | C1 42 EB F6 FE E4 1D DE 73 9F E7 D3 AB 0B F5 B0
-0100 | 29 02 86 D7 F9 AE F9 ED DE B3 6B 8E 08 63 34 80
-0110 | DA C4 76 A8 87 59 7F D9 C4 8B FF CF AF C8 BD 8F
-0120 | 89 9D CF 67 5D 85 8E 27 28 F4 43 FB 5D 80 00 6F
-0130 | 56 AF D5 B8 2A 85 DF F3 EF 59 F5 7F 15 F8 3C 81
-0140 | A5 2B A9 F3 0B 27 FF 79 6D B0 0D AF 6F F9 A8 26
-0150 | 3F 02 40 05
+0000 | 00 00 00 00 00 00 00 00 EC 53 03 00 3A 41 A8 65
+0010 | 40 01 00 00 BE E4 12 D7 50 C9 33 C4 AD E5 B6 C3
+0020 | B5 B5 5C 41 15 81 CB 21 FE CE EF E9 4A DA F6 67
+0030 | EE 9B 81 67 AC 97 61 C8 04 45 F7 32 BB 00 00 00
+0040 | 04 5D A7 DF B9 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 08 08 9F 61 65 33 05 32 28 5E 34 9E
+0060 | C8 2A 8C 56 B6 B6 B1 6F B1 7F A9 EA 72 B5 DD FC
+0070 | 96 F6 E7 C4 B7 DF 7F B7 F1 97 DB 81 92 28 CA B9
+0080 | 57 D4 9A A5 E7 DA A4 CA B4 D0 DD B1 58 49 58 BA
+0090 | 4C 58 42 69 C2 4B 75 2E D7 96 CE 59 E9 A4 96 D1
+00A0 | FA 5D 17 56 82 04 68 DD 14 30 DF FD 80 CD 86 78
+00B0 | 0F 39 A1 DD BA DD 06 85 C2 21 38 0B 5C F5 6D 4E
+00C0 | D5 7F 8D C8 68 25 9F E5 EC 75 F0 20 46 36 DD A1
+00D0 | F7 21 87 5B F4 78 8B 98 43 20 08 88 C5 53 6A F8
+00E0 | 95 4C 18 C6 D6 F5 4E 34 58 4A 5A D1 52 CA 7C 3C
+00F0 | 8A 6B DF 9E 34 6C 55 46 C7 B1 AE 32 3B F8 D5 98
+0100 | D8 91 2E B7 76 43 5F 3E 60 4D 95 11 FA 19 EF 75
+0110 | C3 3A 50 9A 32 80 76 AA 98 23 95 10 D0 00 61 FA
+0120 | C7 82 C4 15 77 C3 30 B3 03 E4 73 6A 1B 1D 3E 59
+0130 | F5 8A 74 EA 3F EE 69 7F 02 EF BF A7 DA 52 0A 6F
+0140 | AC 91 F6 88 83 35 1C 55 5F 02 A4 74 4F 52 74 98
+0150 | 2C DB 9F 29
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 = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77D
message_id
8, 8
-844D04005A3EA865
+EC5303003A41A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
@@ -363,25 +363,25 @@ random_padding_bytes = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77D
nonce
24, 16
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
40, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Value received from server in Step 2
p
56, 8
-043D3AACD9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1027255513
+0445F732BB000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1173828283
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q
64, 8
-0465BC7D6B000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1706851691
+045DA7DFB9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1571282873
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
@@ -393,7 +393,7 @@ random_padding_bytes = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77D
encrypted_data
80, 260
-FE00010043FFEB0FFD274E0C28BCB989
DF1979D84C12B8500A1EB5E0A74A85F1
7CFC77D525C25B87C7B600B64DD3FC30
65CB58C58C157FA3EA35A57780DD1E68
A7B5AD97EBE7F756DC7BEE3516F38B50
24288705214D11E625DC478F61DC9D86
AD18964134D07BBDF2D5FA5980E1D74C
C93BCC24BF9735DD09950A09B9D203C5
7288534E3CEDC3394EEC8560FD388A6B
27843166B625A412C7542F907A1A0341
C142EBF6FEE41DDE739FE7D3AB0BF5B0
290286D7F9AEF9EDDEB36B8E08633480
DAC476A887597FD9C48BFFCFAFC8BD8F
899DCF675D858E2728F443FB5D80006F
56AFD5B82A85DFF3EF59F57F15F83C81
A52BA9F30B27FF796DB00DAF6FF9A826
3F024005
+FE00010008089F6165330532285E349E
C82A8C56B6B6B16FB17FA9EA72B5DDFC
96F6E7C4B7DF7FB7F197DB819228CAB9
57D49AA5E7DAA4CAB4D0DDB1584958BA
4C584269C24B752ED796CE59E9A496D1
FA5D1756820468DD1430DFFD80CD8678
0F39A1DDBADD0685C221380B5CF56D4E
D57F8DC868259FE5EC75F0204636DDA1
F721875BF4788B9843200888C5536AF8
954C18C6D6F54E34584A5AD152CA7C3C
8A6BDF9E346C5546C7B1AE323BF8D598
D8912EB776435F3E604D9511FA19EF75
C33A509A328076AA98239510D00061FA
C782C41577C330B303E4736A1B1D3E59
F58A74EA3FEE697F02EFBFA7DA520A6F
AC91F68883351C555F02A4744F527498
2CDB9F29
Value generated above
@@ -402,47 +402,47 @@ random_padding_bytes = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77D
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 EC 2D 37 5B 3E A8 65
-0010 | D8 02 00 00 5C 07 E8 D0 D2 AC 74 53 3A 31 3A 58
-0020 | 87 0E 49 D5 3B A6 8A 05 00 09 D4 B0 4B A7 57 78
-0030 | C5 60 95 8C 4F 18 A6 BA FE 50 02 00 A1 60 8F 7B
-0040 | B0 72 F2 F2 AB B7 BC D5 2D 5F 0D 2C D3 26 FA 02
-0050 | 0E D4 3D D2 00 A1 E9 D3 29 D7 58 4E 67 C3 2E A5
-0060 | C0 A3 A0 9B 9B CC DB BC 16 09 B0 56 5C 44 3E 9C
-0070 | 5B 46 0F D5 B1 52 47 C1 93 AA E9 78 2B 65 1D EA
-0080 | 5D 5B 4F 5E 35 F6 BC AD D5 5F 0B E2 8D F5 AE F4
-0090 | FB 2A AE 88 57 9D A4 2C D9 E5 3A 52 83 40 5E 9B
-00A0 | F9 63 91 C0 93 59 D4 61 64 3F BF BC 95 78 55 E6
-00B0 | 90 2B 68 1B 97 5B 05 8E 8A 89 83 EA C1 7B 5C A9
-00C0 | 2B AF 73 1E 9D 30 0A EC E7 F0 71 F0 12 B7 0E AE
-00D0 | 2F 6B A6 B0 1F 95 87 09 29 6B BC 78 E9 D5 5D 47
-00E0 | 0A DA FF 09 FA AB E7 24 9F 61 DE 6B 3C D4 3E 0F
-00F0 | 77 F2 51 F4 2C 0B BD 22 E9 18 21 3A E1 13 41 BB
-0100 | CA A1 AE BA D8 43 A4 FB 00 54 B5 F9 09 66 97 0C
-0110 | D8 45 8C C3 72 72 2E 1C 47 3E 82 A0 0E 4F 53 80
-0120 | 0A F1 33 8A EC 5C 73 DD BF 91 F3 4B 0A A9 4B E4
-0130 | B6 8D 3E AF B3 D5 26 7E 3D D1 F6 8B 1B 5A B4 A1
-0140 | 01 80 55 F5 8D 3C E5 8C A1 A2 F6 02 B1 2E 49 4B
-0150 | CA DE 7E 01 21 E1 C3 11 62 16 2B C8 07 F8 85 9E
-0160 | 4A F2 63 6C 49 0F EF A0 4B 83 26 0F A5 4C 94 0F
-0170 | AF 0B 71 DA 0E DB 93 BE 75 83 91 B2 BF C4 49 97
-0180 | 78 D8 D6 49 2E 58 67 F8 30 AB 45 76 F5 6C FA 55
-0190 | 67 C0 3A 9E 6A 55 B6 B7 87 32 39 83 E6 49 94 0F
-01A0 | 45 B5 04 A0 7A 44 18 38 1B 9B AA ED 24 44 7D D7
-01B0 | 3F 7E 70 41 FF D7 75 43 3D FF F4 80 ED A4 3E 97
-01C0 | 4E E6 57 CF 49 C7 E5 A9 F7 3E F7 F9 59 CB 54 B5
-01D0 | DE E3 F1 0A A7 57 8A 0A 0C FB 88 07 23 78 D3 81
-01E0 | 20 C9 2E B6 DD 35 8D 67 74 DD F4 AB 05 B2 06 AD
-01F0 | 6F 78 A2 46 0A 29 1F 90 05 25 09 C8 D6 B7 95 76
-0200 | 61 B8 7D 5A A3 8A 30 2C F4 42 FE 51 E6 D4 10 B5
-0210 | 66 E6 28 D2 C3 B7 E4 AB 06 F6 9B 67 A0 93 AB DD
-0220 | 7A A3 85 3B AF 6B C9 BB C3 A0 E3 55 E2 63 AC 42
-0230 | FE 38 B2 B6 0F 41 AE D2 5E 9F 25 48 14 10 61 B9
-0240 | 55 0F 3F 84 5C 50 E6 D7 8F 39 54 38 3B 68 9E BB
-0250 | EF D6 89 A1 A4 8B 3E C8 54 AB E7 3C 90 40 53 7F
-0260 | A5 B0 FE 79 83 E7 0C 31 D3 3F 4D AA A3 2C AD B0
-0270 | 09 71 20 6B B1 8F 65 72 50 25 AB 88 01 C3 C6 26
-0280 | 6E 6F 9E 79 A0 3F 43 57 96 04 F4 AE
+0000 | 00 00 00 00 00 00 00 00 01 A0 DE 9B 3A 41 A8 65
+0010 | 78 02 00 00 5C 07 E8 D0 50 C9 33 C4 AD E5 B6 C3
+0020 | B5 B5 5C 41 15 81 CB 21 FE CE EF E9 4A DA F6 67
+0030 | EE 9B 81 67 AC 97 61 C8 FE 50 02 00 5F 27 37 D5
+0040 | 4E 1D E0 51 7F FB 50 46 D7 1F EE 25 B4 D7 9F 55
+0050 | F8 81 1C A4 B6 78 17 0E A7 FA 33 30 9F 16 3B C8
+0060 | B5 82 0C 50 43 0A 95 E2 49 64 EA 94 66 F3 91 8C
+0070 | 63 BA 12 42 85 A4 9E F5 FB 3C CC 8C B3 84 42 31
+0080 | 22 F7 41 54 D5 35 C8 29 69 3F F9 C0 5F D7 11 9B
+0090 | BC C5 7E 05 AB 38 88 23 D0 25 9B 2A 68 CB 98 06
+00A0 | EB 28 F1 51 F3 8E 1F 23 0E 4B 78 19 EA 0F 65 08
+00B0 | E9 35 BD 29 16 8E FC 8E FB 01 A0 35 99 18 C2 51
+00C0 | 14 92 5A C2 0B D8 FB 9C CE A9 1B D4 11 37 97 0C
+00D0 | 64 95 7C FA 57 41 2C 74 63 B4 23 26 48 08 6B C7
+00E0 | D8 AC BE 36 9C 70 F4 27 99 76 45 D3 9D F5 59 F8
+00F0 | 66 9B FC 4D 33 FB A6 7B 93 04 7B BB 26 C4 DF F6
+0100 | 08 9D AE A9 6E C4 76 A8 3D FC 76 71 79 FD 43 19
+0110 | 4E C5 73 BE 10 35 07 63 82 AA A5 F0 DD 34 96 9E
+0120 | 52 31 4D E7 51 35 8B 07 9E 54 8E BD 57 81 17 18
+0130 | 90 A7 93 3E AA 1B 11 EE C1 26 77 0C 04 FC 69 EA
+0140 | 5D 18 18 6F 43 AC C5 6B 94 BC E3 D7 FD 75 92 48
+0150 | FA D1 2E 43 15 A2 EE AF 8C FF 12 71 4A 38 90 E8
+0160 | 7E 40 D7 75 92 A8 7F D2 05 59 7D 06 9B 7A AE 90
+0170 | 13 CC 6E 0E 0E 0B 04 FA 3A 80 F2 C4 0C 89 8C 1F
+0180 | 5B E7 1A 19 B8 25 2D 70 98 8C 58 51 95 CA 7E 41
+0190 | F9 80 66 C0 EB 36 CF AC B8 43 25 82 69 07 00 8B
+01A0 | AC 0E 67 8E 2E 2B 1A 99 FC EC 47 D1 FC E6 0C D4
+01B0 | 3F 97 7D 5A 98 B2 69 CA 70 D4 D1 C7 B9 56 FB DD
+01C0 | A2 A6 B7 16 F6 28 26 0B C2 AF B1 A1 76 60 3C 66
+01D0 | A1 F1 10 FC 91 4F 34 A0 05 53 E8 6C 79 67 83 E6
+01E0 | 10 5D A6 E5 DE FE EE 1E D5 56 DB A9 75 1B 58 E6
+01F0 | 11 E7 3D C8 2F 8F 78 30 CE 08 F1 43 40 62 FC 37
+0200 | 6E 7B D4 5D 0F 21 8E BA D7 F5 09 00 FD F7 55 41
+0210 | 45 80 94 00 F8 48 1A 01 9F DB F7 4C B1 72 EF BC
+0220 | 79 A3 A4 B0 A8 16 74 23 F2 52 05 23 52 BB 00 DA
+0230 | 1E D9 95 75 B1 9B A1 8C 1A 80 45 0D B3 4C 9D E5
+0240 | 36 E0 35 22 F6 BD CA 4B 9F 89 9E 87 BE 02 62 25
+0250 | 85 DE 27 ED 82 5D 4E 25 5B EC DA EF 9F 8F 10 93
+0260 | 20 29 30 83 33 8B A2 37 AB 86 E4 F0 9D 03 DD 45
+0270 | B8 F3 1F 0F E6 6B AD 92 36 E6 00 59 B0 BF 8C 38
+0280 | 89 13 E9 A8 FA D3 0B 78 CB 97 43 43
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 = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77D
message_id
8, 8
-01EC2D375B3EA865
+01A0DE9B3A41A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-D8020000
(728 in decimal)
+78020000
(632 in decimal)
Message body length
@@ -482,19 +482,19 @@ random_padding_bytes = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77D
nonce
24, 16
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
40, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Value received from server in Step 2
encrypted_answer
56, 596
-FE500200A1608F7BB072F2F2ABB7BCD5
2D5F0D2CD326FA020ED43DD200A1E9D3
29D7584E67C32EA5C0A3A09B9BCCDBBC
1609B0565C443E9C5B460FD5B15247C1
93AAE9782B651DEA5D5B4F5E35F6BCAD
D55F0BE28DF5AEF4FB2AAE88579DA42C
D9E53A5283405E9BF96391C09359D461
643FBFBC957855E6902B681B975B058E
8A8983EAC17B5CA92BAF731E9D300AEC
E7F071F012B70EAE2F6BA6B01F958709
296BBC78E9D55D470ADAFF09FAABE724
9F61DE6B3CD43E0F77F251F42C0BBD22
E918213AE11341BBCAA1AEBAD843A4FB
0054B5F90966970CD8458CC372722E1C
473E82A00E4F53800AF1338AEC5C73DD
BF91F34B0AA94BE4B68D3EAFB3D5267E
3DD1F68B1B5AB4A1018055F58D3CE58C
A1A2F602B12E494BCADE7E0121E1C311
62162BC807F8859E4AF2636C490FEFA0
4B83260FA54C940FAF0B71DA0EDB93BE
758391B2BFC4499778D8D6492E5867F8
30AB4576F56CFA5567C03A9E6A55B6B7
87323983E649940F45B504A07A441838
1B9BAAED24447DD73F7E7041FFD77543
3DFFF480EDA43E974EE657CF49C7E5A9
F73EF7F959CB54B5DEE3F10AA7578A0A
0CFB88072378D38120C92EB6DD358D67
74DDF4AB05B206AD6F78A2460A291F90
052509C8D6B7957661B87D5AA38A302C
F442FE51E6D410B566E628D2C3B7E4AB
06F69B67A093ABDD7AA3853BAF6BC9BB
C3A0E355E263AC42FE38B2B60F41AED2
5E9F2548141061B9550F3F845C50E6D7
8F3954383B689EBBEFD689A1A48B3EC8
54ABE73C9040537FA5B0FE7983E70C31
D33F4DAAA32CADB00971206BB18F6572
5025AB8801C3C6266E6F9E79A03F4357
9604F4AE
+FE5002005F2737D54E1DE0517FFB5046
D71FEE25B4D79F55F8811CA4B678170E
A7FA33309F163BC8B5820C50430A95E2
4964EA9466F3918C63BA124285A49EF5
FB3CCC8CB384423122F74154D535C829
693FF9C05FD7119BBCC57E05AB388823
D0259B2A68CB9806EB28F151F38E1F23
0E4B7819EA0F6508E935BD29168EFC8E
FB01A0359918C25114925AC20BD8FB9C
CEA91BD41137970C64957CFA57412C74
63B4232648086BC7D8ACBE369C70F427
997645D39DF559F8669BFC4D33FBA67B
93047BBB26C4DFF6089DAEA96EC476A8
3DFC767179FD43194EC573BE10350763
82AAA5F0DD34969E52314DE751358B07
9E548EBD5781171890A7933EAA1B11EE
C126770C04FC69EA5D18186F43ACC56B
94BCE3D7FD759248FAD12E4315A2EEAF
8CFF12714A3890E87E40D77592A87FD2
05597D069B7AAE9013CC6E0E0E0B04FA
3A80F2C40C898C1F5BE71A19B8252D70
988C585195CA7E41F98066C0EB36CFAC
B84325826907008BAC0E678E2E2B1A99
FCEC47D1FCE60CD43F977D5A98B269CA
70D4D1C7B956FBDDA2A6B716F628260B
C2AFB1A176603C66A1F110FC914F34A0
0553E86C796783E6105DA6E5DEFEEE1E
D556DBA9751B58E611E73DC82F8F7830
CE08F1434062FC376E7BD45D0F218EBA
D7F50900FDF7554145809400F8481A01
9FDBF74CB172EFBC79A3A4B0A8167423
F252052352BB00DA1ED99575B19BA18C
1A80450DB34C9DE536E03522F6BDCA4B
9F899E87BE02622585DE27ED825D4E25
5BECDAEF9F8F109320293083338BA237
AB86E4F09D03DD45B8F31F0FE66BAD92
36E60059B0BF8C388913E9A8FAD30B78
CB974343
See below
@@ -502,20 +502,20 @@ random_padding_bytes = 6F83999D06B85DA352DC43E640B936B648475E792D68453264677B77D
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = A1608F7BB072F2F2ABB7BCD52D5F0D2CD326FA020ED43DD200A1E9D329D7584E67C32EA5C0A3A09B9BCCDBBC1609B0565C443E9C5B460FD5B15247C193AAE9782B651DEA5D5B4F5E35F6BCADD55F0BE28DF5AEF4FB2AAE88579DA42CD9E53A5283405E9BF96391C09359D461643FBFBC957855E6902B681B975B058E8A8983EAC17B5CA92BAF731E9D300AECE7F071F012B70EAE2F6BA6B01F958709296BBC78E9D55D470ADAFF09FAABE7249F61DE6B3CD43E0F77F251F42C0BBD22E918213AE11341BBCAA1AEBAD843A4FB0054B5F90966970CD8458CC372722E1C473E82A00E4F53800AF1338AEC5C73DDBF91F34B0AA94BE4B68D3EAFB3D5267E3DD1F68B1B5AB4A1018055F58D3CE58CA1A2F602B12E494BCADE7E0121E1C31162162BC807F8859E4AF2636C490FEFA04B83260FA54C940FAF0B71DA0EDB93BE758391B2BFC4499778D8D6492E5867F830AB4576F56CFA5567C03A9E6A55B6B787323983E649940F45B504A07A4418381B9BAAED24447DD73F7E7041FFD775433DFFF480EDA43E974EE657CF49C7E5A9F73EF7F959CB54B5DEE3F10AA7578A0A0CFB88072378D38120C92EB6DD358D6774DDF4AB05B206AD6F78A2460A291F90052509C8D6B7957661B87D5AA38A302CF442FE51E6D410B566E628D2C3B7E4AB06F69B67A093ABDD7AA3853BAF6BC9BBC3A0E355E263AC42FE38B2B60F41AED25E9F2548141061B9550F3F845C50E6D78F3954383B689EBBEFD689A1A48B3EC854ABE73C9040537FA5B0FE7983E70C31D33F4DAAA32CADB00971206BB18F65725025AB8801C3C6266E6F9E79A03F43579604F4AE
-tmp_aes_key = F805C7E689A4E7AAD5C85A75FDE99DE29A982EA60DBFF1B8774E7971F940E98A
-tmp_aes_iv = 88B8594FE2F8E89F875D1C6AF5E31C22C985AB4A7E4CB009D93DF6DD1482ED11
+encrypted_answer = 5F2737D54E1DE0517FFB5046D71FEE25B4D79F55F8811CA4B678170EA7FA33309F163BC8B5820C50430A95E24964EA9466F3918C63BA124285A49EF5FB3CCC8CB384423122F74154D535C829693FF9C05FD7119BBCC57E05AB388823D0259B2A68CB9806EB28F151F38E1F230E4B7819EA0F6508E935BD29168EFC8EFB01A0359918C25114925AC20BD8FB9CCEA91BD41137970C64957CFA57412C7463B4232648086BC7D8ACBE369C70F427997645D39DF559F8669BFC4D33FBA67B93047BBB26C4DFF6089DAEA96EC476A83DFC767179FD43194EC573BE1035076382AAA5F0DD34969E52314DE751358B079E548EBD5781171890A7933EAA1B11EEC126770C04FC69EA5D18186F43ACC56B94BCE3D7FD759248FAD12E4315A2EEAF8CFF12714A3890E87E40D77592A87FD205597D069B7AAE9013CC6E0E0E0B04FA3A80F2C40C898C1F5BE71A19B8252D70988C585195CA7E41F98066C0EB36CFACB84325826907008BAC0E678E2E2B1A99FCEC47D1FCE60CD43F977D5A98B269CA70D4D1C7B956FBDDA2A6B716F628260BC2AFB1A176603C66A1F110FC914F34A00553E86C796783E6105DA6E5DEFEEE1ED556DBA9751B58E611E73DC82F8F7830CE08F1434062FC376E7BD45D0F218EBAD7F50900FDF7554145809400F8481A019FDBF74CB172EFBC79A3A4B0A8167423F252052352BB00DA1ED99575B19BA18C1A80450DB34C9DE536E03522F6BDCA4B9F899E87BE02622585DE27ED825D4E255BECDAEF9F8F109320293083338BA237AB86E4F09D03DD45B8F31F0FE66BAD9236E60059B0BF8C388913E9A8FAD30B78CB974343
+tmp_aes_key = FCE0B35A21F44D030F77356DEDAB99EE7DFF47AC34ADB6424364127BEF70E0AA
+tmp_aes_iv = 18017C774362086FD3D8059DE21E1F254713F049F8E13DA800D025FA813B52FD
Yielding:
-answer_with_hash = 965A59B5192F82F8493AEA537A3E45B46B234B6BBA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6BA03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001000191D9C9A43ADD5EEB346D1EB018C5532304F4595FDD9CD3811EBF53E9C9ACE4D8D4119FAFAEA24DB7F18285F5BD922CF4193AEC05C0BB1C8CF0D7D1339EF7CA0BA3EB358CB6C25B4BDF9EFAE82C04DAA5000CB48B6B98857F6FF1A87493A3EDA1FEBA2280F760BC1B0244C9D2D66782EF2B1BC8A94B8E3C919DDCA1114C589444B4444C6235131A7FA3448EAFA96969385159160C86891B7B54CF739F319A906DC99E6370FF6AF96C5B80C1217619143551B165F205F4060B82F4D8C6A49171DDDF09C920BCCE8B46576EDCDF66F26C5BC2A678B7C82A69771A9E6CE4B8905C2EB90A68376F8870E87C1F4F472A4E6E47055420DAFAC80CE39379FCEE1C045C5B3EA86519470D5116BA80A2
-answer = BA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6BA03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001000191D9C9A43ADD5EEB346D1EB018C5532304F4595FDD9CD3811EBF53E9C9ACE4D8D4119FAFAEA24DB7F18285F5BD922CF4193AEC05C0BB1C8CF0D7D1339EF7CA0BA3EB358CB6C25B4BDF9EFAE82C04DAA5000CB48B6B98857F6FF1A87493A3EDA1FEBA2280F760BC1B0244C9D2D66782EF2B1BC8A94B8E3C919DDCA1114C589444B4444C6235131A7FA3448EAFA96969385159160C86891B7B54CF739F319A906DC99E6370FF6AF96C5B80C1217619143551B165F205F4060B82F4D8C6A49171DDDF09C920BCCE8B46576EDCDF66F26C5BC2A678B7C82A69771A9E6CE4B8905C2EB90A68376F8870E87C1F4F472A4E6E47055420DAFAC80CE39379FCEE1C045C5B3EA86519470D5116BA80A2
+answer_with_hash = 1F7C8A30D9E7041717B31FBAAC973CA6CD154752BA0D89B550C933C4ADE5B6C3B5B55C411581CB21FECEEFE94ADAF667EE9B8167AC9761C803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009D7238956877A7B51C24895CB1BE674FCFCA14DD0F4DA09D6CF890BB5715D05949074C0B8611FE9A6C1A01D8FDF45215F783DD56B6D54F5020D8ECD08CE49055D21D47F6413D847243872661CF4CEB0A9E49F6DD15838F97227B7AE3F4D9552229BBB31893BF4A773E634EAB5D261E1CD04974B194F3700ECC41DA3A0C6C5955AB5D3E19DBA0AE358BFAE65BF01FF6FCB10C57919058A56B1E182D202C6CD7C0ED33542084B3E56DBCA32D1A0DA9830414D44DB9FDD66624C68C0E61FF1A3711498118918319F10EBD83B4AD518130643CA702EAF02E56BBA57427D00C339A3DCE30CCB4776AD01EF1448FD5ED36A5C212C88B03EC6276EA7DBBEE26C6C87BAA3A41A8655010F8139B52E4AE
+answer = BA0D89B550C933C4ADE5B6C3B5B55C411581CB21FECEEFE94ADAF667EE9B8167AC9761C803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001009D7238956877A7B51C24895CB1BE674FCFCA14DD0F4DA09D6CF890BB5715D05949074C0B8611FE9A6C1A01D8FDF45215F783DD56B6D54F5020D8ECD08CE49055D21D47F6413D847243872661CF4CEB0A9E49F6DD15838F97227B7AE3F4D9552229BBB31893BF4A773E634EAB5D261E1CD04974B194F3700ECC41DA3A0C6C5955AB5D3E19DBA0AE358BFAE65BF01FF6FCB10C57919058A56B1E182D202C6CD7C0ED33542084B3E56DBCA32D1A0DA9830414D44DB9FDD66624C68C0E61FF1A3711498118918319F10EBD83B4AD518130643CA702EAF02E56BBA57427D00C339A3DCE30CCB4776AD01EF1448FD5ED36A5C212C88B03EC6276EA7DBBEE26C6C87BAA3A41A8655010F8139B52E4AE
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 D2 AC 74 53 3A 31 3A 58 87 0E 49 D5
-0010 | 3B A6 8A 05 00 09 D4 B0 4B A7 57 78 C5 60 95 8C
-0020 | 4F 18 A6 BA 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 50 C9 33 C4 AD E5 B6 C3 B5 B5 5C 41
+0010 | 15 81 CB 21 FE CE EF E9 4A DA F6 67 EE 9B 81 67
+0020 | AC 97 61 C8 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 = BA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6B
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 | 01 91 D9 C9 A4 3A DD 5E EB 34 6D 1E B0 18 C5 53
-0140 | 23 04 F4 59 5F DD 9C D3 81 1E BF 53 E9 C9 AC E4
-0150 | D8 D4 11 9F AF AE A2 4D B7 F1 82 85 F5 BD 92 2C
-0160 | F4 19 3A EC 05 C0 BB 1C 8C F0 D7 D1 33 9E F7 CA
-0170 | 0B A3 EB 35 8C B6 C2 5B 4B DF 9E FA E8 2C 04 DA
-0180 | A5 00 0C B4 8B 6B 98 85 7F 6F F1 A8 74 93 A3 ED
-0190 | A1 FE BA 22 80 F7 60 BC 1B 02 44 C9 D2 D6 67 82
-01A0 | EF 2B 1B C8 A9 4B 8E 3C 91 9D DC A1 11 4C 58 94
-01B0 | 44 B4 44 4C 62 35 13 1A 7F A3 44 8E AF A9 69 69
-01C0 | 38 51 59 16 0C 86 89 1B 7B 54 CF 73 9F 31 9A 90
-01D0 | 6D C9 9E 63 70 FF 6A F9 6C 5B 80 C1 21 76 19 14
-01E0 | 35 51 B1 65 F2 05 F4 06 0B 82 F4 D8 C6 A4 91 71
-01F0 | DD DF 09 C9 20 BC CE 8B 46 57 6E DC DF 66 F2 6C
-0200 | 5B C2 A6 78 B7 C8 2A 69 77 1A 9E 6C E4 B8 90 5C
-0210 | 2E B9 0A 68 37 6F 88 70 E8 7C 1F 4F 47 2A 4E 6E
-0220 | 47 05 54 20 DA FA C8 0C E3 93 79 FC EE 1C 04 5C
-0230 | 5B 3E A8 65
+0130 | 9D 72 38 95 68 77 A7 B5 1C 24 89 5C B1 BE 67 4F
+0140 | CF CA 14 DD 0F 4D A0 9D 6C F8 90 BB 57 15 D0 59
+0150 | 49 07 4C 0B 86 11 FE 9A 6C 1A 01 D8 FD F4 52 15
+0160 | F7 83 DD 56 B6 D5 4F 50 20 D8 EC D0 8C E4 90 55
+0170 | D2 1D 47 F6 41 3D 84 72 43 87 26 61 CF 4C EB 0A
+0180 | 9E 49 F6 DD 15 83 8F 97 22 7B 7A E3 F4 D9 55 22
+0190 | 29 BB B3 18 93 BF 4A 77 3E 63 4E AB 5D 26 1E 1C
+01A0 | D0 49 74 B1 94 F3 70 0E CC 41 DA 3A 0C 6C 59 55
+01B0 | AB 5D 3E 19 DB A0 AE 35 8B FA E6 5B F0 1F F6 FC
+01C0 | B1 0C 57 91 90 58 A5 6B 1E 18 2D 20 2C 6C D7 C0
+01D0 | ED 33 54 20 84 B3 E5 6D BC A3 2D 1A 0D A9 83 04
+01E0 | 14 D4 4D B9 FD D6 66 24 C6 8C 0E 61 FF 1A 37 11
+01F0 | 49 81 18 91 83 19 F1 0E BD 83 B4 AD 51 81 30 64
+0200 | 3C A7 02 EA F0 2E 56 BB A5 74 27 D0 0C 33 9A 3D
+0210 | CE 30 CC B4 77 6A D0 1E F1 44 8F D5 ED 36 A5 C2
+0220 | 12 C8 8B 03 EC 62 76 EA 7D BB EE 26 C6 C8 7B AA
+0230 | 3A 41 A8 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 = BA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6B
nonce
4, 16
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
20, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Value received from server in Step 2
@@ -594,13 +594,13 @@ answer = BA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6B
g_a
300, 260
-FE0001000191D9C9A43ADD5EEB346D1E
B018C5532304F4595FDD9CD3811EBF53
E9C9ACE4D8D4119FAFAEA24DB7F18285
F5BD922CF4193AEC05C0BB1C8CF0D7D1
339EF7CA0BA3EB358CB6C25B4BDF9EFA
E82C04DAA5000CB48B6B98857F6FF1A8
7493A3EDA1FEBA2280F760BC1B0244C9
D2D66782EF2B1BC8A94B8E3C919DDCA1
114C589444B4444C6235131A7FA3448E
AFA96969385159160C86891B7B54CF73
9F319A906DC99E6370FF6AF96C5B80C1
217619143551B165F205F4060B82F4D8
C6A49171DDDF09C920BCCE8B46576EDC
DF66F26C5BC2A678B7C82A69771A9E6C
E4B8905C2EB90A68376F8870E87C1F4F
472A4E6E47055420DAFAC80CE39379FC
EE1C045C
+FE0001009D7238956877A7B51C24895C
B1BE674FCFCA14DD0F4DA09D6CF890BB
5715D05949074C0B8611FE9A6C1A01D8
FDF45215F783DD56B6D54F5020D8ECD0
8CE49055D21D47F6413D847243872661
CF4CEB0A9E49F6DD15838F97227B7AE3
F4D9552229BBB31893BF4A773E634EAB
5D261E1CD04974B194F3700ECC41DA3A
0C6C5955AB5D3E19DBA0AE358BFAE65B
F01FF6FCB10C57919058A56B1E182D20
2C6CD7C0ED33542084B3E56DBCA32D1A
0DA9830414D44DB9FDD66624C68C0E61
FF1A3711498118918319F10EBD83B4AD
518130643CA702EAF02E56BBA57427D0
0C339A3DCE30CCB4776AD01EF1448FD5
ED36A5C212C88B03EC6276EA7DBBEE26
C6C87BAA
g_a
diffie-hellman parameter
server_time
560, 4
-5B3EA865
(1705524827 in decimal)
+3A41A865
(1705525562 in decimal)
Server time
@@ -609,34 +609,34 @@ answer = BA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6B
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 = 9ECDD388AF28E2E9331B545F04F70C9523AA4DE19040D32B03B8F726BDBB76F0D9BAE78D117F43A25581556CECE3566A7B1A1A1CADA4B74E8BE751FF704A70300081906313BAD8F250639135D0A47FA6C69D47FFBE89B6C8A02959B87FD6FCEC223FDCA26838FD0426170BAAD37880662A87055DBBDA282AB0966BD1B8D1923A230439CDB95AFA872F16D5323950843414F4ED0547CA90FCB02E3D1E05B6933821FD17C6F2ECAD84D6BDD30B08925A45720134562E07A8E8C92C8FA3769CE62EB2CCCC199FB0607DB5FB1420159B9B373AC4C149A628F6D690655B4D7D698C75E647774E7CAED53C152E76D3F365A9F9E332C9C2C3A72B2940A711F239FB54B6
+b = 8A3840F0DC6666A90077F545E9BFE309F1C291503FDA9DB9F7D9C3F3E2AC81A0C5E9AE776C12055DC5B35E5A689F441E52E30CDECF351B232BA788496AB82ED0AA74AC928DE21CC088AC573C55939082E5F2ED96330BAE75C2B131EFDCE08D45CD926A32C1AA2B86E5BD2D5A7085FA754ADAE942E3C0D6DC6A00CFCAD4E22FCC34473AF56D6723321DB9B7ED2EBDFA75C2332F60237FFAF98909C54108D484389BA5DAA35452E94F879833674F759FDBE4A2B382E6D139A9990ECDF2803601E2FAC13B395D7D6901D57E1E1905C48026A5C71AE13E957786339CC5E20DAB698A782F7C971F9842E60F5A727A3383DE454CA76E051F589577D6CEEC55A50E5368
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 2045E19A8796B889E5E907163BB68826E6DA69FE4092453D62718A5B5078DAC8A7F37BA27A13A55ACBD2C7665746AACE4CC5F5E67BB099E1A0A36639A560649E173AF621F3660F1CF1E9C06F920511A01A0C20794E30F926D29243772B554292BE6B5D706DEB624013586E6DAC720C5CF7916251C64122FD46E9E64F34DB37FA3E897BBD1177A4F8082B3D17C27B1A707C4DE257941DA95E5CBC0D09442ED99F06044DB0D0B0A60E7C219B5B46D24DF701635EF95A3024AB013F1E234CAE7D534182D74A3F4F64D5F2BC883B875D6D87C90DC2DE09E82FF1BE110ADA5E936C84F1AEEE0BB0F083B0A739EEEE251AA011DFF69B0CBAFB8B0710EEBD003180B615
+g_b = 59BC5E63BF9C753326C9D5E076C8E2B0C6C05FFD50A2E928C3E2946184D118693B7989DDE27C8D10CF6869CEFFF5AA1CE333DC057435B9B5B2A51BB655199423378918F4AF2F94E93551DAD3EE07A69ABE5D1BC56D29C2F12EE813AB915277CC97190D04B623708608DBB2E4C260765ABD91BC3835F7D658BA9F26CC7CEFEE3BA7E89CAFE79EC7048F93FC3B1DF4D625837F3BCA2F8F0527BA5E935F6B1B83B17F6FA5588CDD5E052CF2923B89E0C9E8705F990EEAE7804CBDCE10256B441D0E2FB42011D7690EAF935BB7442BE02D511E93C13B93C5C3AA02CF93D57DE26C1AE39C0B95E2B7D3758545F99C327DC6D871764F1CC76A3DFBC5768CE6ED21BB64
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 D2 AC 74 53 3A 31 3A 58 87 0E 49 D5
-0010 | 3B A6 8A 05 00 09 D4 B0 4B A7 57 78 C5 60 95 8C
-0020 | 4F 18 A6 BA 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 20 45 E1 9A 87 96 B8 89 E5 E9 07 16 3B B6 88 26
-0040 | E6 DA 69 FE 40 92 45 3D 62 71 8A 5B 50 78 DA C8
-0050 | A7 F3 7B A2 7A 13 A5 5A CB D2 C7 66 57 46 AA CE
-0060 | 4C C5 F5 E6 7B B0 99 E1 A0 A3 66 39 A5 60 64 9E
-0070 | 17 3A F6 21 F3 66 0F 1C F1 E9 C0 6F 92 05 11 A0
-0080 | 1A 0C 20 79 4E 30 F9 26 D2 92 43 77 2B 55 42 92
-0090 | BE 6B 5D 70 6D EB 62 40 13 58 6E 6D AC 72 0C 5C
-00A0 | F7 91 62 51 C6 41 22 FD 46 E9 E6 4F 34 DB 37 FA
-00B0 | 3E 89 7B BD 11 77 A4 F8 08 2B 3D 17 C2 7B 1A 70
-00C0 | 7C 4D E2 57 94 1D A9 5E 5C BC 0D 09 44 2E D9 9F
-00D0 | 06 04 4D B0 D0 B0 A6 0E 7C 21 9B 5B 46 D2 4D F7
-00E0 | 01 63 5E F9 5A 30 24 AB 01 3F 1E 23 4C AE 7D 53
-00F0 | 41 82 D7 4A 3F 4F 64 D5 F2 BC 88 3B 87 5D 6D 87
-0100 | C9 0D C2 DE 09 E8 2F F1 BE 11 0A DA 5E 93 6C 84
-0110 | F1 AE EE 0B B0 F0 83 B0 A7 39 EE EE 25 1A A0 11
-0120 | DF F6 9B 0C BA FB 8B 07 10 EE BD 00 31 80 B6 15
+0000 | 54 B6 43 66 50 C9 33 C4 AD E5 B6 C3 B5 B5 5C 41
+0010 | 15 81 CB 21 FE CE EF E9 4A DA F6 67 EE 9B 81 67
+0020 | AC 97 61 C8 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 59 BC 5E 63 BF 9C 75 33 26 C9 D5 E0 76 C8 E2 B0
+0040 | C6 C0 5F FD 50 A2 E9 28 C3 E2 94 61 84 D1 18 69
+0050 | 3B 79 89 DD E2 7C 8D 10 CF 68 69 CE FF F5 AA 1C
+0060 | E3 33 DC 05 74 35 B9 B5 B2 A5 1B B6 55 19 94 23
+0070 | 37 89 18 F4 AF 2F 94 E9 35 51 DA D3 EE 07 A6 9A
+0080 | BE 5D 1B C5 6D 29 C2 F1 2E E8 13 AB 91 52 77 CC
+0090 | 97 19 0D 04 B6 23 70 86 08 DB B2 E4 C2 60 76 5A
+00A0 | BD 91 BC 38 35 F7 D6 58 BA 9F 26 CC 7C EF EE 3B
+00B0 | A7 E8 9C AF E7 9E C7 04 8F 93 FC 3B 1D F4 D6 25
+00C0 | 83 7F 3B CA 2F 8F 05 27 BA 5E 93 5F 6B 1B 83 B1
+00D0 | 7F 6F A5 58 8C DD 5E 05 2C F2 92 3B 89 E0 C9 E8
+00E0 | 70 5F 99 0E EA E7 80 4C BD CE 10 25 6B 44 1D 0E
+00F0 | 2F B4 20 11 D7 69 0E AF 93 5B B7 44 2B E0 2D 51
+0100 | 1E 93 C1 3B 93 C5 C3 AA 02 CF 93 D5 7D E2 6C 1A
+0110 | E3 9C 0B 95 E2 B7 D3 75 85 45 F9 9C 32 7D C6 D8
+0120 | 71 76 4F 1C C7 6A 3D FB C5 76 8C E6 ED 21 BB 64
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 = BA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6B
nonce
4, 16
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
20, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Value received from server in Step 2
g_b
36, 260
-FE0001002045E19A8796B889E5E90716
3BB68826E6DA69FE4092453D62718A5B
5078DAC8A7F37BA27A13A55ACBD2C766
5746AACE4CC5F5E67BB099E1A0A36639
A560649E173AF621F3660F1CF1E9C06F
920511A01A0C20794E30F926D2924377
2B554292BE6B5D706DEB624013586E6D
AC720C5CF7916251C64122FD46E9E64F
34DB37FA3E897BBD1177A4F8082B3D17
C27B1A707C4DE257941DA95E5CBC0D09
442ED99F06044DB0D0B0A60E7C219B5B
46D24DF701635EF95A3024AB013F1E23
4CAE7D534182D74A3F4F64D5F2BC883B
875D6D87C90DC2DE09E82FF1BE110ADA
5E936C84F1AEEE0BB0F083B0A739EEEE
251AA011DFF69B0CBAFB8B0710EEBD00
3180B615
+FE00010059BC5E63BF9C753326C9D5E0
76C8E2B0C6C05FFD50A2E928C3E29461
84D118693B7989DDE27C8D10CF6869CE
FFF5AA1CE333DC057435B9B5B2A51BB6
55199423378918F4AF2F94E93551DAD3
EE07A69ABE5D1BC56D29C2F12EE813AB
915277CC97190D04B623708608DBB2E4
C260765ABD91BC3835F7D658BA9F26CC
7CEFEE3BA7E89CAFE79EC7048F93FC3B
1DF4D625837F3BCA2F8F0527BA5E935F
6B1B83B17F6FA5588CDD5E052CF2923B
89E0C9E8705F990EEAE7804CBDCE1025
6B441D0E2FB42011D7690EAF935BB744
2BE02D511E93C13B93C5C3AA02CF93D5
7DE26C1AE39C0B95E2B7D3758545F99C
327DC6D871764F1CC76A3DFBC5768CE6
ED21BB64
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -684,47 +684,47 @@ answer = BA0D89B5D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6B
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 = 54B64366D2AC74533A313A58870E49D53BA68A050009D4B04BA75778C560958C4F18A6BA0000000000000000FE0001002045E19A8796B889E5E907163BB68826E6DA69FE4092453D62718A5B5078DAC8A7F37BA27A13A55ACBD2C7665746AACE4CC5F5E67BB099E1A0A36639A560649E173AF621F3660F1CF1E9C06F920511A01A0C20794E30F926D29243772B554292BE6B5D706DEB624013586E6DAC720C5CF7916251C64122FD46E9E64F34DB37FA3E897BBD1177A4F8082B3D17C27B1A707C4DE257941DA95E5CBC0D09442ED99F06044DB0D0B0A60E7C219B5B46D24DF701635EF95A3024AB013F1E234CAE7D534182D74A3F4F64D5F2BC883B875D6D87C90DC2DE09E82FF1BE110ADA5E936C84F1AEEE0BB0F083B0A739EEEE251AA011DFF69B0CBAFB8B0710EEBD003180B615
-padding = 5F0D1DE79F61579108272399
-tmp_aes_key = F805C7E689A4E7AAD5C85A75FDE99DE29A982EA60DBFF1B8774E7971F940E98A
-tmp_aes_iv = 88B8594FE2F8E89F875D1C6AF5E31C22C985AB4A7E4CB009D93DF6DD1482ED11
+data = 54B6436650C933C4ADE5B6C3B5B55C411581CB21FECEEFE94ADAF667EE9B8167AC9761C80000000000000000FE00010059BC5E63BF9C753326C9D5E076C8E2B0C6C05FFD50A2E928C3E2946184D118693B7989DDE27C8D10CF6869CEFFF5AA1CE333DC057435B9B5B2A51BB655199423378918F4AF2F94E93551DAD3EE07A69ABE5D1BC56D29C2F12EE813AB915277CC97190D04B623708608DBB2E4C260765ABD91BC3835F7D658BA9F26CC7CEFEE3BA7E89CAFE79EC7048F93FC3B1DF4D625837F3BCA2F8F0527BA5E935F6B1B83B17F6FA5588CDD5E052CF2923B89E0C9E8705F990EEAE7804CBDCE10256B441D0E2FB42011D7690EAF935BB7442BE02D511E93C13B93C5C3AA02CF93D57DE26C1AE39C0B95E2B7D3758545F99C327DC6D871764F1CC76A3DFBC5768CE6ED21BB64
+padding = 6A867FA67771656D6C92FD59
+tmp_aes_key = FCE0B35A21F44D030F77356DEDAB99EE7DFF47AC34ADB6424364127BEF70E0AA
+tmp_aes_iv = 18017C774362086FD3D8059DE21E1F254713F049F8E13DA800D025FA813B52FD
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 = 37201A6355370E8BDF93202F9FCC87F354FADD9339765F45589AB3C83CCB2B7C4A61A131690B47864D65C2D0303B9C1F3B96953FD00E18E1FDB4F3588100B9C0924472EEF1B8EB26DD87D624CD9D12B665C34A7B3742C141B0C3B266213289527EF2F1DFAA9F92C83B99299DCA36B81F069B8FD6C7D14541F3C14724EB29325D130AA97DB0EE6AB4AEBB6A3F9064FF8B87BF213226314E323BCA00EB3852113D7632C625F1E973DBC3D6A29FF925F6EBA7CFF3EFCD8E77D0B1AC1E55EA2BAD3EDBA1982C8CC82D5EFD50C3E7DDD67C5634AFC05213A897EABD82E1A0E35760C26DAEA60EDDA2CB28B63F8159028F4C61D78267AB57161577731F0B3FB419EB8A1550835BC884FD17BD8C0CDB7A71DAC531028FED9120DF89027ADA57BF1DEC5C8FC74EDFC2D8B686966E57A2F935C91A0682DE90A326BD32BC4E116EE91D2503E224047828D3C2CFA8A3BF5F8D911752
+encrypted_data = FDDE3B612F5636DB66A70D975BD4FE92467E0AF40C3FDB9929A074686A0DFEB85F7FB17B7090C7995675BA0959DDF6A7786607BB783CD731B1C369DD6B1A3D6AE429A7BF6F312842CA91540E368913B40AFBA3F01A6068D62B53AB12832181DDD1F4E413679984FEA52C7F93B34009C7427D6BA4EFBB79538B046E38142DFEC6531F7B801C2C57D07B230C9FF279B7316B7918973C4E779705E9F92C5BCB5303C6D4E9472C554AA297C45CAB3E2F2DBBED740122EA46FB4FE300C84B9762C9CD0C506A6F7F0E30494405DFA9FD2A2F6B845C85FC2A25AACD42A88C2843BEDA0C995A0A36B68DBCF852498D4CC68FCBE220BACA68BC7358307D4E30FFED4503345593B299E4ACFAE15EC727E9EC4C9697BA25F352CCD6F1EFEE1B0A12D0F2DE4AF6653A35111AB8456CB3955470228D2C3FFB4646F1A0A7EF1DC21F5071B856F9CA55F75777734B7BBF1D21AF17535045
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 04 11 00 00 5B 3E A8 65
-0010 | 78 01 00 00 1F 5F 04 F5 D2 AC 74 53 3A 31 3A 58
-0020 | 87 0E 49 D5 3B A6 8A 05 00 09 D4 B0 4B A7 57 78
-0030 | C5 60 95 8C 4F 18 A6 BA FE 50 01 00 37 20 1A 63
-0040 | 55 37 0E 8B DF 93 20 2F 9F CC 87 F3 54 FA DD 93
-0050 | 39 76 5F 45 58 9A B3 C8 3C CB 2B 7C 4A 61 A1 31
-0060 | 69 0B 47 86 4D 65 C2 D0 30 3B 9C 1F 3B 96 95 3F
-0070 | D0 0E 18 E1 FD B4 F3 58 81 00 B9 C0 92 44 72 EE
-0080 | F1 B8 EB 26 DD 87 D6 24 CD 9D 12 B6 65 C3 4A 7B
-0090 | 37 42 C1 41 B0 C3 B2 66 21 32 89 52 7E F2 F1 DF
-00A0 | AA 9F 92 C8 3B 99 29 9D CA 36 B8 1F 06 9B 8F D6
-00B0 | C7 D1 45 41 F3 C1 47 24 EB 29 32 5D 13 0A A9 7D
-00C0 | B0 EE 6A B4 AE BB 6A 3F 90 64 FF 8B 87 BF 21 32
-00D0 | 26 31 4E 32 3B CA 00 EB 38 52 11 3D 76 32 C6 25
-00E0 | F1 E9 73 DB C3 D6 A2 9F F9 25 F6 EB A7 CF F3 EF
-00F0 | CD 8E 77 D0 B1 AC 1E 55 EA 2B AD 3E DB A1 98 2C
-0100 | 8C C8 2D 5E FD 50 C3 E7 DD D6 7C 56 34 AF C0 52
-0110 | 13 A8 97 EA BD 82 E1 A0 E3 57 60 C2 6D AE A6 0E
-0120 | DD A2 CB 28 B6 3F 81 59 02 8F 4C 61 D7 82 67 AB
-0130 | 57 16 15 77 73 1F 0B 3F B4 19 EB 8A 15 50 83 5B
-0140 | C8 84 FD 17 BD 8C 0C DB 7A 71 DA C5 31 02 8F ED
-0150 | 91 20 DF 89 02 7A DA 57 BF 1D EC 5C 8F C7 4E DF
-0160 | C2 D8 B6 86 96 6E 57 A2 F9 35 C9 1A 06 82 DE 90
-0170 | A3 26 BD 32 BC 4E 11 6E E9 1D 25 03 E2 24 04 78
-0180 | 28 D3 C2 CF A8 A3 BF 5F 8D 91 17 52
+0000 | 00 00 00 00 00 00 00 00 98 FE 0B 00 3A 41 A8 65
+0010 | 78 01 00 00 1F 5F 04 F5 50 C9 33 C4 AD E5 B6 C3
+0020 | B5 B5 5C 41 15 81 CB 21 FE CE EF E9 4A DA F6 67
+0030 | EE 9B 81 67 AC 97 61 C8 FE 50 01 00 FD DE 3B 61
+0040 | 2F 56 36 DB 66 A7 0D 97 5B D4 FE 92 46 7E 0A F4
+0050 | 0C 3F DB 99 29 A0 74 68 6A 0D FE B8 5F 7F B1 7B
+0060 | 70 90 C7 99 56 75 BA 09 59 DD F6 A7 78 66 07 BB
+0070 | 78 3C D7 31 B1 C3 69 DD 6B 1A 3D 6A E4 29 A7 BF
+0080 | 6F 31 28 42 CA 91 54 0E 36 89 13 B4 0A FB A3 F0
+0090 | 1A 60 68 D6 2B 53 AB 12 83 21 81 DD D1 F4 E4 13
+00A0 | 67 99 84 FE A5 2C 7F 93 B3 40 09 C7 42 7D 6B A4
+00B0 | EF BB 79 53 8B 04 6E 38 14 2D FE C6 53 1F 7B 80
+00C0 | 1C 2C 57 D0 7B 23 0C 9F F2 79 B7 31 6B 79 18 97
+00D0 | 3C 4E 77 97 05 E9 F9 2C 5B CB 53 03 C6 D4 E9 47
+00E0 | 2C 55 4A A2 97 C4 5C AB 3E 2F 2D BB ED 74 01 22
+00F0 | EA 46 FB 4F E3 00 C8 4B 97 62 C9 CD 0C 50 6A 6F
+0100 | 7F 0E 30 49 44 05 DF A9 FD 2A 2F 6B 84 5C 85 FC
+0110 | 2A 25 AA CD 42 A8 8C 28 43 BE DA 0C 99 5A 0A 36
+0120 | B6 8D BC F8 52 49 8D 4C C6 8F CB E2 20 BA CA 68
+0130 | BC 73 58 30 7D 4E 30 FF ED 45 03 34 55 93 B2 99
+0140 | E4 AC FA E1 5E C7 27 E9 EC 4C 96 97 BA 25 F3 52
+0150 | CC D6 F1 EF EE 1B 0A 12 D0 F2 DE 4A F6 65 3A 35
+0160 | 11 1A B8 45 6C B3 95 54 70 22 8D 2C 3F FB 46 46
+0170 | F1 A0 A7 EF 1D C2 1F 50 71 B8 56 F9 CA 55 F7 57
+0180 | 77 73 4B 7B BF 1D 21 AF 17 53 50 45
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
-041100005B3EA865
+98FE0B003A41A865
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
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
40, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Value received from server in Step 2
encrypted_data
56, 340
-FE50010037201A6355370E8BDF93202F
9FCC87F354FADD9339765F45589AB3C8
3CCB2B7C4A61A131690B47864D65C2D0
303B9C1F3B96953FD00E18E1FDB4F358
8100B9C0924472EEF1B8EB26DD87D624
CD9D12B665C34A7B3742C141B0C3B266
213289527EF2F1DFAA9F92C83B99299D
CA36B81F069B8FD6C7D14541F3C14724
EB29325D130AA97DB0EE6AB4AEBB6A3F
9064FF8B87BF213226314E323BCA00EB
3852113D7632C625F1E973DBC3D6A29F
F925F6EBA7CFF3EFCD8E77D0B1AC1E55
EA2BAD3EDBA1982C8CC82D5EFD50C3E7
DDD67C5634AFC05213A897EABD82E1A0
E35760C26DAEA60EDDA2CB28B63F8159
028F4C61D78267AB57161577731F0B3F
B419EB8A1550835BC884FD17BD8C0CDB
7A71DAC531028FED9120DF89027ADA57
BF1DEC5C8FC74EDFC2D8B686966E57A2
F935C91A0682DE90A326BD32BC4E116E
E91D2503E224047828D3C2CFA8A3BF5F
8D911752
+FE500100FDDE3B612F5636DB66A70D97
5BD4FE92467E0AF40C3FDB9929A07468
6A0DFEB85F7FB17B7090C7995675BA09
59DDF6A7786607BB783CD731B1C369DD
6B1A3D6AE429A7BF6F312842CA91540E
368913B40AFBA3F01A6068D62B53AB12
832181DDD1F4E413679984FEA52C7F93
B34009C7427D6BA4EFBB79538B046E38
142DFEC6531F7B801C2C57D07B230C9F
F279B7316B7918973C4E779705E9F92C
5BCB5303C6D4E9472C554AA297C45CAB
3E2F2DBBED740122EA46FB4FE300C84B
9762C9CD0C506A6F7F0E30494405DFA9
FD2A2F6B845C85FC2A25AACD42A88C28
43BEDA0C995A0A36B68DBCF852498D4C
C68FCBE220BACA68BC7358307D4E30FF
ED4503345593B299E4ACFAE15EC727E9
EC4C9697BA25F352CCD6F1EFEE1B0A12
D0F2DE4AF6653A35111AB8456CB39554
70228D2C3FFB4646F1A0A7EF1DC21F50
71B856F9CA55F75777734B7BBF1D21AF
17535045
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 = 835F6EB517D11E41A5F6338F29D4F8438DF9771D54A6D9BA0B96BCACFDF1F14F0A7ABC0504976D9A6ED84E87258033ED015AE48331C90C7D697917CD14C9056F3FF142DC81BB942D675E2A5034702D83F63FAE694380F1222E747779EC012F7780E4359427A0B1676414CD6BF64B6FECF7A758BAD66D56FFDAF58BD56434AE67B64C28DBBD81E9D91A7A7E66462DE6689F7348859B10302D9D238BEB9205EA39A437B0FF526DEA5664AA9AEE462AB103AEBABCE740B88E43CB0A3FB7BDDE92E0F6DECAFB808BF9581CF4BD6B0BA016915276731F7F18550C510B1FF0C369F0C96A8ADD4E09D1333E87C84E7295B8803B5DC9F1BD37F358A831D47DB766E03648
+auth_key = 4D26BD0566B8B667C5F700D2807B47C30EA5CA75C0AA3F669AF19A81C89993AEFBB9788FBAF6CC49C176E6BB39E8D55846F886A55ED6C500CC81DBAD5C36510FF20DC537CE9724780380EB55680C40054AA13815D52456C72667EDDCB0767FF2535A6225C787C07258C47358AD381B8ABC8F4AACE3BCD128C0017B14783B2ABFFBF01FDEF8E39B8EE57F9E5AD1EADA3A8D840E7B4841F250D0AD2B720A32EF7B2F451E725CDCDA6C42CCD36106A68F399CC3F293B0C19F08FC42D5AEE4002007EAC8A44A16463F64327A439F8831A83150C8742A0539AB3049904ECB7CA951FE9ED9252829829FF8721A2690E71DB00E60B777C03785796C2A8A3A7F2D37FAC8
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 6C E6 E5 5B 3E A8 65
-0010 | 5C 00 00 00 34 F7 CB 3B D2 AC 74 53 3A 31 3A 58
-0020 | 87 0E 49 D5 3B A6 8A 05 00 09 D4 B0 4B A7 57 78
-0030 | C5 60 95 8C 4F 18 A6 BA 03 83 CA 93 75 5E BD 34
-0040 | FA 87 21 8C DF 8C C2 E7
+0000 | 00 00 00 00 00 00 00 00 01 40 01 75 3B 41 A8 65
+0010 | 9C 00 00 00 34 F7 CB 3B 50 C9 33 C4 AD E5 B6 C3
+0020 | B5 B5 5C 41 15 81 CB 21 FE CE EF E9 4A DA F6 67
+0030 | EE 9B 81 67 AC 97 61 C8 07 BC 70 E5 42 D1 25 6A
+0040 | 17 46 A3 B4 99 70 F6 98
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
-016CE6E55B3EA865
+014001753B41A865
Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length
16, 4
-5C000000
(92 in decimal)
+9C000000
(156 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
-D2AC74533A313A58870E49D53BA68A05
+50C933C4ADE5B6C3B5B55C411581CB21
Value generated by client in Step 1
server_nonce
40, 16
-0009D4B04BA75778C560958C4F18A6BA
+FECEEFE94ADAF667EE9B8167AC9761C8
Value received from server in Step 2
new_nonce_hash1
56, 16
-0383CA93755EBD34FA87218CDF8CC2E7
+07BC70E542D1256A1746A3B49970F698
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/MessageMedia.html b/data/web/corefork.telegram.org/type/MessageMedia.html
index 184e19c234..d1ef304f52 100644
--- a/data/web/corefork.telegram.org/type/MessageMedia.html
+++ b/data/web/corefork.telegram.org/type/MessageMedia.html
@@ -148,7 +148,7 @@
messageMediaGiveawayResults
-
+A giveaway with public winners has finished, this constructor contains info about the winners.