From 989bdba0505a2341de4d07231c531892b0e6d3a0 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 5 Jul 2024 19:13:23 +0000 Subject: [PATCH] Update content of files --- .../constructor/message.html | 2 +- .../updateDeleteQuickReplyMessages.html | 38 +- .../constructor/updateNewQuickReply.html | 30 +- .../constructor/updateQuickReplies.html | 30 +- .../constructor/updateQuickReplyMessage.html | 32 +- .../messages.deleteQuickReplyShortcut.html | 4 +- .../method/messages.reorderQuickReplies.html | 3 +- .../mtproto/samples-auth_key.html | 412 +++++++++--------- .../corefork.telegram.org/type/Update.html | 10 +- 9 files changed, 256 insertions(+), 305 deletions(-) diff --git a/data/web/corefork.telegram.org/constructor/message.html b/data/web/corefork.telegram.org/constructor/message.html index 774e4ec776..736e84a192 100644 --- a/data/web/corefork.telegram.org/constructor/message.html +++ b/data/web/corefork.telegram.org/constructor/message.html @@ -254,7 +254,7 @@ quick_reply_shortcut_id flags.30?int -If set, this message is a quick reply shortcut message » (note that sent quick reply shortcuts will not have this field set). +If set, this message is a quick reply shortcut message » (note that quick reply shortcut messages sent to a private chat will not have this field set). effect diff --git a/data/web/corefork.telegram.org/constructor/updateDeleteQuickReplyMessages.html b/data/web/corefork.telegram.org/constructor/updateDeleteQuickReplyMessages.html index 470702dea0..8b3a013416 100644 --- a/data/web/corefork.telegram.org/constructor/updateDeleteQuickReplyMessages.html +++ b/data/web/corefork.telegram.org/constructor/updateDeleteQuickReplyMessages.html @@ -4,32 +4,10 @@ updateDeleteQuickReplyMessages - + - + @@ -64,7 +42,8 @@ Update">

updateDeleteQuickReplyMessages

-

+

One or more messages in a quick reply shortcut » were deleted.

+

+

Update

+

Related pages

+

Business

+

Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.

diff --git a/data/web/corefork.telegram.org/constructor/updateNewQuickReply.html b/data/web/corefork.telegram.org/constructor/updateNewQuickReply.html index 36c551766d..89cc67aea9 100644 --- a/data/web/corefork.telegram.org/constructor/updateNewQuickReply.html +++ b/data/web/corefork.telegram.org/constructor/updateNewQuickReply.html @@ -4,26 +4,10 @@ updateNewQuickReply - + - + @@ -58,7 +42,8 @@ Update">

updateNewQuickReply

-

+

A new quick reply shortcut » was created.

+

+

Update

+

Related pages

+

Business

+

Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.

diff --git a/data/web/corefork.telegram.org/constructor/updateQuickReplies.html b/data/web/corefork.telegram.org/constructor/updateQuickReplies.html index 0ace9ec2c5..f9275e1fa9 100644 --- a/data/web/corefork.telegram.org/constructor/updateQuickReplies.html +++ b/data/web/corefork.telegram.org/constructor/updateQuickReplies.html @@ -4,26 +4,10 @@ updateQuickReplies - + - + @@ -58,7 +42,8 @@ Update">

updateQuickReplies

-

+

Info about or the order of quick reply shortcuts » was changed.

+

+

Update

+

Related pages

+

Business

+

Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.

diff --git a/data/web/corefork.telegram.org/constructor/updateQuickReplyMessage.html b/data/web/corefork.telegram.org/constructor/updateQuickReplyMessage.html index c968c04bfe..2685a95988 100644 --- a/data/web/corefork.telegram.org/constructor/updateQuickReplyMessage.html +++ b/data/web/corefork.telegram.org/constructor/updateQuickReplyMessage.html @@ -4,26 +4,10 @@ updateQuickReplyMessage - + - + @@ -58,7 +42,8 @@ Update">

updateQuickReplyMessage

-

+

A new message was added to a quick reply shortcut ».

+

+

Update

+

Related pages

+

message

+

A message

+

Business

+

Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.

diff --git a/data/web/corefork.telegram.org/method/messages.deleteQuickReplyShortcut.html b/data/web/corefork.telegram.org/method/messages.deleteQuickReplyShortcut.html index 7738303049..ea554e3894 100644 --- a/data/web/corefork.telegram.org/method/messages.deleteQuickReplyShortcut.html +++ b/data/web/corefork.telegram.org/method/messages.deleteQuickReplyShortcut.html @@ -100,7 +100,9 @@ This will also emit an updateDelet

Business

Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.

updateDeleteQuickReply

-

updateDeleteQuickReplyMessages

+

A quick reply shortcut » was deleted. This will not emit updateDeleteQuickReplyMessages updates, even if all the messages in the shortcut are also deleted by this update.

+

updateDeleteQuickReplyMessages

+

One or more messages in a quick reply shortcut » were deleted.

diff --git a/data/web/corefork.telegram.org/method/messages.reorderQuickReplies.html b/data/web/corefork.telegram.org/method/messages.reorderQuickReplies.html index 142e761a5e..3cb075a436 100644 --- a/data/web/corefork.telegram.org/method/messages.reorderQuickReplies.html +++ b/data/web/corefork.telegram.org/method/messages.reorderQuickReplies.html @@ -82,7 +82,8 @@

Related pages

Business

Users can turn their Telegram account into a business account, gaining access to business features such as opening hours, location, quick replies, automated messages, custom start page, chatbot support, and more.

-

updateQuickReplies

+

updateQuickReplies

+

