From 66868b14ae87e725f81cb1ac358d1a3698925a38 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sat, 23 Dec 2023 18:49:12 +0000 Subject: [PATCH] Update content of files --- .../api/sponsored-messages.html | 4 +- .../botInlineMessageMediaWebPage.html | 4 +- .../constructor/sponsoredMessage.html | 6 +- .../constructor/webPageEmpty.html | 2 +- .../constructor/webPagePending.html | 2 +- .../mtproto/samples-auth_key.html | 412 +++++++++--------- data/web/fragment.com/js/auction.js | 8 +- 7 files changed, 224 insertions(+), 214 deletions(-) diff --git a/data/web/corefork.telegram.org/api/sponsored-messages.html b/data/web/corefork.telegram.org/api/sponsored-messages.html index 14ab138607..10dc43d6ba 100644 --- a/data/web/corefork.telegram.org/api/sponsored-messages.html +++ b/data/web/corefork.telegram.org/api/sponsored-messages.html @@ -62,15 +62,17 @@ sponsoredWebPage#3db8ec63 flags:# url:string site_name:string photo:flags.0?Phot

More about sponsored messages on Telegram

Displaying sponsored messages

-

Sponsored messages must be displayed below all other posts in the channel, after the user scrolls further down, past the last message. The promoted channel or bot specified in the from_id or chat_invite mutually exclusive fields must be displayed as the author of the message. The message should also contain one of the following buttons at the bottom:

+

Sponsored messages must be displayed below all other posts in the channel, after the user scrolls further down, past the last message. The promoted channel or bot specified in the from_id or chat_invite mutually exclusive fields must be displayed as the author of the message. The message should also contain a button at the bottom with one of the following labels:

The message should be marked as "Recommended" instead of "Sponsored" if the recommended flag is set.

If the show_peer_photo flag is set, a profile photo bubble should be displayed for this message, like for messages sent in groups. The photo shown in the bubble is obtained either from the peer contained in from_id, or from chat_invite.

If the webpage flag is set, an instant view webpage preview must also be shown for the specified website.

+

If the app flag is set, the specified Mini App should be opened when clicking on the button.

If the sponsor_info or additional_info flags are set, an additional "Sponsor info" menu item must be present in the message context menu (the menu that pops up when clicking on a button), that when clicked, displays the contents of the flags.

Counting sponsored message views

Once the entire text is shown on the screen (excluding the button), channels.viewSponsoredMessage must be called with the random_id of the sponsored message.

diff --git a/data/web/corefork.telegram.org/constructor/botInlineMessageMediaWebPage.html b/data/web/corefork.telegram.org/constructor/botInlineMessageMediaWebPage.html index 68fb590b3a..c17445e543 100644 --- a/data/web/corefork.telegram.org/constructor/botInlineMessageMediaWebPage.html +++ b/data/web/corefork.telegram.org/constructor/botInlineMessageMediaWebPage.html @@ -89,7 +89,7 @@ manual flags.7?true -  +If set, indicates that the URL used for the webpage preview was specified manually using inputMediaWebPage, and may not be related to any of the URLs specified in the message. safe @@ -121,6 +121,8 @@

Type

BotInlineMessage

Related pages

+

inputMediaWebPage

+

Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message.

Styled text with message entities

How to create styled text with message entities

diff --git a/data/web/corefork.telegram.org/constructor/sponsoredMessage.html b/data/web/corefork.telegram.org/constructor/sponsoredMessage.html index d3b6d664c9..659df63c25 100644 --- a/data/web/corefork.telegram.org/constructor/sponsoredMessage.html +++ b/data/web/corefork.telegram.org/constructor/sponsoredMessage.html @@ -119,7 +119,7 @@ app flags.10?BotApp -  +Mini App » to open when the sponsored message is clicked. message @@ -134,7 +134,7 @@ button_text flags.11?string -  +Text of the sponsored message button. sponsor_info @@ -151,6 +151,8 @@

Type

SponsoredMessage

Related pages

+

Mini Apps on Telegram

+

Bots can offer users interactive HTML5 web apps to completely replace any website.

Styled text with message entities

How to create styled text with message entities

diff --git a/data/web/corefork.telegram.org/constructor/webPageEmpty.html b/data/web/corefork.telegram.org/constructor/webPageEmpty.html index cf33e461b1..4d7efdffd7 100644 --- a/data/web/corefork.telegram.org/constructor/webPageEmpty.html +++ b/data/web/corefork.telegram.org/constructor/webPageEmpty.html @@ -79,7 +79,7 @@ url flags.0?string -  +URL of the webpage. diff --git a/data/web/corefork.telegram.org/constructor/webPagePending.html b/data/web/corefork.telegram.org/constructor/webPagePending.html index 8a24105e0d..f32ce222c2 100644 --- a/data/web/corefork.telegram.org/constructor/webPagePending.html +++ b/data/web/corefork.telegram.org/constructor/webPagePending.html @@ -79,7 +79,7 @@ url flags.0?string -  +URL of the webpage date 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 a1ad17c2b4..32213a3f0a 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 94 E2 02 00 32 10 87 65
-0010 | 14 00 00 00 F1 8E 7E BE 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F
+
0000 | 00 00 00 00 00 00 00 00 60 20 0B 00 69 28 87 65
+0010 | 14 00 00 00 F1 8E 7E BE AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3

Payload (de)serialization:

req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@ - + @@ -95,7 +95,7 @@ - + @@ -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 C0 F2 BC 32 10 87 65
-0010 | 74 00 00 00 63 24 16 05 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 08 18 B3 8C 11 24 E9 94
-0040 | 25 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 18 77 ED 69 28 87 65
+0010 | 64 00 00 00 63 24 16 05 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D 08 1A 5F FA 29 ED E0 ED
+0040 | 4F 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 @@
- + - + @@ -150,19 +150,19 @@ - + - + - + @@ -208,22 +208,22 @@

Proof of work

3) Client decomposes pq into prime factors such that p < q.
-
pq = 1779920283003098149
-

Decompose into 2 prime cofactors p < q: 1779920283003098149 = 1241013161 * 1434247709

-
p = 1241013161
-q = 1434247709
+
pq = 1900512625765182799
+

Decompose into 2 prime cofactors p < q: 1900512625765182799 = 1286953519 * 1476753121

+
p = 1286953519
+q = 1476753121

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 B3 8C 11 24 E9 94 25 00 00 00
-0010 | 04 49 F8 5B A9 00 00 00 04 55 7C E2 1D 00 00 00
-0020 | 47 69 58 17 B5 42 7B 73 4C DA 54 C6 41 2E 76 7F
-0030 | 68 85 6B A7 DF A3 4B C3 95 DB A8 31 49 3B E0 83
-0040 | 02 F0 8F 13 0D B2 81 B8 8C 6E B1 DC 6D EB 25 96
-0050 | EF 1C F1 1F AF A5 0D 46 4B CC 2B FC 29 2E 07 56
+
0000 | 95 5F F5 A9 08 1A 5F FA 29 ED E0 ED 4F 00 00 00
+0010 | 04 4C B5 5A 2F 00 00 00 04 58 05 76 E1 00 00 00
+0020 | AE E3 68 33 0D 08 E5 0D 8A DF C5 39 8A FB C2 A3
+0030 | B8 AB F0 5D E7 C6 35 F6 D8 4D 0B BE 3A A0 17 2D
+0040 | 47 43 75 83 F4 0F AB AB 65 89 C5 FF 27 AF 57 9B
+0050 | DA 75 10 97 A2 93 BC F8 9F CC 35 AB D5 F1 A9 BD
 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 = 1434247709
- + - + - + - + - + - + @@ -291,39 +291,39 @@ q = 1434247709

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 = 955FF5A90818B38C1124E994250000000449F85BA900000004557CE21D00000047695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08302F08F130DB281B88C6EB1DC6DEB2596EF1CF11FAFA50D464BCC2BFC292E075602000000
-random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C62422C66AFC954711532C545C49D522B470AE0838F155FA11E10E033AE5BB1ED0614AB081888902F855794EFBF9E799A2350AD289C8BD093F6869CE82CFA97D
+
data = 955FF5A9081A5FFA29EDE0ED4F000000044CB55A2F00000004580576E1000000AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D47437583F40FABAB6589C5FF27AF579BDA751097A293BCF89FCC35ABD5F1A9BD02000000
+random_padding_bytes = 2908A6605A3DB526D5984C4221B6B5675DCEA7B249B29CA437471CB5E3EAA11DC61C4AE6E8A8EE2F7035B41B7BA44C1735A2A7408364138CE44ED5827BEEF0D55BB44CDC01A8FA8B8BE476A6F50D9F4412DF71655F2190D768267C4B

And this is the output:

-
encrypted_data = 991ABF8F3E61EAE77965DA04E48EA28523FFB2E94091DA3A4A78A3287F5ADB82CE3F39E92EC6EC45B556B0BE08F467D7E49E444A770661E8F3720805D9D06377C777CAE0B725FDB3E2FAB9A203B44B5E2AD34135208728CE3839876159D3C89BF82200E7089165F1B44A408474650E98C70F5F06C2F4FAF1BF1FECF576F514B8CCC84F807FD198DD3EEF20DEED0CB65D7FA61CBFDBC450FB1F21AF8F0CD266D3D5426AD0A12E21A6EA19D27818E5EDC169363551810C6D3987FA66E79E63A7912E46B4AE1F3924CF973223B18AF545F9BFB5B3A75A4E27BB02360C66803EC3C48FD39B080C3776C891E2564DC90FE7664D0C5F85CDB8A0302B5C0DEC7D0E34ED
+
encrypted_data = 14CE18567E07E7B0A2221FC69B4CA3ABEA9FD4C64D3C112B52422F02A04372C4BE10BF2734BFFA5E1D8AE2712B9C2D07085AEF79F5E878CFDFD6187DE7276D375C501A738982DA2778880AAAF6D32912D6AFF1AA160EBDF37DF3E8D3BF244C51CF9464B3A2EEFEA79C41622DA8E044633D5617BC5B0AE18398E427F8BC24E31356D8F4CC839C4BA2FA09D098A8A8D605602F68181BD1F2666B32D4239AAD17A6340FF236C400BB378814F4FC1E3B92CD24C353B911D0B2ECAE55A91CB4C9ACF5DEE2A14D0255B9A0C0DDAE82C3005E803FE9905253F881ACD830A0D2926E9D970793657F9B5CE0344F596D14967557488CA3CDF8B4EFF6C817513B9BAFB73A72

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 48 51 0A 00 32 10 87 65
-0010 | 40 01 00 00 BE E4 12 D7 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 04 49 F8 5B A9 00 00 00
-0040 | 04 55 7C E2 1D 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 99 1A BF 8F 3E 61 EA E7 79 65 DA 04
-0060 | E4 8E A2 85 23 FF B2 E9 40 91 DA 3A 4A 78 A3 28
-0070 | 7F 5A DB 82 CE 3F 39 E9 2E C6 EC 45 B5 56 B0 BE
-0080 | 08 F4 67 D7 E4 9E 44 4A 77 06 61 E8 F3 72 08 05
-0090 | D9 D0 63 77 C7 77 CA E0 B7 25 FD B3 E2 FA B9 A2
-00A0 | 03 B4 4B 5E 2A D3 41 35 20 87 28 CE 38 39 87 61
-00B0 | 59 D3 C8 9B F8 22 00 E7 08 91 65 F1 B4 4A 40 84
-00C0 | 74 65 0E 98 C7 0F 5F 06 C2 F4 FA F1 BF 1F EC F5
-00D0 | 76 F5 14 B8 CC C8 4F 80 7F D1 98 DD 3E EF 20 DE
-00E0 | ED 0C B6 5D 7F A6 1C BF DB C4 50 FB 1F 21 AF 8F
-00F0 | 0C D2 66 D3 D5 42 6A D0 A1 2E 21 A6 EA 19 D2 78
-0100 | 18 E5 ED C1 69 36 35 51 81 0C 6D 39 87 FA 66 E7
-0110 | 9E 63 A7 91 2E 46 B4 AE 1F 39 24 CF 97 32 23 B1
-0120 | 8A F5 45 F9 BF B5 B3 A7 5A 4E 27 BB 02 36 0C 66
-0130 | 80 3E C3 C4 8F D3 9B 08 0C 37 76 C8 91 E2 56 4D
-0140 | C9 0F E7 66 4D 0C 5F 85 CD B8 A0 30 2B 5C 0D EC
-0150 | 7D 0E 34 ED
+
0000 | 00 00 00 00 00 00 00 00 78 5B 09 00 6A 28 87 65
+0010 | 40 01 00 00 BE E4 12 D7 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D 04 4C B5 5A 2F 00 00 00
+0040 | 04 58 05 76 E1 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 14 CE 18 56 7E 07 E7 B0 A2 22 1F C6
+0060 | 9B 4C A3 AB EA 9F D4 C6 4D 3C 11 2B 52 42 2F 02
+0070 | A0 43 72 C4 BE 10 BF 27 34 BF FA 5E 1D 8A E2 71
+0080 | 2B 9C 2D 07 08 5A EF 79 F5 E8 78 CF DF D6 18 7D
+0090 | E7 27 6D 37 5C 50 1A 73 89 82 DA 27 78 88 0A AA
+00A0 | F6 D3 29 12 D6 AF F1 AA 16 0E BD F3 7D F3 E8 D3
+00B0 | BF 24 4C 51 CF 94 64 B3 A2 EE FE A7 9C 41 62 2D
+00C0 | A8 E0 44 63 3D 56 17 BC 5B 0A E1 83 98 E4 27 F8
+00D0 | BC 24 E3 13 56 D8 F4 CC 83 9C 4B A2 FA 09 D0 98
+00E0 | A8 A8 D6 05 60 2F 68 18 1B D1 F2 66 6B 32 D4 23
+00F0 | 9A AD 17 A6 34 0F F2 36 C4 00 BB 37 88 14 F4 FC
+0100 | 1E 3B 92 CD 24 C3 53 B9 11 D0 B2 EC AE 55 A9 1C
+0110 | B4 C9 AC F5 DE E2 A1 4D 02 55 B9 A0 C0 DD AE 82
+0120 | C3 00 5E 80 3F E9 90 52 53 F8 81 AC D8 30 A0 D2
+0130 | 92 6E 9D 97 07 93 65 7F 9B 5C E0 34 4F 59 6D 14
+0140 | 96 75 57 48 8C A3 CD F8 B4 EF F6 C8 17 51 3B 9B
+0150 | AF B7 3A 72

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;
message_id 8, 894E202003210876560200B0069288765 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Random number
message_id 8, 801C0F2BC32108765011877ED69288765 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 474000000 (116 in decimal)64000000 (100 in decimal) Message body length
nonce 24, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 40, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Server-generated random number
pq 56, 120818B38C1124E99425000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1779920283003098149
081A5FFA29EDE0ED4F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1900512625765182799
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
pq 4, 120818B38C1124E99425000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1779920283003098149
081A5FFA29EDE0ED4F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1900512625765182799
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p 16, 80449F85BA9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1241013161
044CB55A2F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1286953519
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 24, 804557CE21D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1434247709
04580576E1000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1476753121
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce 32, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 48, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Value received from server in Step 2
new_nonce 64, 3202F08F130DB281B88C6EB1DC6DEB2596 EF1CF11FAFA50D464BCC2BFC292E075647437583F40FABAB6589C5FF27AF579B DA751097A293BCF89FCC35ABD5F1A9BD Client-generated random number
@@ -345,7 +345,7 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C - + @@ -363,25 +363,25 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C - + - + - + - + @@ -393,7 +393,7 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C - + @@ -402,47 +402,47 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
6) Server responds with:

Received payload (excluding transport headers/trailers):