Info about or the order of quick reply shortcuts » was changed.

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 94482c1d69..b266eec282 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 0C 06 0B 00 A6 40 88 66
-0010 | 14 00 00 00 F1 8E 7E BE AF A3 70 A4 FE 31 46 9B
-0020 | 77 38 37 EF BA CC 4A D1
+
0000 | 00 00 00 00 00 00 00 00 F0 1A 00 00 44 42 88 66
+0010 | 14 00 00 00 F1 8E 7E BE 39 8D DB F9 93 7A 80 D8
+0020 | 74 6E E6 4E D3 88 0D 2D

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 7C 5F 90 A6 40 88 66
-0010 | 58 00 00 00 63 24 16 05 AF A3 70 A4 FE 31 46 9B
-0020 | 77 38 37 EF BA CC 4A D1 4E A9 BD B5 C9 43 F4 66
-0030 | CF AC 16 F5 FE 55 C4 6B 08 1E 9D 60 7F 4E DC DE
-0040 | A1 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 A0 DC F6 44 42 88 66
+0010 | BC 00 00 00 63 24 16 05 39 8D DB F9 93 7A 80 D8
+0020 | 74 6E E6 4E D3 88 0D 2D 8C A2 EC 8F F5 A5 25 3E
+0030 | 0D 8B FE 82 57 8B 87 29 08 22 4C D8 2F 93 75 24
+0040 | CD 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 = 2206025492381621921
-

Decompose into 2 prime cofactors p < q: 2206025492381621921 = 1139452757 * 1936039453

-
p = 1139452757
-q = 1936039453
+
pq = 2471587994368550093
+

Decompose into 2 prime cofactors p < q: 2471587994368550093 = 1520934161 * 1625046013

+
p = 1520934161
+q = 1625046013

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 1E 9D 60 7F 4E DC DE A1 00 00 00
-0010 | 04 43 EA AB 55 00 00 00 04 73 65 9E 1D 00 00 00
-0020 | AF A3 70 A4 FE 31 46 9B 77 38 37 EF BA CC 4A D1
-0030 | 4E A9 BD B5 C9 43 F4 66 CF AC 16 F5 FE 55 C4 6B
-0040 | EA 41 D4 82 C0 17 9A 5C 68 CC F6 AC 0C 69 12 D7
-0050 | C6 0E 96 48 0C 5C 33 02 AF C8 05 76 97 53 C7 BB
+
0000 | 95 5F F5 A9 08 22 4C D8 2F 93 75 24 CD 00 00 00
+0010 | 04 5A A7 9D 11 00 00 00 04 60 DC 3B FD 00 00 00
+0020 | 39 8D DB F9 93 7A 80 D8 74 6E E6 4E D3 88 0D 2D
+0030 | 8C A2 EC 8F F5 A5 25 3E 0D 8B FE 82 57 8B 87 29
+0040 | 4D 95 A3 EC 01 E4 DF E2 0A 32 9E F3 DB 4E 10 8D
+0050 | D0 41 BD AB 38 31 7A E6 D2 6C E0 73 EE FE 88 F3
 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 = 1936039453
- + - + - + - + - + - + @@ -291,39 +291,39 @@ q = 1936039453

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 = 955FF5A9081E9D607F4EDCDEA10000000443EAAB550000000473659E1D000000AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46BEA41D482C0179A5C68CCF6AC0C6912D7C60E96480C5C3302AFC805769753C7BB02000000
-random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB4F8AE278881BC07A457331142EEF71EC4BB7F118B8B0A9A402EC717FF399F2DFFBBFFECE261C2560F4A2B8BFA1DDDD29EFD180E7181FE30BC426B9EC759DB45
+
data = 955FF5A908224CD82F937524CD000000045AA79D110000000460DC3BFD000000398DDBF9937A80D8746EE64ED3880D2D8CA2EC8FF5A5253E0D8BFE82578B87294D95A3EC01E4DFE20A329EF3DB4E108DD041BDAB38317AE6D26CE073EEFE88F302000000
+random_padding_bytes = F77AF76C95C4825D826A01EA03CC093CA92ABF3EAA0D8157785FD74ADB6F0611265AE58726F4FF0F526DDED5C65109EFC7307D9E7E9A6393204C28071C0D3ADC492F8BF9CA01BA2FD65FFF1573869C2B807F032CE4A1C5720BFFE585

And this is the output:

-
encrypted_data = 10255A06E95189164DDA7CD6285904EC15738E774F9A1CD54C4DE711F9603B6732CF00F4C23D3980241F6BE2BDF8C2ABF3B8C705518F9C31B4A07157304D0D98D5631B647550F7A4389DA2F79074B4666204479C69C138A207C552D0C6891002EC08D8F77C5CE36F38BC26CABEC3AA69BED4F1383D41C77E705E4C8AC7A810F46A536664B52F35A5C37CBAF64D4B91976F53EFD0F1C2155D35B53F738956529416557C4BEC0ADB65412FA2B8E765776DEDBE5C8B9D7810C8D1B455A0090FB4DAB520812C37BF6E62190CC1EC493882FC7D6A0547405EADC11C9BB931C31DF7A5D9B07D960937EDEE71769BA559B2FF19A18E90360705C1DF3539B86116D9BEE6
+
encrypted_data = 2B03C37FB170269F14E9E57B92691A6C30F113E3CD92F07E0157F2EDA9A6F1E0F531F8B35E96497C089C6D35A5F94CC80E1BE2235412291063CACF940BD2A1159FB092443C9C75159EE86F94B528F979C85B42E7AB15617078F3F2B9566389BA527346A794898530CC64C5BD96DAE27467612E6EAA57CED8B817D151604EA682F08DB37D517CF16BB45F1D0DCBF542F6E9640C3C58015412656C83BED0733F7DC9EE956C8B7C46A3D170BCBF5425E3EB612D9C4BBCC931F376AE2F3A6D388E254C8ACF9F3F742C5D3032C92657BCCC1103974DF25ECC2AA7A912820687A49A6BE987E8F7420FB20E55D806B9C83598C454741011BCA1023A6945D75076EFF0F3

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

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, 80C060B00A6408866F01A000044428866 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Random number
message_id 8, 8017C5F90A640886601A0DCF644428866 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 458000000 (88 in decimal)BC000000 (188 in decimal) Message body length
nonce 24, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 40, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Server-generated random number
pq 56, 12081E9D607F4EDCDEA1000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2206025492381621921
08224CD82F937524CD000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2471587994368550093
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
pq 4, 12081E9D607F4EDCDEA1000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2206025492381621921
08224CD82F937524CD000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2471587994368550093
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p 16, 80443EAAB55000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1139452757
045AA79D11000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1520934161
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 24, 80473659E1D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1936039453
0460DC3BFD000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1625046013
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce 32, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 48, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Value received from server in Step 2
new_nonce 64, 32EA41D482C0179A5C68CCF6AC0C6912D7 C60E96480C5C3302AFC805769753C7BB4D95A3EC01E4DFE20A329EF3DB4E108D D041BDAB38317AE6D26CE073EEFE88F3 Client-generated random number
@@ -345,7 +345,7 @@ random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB - + @@ -363,25 +363,25 @@ random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB - + - + - + - + @@ -393,7 +393,7 @@ random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB - + @@ -402,47 +402,47 @@ random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB
6) Server responds with:

Received payload (excluding transport headers/trailers):

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

Payload (de)serialization:

server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
message_id 8, 8743E0E00A640886648CB020045428866 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 40, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Value received from server in Step 2
p 56, 80443EAAB55000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1139452757
045AA79D11000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1520934161
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 64, 80473659E1D000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1936039453
0460DC3BFD000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1625046013
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
encrypted_data 80, 260FE00010010255A06E95189164DDA7CD6 285904EC15738E774F9A1CD54C4DE711 F9603B6732CF00F4C23D3980241F6BE2 BDF8C2ABF3B8C705518F9C31B4A07157 304D0D98D5631B647550F7A4389DA2F7 9074B4666204479C69C138A207C552D0 C6891002EC08D8F77C5CE36F38BC26CA BEC3AA69BED4F1383D41C77E705E4C8A C7A810F46A536664B52F35A5C37CBAF6 4D4B91976F53EFD0F1C2155D35B53F73 8956529416557C4BEC0ADB65412FA2B8 E765776DEDBE5C8B9D7810C8D1B455A0 090FB4DAB520812C37BF6E62190CC1EC 493882FC7D6A0547405EADC11C9BB931 C31DF7A5D9B07D960937EDEE71769BA5 59B2FF19A18E90360705C1DF3539B861
16D9BEE6
FE0001002B03C37FB170269F14E9E57B 92691A6C30F113E3CD92F07E0157F2ED A9A6F1E0F531F8B35E96497C089C6D35 A5F94CC80E1BE2235412291063CACF94 0BD2A1159FB092443C9C75159EE86F94 B528F979C85B42E7AB15617078F3F2B9 566389BA527346A794898530CC64C5BD 96DAE27467612E6EAA57CED8B817D151 604EA682F08DB37D517CF16BB45F1D0D CBF542F6E9640C3C58015412656C83BE D0733F7DC9EE956C8B7C46A3D170BCBF 5425E3EB612D9C4BBCC931F376AE2F3A 6D388E254C8ACF9F3F742C5D3032C926 57BCCC1103974DF25ECC2AA7A9128206 87A49A6BE987E8F7420FB20E55D806B9 C83598C454741011BCA1023A6945D750
76EFF0F3
Value generated above
@@ -464,13 +464,13 @@ random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB - + - + @@ -482,19 +482,19 @@ random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB - + - + - + @@ -502,20 +502,20 @@ random_padding_bytes = 59916879694158B4F6140AA84A2935F46F25DDA5EAF4846004E0E79AB

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

-
encrypted_answer = F88E57A9DA06BB5DAE7CBA845F6033CBA11693FCF3198ECDA735939B20F386A03AC520980D70D80E6B9BC853D627F16EF1EF0132320172BD2711AE26326A07D22E4473DB9EAAA3E80293B0318B82679AE2C8FAE7105294DB6B13C790EA55459C57F29B37921DDC15335B0E94392170951F0E042238884C140269359BA05C833A32D8679CBDB9F9A5D0E3BBE6F6279F4486420A8A1848636808C948FFD41A0344364931A4696C0FF27CEC8D608EE9BD8F698606D46FC535B8EFFDC2549A8CA0D10F7296A18152E3F5073A90D352082B6C8BCFC1DEC99A7D35CE49410A1A4325478E5049FE662580ABA235BF12B6284E90FF92161B683CE0270DFD792F70661EE799874E151F337950E4A8418D87B104B77420A0F96E5341EA208DB6FD89904C2A28A8663A75F404A84F1E023E041F4DAE1EA0C4F5FDEE5C8DCF6909EDE7BB2B85C87BCA857010A6457D5B79EBE742242279D0786C8D85F74CE176B2FEB985ACA798B3FFEB16B034FF2EF4484066C5356DB97A1CF31ECBB5AB8A706E75AA2472CDFF8E882A1C3FE16F5FEC5D3EA5223B43AFDBC7383DB0B4EB65CD5449524AA5BC3B4A8CE83ADBCF3928D812AAC764B14A400DB93BABFE638410E32530DFDBEF846750648E48786C7E67CCC70B6E99D28B0DB7093637A01718520EF757D6D20D4FA279F466AFF914DE9F8DF7FF86CECA1C7ACB45A8EC297476462A1CE67D7EF6E2DF63E6597459BCC275163AA5DD0726C958EC8D462A83BDECC56D80B72AB41D02AF94AEDF73AF83E4AA706174988C4043E7FFE2EA20DF6C22BD8737A2D390F6FC748CF918D973C3BE962A5380897A34F8
-tmp_aes_key = 994C8CDB14BD79852644A3A0AC2F17F0BBA74739B50510F89FB24C1AF3359C62
-tmp_aes_iv = 6F34827F604727F0E58EDA63622F7EB017970D8045601D2BF57D24B8EA41D482
+
encrypted_answer = EC1E36D78BFB9C1E7E9E1AAF0ED15D8D9C1AA143C056AA64921DAFFE75EA2BF0B6D7C6D3FF99ABB1554C9779BB335F1A749FC73A8FE64D2D11D762B34C74CBD782640DE6B19BC3AAC0D480BF8952326C6DC8A4C1CF3785480DADADCA6D5246F428D9740571FE250093FF3911109D1390C089899167894D6DB930BC933F48F87CFA9575C95F96F6D44DE82617EAC35BE2F6ECA55B2C555938279EAF39EC4013A5D4DD5390F665E3061568529D9878B5406E58239265F70DF967128D00C6D179A050B12A79AA43144F450CBE5AE3C0A27538C71BAD595B11A7E666627903F1897AFDFC401A36EF3B3E8E838549D75FA169850F6F79A10605064FD221D5E59874377A428E94936068BCB226978A8124A7209C6CC97D6430BEDC0D113F34BBE988FCBD8C9EFE3D2099A8052DF6748D9B55EC3D6FF9636E55810C37E2776A7C60DBB76C3D143EB5E26E0F67D2C12FCFFE6AF1A5BC905D64B374175502E5B9109B26287230435E809F17DF67B14959F5D215A9BE4918A3F9D35F88017C5D079163CAB3C273A61870E8CA2ACB8120AAD497AA240E44BA592EAD4BB76F9D74AB29EB983DCD5381AC09F62FAE23254CB9E364B7003C21817B81FA4EB77EFDE91FA14AEAC89C197AAB1217780365539DDA436E865F43B14C9275EE77E767309A22AAA06DC6FCFF9E1CCD0513EFF8A37D571C280D09445E78DA3B7B5B79A87AA6F64F8E48E33102B603061CCDCA7C575FE073BB94236B72367603481B9EA8B31F79AF9050FFE426BA35B34FA916C180371655734886138D44BA53CE7793F70308519EF4E84CA16489E83213E99D08BE247AD211A7EA
+tmp_aes_key = 8E9BCDF0570238EA68479EC856957F1758D2D464493C1655D577FFBB524DEB9E
+tmp_aes_iv = 6048C38AF2E0E70B3B1A24148ED603EB80F8C30743CDE5CC500F84864D95A3EC

Yielding:

-
answer_with_hash = E675AB25FF60478B378CCC246F32A45B204CA9D5BA0D89B5AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010044E9DAF43C286D6D9B3E67B91A23FE3BB1548AB83AD3337B6A7C839C9521EF3E31008E8B18973A57E9DF25B7201B67BA1C30BDD8ED752C09233B284956F13896F56B9DF98F1F048838CB38036659804C9B14F0F952BF93AA13841F76485810FF431D190FB911F855BB64F8E7BCC406B74806D11F7319D75326A0882745E5FE2301FF35ACF23D7885FBA194A29FF18D0C366949B3957FC3D0ED701F1A2015D583C0AEF32D912EE8C7C42E77E6536EB4451EBCF1BC80921C149B2298EC0C9F86690DEE19B4BD0798B11D31B488B38F356539B4605036ADFEF5F6CAE450AC0878CB75364FEAAA7196B475B93F953EB20BBDF2432E1BDF48EDC71A19F6EB55D2440DA7408866C9DD81F3289BFB77
-answer = BA0D89B5AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010044E9DAF43C286D6D9B3E67B91A23FE3BB1548AB83AD3337B6A7C839C9521EF3E31008E8B18973A57E9DF25B7201B67BA1C30BDD8ED752C09233B284956F13896F56B9DF98F1F048838CB38036659804C9B14F0F952BF93AA13841F76485810FF431D190FB911F855BB64F8E7BCC406B74806D11F7319D75326A0882745E5FE2301FF35ACF23D7885FBA194A29FF18D0C366949B3957FC3D0ED701F1A2015D583C0AEF32D912EE8C7C42E77E6536EB4451EBCF1BC80921C149B2298EC0C9F86690DEE19B4BD0798B11D31B488B38F356539B4605036ADFEF5F6CAE450AC0878CB75364FEAAA7196B475B93F953EB20BBDF2432E1BDF48EDC71A19F6EB55D2440DA7408866C9DD81F3289BFB77
+
answer_with_hash = 2DB08BB8873822F728C4FA96357A707FB0204926BA0D89B5398DDBF9937A80D8746EE64ED3880D2D8CA2EC8FF5A5253E0D8BFE82578B872903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001007F563DC14E0FE403C3288CB7112AA9BEE9C9A03DD9B57F443BC66A96276FA6B6794613EAB032F7A564AECF24431742D5FAADB3FD264DD4C994513FCFD5F7A8A16A3852137B43C123934D4173C30D434BB29867F1330872B59DBDB063CF0435CC0A82D2F79E1A6247F8986C6508A852B52058877869D511FEC686F6401799ADCB4C26921F07B136B55C1A065453CEE825F6665706CEF3720FB6EB2F4DD30E1A78985F8F0F0AE81D58C8E2E97C5C16207F46CDE176D33E2C7B066FFEDB36CFE497130D337CFB20FD100DC4ACB143895E3D0CA0E9F66514DA2E2208C6B80357F884A882DA869FAFA1A65B7BD946A47F654015C3C2E5E47A03C660DA6EAE95AFB896454288661FEC3703B3688E94
+answer = BA0D89B5398DDBF9937A80D8746EE64ED3880D2D8CA2EC8FF5A5253E0D8BFE82578B872903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001007F563DC14E0FE403C3288CB7112AA9BEE9C9A03DD9B57F443BC66A96276FA6B6794613EAB032F7A564AECF24431742D5FAADB3FD264DD4C994513FCFD5F7A8A16A3852137B43C123934D4173C30D434BB29867F1330872B59DBDB063CF0435CC0A82D2F79E1A6247F8986C6508A852B52058877869D511FEC686F6401799ADCB4C26921F07B136B55C1A065453CEE825F6665706CEF3720FB6EB2F4DD30E1A78985F8F0F0AE81D58C8E2E97C5C16207F46CDE176D33E2C7B066FFEDB36CFE497130D337CFB20FD100DC4ACB143895E3D0CA0E9F66514DA2E2208C6B80357F884A882DA869FAFA1A65B7BD946A47F654015C3C2E5E47A03C660DA6EAE95AFB896454288661FEC3703B3688E94