-
0000 | 00 00 00 00 00 00 00 00 01 58 40 6C 33 10 87 65
-0010 | E4 02 00 00 5C 07 E8 D0 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 FE 50 02 00 57 01 89 B9
-0040 | EB 35 8B DF C4 B5 A3 3C 00 72 96 40 55 DF 69 12
-0050 | FB 84 1B 3F 85 97 A7 49 0E 47 44 A1 72 62 5A B3
-0060 | 10 1B 84 BF 22 4D 3B 65 24 65 2A 70 78 05 D4 A4
-0070 | D7 6A 70 FD 31 B9 28 23 E0 CC DB 1F B3 B4 CB 00
-0080 | A5 3F 12 BC 32 9A F8 EF 58 AF 68 EA EA 61 FB 84
-0090 | 2B 2F A7 08 A8 1C 8F 53 F8 79 D5 98 C0 C9 D2 55
-00A0 | EE 72 06 22 50 2A 1E E5 54 69 67 77 01 D8 7D 28
-00B0 | 5E 00 39 16 3D 0A AF 28 2F 85 91 89 0A 23 6F 77
-00C0 | A0 99 85 2B C4 2A 68 D5 E7 E2 8D F1 4D 61 0A FC
-00D0 | 40 CE DC 56 5C BF 61 62 1A 62 08 22 0E A5 83 B4
-00E0 | A2 CF 2A 33 38 C5 33 62 E5 B1 BC F2 1C B3 FB 7A
-00F0 | AB F7 23 BF BA ED 9B 6D FF A2 0B CB 12 79 24 56
-0100 | 8A 26 AE 25 57 D6 34 C3 9A CB E7 19 48 96 C4 3E
-0110 | 2A 3A 59 E6 95 66 C0 8F 75 D5 BE 9F F3 32 28 3D
-0120 | BE 85 44 C3 0B 22 55 E9 31 71 5C 6D B4 A4 CB 72
-0130 | 5C 57 43 E1 A9 EC 09 8F 90 C9 75 E5 6B B9 B3 AC
-0140 | AC 0B FB AC EB 3C 7E 0C AB 59 C9 70 D2 93 A6 97
-0150 | F7 5F 53 2B BE 8E 32 F2 76 E5 F3 79 E8 95 72 CC
-0160 | 68 32 B9 6D B5 72 D3 9A F7 14 EE F4 FB 92 6D 5D
-0170 | 2B E1 34 4D 9E 4F 50 6F C5 74 6C C3 A1 F8 7B E7
-0180 | 21 3F EE 0E 9E 32 A4 94 06 BC 48 DB 24 6D 41 0E
-0190 | 14 72 49 4F 76 31 94 B9 27 C9 2F 8A CF AC 21 08
-01A0 | FF 84 82 AC CB 9D A4 BE 4F EF 3C B3 5A D1 EB B2
-01B0 | B7 80 6A CE 20 54 60 4D 82 D0 61 54 F7 CD 97 D8
-01C0 | 20 A9 7E E5 0A D3 75 58 BC 36 9E 75 24 F2 C0 B5
-01D0 | D9 70 9B D7 D4 42 65 3B 02 60 EB F4 1C 68 2A BD
-01E0 | 51 99 46 8A E7 0A 32 B1 4B 53 03 F1 52 FB 2F 64
-01F0 | 1A 39 4F 2D 82 11 B4 95 FE 4B 6F 81 B9 36 B3 56
-0200 | 5C 73 18 B8 A9 E5 1E 9F 6C 8E 0A 39 15 6A A6 57
-0210 | 95 B5 1C 4C 2E 12 92 04 86 E4 BE A4 6C E0 A1 74
-0220 | 4C 47 00 3F BA DE 95 A3 85 7A 06 CE 10 4E 83 03
-0230 | 7F 2B 78 88 0E B2 BA BF 74 A0 9B D6 89 70 D8 78
-0240 | 8A F6 FB 67 FD EE 8D 5D 8F 7B CE D7 93 72 8F 89
-0250 | A6 26 3E 30 13 B3 28 8A 0E DE 57 1F 61 CD 3C 2B
-0260 | BA 27 98 E3 DC 93 F3 F4 0B 26 21 29 29 60 4A FC
-0270 | C1 A9 CD 84 DB 5E 2B 68 A1 84 C9 28 46 58 1F 30
-0280 | BD 27 37 D5 7B 79 AE 40 BC 98 8A 30
+
0000 | 00 00 00 00 00 00 00 00 01 44 FB A7 6A 28 87 65
+0010 | A8 02 00 00 5C 07 E8 D0 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D FE 50 02 00 DC 6E 86 DB
+0040 | 59 1C C0 85 6A 72 3D 94 7E EF 1F 71 5B 12 26 6B
+0050 | 01 9D 50 17 0A 0C F0 57 2C 15 C5 FE 74 55 E4 1E
+0060 | 84 C8 AE A3 13 24 6E 77 8D 72 0E 35 A4 B0 22 54
+0070 | E3 E0 4A 28 9D D7 5A 07 E4 B4 61 41 B1 F0 19 0A
+0080 | C1 BC 85 FC 92 32 60 52 65 F1 E3 4E EE 1B D8 6E
+0090 | 5D 43 40 B0 36 1F B4 09 0E 40 1A 63 46 46 3A 25
+00A0 | 52 58 8E 68 5C C1 26 55 B6 A6 5F 79 77 8A 07 43
+00B0 | 2A 5A 90 46 7E 8C EF E6 25 EA A5 02 B1 59 23 A7
+00C0 | 09 26 06 C8 04 11 9B C2 34 F7 07 32 57 A5 B5 61
+00D0 | F4 C6 98 BD E5 5A 43 6E 39 ED B2 9B 6C B8 2B 2A
+00E0 | 7C 60 CE 41 6B C1 59 D5 BF C2 C7 85 4A D3 16 48
+00F0 | A5 44 99 88 3B 4C 3E 9A D2 BE 56 96 B6 A7 F0 BD
+0100 | D8 EC 6F 66 40 B4 42 B0 C6 2A C1 B3 96 8E 47 43
+0110 | 6A 21 63 77 C5 64 9D E0 C7 2C 78 AE 3B 84 54 80
+0120 | 32 9A 78 68 F6 D0 26 0B 90 67 04 DB 42 54 74 E0
+0130 | B8 B1 E7 32 74 DE F5 36 15 C7 49 55 10 F2 DB 4A
+0140 | 60 61 24 D0 B1 92 A8 28 2F 85 03 65 92 58 6A DC
+0150 | BF CD CF B1 D8 DE D9 7C 5D 4A A1 B6 8F C2 D7 8B
+0160 | 32 EE 70 77 9C 96 A0 4C 68 BF 70 BD 83 76 03 00
+0170 | 92 C3 48 17 B3 37 37 D7 59 76 5E 05 82 7C A2 D4
+0180 | F4 77 44 6B 5A E9 5A FF CE 02 FA 77 17 B9 5F CD
+0190 | 50 6D F8 EE 8A 31 72 25 6B 5D 21 2F 88 79 9C C6
+01A0 | 77 3F A9 B7 08 4D FD DB B6 3D 3D 94 73 41 61 D8
+01B0 | 6D 0A AB 75 DE 83 8E 68 C5 DB 31 B0 E5 4D D9 6D
+01C0 | 98 D5 4B 3B CF FE 32 37 AD 8C 1C E9 A0 06 9A 26
+01D0 | C6 60 88 64 CA ED 67 6F CD 92 27 8A F7 53 F3 C5
+01E0 | F1 21 EA 87 37 6C 63 F6 0C CE D5 42 95 DA 28 A1
+01F0 | 36 FC AC C5 3C 32 91 1C A8 61 5B 93 1A 7C 97 3C
+0200 | 97 6E 39 93 81 15 7F 12 03 C2 77 F7 01 03 58 E5
+0210 | 4E EA 91 78 E0 A7 1A AC F9 9D 74 89 51 85 C7 F8
+0220 | B6 06 B3 15 20 F1 9E 27 AD D1 CA 2C 33 63 4D 9B
+0230 | 5A FA 02 F3 11 60 0A 0D F4 A7 5D C9 87 84 B9 0C
+0240 | 73 FC 93 EE 54 F5 34 8B EA 2D 06 27 CB 7A FA 15
+0250 | D7 22 08 EB 89 3C 60 49 02 A4 81 5C 10 22 C5 F6
+0260 | 3C 5F 0B C9 41 9A 58 11 41 41 A2 69 87 7D F0 0E
+0270 | 03 90 37 BB 18 06 16 5E 19 67 56 F7 F4 12 A8 40
+0280 | 85 23 7A AA 8D 90 A7 D5 D2 5A 6A 14

Payload (de)serialization:

server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
message_id 8, 848510A0032108765785B09006A288765 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 40, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Value received from server in Step 2
p 56, 80449F85BA9000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1241013161
044CB55A2F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1286953519
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 64, 804557CE21D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1434247709
04580576E1000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1476753121
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
encrypted_data 80, 260FE000100991ABF8F3E61EAE77965DA04 E48EA28523FFB2E94091DA3A4A78A328 7F5ADB82CE3F39E92EC6EC45B556B0BE 08F467D7E49E444A770661E8F3720805 D9D06377C777CAE0B725FDB3E2FAB9A2 03B44B5E2AD34135208728CE38398761 59D3C89BF82200E7089165F1B44A4084 74650E98C70F5F06C2F4FAF1BF1FECF5 76F514B8CCC84F807FD198DD3EEF20DE ED0CB65D7FA61CBFDBC450FB1F21AF8F 0CD266D3D5426AD0A12E21A6EA19D278 18E5EDC169363551810C6D3987FA66E7 9E63A7912E46B4AE1F3924CF973223B1 8AF545F9BFB5B3A75A4E27BB02360C66 803EC3C48FD39B080C3776C891E2564D C90FE7664D0C5F85CDB8A0302B5C0DEC
7D0E34ED
FE00010014CE18567E07E7B0A2221FC6 9B4CA3ABEA9FD4C64D3C112B52422F02 A04372C4BE10BF2734BFFA5E1D8AE271 2B9C2D07085AEF79F5E878CFDFD6187D E7276D375C501A738982DA2778880AAA F6D32912D6AFF1AA160EBDF37DF3E8D3 BF244C51CF9464B3A2EEFEA79C41622D A8E044633D5617BC5B0AE18398E427F8 BC24E31356D8F4CC839C4BA2FA09D098 A8A8D605602F68181BD1F2666B32D423 9AAD17A6340FF236C400BB378814F4FC 1E3B92CD24C353B911D0B2ECAE55A91C B4C9ACF5DEE2A14D0255B9A0C0DDAE82 C3005E803FE9905253F881ACD830A0D2 926E9D970793657F9B5CE0344F596D14 967557488CA3CDF8B4EFF6C817513B9B
AFB73A72
Value generated above
@@ -464,13 +464,13 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C - + - + @@ -482,19 +482,19 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C - + - + - + @@ -502,20 +502,20 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C

Decrypt encrypted_answer using the reverse of the process specified in step 6:

-
encrypted_answer = 570189B9EB358BDFC4B5A33C0072964055DF6912FB841B3F8597A7490E4744A172625AB3101B84BF224D3B6524652A707805D4A4D76A70FD31B92823E0CCDB1FB3B4CB00A53F12BC329AF8EF58AF68EAEA61FB842B2FA708A81C8F53F879D598C0C9D255EE720622502A1EE55469677701D87D285E0039163D0AAF282F8591890A236F77A099852BC42A68D5E7E28DF14D610AFC40CEDC565CBF61621A6208220EA583B4A2CF2A3338C53362E5B1BCF21CB3FB7AABF723BFBAED9B6DFFA20BCB127924568A26AE2557D634C39ACBE7194896C43E2A3A59E69566C08F75D5BE9FF332283DBE8544C30B2255E931715C6DB4A4CB725C5743E1A9EC098F90C975E56BB9B3ACAC0BFBACEB3C7E0CAB59C970D293A697F75F532BBE8E32F276E5F379E89572CC6832B96DB572D39AF714EEF4FB926D5D2BE1344D9E4F506FC5746CC3A1F87BE7213FEE0E9E32A49406BC48DB246D410E1472494F763194B927C92F8ACFAC2108FF8482ACCB9DA4BE4FEF3CB35AD1EBB2B7806ACE2054604D82D06154F7CD97D820A97EE50AD37558BC369E7524F2C0B5D9709BD7D442653B0260EBF41C682ABD5199468AE70A32B14B5303F152FB2F641A394F2D8211B495FE4B6F81B936B3565C7318B8A9E51E9F6C8E0A39156AA65795B51C4C2E12920486E4BEA46CE0A1744C47003FBADE95A3857A06CE104E83037F2B78880EB2BABF74A09BD68970D8788AF6FB67FDEE8D5D8F7BCED793728F89A6263E3013B3288A0EDE571F61CD3C2BBA2798E3DC93F3F40B26212929604AFCC1A9CD84DB5E2B68A184C92846581F30BD2737D57B79AE40BC988A30
-tmp_aes_key = 05EE1D4D6ADC2782A7ACECACA3A6559E1784F016F92904133459FC8A893EB7AE
-tmp_aes_iv = 048BD652499FBF9CDA0F2C1FA72119F1E64C3B9B4A764020165077B702F08F13
+
encrypted_answer = DC6E86DB591CC0856A723D947EEF1F715B12266B019D50170A0CF0572C15C5FE7455E41E84C8AEA313246E778D720E35A4B02254E3E04A289DD75A07E4B46141B1F0190AC1BC85FC9232605265F1E34EEE1BD86E5D4340B0361FB4090E401A6346463A2552588E685CC12655B6A65F79778A07432A5A90467E8CEFE625EAA502B15923A7092606C804119BC234F7073257A5B561F4C698BDE55A436E39EDB29B6CB82B2A7C60CE416BC159D5BFC2C7854AD31648A54499883B4C3E9AD2BE5696B6A7F0BDD8EC6F6640B442B0C62AC1B3968E47436A216377C5649DE0C72C78AE3B845480329A7868F6D0260B906704DB425474E0B8B1E73274DEF53615C7495510F2DB4A606124D0B192A8282F85036592586ADCBFCDCFB1D8DED97C5D4AA1B68FC2D78B32EE70779C96A04C68BF70BD8376030092C34817B33737D759765E05827CA2D4F477446B5AE95AFFCE02FA7717B95FCD506DF8EE8A3172256B5D212F88799CC6773FA9B7084DFDDBB63D3D94734161D86D0AAB75DE838E68C5DB31B0E54DD96D98D54B3BCFFE3237AD8C1CE9A0069A26C6608864CAED676FCD92278AF753F3C5F121EA87376C63F60CCED54295DA28A136FCACC53C32911CA8615B931A7C973C976E399381157F1203C277F7010358E54EEA9178E0A71AACF99D74895185C7F8B606B31520F19E27ADD1CA2C33634D9B5AFA02F311600A0DF4A75DC98784B90C73FC93EE54F5348BEA2D0627CB7AFA15D72208EB893C604902A4815C1022C5F63C5F0BC9419A58114141A269877DF00E039037BB1806165E196756F7F412A84085237AAA8D90A7D5D25A6A14
+tmp_aes_key = E22B38C451C5CAAD463303B485C7E600941F2C9CC4707A08024C1CEF4A830DCA
+tmp_aes_iv = 527793E83B9AB7FB8C8F70BD977F382287996678B1CA4491600094AF47437583

Yielding:

-
answer_with_hash = 9103528EB5C8775E57049EFE748C5200F6145C2DBA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010042EDEADD1E44E75004AF29E10CD8130FAF926023DC51CE79B3FD523715CBEE6218002D5F6F42E7C38F241326A49C89B2ABEE867A69459FC3520D68B5A6A313E967B6765C221B120FEE2891654DC43E03945AF26F0EC5A367C93A9837C551C2B4F219605E938708E3C2365E8F8517FDDA1D80B22EBA9905B84332593E8E0F4FA7D3E9F03FDAA1EE7271B87EA34CAB0AFF2B60788853A41907704B4328ABF5CF11BEC74DF0B29B1EE2C123430A36DE56B9261CD777B5951763A56136620CBE37988FA0C4E059844C787AD4BA1F0D2478FF1E5BBE8DC570B74742EC53AF06FA210BEC9B2B1A3FDC9B1FE765BA54C1F56CB7A8F7D86F040E51837E96F21DB91F5981331087655149ACCDB088F8EF
-answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010042EDEADD1E44E75004AF29E10CD8130FAF926023DC51CE79B3FD523715CBEE6218002D5F6F42E7C38F241326A49C89B2ABEE867A69459FC3520D68B5A6A313E967B6765C221B120FEE2891654DC43E03945AF26F0EC5A367C93A9837C551C2B4F219605E938708E3C2365E8F8517FDDA1D80B22EBA9905B84332593E8E0F4FA7D3E9F03FDAA1EE7271B87EA34CAB0AFF2B60788853A41907704B4328ABF5CF11BEC74DF0B29B1EE2C123430A36DE56B9261CD777B5951763A56136620CBE37988FA0C4E059844C787AD4BA1F0D2478FF1E5BBE8DC570B74742EC53AF06FA210BEC9B2B1A3FDC9B1FE765BA54C1F56CB7A8F7D86F040E51837E96F21DB91F5981331087655149ACCDB088F8EF
+
answer_with_hash = 58B93B7E6389D04EB04F9A364F84B1827A7D91E7BA0D89B5AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010097B45C13074C36BD49796FFDE5830CBA658EBB755A31FEDB1FCC8E57B2EADF64A41EA6B9FA9769D12AFEC403CF043FA1BA747164B609802E9429F81A76C89B1CCD77E753298A41AF787D71111865636F1168285A7321678DBFA99F775C760F215F0917F11975271232BB201DD6FAB340D199E71F56EDF5943FED916B73A87EB7AE77AA062E07D10A270D2EF808494546CE863765E311BEA5D7F8E45D163910963E051B501D5D73496A373D08B9528D0461E28CF753326683F898BAC91AF8D78042BBD01D0D49BF98468CF3BCA895B87885C6FBF852ADD8069D93C6ACB74B192EAEAC689059074B5201B1E42AC505DDD765C5DB8FBD7B6D918EBCE67A17BE23016A288765F0C5EEB395B10347
+answer = BA0D89B5AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010097B45C13074C36BD49796FFDE5830CBA658EBB755A31FEDB1FCC8E57B2EADF64A41EA6B9FA9769D12AFEC403CF043FA1BA747164B609802E9429F81A76C89B1CCD77E753298A41AF787D71111865636F1168285A7321678DBFA99F775C760F215F0917F11975271232BB201DD6FAB340D199E71F56EDF5943FED916B73A87EB7AE77AA062E07D10A270D2EF808494546CE863765E311BEA5D7F8E45D163910963E051B501D5D73496A373D08B9528D0461E28CF753326683F898BAC91AF8D78042BBD01D0D49BF98468CF3BCA895B87885C6FBF852ADD8069D93C6ACB74B192EAEAC689059074B5201B1E42AC505DDD765C5DB8FBD7B6D918EBCE67A17BE23016A288765F0C5EEB395B10347

Generated payload (excluding transport headers/trailers):

-
0000 | BA 0D 89 B5 47 69 58 17 B5 42 7B 73 4C DA 54 C6
-0010 | 41 2E 76 7F 68 85 6B A7 DF A3 4B C3 95 DB A8 31
-0020 | 49 3B E0 83 03 00 00 00 FE 00 01 00 C7 1C AE B9
+
0000 | BA 0D 89 B5 AE E3 68 33 0D 08 E5 0D 8A DF C5 39
+0010 | 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6 D8 4D 0B BE
+0020 | 3A A0 17 2D 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 = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
 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 | 42 ED EA DD 1E 44 E7 50 04 AF 29 E1 0C D8 13 0F