Generated payload (excluding transport headers/trailers):

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

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, 801C0934DA740886601F025A445428866 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 4EC020000 (748 in decimal)B8020000 (696 in decimal) Message body length
nonce 24, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 40, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Value received from server in Step 2
encrypted_answer 56, 596FE500200F88E57A9DA06BB5DAE7CBA84 5F6033CBA11693FCF3198ECDA735939B 20F386A03AC520980D70D80E6B9BC853 D627F16EF1EF0132320172BD2711AE26 326A07D22E4473DB9EAAA3E80293B031 8B82679AE2C8FAE7105294DB6B13C790 EA55459C57F29B37921DDC15335B0E94 392170951F0E042238884C140269359B A05C833A32D8679CBDB9F9A5D0E3BBE6 F6279F4486420A8A1848636808C948FF D41A0344364931A4696C0FF27CEC8D60 8EE9BD8F698606D46FC535B8EFFDC254 9A8CA0D10F7296A18152E3F5073A90D3 52082B6C8BCFC1DEC99A7D35CE49410A 1A4325478E5049FE662580ABA235BF12 B6284E90FF92161B683CE0270DFD792F 70661EE799874E151F337950E4A8418D 87B104B77420A0F96E5341EA208DB6FD 89904C2A28A8663A75F404A84F1E023E 041F4DAE1EA0C4F5FDEE5C8DCF6909ED E7BB2B85C87BCA857010A6457D5B79EB E742242279D0786C8D85F74CE176B2FE B985ACA798B3FFEB16B034FF2EF44840 66C5356DB97A1CF31ECBB5AB8A706E75 AA2472CDFF8E882A1C3FE16F5FEC5D3E A5223B43AFDBC7383DB0B4EB65CD5449 524AA5BC3B4A8CE83ADBCF3928D812AA C764B14A400DB93BABFE638410E32530 DFDBEF846750648E48786C7E67CCC70B 6E99D28B0DB7093637A01718520EF757 D6D20D4FA279F466AFF914DE9F8DF7FF 86CECA1C7ACB45A8EC297476462A1CE6 7D7EF6E2DF63E6597459BCC275163AA5 DD0726C958EC8D462A83BDECC56D80B7 2AB41D02AF94AEDF73AF83E4AA706174 988C4043E7FFE2EA20DF6C22BD8737A2 D390F6FC748CF918D973C3BE962A5380
897A34F8
FE500200EC1E36D78BFB9C1E7E9E1AAF 0ED15D8D9C1AA143C056AA64921DAFFE 75EA2BF0B6D7C6D3FF99ABB1554C9779 BB335F1A749FC73A8FE64D2D11D762B3 4C74CBD782640DE6B19BC3AAC0D480BF 8952326C6DC8A4C1CF3785480DADADCA 6D5246F428D9740571FE250093FF3911 109D1390C089899167894D6DB930BC93 3F48F87CFA9575C95F96F6D44DE82617 EAC35BE2F6ECA55B2C555938279EAF39 EC4013A5D4DD5390F665E3061568529D 9878B5406E58239265F70DF967128D00 C6D179A050B12A79AA43144F450CBE5A E3C0A27538C71BAD595B11A7E6666279 03F1897AFDFC401A36EF3B3E8E838549 D75FA169850F6F79A10605064FD221D5 E59874377A428E94936068BCB226978A 8124A7209C6CC97D6430BEDC0D113F34 BBE988FCBD8C9EFE3D2099A8052DF674 8D9B55EC3D6FF9636E55810C37E2776A 7C60DBB76C3D143EB5E26E0F67D2C12F CFFE6AF1A5BC905D64B374175502E5B9 109B26287230435E809F17DF67B14959 F5D215A9BE4918A3F9D35F88017C5D07 9163CAB3C273A61870E8CA2ACB8120AA D497AA240E44BA592EAD4BB76F9D74AB 29EB983DCD5381AC09F62FAE23254CB9 E364B7003C21817B81FA4EB77EFDE91F A14AEAC89C197AAB1217780365539DDA 436E865F43B14C9275EE77E767309A22 AAA06DC6FCFF9E1CCD0513EFF8A37D57 1C280D09445E78DA3B7B5B79A87AA6F6 4F8E48E33102B603061CCDCA7C575FE0 73BB94236B72367603481B9EA8B31F79 AF9050FFE426BA35B34FA916C1803716 55734886138D44BA53CE7793F7030851 9EF4E84CA16489E83213E99D08BE247A
D211A7EA
See below
@@ -570,13 +570,13 @@ answer = BA0D89B5AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46 - + - + @@ -594,13 +594,13 @@ answer = BA0D89B5AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46 - + - + @@ -609,34 +609,34 @@ answer = BA0D89B5AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46
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 = D3AD7CDAD9E59262FED48F057A4428A0E56558F68EFE903B1B9CB2011D3C52C5625BB781614FC536D22143B3577EC7956DB67F3D9DB75282936E5D0F08FBCA25F4370DDE8952AD768FD9EA5C51B99F0BBFF3AD182242D3675427EAEBD9E94A67A9CC86BA4A20E2034821240234670A4BF3051F19CCCC5B3544E225777724BBF50379A71DC9F7FCB39F4E98BD75D30BE149A9138E510A282B51D511992BE91B30F7075673E644462D4AF1FC1474B8EBE296D5878378CBD10EB752301A114FC95AE9FB2C48AC0EB1EE7E464F2551C48ED5EF6E143CAB01B1DD160622DD97ADF8C789F5BE99E6CD075C12047CDBE8344398DE80C15721B1CF05BD4C9208194DDE6C
+
b = 9CF93ACC8B60673E2BD956177B30AA952C03776A38A0F8F40A0A79C4F9B652D8F1DAD9EA226FFB92CFC68C51BF990C9FEA53295E0B33B60ED6B46F752CB27930B5DDBEED273E018CE369C7B7CDCF8CC9740436FF9C29ADA6FF7530B3F0933489EF1E882C68810B523A5F41335260B995CB8300E212F5DC3D34DB4AA0A1AA1FD83ED122EAB72F250414CCD1BC9FA4EB5A20E10CE3FE165A214C78850B1E5D5EA387B5B046E412AC967422A94B7ECEEAFC56038FF7F4CC370633A5C54BC8E1B16CB84BC5F277827A1AC0B67E2C3AD4EDEEEFAFF95ADBF395C148746F7BE4AC55E03E921C83B066A1FD51F2441563A7B6DBB2DC85A32420FD922C76C8F3DBA75382

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

-
g_b = 056B646B1F5E4FFDC4F64B45E102AAEBE9E1448DC9E11C38D780463C49E00898DD86C69751CEE28FAAAC243E9BA005E44BFF8E7FB395942D8799E49E27D50D512AF041FB40C989D73A676C49210B0AF166138A6CC030C7FE0E914BE990A254F0924150A60DA77D23614F3B9694CF148C33B4F1F605499FB1B7F3143E3DB6A76BA209FF92A3964F6636BE41527C42458676BD79E4D81A13C48496AD5AB5B444B6716BB70EEEA36235F4E5D25268836B04CA2CE82C2E273B17A08BF93C742CEA3A7921D770A54CEE65968D52EAA1E370DBB1267881F895AA173B7123794EFB24B31D60F1686D1569649DCBAE4769E1538736BA2DA0F50E5311EE0604D0667997F8
+
g_b = 9B6F1D157BE53750FAD2CF4D35E3BC680EA14D0BF22B1F37D871CAE627537BFE483C12E27D079808235103E3D826C29E66EB79E0EB0B497617FD8797EE98B24325940CDE8C03CBE9ACDA18F7DCC93A1252465816F1AB54252B35BC8F7BCC4459E764432F0A9B351F97BED47A907BFD3913230D1FE3499FC8C31E6B33BCA597724F89C194D342591094B533D978646A68AAC2FFE912C06198CF1A6FDA2A51FE423A9BC784AD2E99FF40C7FC33F69E0A5E3762252B0B97BE75F64977C8A329F986E75FD0266E48D1649DB7017CFEDD58AA1EF8F808D9AF3DB28F9A96ABFAFB43E2473576D29A5DF805525172DDE83E7DEE3EDD01F0B5496E6F5EDA6F992DF6B8DE
7.1) generation of encrypted_data

Generated payload (excluding transport headers/trailers):

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

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, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 20, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Value received from server in Step 2
g_a 300, 260FE00010044E9DAF43C286D6D9B3E67B9 1A23FE3BB1548AB83AD3337B6A7C839C 9521EF3E31008E8B18973A57E9DF25B7 201B67BA1C30BDD8ED752C09233B2849 56F13896F56B9DF98F1F048838CB3803 6659804C9B14F0F952BF93AA13841F76 485810FF431D190FB911F855BB64F8E7 BCC406B74806D11F7319D75326A08827 45E5FE2301FF35ACF23D7885FBA194A2 9FF18D0C366949B3957FC3D0ED701F1A 2015D583C0AEF32D912EE8C7C42E77E6 536EB4451EBCF1BC80921C149B2298EC 0C9F86690DEE19B4BD0798B11D31B488 B38F356539B4605036ADFEF5F6CAE450 AC0878CB75364FEAAA7196B475B93F95 3EB20BBDF2432E1BDF48EDC71A19F6EB
55D2440D
FE0001007F563DC14E0FE403C3288CB7 112AA9BEE9C9A03DD9B57F443BC66A96 276FA6B6794613EAB032F7A564AECF24 431742D5FAADB3FD264DD4C994513FCF D5F7A8A16A3852137B43C123934D4173 C30D434BB29867F1330872B59DBDB063 CF0435CC0A82D2F79E1A6247F8986C65 08A852B52058877869D511FEC686F640 1799ADCB4C26921F07B136B55C1A0654 53CEE825F6665706CEF3720FB6EB2F4D D30E1A78985F8F0F0AE81D58C8E2E97C 5C16207F46CDE176D33E2C7B066FFEDB 36CFE497130D337CFB20FD100DC4ACB1 43895E3D0CA0E9F66514DA2E2208C6B8 0357F884A882DA869FAFA1A65B7BD946 A47F654015C3C2E5E47A03C660DA6EAE
95AFB896
g_a diffie-hellman parameter
server_time 560, 4A7408866 (1720205479 in decimal)45428866 (1720205893 in decimal) Server time
@@ -658,19 +658,19 @@ answer = BA0D89B5AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46 - + - + - + @@ -684,47 +684,47 @@ answer = BA0D89B5AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46

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 = 54B64366AFA370A4FE31469B773837EFBACC4AD14EA9BDB5C943F466CFAC16F5FE55C46B0000000000000000FE000100056B646B1F5E4FFDC4F64B45E102AAEBE9E1448DC9E11C38D780463C49E00898DD86C69751CEE28FAAAC243E9BA005E44BFF8E7FB395942D8799E49E27D50D512AF041FB40C989D73A676C49210B0AF166138A6CC030C7FE0E914BE990A254F0924150A60DA77D23614F3B9694CF148C33B4F1F605499FB1B7F3143E3DB6A76BA209FF92A3964F6636BE41527C42458676BD79E4D81A13C48496AD5AB5B444B6716BB70EEEA36235F4E5D25268836B04CA2CE82C2E273B17A08BF93C742CEA3A7921D770A54CEE65968D52EAA1E370DBB1267881F895AA173B7123794EFB24B31D60F1686D1569649DCBAE4769E1538736BA2DA0F50E5311EE0604D0667997F8
-padding = E2F754D7B03235FB90F69DB2
-tmp_aes_key = 994C8CDB14BD79852644A3A0AC2F17F0BBA74739B50510F89FB24C1AF3359C62
-tmp_aes_iv = 6F34827F604727F0E58EDA63622F7EB017970D8045601D2BF57D24B8EA41D482
+
data = 54B64366398DDBF9937A80D8746EE64ED3880D2D8CA2EC8FF5A5253E0D8BFE82578B87290000000000000000FE0001009B6F1D157BE53750FAD2CF4D35E3BC680EA14D0BF22B1F37D871CAE627537BFE483C12E27D079808235103E3D826C29E66EB79E0EB0B497617FD8797EE98B24325940CDE8C03CBE9ACDA18F7DCC93A1252465816F1AB54252B35BC8F7BCC4459E764432F0A9B351F97BED47A907BFD3913230D1FE3499FC8C31E6B33BCA597724F89C194D342591094B533D978646A68AAC2FFE912C06198CF1A6FDA2A51FE423A9BC784AD2E99FF40C7FC33F69E0A5E3762252B0B97BE75F64977C8A329F986E75FD0266E48D1649DB7017CFEDD58AA1EF8F808D9AF3DB28F9A96ABFAFB43E2473576D29A5DF805525172DDE83E7DEE3EDD01F0B5496E6F5EDA6F992DF6B8DE
+padding = 0A1EB899A22DE53DA9B39222
+tmp_aes_key = 8E9BCDF0570238EA68479EC856957F1758D2D464493C1655D577FFBB524DEB9E
+tmp_aes_iv = 6048C38AF2E0E70B3B1A24148ED603EB80F8C30743CDE5CC500F84864D95A3EC

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 = 3FC2D37E869E29FF182A2AB7D7CC4B3EA02DA5C3B54BCF01FE08B452827031A2B68B78460CB1F9CEEC2BB7F4E1D228F518FCC86DA73F93830E18DD67DE9B88DDD3DF5C53E26D2840BC828D1810DAA65EE0C3803395B424B82CA3CEC2579AA553A147A54BDC7380088B2C739626C147AAADB80DF409197BBDDC581FE9199CCAE39F96C7BCF00A7652240C9565BDEE9049DCC315903B703FC19F84F944738271CED509E34DBABCA15D973D991263BCE7210E82B5FEA947EA1109E4A1D8E051417D540D0853133559B3FEE79FBC2AE8D2E092E2EFC9CD690113B5899174C126963958A7CFD5B731E8DFEB94B6E1625393FC3CFE4345B1B02C7A31655BC86B9693BC5DEE75204E2F49B9569744CD6727E997EDBEF2B6C88F48443B319095BA8F5E26433B08761FD4D2EB08C742072C4C3F04C3AED3B9BA17A78FDFF52623DE7EFEC1E8DC01B81D6CC155544ABCF5F5030E10
+
encrypted_data = 55F11A0026B5AD5AC5828AB9829C89CBBD55B813972A35B19BE41D7C650F49409322E718E3D17E19853D107021D4907CB821DE489FC8A282110AE38A523B385446283976B7A05838317543A4098E7E7A62301D93B362DF107B2C22CB22D7C2531C4FCA2D16762CE978C97B5DF3B3E60BE01087E32D7D70BD1B8433B58F01126D0C56F98C9D77777B5E4EB57CE3EE17AF033E81B19E1E281F13CBCE3BA19639A31E0BD9FAC8E24D5ACB2928C8998AB60D95035D439EAECE695E6E278173A8A933587F0E5D09F0BAB18FA1B9A04AEC3BAF3F3EE99E33F69129283E161FA464D9E7A6B35F4BDAE1644C84EBC405165F370FE68EAB5A6FFB99F27BCEF9DD3B6B2EF91FBD76D00C92A8C10B992A07050DE57E4A5523A0C0E3F217D27D7F1B3AD9A5AEA45EC31C89352C0727152E1A8CC99A805ECC6601F8AA6F92613BCF8504588E6B7592F73990E4C456E39680C997EBB396

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