-0140 | AF 92 60 23 DC 51 CE 79 B3 FD 52 37 15 CB EE 62
-0150 | 18 00 2D 5F 6F 42 E7 C3 8F 24 13 26 A4 9C 89 B2
-0160 | AB EE 86 7A 69 45 9F C3 52 0D 68 B5 A6 A3 13 E9
-0170 | 67 B6 76 5C 22 1B 12 0F EE 28 91 65 4D C4 3E 03
-0180 | 94 5A F2 6F 0E C5 A3 67 C9 3A 98 37 C5 51 C2 B4
-0190 | F2 19 60 5E 93 87 08 E3 C2 36 5E 8F 85 17 FD DA
-01A0 | 1D 80 B2 2E BA 99 05 B8 43 32 59 3E 8E 0F 4F A7
-01B0 | D3 E9 F0 3F DA A1 EE 72 71 B8 7E A3 4C AB 0A FF
-01C0 | 2B 60 78 88 53 A4 19 07 70 4B 43 28 AB F5 CF 11
-01D0 | BE C7 4D F0 B2 9B 1E E2 C1 23 43 0A 36 DE 56 B9
-01E0 | 26 1C D7 77 B5 95 17 63 A5 61 36 62 0C BE 37 98
-01F0 | 8F A0 C4 E0 59 84 4C 78 7A D4 BA 1F 0D 24 78 FF
-0200 | 1E 5B BE 8D C5 70 B7 47 42 EC 53 AF 06 FA 21 0B
-0210 | EC 9B 2B 1A 3F DC 9B 1F E7 65 BA 54 C1 F5 6C B7
-0220 | A8 F7 D8 6F 04 0E 51 83 7E 96 F2 1D B9 1F 59 81
-0230 | 33 10 87 65
+0130 | 97 B4 5C 13 07 4C 36 BD 49 79 6F FD E5 83 0C BA +0140 | 65 8E BB 75 5A 31 FE DB 1F CC 8E 57 B2 EA DF 64 +0150 | A4 1E A6 B9 FA 97 69 D1 2A FE C4 03 CF 04 3F A1 +0160 | BA 74 71 64 B6 09 80 2E 94 29 F8 1A 76 C8 9B 1C +0170 | CD 77 E7 53 29 8A 41 AF 78 7D 71 11 18 65 63 6F +0180 | 11 68 28 5A 73 21 67 8D BF A9 9F 77 5C 76 0F 21 +0190 | 5F 09 17 F1 19 75 27 12 32 BB 20 1D D6 FA B3 40 +01A0 | D1 99 E7 1F 56 ED F5 94 3F ED 91 6B 73 A8 7E B7 +01B0 | AE 77 AA 06 2E 07 D1 0A 27 0D 2E F8 08 49 45 46 +01C0 | CE 86 37 65 E3 11 BE A5 D7 F8 E4 5D 16 39 10 96 +01D0 | 3E 05 1B 50 1D 5D 73 49 6A 37 3D 08 B9 52 8D 04 +01E0 | 61 E2 8C F7 53 32 66 83 F8 98 BA C9 1A F8 D7 80 +01F0 | 42 BB D0 1D 0D 49 BF 98 46 8C F3 BC A8 95 B8 78 +0200 | 85 C6 FB F8 52 AD D8 06 9D 93 C6 AC B7 4B 19 2E +0210 | AE AC 68 90 59 07 4B 52 01 B1 E4 2A C5 05 DD D7 +0220 | 65 C5 DB 8F BD 7B 6D 91 8E BC E6 7A 17 BE 23 01 +0230 | 6A 28 87 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;
message_id 8, 80158406C331087650144FBA76A288765 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 4E4020000 (740 in decimal)A8020000 (680 in decimal) Message body length
nonce 24, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 40, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Value received from server in Step 2
encrypted_answer 56, 596FE500200570189B9EB358BDFC4B5A33C 0072964055DF6912FB841B3F8597A749 0E4744A172625AB3101B84BF224D3B65 24652A707805D4A4D76A70FD31B92823 E0CCDB1FB3B4CB00A53F12BC329AF8EF 58AF68EAEA61FB842B2FA708A81C8F53 F879D598C0C9D255EE720622502A1EE5 5469677701D87D285E0039163D0AAF28 2F8591890A236F77A099852BC42A68D5 E7E28DF14D610AFC40CEDC565CBF6162 1A6208220EA583B4A2CF2A3338C53362 E5B1BCF21CB3FB7AABF723BFBAED9B6D FFA20BCB127924568A26AE2557D634C3 9ACBE7194896C43E2A3A59E69566C08F 75D5BE9FF332283DBE8544C30B2255E9 31715C6DB4A4CB725C5743E1A9EC098F 90C975E56BB9B3ACAC0BFBACEB3C7E0C AB59C970D293A697F75F532BBE8E32F2 76E5F379E89572CC6832B96DB572D39A F714EEF4FB926D5D2BE1344D9E4F506F C5746CC3A1F87BE7213FEE0E9E32A494 06BC48DB246D410E1472494F763194B9 27C92F8ACFAC2108FF8482ACCB9DA4BE 4FEF3CB35AD1EBB2B7806ACE2054604D 82D06154F7CD97D820A97EE50AD37558 BC369E7524F2C0B5D9709BD7D442653B 0260EBF41C682ABD5199468AE70A32B1 4B5303F152FB2F641A394F2D8211B495 FE4B6F81B936B3565C7318B8A9E51E9F 6C8E0A39156AA65795B51C4C2E129204 86E4BEA46CE0A1744C47003FBADE95A3 857A06CE104E83037F2B78880EB2BABF 74A09BD68970D8788AF6FB67FDEE8D5D 8F7BCED793728F89A6263E3013B3288A 0EDE571F61CD3C2BBA2798E3DC93F3F4 0B26212929604AFCC1A9CD84DB5E2B68 A184C92846581F30BD2737D57B79AE40
BC988A30
FE500200DC6E86DB591CC0856A723D94 7EEF1F715B12266B019D50170A0CF057 2C15C5FE7455E41E84C8AEA313246E77 8D720E35A4B02254E3E04A289DD75A07 E4B46141B1F0190AC1BC85FC92326052 65F1E34EEE1BD86E5D4340B0361FB409 0E401A6346463A2552588E685CC12655 B6A65F79778A07432A5A90467E8CEFE6 25EAA502B15923A7092606C804119BC2 34F7073257A5B561F4C698BDE55A436E 39EDB29B6CB82B2A7C60CE416BC159D5 BFC2C7854AD31648A54499883B4C3E9A D2BE5696B6A7F0BDD8EC6F6640B442B0 C62AC1B3968E47436A216377C5649DE0 C72C78AE3B845480329A7868F6D0260B 906704DB425474E0B8B1E73274DEF536 15C7495510F2DB4A606124D0B192A828 2F85036592586ADCBFCDCFB1D8DED97C 5D4AA1B68FC2D78B32EE70779C96A04C 68BF70BD8376030092C34817B33737D7 59765E05827CA2D4F477446B5AE95AFF CE02FA7717B95FCD506DF8EE8A317225 6B5D212F88799CC6773FA9B7084DFDDB B63D3D94734161D86D0AAB75DE838E68 C5DB31B0E54DD96D98D54B3BCFFE3237 AD8C1CE9A0069A26C6608864CAED676F CD92278AF753F3C5F121EA87376C63F6 0CCED54295DA28A136FCACC53C32911C A8615B931A7C973C976E399381157F12 03C277F7010358E54EEA9178E0A71AAC F99D74895185C7F8B606B31520F19E27 ADD1CA2C33634D9B5AFA02F311600A0D F4A75DC98784B90C73FC93EE54F5348B EA2D0627CB7AFA15D72208EB893C6049 02A4815C1022C5F63C5F0BC9419A5811 4141A269877DF00E039037BB1806165E 196756F7F412A84085237AAA8D90A7D5
D25A6A14
See below
@@ -570,13 +570,13 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08 - + - + @@ -594,13 +594,13 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08 - + - + @@ -609,34 +609,34 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
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 = 67D188F56A5AA505D237103E8999DCAFDE21A01A445E754AA3062300356F1F3045C4F01FA1A25888D4B161B7B49E3B64852F05FE62B44597DA775380EB5A9D5824632273AE824B62AEFF39E8F1E35BD57B6345689F784F701F05AFBF3D2DDF2C0E5B220D1C61A2AD57E0EE28DEB43C5BDAFBEF5A344A92F67FFEFBFA54AD061E9A6D9CD551F97D6D50037CCEEF39FC7922A0E88D303724E5399130874CD4B70AE22A542D76710A4039D4024500D23F4655F471FC253BECA197B7D591BC80EB9480DA265F87FD069C7369D59049FF50B85920F372CC652BE7F6684BE85AF944FE1C4349E129229299573F4D40CD2EDCEF48196E0AC839AEF92DC21DD71A43E148
+
b = CD1D19B18C3F7C89246A9086F56C4321CF136B5D4ABE202952EE25BFEB0B718CEEB87C94BE2E4FB392ED6857BCCEAB4DFAB49E099BEDC809AE21E541E75700DD1225D0BD1E50792AF42D48752E8EB673FFC35DF8B55FA51E87ED8ACDBDF72B9EB0F624D484BE4585EA5AEB8C01DC49453029861B738D8D52383478C5A24D9E3CC1E8CD93AFC86C4C2D08624B9EFC8D1DCB9619032D489FC6F98A0AC75428C96ED3C3177BCD5002FEA409F81DDE313A43868A9D41E0E81779C40100957DA88EC7BE73ABF8FFA8EA85FDF15E2A3C58E088A0D279CACC8590FC596DAA3933F7AC63B5557387998B42C41EF34522A394DE886D7D7D1F8AD3A3A03C1C7827D5A66D9E