Payload (de)serialization:

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
nonce 4, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 20, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Value received from server in Step 2
g_b 36, 260FE000100056B646B1F5E4FFDC4F64B45 E102AAEBE9E1448DC9E11C38D780463C 49E00898DD86C69751CEE28FAAAC243E 9BA005E44BFF8E7FB395942D8799E49E 27D50D512AF041FB40C989D73A676C49 210B0AF166138A6CC030C7FE0E914BE9 90A254F0924150A60DA77D23614F3B96 94CF148C33B4F1F605499FB1B7F3143E 3DB6A76BA209FF92A3964F6636BE4152 7C42458676BD79E4D81A13C48496AD5A B5B444B6716BB70EEEA36235F4E5D252 68836B04CA2CE82C2E273B17A08BF93C 742CEA3A7921D770A54CEE65968D52EA A1E370DBB1267881F895AA173B712379 4EFB24B31D60F1686D1569649DCBAE47 69E1538736BA2DA0F50E5311EE0604D0
667997F8
FE0001009B6F1D157BE53750FAD2CF4D 35E3BC680EA14D0BF22B1F37D871CAE6 27537BFE483C12E27D079808235103E3 D826C29E66EB79E0EB0B497617FD8797 EE98B24325940CDE8C03CBE9ACDA18F7 DCC93A1252465816F1AB54252B35BC8F 7BCC4459E764432F0A9B351F97BED47A 907BFD3913230D1FE3499FC8C31E6B33 BCA597724F89C194D342591094B533D9 78646A68AAC2FFE912C06198CF1A6FDA 2A51FE423A9BC784AD2E99FF40C7FC33 F69E0A5E3762252B0B97BE75F64977C8 A329F986E75FD0266E48D1649DB7017C FEDD58AA1EF8F808D9AF3DB28F9A96AB FAFB43E2473576D29A5DF805525172DD E83E7DEE3EDD01F0B5496E6F5EDA6F99
2DF6B8DE
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 = 15AEAD3578DC7E1F842D2A7D9E415C91E7C13E769BF72B4822887D4554F7B0C10F1EFC3E5AB0A24939A4E0D9DCB5F17E7AC95A3D7AD626DF3AA4D6FCD43C932F04D969153A817EAD22BD7AD761D8DB33657EB4B519A65B4A9F5403D1C3A78FB1391383227799F61584309C6F27BB246749F294ED8F556D3F0F3FFB7567FAD2C913251892F8FD7A34158E9A024EF7E6B149371AF4B8C94A6A4228C0C8BC156837DF01D1852EEB271466DFB02DAECC251FA6CD5B4D7B6124432C792EB9E5B9EC164FD466996386C602BE92F920730260C277BADBA451BCD9A424EE44B0EA9F4FDFD85ACF72BB467CE0BADA3351CEA199173AA360F19B84F6DFD26A3313D7661D1D
+
auth_key = 840B908CA64E0FB6225CA44BC886D7BAF8810183920E925BD3DC713A19B6A6D8360B3DCA4653D967036BC7ED84C7EDE32DF633E7A9443EA00905D6E25FA4916A2BBC3A4025A6679A9097E8B208839C220DFCE2A3ACFFA24E84E4F23A57D47DE39AE79D391ECBD8EF3EB7796C9FAC18B4CEDF972AEA3FAC98D33C1A7BA988AB35E0861FA930343244614AD36EB39775999DF7BDEEF3D3DCAC2D7E5A43923ACB87E8201733EF95C1C74F544F2977E8892DDDB5537F16337C41E7F6094827C9F6D04D06167651FF2F63240855C17F9449F88D95F767828C1601D74B170EF6E90DFD6DFF6C462C977B2C5A069D9425427F618D7251C100DEC085C50ABE50366395B5
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 08 D0 D7 A8 40 88 66
-0010 | 54 00 00 00 34 F7 CB 3B AF A3 70 A4 FE 31 46 9B
-0020 | 77 38 37 EF BA CC 4A D1 4E A9 BD B5 C9 43 F4 66
-0030 | CF AC 16 F5 FE 55 C4 6B 29 16 7E 17 26 A9 45 22
-0040 | 53 60 85 E9 26 3B 88 CD
+
0000 | 00 00 00 00 00 00 00 00 01 48 45 29 46 42 88 66
+0010 | 7C 00 00 00 34 F7 CB 3B 39 8D DB F9 93 7A 80 D8
+0020 | 74 6E E6 4E D3 88 0D 2D 8C A2 EC 8F F5 A5 25 3E
+0030 | 0D 8B FE 82 57 8B 87 29 04 58 BD 97 70 9D BD 78
+0040 | 01 4D 57 70 9D 79 04 45