Then compute g_b = pow(g, b) mod dh_prime

-
g_b = 5D4648B25436A0796DC974DBFBB042EA052B73223250909975CCA768D5F0AC614ECF05EFBD50DB9106251F056E81776D485D622C745CDB3DEE307FAFE8AC3B2FE7B9696FD8166C0846738191918D488D35B630BB6DE978D72F71ABFA1CF02F25F1B19A56FE646F0D10EC0FBA95F4B1746C67FCD642806012DC67911D64DAC64F06E0F947F257B67B4DB7E1C58BB408607EEAEC38B2597F36D2580A257336EB5808863DE448F826A02CDFCCA84A2731B29C03E9D6D4C3AF23C9D722A98FD35CB3D654CC5F1DDA90B91653B9B47E509F7CCBB3AFC93A9295C8FCA91CF6B96B2AC234FA4EA80F70309D0E6F42A1DA2C04A7D7ECC2613B99C399B489A29EDB8A5CF2
+
g_b = 9B04F50FDBA9644330F26411B11045029F7DA63F7B06163F841745BD88170643C8444F81E7E3B35B2B31E5F78D4ABC4FAEBB9942F2D785BD98D5EF8F806D92A949E7C2E533192059CEEBE23AEC3334CB517580CA026B5245704D15139E2CF96F83BFFB40A6FE1934BE0B74438D9326B317ACCAF520B4B2F695650A12E5C56FDE4F1CFFA9172E7991E6F6E100D90AB29004E9AB4CC00399A922AFFA842373EA54D2C8888737C3EF8CA5F123A9291BAE01999DA91BC98E6656C11EA5DA88C3B01222C1CA8EF114613F44966A73214102F9D0880CC3466101D6E0EC6AA27E3BD081BE0690A39F1D0407E77F1AE6C4C9342D65D6A3AAA6D7274D01D8CA455C8A4B15
7.1) generation of encrypted_data

Generated payload (excluding transport headers/trailers):

-
0000 | 54 B6 43 66 47 69 58 17 B5 42 7B 73 4C DA 54 C6
-0010 | 41 2E 76 7F 68 85 6B A7 DF A3 4B C3 95 DB A8 31
-0020 | 49 3B E0 83 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 5D 46 48 B2 54 36 A0 79 6D C9 74 DB FB B0 42 EA
-0040 | 05 2B 73 22 32 50 90 99 75 CC A7 68 D5 F0 AC 61
-0050 | 4E CF 05 EF BD 50 DB 91 06 25 1F 05 6E 81 77 6D
-0060 | 48 5D 62 2C 74 5C DB 3D EE 30 7F AF E8 AC 3B 2F
-0070 | E7 B9 69 6F D8 16 6C 08 46 73 81 91 91 8D 48 8D
-0080 | 35 B6 30 BB 6D E9 78 D7 2F 71 AB FA 1C F0 2F 25
-0090 | F1 B1 9A 56 FE 64 6F 0D 10 EC 0F BA 95 F4 B1 74
-00A0 | 6C 67 FC D6 42 80 60 12 DC 67 91 1D 64 DA C6 4F
-00B0 | 06 E0 F9 47 F2 57 B6 7B 4D B7 E1 C5 8B B4 08 60
-00C0 | 7E EA EC 38 B2 59 7F 36 D2 58 0A 25 73 36 EB 58
-00D0 | 08 86 3D E4 48 F8 26 A0 2C DF CC A8 4A 27 31 B2
-00E0 | 9C 03 E9 D6 D4 C3 AF 23 C9 D7 22 A9 8F D3 5C B3
-00F0 | D6 54 CC 5F 1D DA 90 B9 16 53 B9 B4 7E 50 9F 7C
-0100 | CB B3 AF C9 3A 92 95 C8 FC A9 1C F6 B9 6B 2A C2
-0110 | 34 FA 4E A8 0F 70 30 9D 0E 6F 42 A1 DA 2C 04 A7
-0120 | D7 EC C2 61 3B 99 C3 99 B4 89 A2 9E DB 8A 5C F2
+
0000 | 54 B6 43 66 AE E3 68 33 0D 08 E5 0D 8A DF C5 39
+0010 | 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6 D8 4D 0B BE
+0020 | 3A A0 17 2D 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 9B 04 F5 0F DB A9 64 43 30 F2 64 11 B1 10 45 02
+0040 | 9F 7D A6 3F 7B 06 16 3F 84 17 45 BD 88 17 06 43
+0050 | C8 44 4F 81 E7 E3 B3 5B 2B 31 E5 F7 8D 4A BC 4F
+0060 | AE BB 99 42 F2 D7 85 BD 98 D5 EF 8F 80 6D 92 A9
+0070 | 49 E7 C2 E5 33 19 20 59 CE EB E2 3A EC 33 34 CB
+0080 | 51 75 80 CA 02 6B 52 45 70 4D 15 13 9E 2C F9 6F
+0090 | 83 BF FB 40 A6 FE 19 34 BE 0B 74 43 8D 93 26 B3
+00A0 | 17 AC CA F5 20 B4 B2 F6 95 65 0A 12 E5 C5 6F DE
+00B0 | 4F 1C FF A9 17 2E 79 91 E6 F6 E1 00 D9 0A B2 90
+00C0 | 04 E9 AB 4C C0 03 99 A9 22 AF FA 84 23 73 EA 54
+00D0 | D2 C8 88 87 37 C3 EF 8C A5 F1 23 A9 29 1B AE 01
+00E0 | 99 9D A9 1B C9 8E 66 56 C1 1E A5 DA 88 C3 B0 12
+00F0 | 22 C1 CA 8E F1 14 61 3F 44 96 6A 73 21 41 02 F9
+0100 | D0 88 0C C3 46 61 01 D6 E0 EC 6A A2 7E 3B D0 81
+0110 | BE 06 90 A3 9F 1D 04 07 E7 7F 1A E6 C4 C9 34 2D
+0120 | 65 D6 A3 AA A6 D7 27 4D 01 D8 CA 45 5C 8A 4B 15

Payload (de)serialization:

client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
nonce 4, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 20, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Value received from server in Step 2
g_a 300, 260FE00010042EDEADD1E44E75004AF29E1 0CD8130FAF926023DC51CE79B3FD5237 15CBEE6218002D5F6F42E7C38F241326 A49C89B2ABEE867A69459FC3520D68B5 A6A313E967B6765C221B120FEE289165 4DC43E03945AF26F0EC5A367C93A9837 C551C2B4F219605E938708E3C2365E8F 8517FDDA1D80B22EBA9905B84332593E 8E0F4FA7D3E9F03FDAA1EE7271B87EA3 4CAB0AFF2B60788853A41907704B4328 ABF5CF11BEC74DF0B29B1EE2C123430A 36DE56B9261CD777B5951763A5613662 0CBE37988FA0C4E059844C787AD4BA1F 0D2478FF1E5BBE8DC570B74742EC53AF 06FA210BEC9B2B1A3FDC9B1FE765BA54 C1F56CB7A8F7D86F040E51837E96F21D
B91F5981
FE00010097B45C13074C36BD49796FFD E5830CBA658EBB755A31FEDB1FCC8E57 B2EADF64A41EA6B9FA9769D12AFEC403 CF043FA1BA747164B609802E9429F81A 76C89B1CCD77E753298A41AF787D7111 1865636F1168285A7321678DBFA99F77 5C760F215F0917F11975271232BB201D D6FAB340D199E71F56EDF5943FED916B 73A87EB7AE77AA062E07D10A270D2EF8 08494546CE863765E311BEA5D7F8E45D 163910963E051B501D5D73496A373D08 B9528D0461E28CF753326683F898BAC9 1AF8D78042BBD01D0D49BF98468CF3BC A895B87885C6FBF852ADD8069D93C6AC B74B192EAEAC689059074B5201B1E42A C505DDD765C5DB8FBD7B6D918EBCE67A
17BE2301
g_a diffie-hellman parameter
server_time 560, 433108765 (1703350323 in decimal)6A288765 (1703356522 in decimal) Server time
@@ -658,19 +658,19 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08 - + - + - + @@ -684,47 +684,47 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08

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 = 54B6436647695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE0830000000000000000FE0001005D4648B25436A0796DC974DBFBB042EA052B73223250909975CCA768D5F0AC614ECF05EFBD50DB9106251F056E81776D485D622C745CDB3DEE307FAFE8AC3B2FE7B9696FD8166C0846738191918D488D35B630BB6DE978D72F71ABFA1CF02F25F1B19A56FE646F0D10EC0FBA95F4B1746C67FCD642806012DC67911D64DAC64F06E0F947F257B67B4DB7E1C58BB408607EEAEC38B2597F36D2580A257336EB5808863DE448F826A02CDFCCA84A2731B29C03E9D6D4C3AF23C9D722A98FD35CB3D654CC5F1DDA90B91653B9B47E509F7CCBB3AFC93A9295C8FCA91CF6B96B2AC234FA4EA80F70309D0E6F42A1DA2C04A7D7ECC2613B99C399B489A29EDB8A5CF2
-padding = CBEB846A78C2813A879469B3
-tmp_aes_key = 05EE1D4D6ADC2782A7ACECACA3A6559E1784F016F92904133459FC8A893EB7AE
-tmp_aes_iv = 048BD652499FBF9CDA0F2C1FA72119F1E64C3B9B4A764020165077B702F08F13
+
data = 54B64366AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D0000000000000000FE0001009B04F50FDBA9644330F26411B11045029F7DA63F7B06163F841745BD88170643C8444F81E7E3B35B2B31E5F78D4ABC4FAEBB9942F2D785BD98D5EF8F806D92A949E7C2E533192059CEEBE23AEC3334CB517580CA026B5245704D15139E2CF96F83BFFB40A6FE1934BE0B74438D9326B317ACCAF520B4B2F695650A12E5C56FDE4F1CFFA9172E7991E6F6E100D90AB29004E9AB4CC00399A922AFFA842373EA54D2C8888737C3EF8CA5F123A9291BAE01999DA91BC98E6656C11EA5DA88C3B01222C1CA8EF114613F44966A73214102F9D0880CC3466101D6E0EC6AA27E3BD081BE0690A39F1D0407E77F1AE6C4C9342D65D6A3AAA6D7274D01D8CA455C8A4B15
+padding = A86DBE9E5537F60097E490DF
+tmp_aes_key = E22B38C451C5CAAD463303B485C7E600941F2C9CC4707A08024C1CEF4A830DCA
+tmp_aes_iv = 527793E83B9AB7FB8C8F70BD977F382287996678B1CA4491600094AF47437583

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 = 7C64F61A54D411891A8858216376D4AF6FF14AF29D44AD55F78464DE293838217B711789DA714A3F6B0C6BDFD319E0A513E04C02BB3ECB53E1F438C61007EF28CD4BE8C2CD308B368FD25CC25D9F58F9DA8CDF72D4855D179647F5A15AA3805FA6E241F0CD2437ED86632ABFE2B72E66B57624AABE0B8FC5458B7CFA0852EFFC1B130753B476CF48EE540F8FE6ECC4681A692FDBAC73EBA2B80A80A69ABBD6F893F7CC2B83F358E7ED87E2DD4907A80732888636AE1B5382FAE05E548498628E61D50C5765282B27F5A9ADC9101BF8C53152F6FB67D69B88C958ACC09DB3800F6FF5604882EF0328E0D785BDFBCFD13D58A8A8864007BD585AF7C7C10A84E6ABF28019C8F1489627225BCF39C188539FB9AC779BE9A299B496A7F5387ABE616C2237F050994694439DCDAF246F6508F516F1667B6AB74FB7EF24CF775B4C4B2F643F595E55B49D8F57FF32E10DB07AF3
+
encrypted_data = 2F876FE34BFA63A85077F6A6385EDC8F6A329B7154F86593B466F41EBF6571E4F3BE1564651BB0B9F2755A8C44D8E682730F0AED528BA703F0800B788E656AD901DDD5D587C325B601320E6878A158D4877699D3A41F50F3A237FE5AA3551B1B28A5002C37D5E3AF0BDAE3EADD93A8167E2C98F2228A32233E47639CFFCD64C50653C8B3FF59F5E0736E4E5BE407DF6C716D672E0DB3487EA8CFA2A835013587B39CF7979DD07823841D19EBC43FEF8A994952D710DFA5EE5129BE13FE451A55E487661AF90D396CF38A574FDDC3A4BEA38D13054147ADD7119DBCD5A6B6048EBEB57ADE7E2D70EEBE1758BCF11F62440469B7BE80594BBB95AFA90496587577A2FE26B891A2D231B4D9D3A945E4DBE01CC6024B0F5FCED00304355515A9F3567C723A2164F31E4EDCB0DBE52F76F4A93D649543DFAE9349A1F65108E8DB09AF5BE8EE042771816B9A148694BCD6997D

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 C8 A1 0E 00 33 10 87 65
-0010 | 78 01 00 00 1F 5F 04 F5 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 FE 50 01 00 7C 64 F6 1A
-0040 | 54 D4 11 89 1A 88 58 21 63 76 D4 AF 6F F1 4A F2
-0050 | 9D 44 AD 55 F7 84 64 DE 29 38 38 21 7B 71 17 89
-0060 | DA 71 4A 3F 6B 0C 6B DF D3 19 E0 A5 13 E0 4C 02
-0070 | BB 3E CB 53 E1 F4 38 C6 10 07 EF 28 CD 4B E8 C2
-0080 | CD 30 8B 36 8F D2 5C C2 5D 9F 58 F9 DA 8C DF 72
-0090 | D4 85 5D 17 96 47 F5 A1 5A A3 80 5F A6 E2 41 F0
-00A0 | CD 24 37 ED 86 63 2A BF E2 B7 2E 66 B5 76 24 AA
-00B0 | BE 0B 8F C5 45 8B 7C FA 08 52 EF FC 1B 13 07 53
-00C0 | B4 76 CF 48 EE 54 0F 8F E6 EC C4 68 1A 69 2F DB
-00D0 | AC 73 EB A2 B8 0A 80 A6 9A BB D6 F8 93 F7 CC 2B
-00E0 | 83 F3 58 E7 ED 87 E2 DD 49 07 A8 07 32 88 86 36
-00F0 | AE 1B 53 82 FA E0 5E 54 84 98 62 8E 61 D5 0C 57
-0100 | 65 28 2B 27 F5 A9 AD C9 10 1B F8 C5 31 52 F6 FB
-0110 | 67 D6 9B 88 C9 58 AC C0 9D B3 80 0F 6F F5 60 48
-0120 | 82 EF 03 28 E0 D7 85 BD FB CF D1 3D 58 A8 A8 86
-0130 | 40 07 BD 58 5A F7 C7 C1 0A 84 E6 AB F2 80 19 C8
-0140 | F1 48 96 27 22 5B CF 39 C1 88 53 9F B9 AC 77 9B
-0150 | E9 A2 99 B4 96 A7 F5 38 7A BE 61 6C 22 37 F0 50
-0160 | 99 46 94 43 9D CD AF 24 6F 65 08 F5 16 F1 66 7B
-0170 | 6A B7 4F B7 EF 24 CF 77 5B 4C 4B 2F 64 3F 59 5E
-0180 | 55 B4 9D 8F 57 FF 32 E1 0D B0 7A F3
+
0000 | 00 00 00 00 00 00 00 00 7C 5B 09 00 6A 28 87 65
+0010 | 78 01 00 00 1F 5F 04 F5 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D FE 50 01 00 2F 87 6F E3
+0040 | 4B FA 63 A8 50 77 F6 A6 38 5E DC 8F 6A 32 9B 71
+0050 | 54 F8 65 93 B4 66 F4 1E BF 65 71 E4 F3 BE 15 64
+0060 | 65 1B B0 B9 F2 75 5A 8C 44 D8 E6 82 73 0F 0A ED
+0070 | 52 8B A7 03 F0 80 0B 78 8E 65 6A D9 01 DD D5 D5
+0080 | 87 C3 25 B6 01 32 0E 68 78 A1 58 D4 87 76 99 D3
+0090 | A4 1F 50 F3 A2 37 FE 5A A3 55 1B 1B 28 A5 00 2C
+00A0 | 37 D5 E3 AF 0B DA E3 EA DD 93 A8 16 7E 2C 98 F2
+00B0 | 22 8A 32 23 3E 47 63 9C FF CD 64 C5 06 53 C8 B3
+00C0 | FF 59 F5 E0 73 6E 4E 5B E4 07 DF 6C 71 6D 67 2E
+00D0 | 0D B3 48 7E A8 CF A2 A8 35 01 35 87 B3 9C F7 97
+00E0 | 9D D0 78 23 84 1D 19 EB C4 3F EF 8A 99 49 52 D7
+00F0 | 10 DF A5 EE 51 29 BE 13 FE 45 1A 55 E4 87 66 1A
+0100 | F9 0D 39 6C F3 8A 57 4F DD C3 A4 BE A3 8D 13 05
+0110 | 41 47 AD D7 11 9D BC D5 A6 B6 04 8E BE B5 7A DE
+0120 | 7E 2D 70 EE BE 17 58 BC F1 1F 62 44 04 69 B7 BE
+0130 | 80 59 4B BB 95 AF A9 04 96 58 75 77 A2 FE 26 B8
+0140 | 91 A2 D2 31 B4 D9 D3 A9 45 E4 DB E0 1C C6 02 4B
+0150 | 0F 5F CE D0 03 04 35 55 15 A9 F3 56 7C 72 3A 21
+0160 | 64 F3 1E 4E DC B0 DB E5 2F 76 F4 A9 3D 64 95 43
+0170 | DF AE 93 49 A1 F6 51 08 E8 DB 09 AF 5B E8 EE 04
+0180 | 27 71 81 6B 9A 14 86 94 BC D6 99 7D