Payload (de)serialization:

dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
message_id 8, 830780800A7408866B00C0A0045428866 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 40, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Value received from server in Step 2
encrypted_data 56, 340FE5001003FC2D37E869E29FF182A2AB7 D7CC4B3EA02DA5C3B54BCF01FE08B452 827031A2B68B78460CB1F9CEEC2BB7F4 E1D228F518FCC86DA73F93830E18DD67 DE9B88DDD3DF5C53E26D2840BC828D18 10DAA65EE0C3803395B424B82CA3CEC2 579AA553A147A54BDC7380088B2C7396 26C147AAADB80DF409197BBDDC581FE9 199CCAE39F96C7BCF00A7652240C9565 BDEE9049DCC315903B703FC19F84F944 738271CED509E34DBABCA15D973D9912 63BCE7210E82B5FEA947EA1109E4A1D8 E051417D540D0853133559B3FEE79FBC 2AE8D2E092E2EFC9CD690113B5899174 C126963958A7CFD5B731E8DFEB94B6E1 625393FC3CFE4345B1B02C7A31655BC8 6B9693BC5DEE75204E2F49B9569744CD 6727E997EDBEF2B6C88F48443B319095 BA8F5E26433B08761FD4D2EB08C74207 2C4C3F04C3AED3B9BA17A78FDFF52623 DE7EFEC1E8DC01B81D6CC155544ABCF5
F5030E10
FE50010055F11A0026B5AD5AC5828AB9 829C89CBBD55B813972A35B19BE41D7C 650F49409322E718E3D17E19853D1070 21D4907CB821DE489FC8A282110AE38A 523B385446283976B7A05838317543A4 098E7E7A62301D93B362DF107B2C22CB 22D7C2531C4FCA2D16762CE978C97B5D F3B3E60BE01087E32D7D70BD1B8433B5 8F01126D0C56F98C9D77777B5E4EB57C E3EE17AF033E81B19E1E281F13CBCE3B A19639A31E0BD9FAC8E24D5ACB2928C8 998AB60D95035D439EAECE695E6E2781 73A8A933587F0E5D09F0BAB18FA1B9A0 4AEC3BAF3F3EE99E33F69129283E161F A464D9E7A6B35F4BDAE1644C84EBC405 165F370FE68EAB5A6FFB99F27BCEF9DD 3B6B2EF91FBD76D00C92A8C10B992A07 050DE57E4A5523A0C0E3F217D27D7F1B 3AD9A5AEA45EC31C89352C0727152E1A 8CC99A805ECC6601F8AA6F92613BCF85 04588E6B7592F73990E4C456E39680C9
97EBB396
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/corefork.telegram.org/type/Update.html b/data/web/corefork.telegram.org/type/Update.html index 62a0506a77..bbbd2ff4f1 100644 --- a/data/web/corefork.telegram.org/type/Update.html +++ b/data/web/corefork.telegram.org/type/Update.html @@ -703,23 +703,23 @@ - + - + - + - + - +
message_id 8, 80108D0D7A84088660148452946428866 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 454000000 (84 in decimal)7C000000 (124 in decimal) Message body length
nonce 24, 16AFA370A4FE31469B773837EFBACC4AD1398DDBF9937A80D8746EE64ED3880D2D Value generated by client in Step 1
server_nonce 40, 164EA9BDB5C943F466CFAC16F5FE55C46B8CA2EC8FF5A5253E0D8BFE82578B8729 Value received from server in Step 2
new_nonce_hash1 56, 1629167E1726A94522536085E9263B88CD0458BD97709DBD78014D57709D790445 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.
updateQuickReplies Info about or the order of quick reply shortcuts » was changed.
updateNewQuickReply A new quick reply shortcut » was created.
updateDeleteQuickReply A quick reply shortcut » was deleted. This will not emit updateDeleteQuickReplyMessages updates, even if all the messages in the shortcut are also deleted by this update.
updateQuickReplyMessage A new message was added to a quick reply shortcut ».
updateDeleteQuickReplyMessages One or more messages in a quick reply shortcut » were deleted.
updateBotBusinessConnect