Payload (de)serialization:

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
nonce 4, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 20, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Value received from server in Step 2
g_b 36, 260FE0001005D4648B25436A0796DC974DB FBB042EA052B73223250909975CCA768 D5F0AC614ECF05EFBD50DB9106251F05 6E81776D485D622C745CDB3DEE307FAF E8AC3B2FE7B9696FD8166C0846738191 918D488D35B630BB6DE978D72F71ABFA 1CF02F25F1B19A56FE646F0D10EC0FBA 95F4B1746C67FCD642806012DC67911D 64DAC64F06E0F947F257B67B4DB7E1C5 8BB408607EEAEC38B2597F36D2580A25 7336EB5808863DE448F826A02CDFCCA8 4A2731B29C03E9D6D4C3AF23C9D722A9 8FD35CB3D654CC5F1DDA90B91653B9B4 7E509F7CCBB3AFC93A9295C8FCA91CF6 B96B2AC234FA4EA80F70309D0E6F42A1 DA2C04A7D7ECC2613B99C399B489A29E
DB8A5CF2
FE0001009B04F50FDBA9644330F26411 B11045029F7DA63F7B06163F841745BD 88170643C8444F81E7E3B35B2B31E5F7 8D4ABC4FAEBB9942F2D785BD98D5EF8F 806D92A949E7C2E533192059CEEBE23A EC3334CB517580CA026B5245704D1513 9E2CF96F83BFFB40A6FE1934BE0B7443 8D9326B317ACCAF520B4B2F695650A12 E5C56FDE4F1CFFA9172E7991E6F6E100 D90AB29004E9AB4CC00399A922AFFA84 2373EA54D2C8888737C3EF8CA5F123A9 291BAE01999DA91BC98E6656C11EA5DA 88C3B01222C1CA8EF114613F44966A73 214102F9D0880CC3466101D6E0EC6AA2 7E3BD081BE0690A39F1D0407E77F1AE6 C4C9342D65D6A3AAA6D7274D01D8CA45
5C8A4B15
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding
@@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + @@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + - + @@ -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 = 0950F3070E87DCC97997B269F3FD55D5A0F6EC3F0438BC49DD69451AC34662A031D35289521095FDC7DD4E5A93ADD24DBA551A3E7D4BEE6CF26B6544BE38B0F2FAF6351E8E0313FC1E2588B694783409B069D5E5D65B59A7FFBBF0B634B0CF66831A40B5FF50E63A3EBE26CAE622C9E20461163440CE87891FF44A972215A4CA3673C3998742EC689DD4AFE5657E27509F5740F765C37FCCD4D431404A12A2A78DE5C13698CED8C3D1AEDACB938771A3292EFA4F1971ADB1C5A3FC1B9524399A9621A9BC4BD044DC0328F006CD843802FA8C6B249418EF931E5FCEA1249E659C2B8437F78D6E60F715CB91329F219103551FDFE72555ADCD6C5E02E2677DBC69
+
auth_key = A48179538AE9C4E366097F7632DCD3F62A295013E858BCAA18846662A67C2F9551B0E45E226ACE6CE7FBE2998B5C53CFA57F498E0609844F120EABD838FA3D468836F77C59AE10DEFEC9CA7105A80E574FDB14255659782B4A29654DC76FFBB29939FDC68F22402A2A98464E6F36909514B58F024964AFBE19235CCF10EC30D2DD387F82786DE4BAF48A055DF934A60AF3CB406FCCE6E2933B8BBC2E7C212716B8A86D05FCC136110FB5C95199505B248235D534A8D65EA6017CB7399A7C2A138D3571FBB31C05D5C911E2F851342FC763E2D22F375EB716EFA7BFC8AE4DD257B90E08F19376BC598E5C9CF5DA60A368234621E307F5C543811F2988FD8CAB54
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 68 69 C1 33 10 87 65
-0010 | 44 00 00 00 34 F7 CB 3B 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 33 BE 43 29 14 D9 10 F2
-0040 | DC 8B D8 7A D1 3D F5 DF
+
0000 | 00 00 00 00 00 00 00 00 01 D4 31 F9 6A 28 87 65
+0010 | A8 00 00 00 34 F7 CB 3B AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D 19 EB 72 6C 93 38 C8 0C
+0040 | BB 45 F8 31 03 2A F8 E5

Payload (de)serialization:

dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
message_id 8, 8C8A10E00331087657C5B09006A288765 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 40, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Value received from server in Step 2
encrypted_data 56, 340FE5001007C64F61A54D411891A885821 6376D4AF6FF14AF29D44AD55F78464DE 293838217B711789DA714A3F6B0C6BDF D319E0A513E04C02BB3ECB53E1F438C6 1007EF28CD4BE8C2CD308B368FD25CC2 5D9F58F9DA8CDF72D4855D179647F5A1 5AA3805FA6E241F0CD2437ED86632ABF E2B72E66B57624AABE0B8FC5458B7CFA 0852EFFC1B130753B476CF48EE540F8F E6ECC4681A692FDBAC73EBA2B80A80A6 9ABBD6F893F7CC2B83F358E7ED87E2DD 4907A80732888636AE1B5382FAE05E54 8498628E61D50C5765282B27F5A9ADC9 101BF8C53152F6FB67D69B88C958ACC0 9DB3800F6FF5604882EF0328E0D785BD FBCFD13D58A8A8864007BD585AF7C7C1 0A84E6ABF28019C8F1489627225BCF39 C188539FB9AC779BE9A299B496A7F538 7ABE616C2237F050994694439DCDAF24 6F6508F516F1667B6AB74FB7EF24CF77 5B4C4B2F643F595E55B49D8F57FF32E1
0DB07AF3
FE5001002F876FE34BFA63A85077F6A6 385EDC8F6A329B7154F86593B466F41E BF6571E4F3BE1564651BB0B9F2755A8C 44D8E682730F0AED528BA703F0800B78 8E656AD901DDD5D587C325B601320E68 78A158D4877699D3A41F50F3A237FE5A A3551B1B28A5002C37D5E3AF0BDAE3EA DD93A8167E2C98F2228A32233E47639C FFCD64C50653C8B3FF59F5E0736E4E5B E407DF6C716D672E0DB3487EA8CFA2A8 35013587B39CF7979DD07823841D19EB C43FEF8A994952D710DFA5EE5129BE13 FE451A55E487661AF90D396CF38A574F DDC3A4BEA38D13054147ADD7119DBCD5 A6B6048EBEB57ADE7E2D70EEBE1758BC F11F62440469B7BE80594BBB95AFA904 96587577A2FE26B891A2D231B4D9D3A9 45E4DBE01CC6024B0F5FCED003043555 15A9F3567C723A2164F31E4EDCB0DBE5 2F76F4A93D649543DFAE9349A1F65108 E8DB09AF5BE8EE042771816B9A148694
BCD6997D
Encrypted client_DH_inner_data generated previously, serialized as a TL byte string
@@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + @@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);< - + - + - + diff --git a/data/web/fragment.com/js/auction.js b/data/web/fragment.com/js/auction.js index a5cb43cd86..0fdf6e5dfc 100644 --- a/data/web/fragment.com/js/auction.js +++ b/data/web/fragment.com/js/auction.js @@ -1048,7 +1048,9 @@ var Assets = { username: username, auction: true }, function(result) { - if (result.confirm_message) { + if (result.error) { + return showAlert(result.error); + } else if (result.confirm_message) { showConfirm(result.confirm_message, function() { doPutToAuction(); }, result.confirm_button); @@ -1148,7 +1150,9 @@ var Assets = { username: username, auction: false }, function(result) { - if (result.confirm_message) { + if (result.error) { + return showAlert(result.error); + } else if (result.confirm_message) { showConfirm(result.confirm_message, function() { doSellUsername(); }, result.confirm_button);
message_id 8, 8016869C13310876501D431F96A288765 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 444000000 (68 in decimal)A8000000 (168 in decimal) Message body length
nonce 24, 1647695817B5427B734CDA54C6412E767FAEE368330D08E50D8ADFC5398AFBC2A3 Value generated by client in Step 1
server_nonce 40, 1668856BA7DFA34BC395DBA831493BE083B8ABF05DE7C635F6D84D0BBE3AA0172D Value received from server in Step 2
new_nonce_hash1 56, 1633BE432914D910F2DC8BD87AD13DF5DF19EB726C9338C80CBB45F831032AF8E5 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.