From 11778019c2d64c5e3d0d6d63970b9f191f09f74e Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Sun, 3 Dec 2023 15:15:38 +0000 Subject: [PATCH] Update content of files --- .../method/stories.getStoryViewsList.html | 4 +- .../mtproto/samples-auth_key.html | 412 +++++++++--------- 2 files changed, 209 insertions(+), 207 deletions(-) diff --git a/data/web/corefork.telegram.org/method/stories.getStoryViewsList.html b/data/web/corefork.telegram.org/method/stories.getStoryViewsList.html index 14e0b171d5..9f83b8b81d 100644 --- a/data/web/corefork.telegram.org/method/stories.getStoryViewsList.html +++ b/data/web/corefork.telegram.org/method/stories.getStoryViewsList.html @@ -81,7 +81,7 @@ reactions_first flags.2?true -  +Whether to return storyView info about users that reacted to the story (i.e. if set, the server will also sort results based on the presence of a reaction, after sorting it by date as usual). peer @@ -132,6 +132,8 @@

Related pages

Contacts

Working with contacts.

+

storyView

+

Story view date and reaction information

stories.storyViewsList

Reaction and view counters for a story

Pagination in the API

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 db3fbc9d52..60e45a2b82 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 6C 28 05 00 77 57 6A 65
-0010 | 14 00 00 00 F1 8E 7E BE 32 E0 57 DC 82 0E 13 67
-0020 | DA C9 FD EF B0 0D FA E3
+
0000 | 00 00 00 00 00 00 00 00 04 46 03 00 28 9B 6C 65
+0010 | 14 00 00 00 F1 8E 7E BE B0 69 7A FD F7 E5 50 64
+0020 | 0E A2 6A DB 92 59 0D E2

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 DC 7A C5 77 57 6A 65
-0010 | 84 00 00 00 63 24 16 05 32 E0 57 DC 82 0E 13 67
-0020 | DA C9 FD EF B0 0D FA E3 87 69 98 EC 69 F2 D2 8B
-0030 | 69 12 57 F3 D9 52 84 D8 08 2D 0D F2 8C 1F 09 F9
-0040 | 55 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 E4 1F 0C 29 9B 6C 65
+0010 | 8C 00 00 00 63 24 16 05 B0 69 7A FD F7 E5 50 64
+0020 | 0E A2 6A DB 92 59 0D E2 FE AC 66 0A F9 82 4B 19
+0030 | 0F 2A B1 7D A0 85 CE 8B 08 1D 6A 19 CB 72 22 7D
+0040 | 65 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 = 3246517590034086229
-

Decompose into 2 prime cofactors p < q: 3246517590034086229 = 1693217573 * 1917365873

-
p = 1693217573
-q = 1917365873
+
pq = 2119534936215158117
+

Decompose into 2 prime cofactors p < q: 2119534936215158117 = 1270235411 * 1668615847

+
p = 1270235411
+q = 1668615847

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 2D 0D F2 8C 1F 09 F9 55 00 00 00
-0010 | 04 64 EC 73 25 00 00 00 04 72 48 AE 71 00 00 00
-0020 | 32 E0 57 DC 82 0E 13 67 DA C9 FD EF B0 0D FA E3
-0030 | 87 69 98 EC 69 F2 D2 8B 69 12 57 F3 D9 52 84 D8
-0040 | 60 53 53 97 02 E3 B3 45 95 1B 83 0A 11 ED B8 30
-0050 | 56 0D 5A 46 F8 15 0F 31 EF 75 92 CA A5 86 F1 F8
+
0000 | 95 5F F5 A9 08 1D 6A 19 CB 72 22 7D 65 00 00 00
+0010 | 04 4B B6 41 13 00 00 00 04 63 75 0E A7 00 00 00
+0020 | B0 69 7A FD F7 E5 50 64 0E A2 6A DB 92 59 0D E2
+0030 | FE AC 66 0A F9 82 4B 19 0F 2A B1 7D A0 85 CE 8B
+0040 | C9 6C B7 3B 8E B7 D5 00 DF 50 C1 FB F6 11 A5 46
+0050 | 0F 4B D9 A6 4C E6 91 8E 37 FC 77 0C 7F D4 B1 D3
 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 = 1917365873
- + - + - + - + - + - + @@ -291,39 +291,39 @@ q = 1917365873

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 = 955FF5A9082D0DF28C1F09F9550000000464EC7325000000047248AE7100000032E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D86053539702E3B345951B830A11EDB830560D5A46F8150F31EF7592CAA586F1F802000000
-random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD4EC17E4E8DAB5B69F934BC7D7A838D08DB60D41E2F9872B9C73F48280462D2BF9181C6B36878897BA33B386EC6AA2A3401978600202E153D39FC24E917D09DF
+
data = 955FF5A9081D6A19CB72227D65000000044BB641130000000463750EA7000000B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8BC96CB73B8EB7D500DF50C1FBF611A5460F4BD9A64CE6918E37FC770C7FD4B1D302000000
+random_padding_bytes = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E244397C3568C4E5958747D7F88A32EE625B17E6C469D8BCB5485D5FBCC871AA9BE9CF77A613960B7940BF9F6C823EBF4D3569CF243F3C445E1C2CC27B75DD6063

And this is the output:

-
encrypted_data = 8EDF03011B64DF2831577B8DBF0E739E04398A81A3249573DC873FF2F823D4ABE628438C59F1DF2D579DC845C5DB1037AA133836F8F41928BB41FD9709BDB288D52324C21FC89672E46302DF5AC6459A9ABEAB5C7EE29784935F2B396D54CB2580891E378B32DA6811B095C4F109BA10203F379DD98CE3D93DD34052BF70F77ED04D8E75538D33F7B86033D5CB9D1F4A8FA437D30C0D352EC6D52E382B8C105AD2478ACAC2B344B7D6804D30434FF8640FA0A9E34C15B46F89A54B8D875E34A0DF9F723F2F6751FDE78FCC7679A59A12D15AFAF408C1462858D0274895B481D9356C27830E2AB78B3DA7B31CD940F636AF29DB9ED38C841ED600BBBB825C4D93
+
encrypted_data = E860B93D4388D29FEE6F4A6A3FD9C40FF5D1AEE7A7C6F34FFDAAC5074CB2C40DF66A4EAADBE7A5F9507092103285799B5DB0D22DC49CEF81573E06AB5C3A22C6512A55C6451426643C2CA784B3B1F5F54DEB82A908B76C7B69C7CFC685EC9806F2B74FC0A8EBE2BF6134A3000BE438AADB7E8AF0222C164FE10777475A536D1DBFFB1F442765D860FDFEA1DF48FB3707FA1D49DADFDBCDC1FE2CC4024DE0CA09F6A0F72B85E658A2471B551B53ECE9A844AB2933397E331033B90FF8DBB808D53977F29785D855CEF4A53EE6DE4ED8C87255E3D46E2E7865555B9DCDC025DC35CFF85B91189AFF56150E53A4F5EB4C640C10B0CC5625163E07F89B4E78FCC704

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

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, 86C28050077576A6504460300289B6C65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Random number
message_id 8, 801DC7AC577576A6501E41F0C299B6C65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 484000000 (132 in decimal)8C000000 (140 in decimal) Message body length
nonce 24, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 40, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Server-generated random number
pq 56, 12082D0DF28C1F09F955000000
TL byte deserialization
=> bigendian conversion to decimal
=> 3246517590034086229
081D6A19CB72227D65000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2119534936215158117
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
pq 4, 12082D0DF28C1F09F955000000
TL byte deserialization
=> bigendian conversion to decimal
=> 3246517590034086229
081D6A19CB72227D65000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2119534936215158117
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p 16, 80464EC7325000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1693217573
044BB64113000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1270235411
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 24, 8047248AE71000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1917365873
0463750EA7000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1668615847
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce 32, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 48, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Value received from server in Step 2
new_nonce 64, 326053539702E3B345951B830A11EDB830 560D5A46F8150F31EF7592CAA586F1F8C96CB73B8EB7D500DF50C1FBF611A546 0F4BD9A64CE6918E37FC770C7FD4B1D3 Client-generated random number
@@ -345,7 +345,7 @@ random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD - + @@ -363,25 +363,25 @@ random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD - + - + - + - + @@ -393,7 +393,7 @@ random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD - + @@ -402,47 +402,47 @@ random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD
6) Server responds with:

Received payload (excluding transport headers/trailers):

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

Payload (de)serialization:

server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
message_id 8, 85838090077576A65B03A0A00299B6C65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 40, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Value received from server in Step 2
p 56, 80464EC7325000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1693217573
044BB64113000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1270235411
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 64, 8047248AE71000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1917365873
0463750EA7000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1668615847
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
encrypted_data 80, 260FE0001008EDF03011B64DF2831577B8D BF0E739E04398A81A3249573DC873FF2 F823D4ABE628438C59F1DF2D579DC845 C5DB1037AA133836F8F41928BB41FD97 09BDB288D52324C21FC89672E46302DF 5AC6459A9ABEAB5C7EE29784935F2B39 6D54CB2580891E378B32DA6811B095C4 F109BA10203F379DD98CE3D93DD34052 BF70F77ED04D8E75538D33F7B86033D5 CB9D1F4A8FA437D30C0D352EC6D52E38 2B8C105AD2478ACAC2B344B7D6804D30 434FF8640FA0A9E34C15B46F89A54B8D 875E34A0DF9F723F2F6751FDE78FCC76 79A59A12D15AFAF408C1462858D02748 95B481D9356C27830E2AB78B3DA7B31C D940F636AF29DB9ED38C841ED600BBBB
825C4D93
FE000100E860B93D4388D29FEE6F4A6A 3FD9C40FF5D1AEE7A7C6F34FFDAAC507 4CB2C40DF66A4EAADBE7A5F950709210 3285799B5DB0D22DC49CEF81573E06AB 5C3A22C6512A55C6451426643C2CA784 B3B1F5F54DEB82A908B76C7B69C7CFC6 85EC9806F2B74FC0A8EBE2BF6134A300 0BE438AADB7E8AF0222C164FE1077747 5A536D1DBFFB1F442765D860FDFEA1DF 48FB3707FA1D49DADFDBCDC1FE2CC402 4DE0CA09F6A0F72B85E658A2471B551B 53ECE9A844AB2933397E331033B90FF8 DBB808D53977F29785D855CEF4A53EE6 DE4ED8C87255E3D46E2E7865555B9DCD C025DC35CFF85B91189AFF56150E53A4 F5EB4C640C10B0CC5625163E07F89B4E
78FCC704
Value generated above
@@ -464,13 +464,13 @@ random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD - + - + @@ -482,19 +482,19 @@ random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD - + - + - + @@ -502,20 +502,20 @@ random_padding_bytes = 952ED4932915DBDB298617BE299380F501C64BF57F488A9D3B7A2CEBD

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

-
encrypted_answer = C17DE39BD4AA784BC84B8916CFA008DEC140880AA6A1DDB0D1AFDAE9D840662E41703A97006C94F77B13732178A45FB93A20D2D0D9B8C3F5734B38FEBE91695530C2D5CFC1A73045380D5D11B1D72E8821E643877833E81B64DC76F81F2030F78A107A8C7F08EF6CFDDD8471F08D1715C1961B98316A544BD9B10A86E3F55F75781396146BE668B31E4BA7DD5432CA04F127B805CAC587149EEDC2177F4BC363E970EB2FD33031B8AE04658BE96408B95FCF6FAF7913AC2B15E95273B75842B2E8FDC6C9CFB111A42BEBDB713B34FB946B7C3DF58EE2997C6C99CC3CE85EEF80525CBDC4B679E0565986675A5622DA675DEA4716F145A525518EFE3BA22501580BCF189D91F130C3AB18F3D117084E14AE3166568C264D1CA5F26A49023CE2CD9E3FC18EB10FEEF87112D5F92F72B4164B36A84812B040530E534DEEDE975F9ACE07B91ECEA9383E91C1A859C0C609BB758EA42111DF600F798AC57E26A7ABE379EFC2D1FBB0D4434BE64DAC6935DC056F31B7F7889815AE7DD75F1BF965E62B54E897D5DECD2A457982CEC68172DA40786D425D2832E5E158A791B4787678FD7597745FA714353539C964BA9E53C81F1D1603DC206F9A6DBBA49DD19A0E62A7042DF6497FCB56E3F3450EFD98A6CA39862AB24E4FF1B9D75B3DF88152ECF0AA9E6240E39C0B1877FA6490E2E5A7B1C1334D73C8AEE6CCF78132CE6427D878E87CE15A460D230B507D453A02ACA135CF81B455EE1F7DDF8FEFD92F1D9429608A7D883A07AC7996ADBEFFD2A09209FD1F4AD1151532BF12EDB02E49A11A6E7E494987FD786BA8836893E8EF6019D009B7
-tmp_aes_key = 1FA0C6C36D28340F63C36679A188F02CBC03D6791638C1933344638328FA854A
-tmp_aes_iv = 220ECFDF406702AC5470D1E4CB02A9E4978FD532FF34E56D05742C3B60535397
+
encrypted_answer = C39EE209EC8096710D352E3BBE1D4B261241CA3F83F6C5ED1E427213DBC930C4150E73A1185DF1A25B99881C8A3C2A5E120AB14E5105C4C2414FD6BD25798925D0A46218676FB60A1989CFF89CAC9B2061BE4B68CDE59B0BCA81B44775B3DE66A3E305AAB906AF0E5D4DC006F160976E214543E478EFA9E91D19C3AFFCFB96B1DAE5FE18AAED6FA396E3CE63634283EB6E619066A336F3F05D4A4F95370153314FF1CC0D5C8E7CFC25A922F11750BDFA60501AB70C74D0C73D131033742E85E89CEF90937608528447A8A40733B93CD67CB3FFA7C2EE74296A07835E16072780AAE5D3E27186637C7B34EB97432AA2C8980F798C1BC6E5BBB6D6F6E0CBA735E77A5655A3E45522A02BBC29F1893C537DB1FC3EE8A0FD9B89F6F796ED6BB890BE2EE400CB02866990B9E43BAB9018F9B15CF3AFBC06FDFB823E9AAD0CB49CF4E1D0C6DD39DE9325A42B5BD06E7C76BC16F65253D1F7246CE7BE1BD462ADB27BA8B02B358C226C84DA562AE05613920261F37C771B89F1A1B0378C4D6DCE71A57E258039436FAFD7FD887869C737D05E9BFC8D95A0A8633E48A63908A6BDF4E5FC12B40775C840CDCF26EE6844AF13A4E34C539EF3A615D0A7381C40B003E2B18C6D27DD4FA58764274CDF2FD526FF5192F70BD84DE9B5214C07310630EE100B5A77F26BF1B3EA3C01A511337991B605E6717DA5AB0FE66035C118D4E10546F60E3017B0281162C89588E37A69159EE21347E9C0707EABC9DF9703EEBC88784597E6B93ED646EDFED5D9D37E1CD088FD1352845BFB6B6622F802BD53F3AA5AEC62F8A5698F80752684A09F8CDA9590F146
+tmp_aes_key = 668610D763D3448CD0105B192110D48F48A44E8F8881873208DAB2E4C0909447
+tmp_aes_iv = A922BBD641DBFA4F93367A356DC3477420A3D1E970DFECEAF029345EC96CB73B

Yielding:

-
answer_with_hash = F732413E871A433AECFB6FAC249466CEB1560585BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010036818F1E00E7591F6A206F579064D243E9F0064137DBBFD1A690484E5AAFB7B9EF7BB2A8955E92E37A7271736944E35E7C10015D24A9863931E9ACA5EFDE76A01339FBBC0334908CBBBB08304FD7D8D15DF0A211ADE4AA2FE558CFBF223063C6CD0F00673A5E5DA0C49D450923F9CEE7FAC37E7F79DB1307C35C6D3AAF26C41A2B7E44EA360AD75B9994B90C43FD2B344D3AC5ED7FBD69CC04E74C3FAFB27027AE55D600E1F74D24984A735551100256A579029DD39739D85BACF4C16279FA6728CA5B187FD5CF585C9C4039E6EB43E7F52F5A12956A465B057757AD0282DB99A67D2C7060E942E5587FB6B99FD43CE0BF6D06CB5089ABECFAD8C5CEA3C52DA078576A6597337D3B9DC224B6
-answer = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D803000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010036818F1E00E7591F6A206F579064D243E9F0064137DBBFD1A690484E5AAFB7B9EF7BB2A8955E92E37A7271736944E35E7C10015D24A9863931E9ACA5EFDE76A01339FBBC0334908CBBBB08304FD7D8D15DF0A211ADE4AA2FE558CFBF223063C6CD0F00673A5E5DA0C49D450923F9CEE7FAC37E7F79DB1307C35C6D3AAF26C41A2B7E44EA360AD75B9994B90C43FD2B344D3AC5ED7FBD69CC04E74C3FAFB27027AE55D600E1F74D24984A735551100256A579029DD39739D85BACF4C16279FA6728CA5B187FD5CF585C9C4039E6EB43E7F52F5A12956A465B057757AD0282DB99A67D2C7060E942E5587FB6B99FD43CE0BF6D06CB5089ABECFAD8C5CEA3C52DA078576A6597337D3B9DC224B6
+
answer_with_hash = F64B0014BE61E1AA96FCAA18C13FCCAB03858EBDBA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100065039438661DCE2B8224967E92227644F6D61438224ECEAA11CD6B63A0CBB4D2845541292732A09720806035A6D3AC2DA0A4C49D15BDBC4B51663304FA8E0BAE80899FBAA3CD646D6A11701CF0F35F6E5678183C05B490507675F06434CEB2AAE2C9270A02FC0567D48211477A0767431E8E7E643B2527EF560ABB35CDB2C14C68B5ED55A11DF0EDF590E8D71FD9958C287112914B9E28B1382EDFF40362DD10ECBE73511C99BF6890BB126BA8D5F7F8B36436D2778A2101505D0909679C84D46A6887A8933FF36EAB1DC626D9A252F51AD6226734ED439CDE480F1D06A07E9E56E195675389FB017C8B2B3114CE1D4E2D16743EAD3176E00714BD9E1817FCC299B6C6570C651999F693459
+answer = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100065039438661DCE2B8224967E92227644F6D61438224ECEAA11CD6B63A0CBB4D2845541292732A09720806035A6D3AC2DA0A4C49D15BDBC4B51663304FA8E0BAE80899FBAA3CD646D6A11701CF0F35F6E5678183C05B490507675F06434CEB2AAE2C9270A02FC0567D48211477A0767431E8E7E643B2527EF560ABB35CDB2C14C68B5ED55A11DF0EDF590E8D71FD9958C287112914B9E28B1382EDFF40362DD10ECBE73511C99BF6890BB126BA8D5F7F8B36436D2778A2101505D0909679C84D46A6887A8933FF36EAB1DC626D9A252F51AD6226734ED439CDE480F1D06A07E9E56E195675389FB017C8B2B3114CE1D4E2D16743EAD3176E00714BD9E1817FCC299B6C6570C651999F693459

Generated payload (excluding transport headers/trailers):

-
0000 | BA 0D 89 B5 32 E0 57 DC 82 0E 13 67 DA C9 FD EF
-0010 | B0 0D FA E3 87 69 98 EC 69 F2 D2 8B 69 12 57 F3
-0020 | D9 52 84 D8 03 00 00 00 FE 00 01 00 C7 1C AE B9
+
0000 | BA 0D 89 B5 B0 69 7A FD F7 E5 50 64 0E A2 6A DB
+0010 | 92 59 0D E2 FE AC 66 0A F9 82 4B 19 0F 2A B1 7D
+0020 | A0 85 CE 8B 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 = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D
 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 | 36 81 8F 1E 00 E7 59 1F 6A 20 6F 57 90 64 D2 43
-0140 | E9 F0 06 41 37 DB BF D1 A6 90 48 4E 5A AF B7 B9
-0150 | EF 7B B2 A8 95 5E 92 E3 7A 72 71 73 69 44 E3 5E
-0160 | 7C 10 01 5D 24 A9 86 39 31 E9 AC A5 EF DE 76 A0
-0170 | 13 39 FB BC 03 34 90 8C BB BB 08 30 4F D7 D8 D1
-0180 | 5D F0 A2 11 AD E4 AA 2F E5 58 CF BF 22 30 63 C6
-0190 | CD 0F 00 67 3A 5E 5D A0 C4 9D 45 09 23 F9 CE E7
-01A0 | FA C3 7E 7F 79 DB 13 07 C3 5C 6D 3A AF 26 C4 1A
-01B0 | 2B 7E 44 EA 36 0A D7 5B 99 94 B9 0C 43 FD 2B 34
-01C0 | 4D 3A C5 ED 7F BD 69 CC 04 E7 4C 3F AF B2 70 27
-01D0 | AE 55 D6 00 E1 F7 4D 24 98 4A 73 55 51 10 02 56
-01E0 | A5 79 02 9D D3 97 39 D8 5B AC F4 C1 62 79 FA 67
-01F0 | 28 CA 5B 18 7F D5 CF 58 5C 9C 40 39 E6 EB 43 E7
-0200 | F5 2F 5A 12 95 6A 46 5B 05 77 57 AD 02 82 DB 99
-0210 | A6 7D 2C 70 60 E9 42 E5 58 7F B6 B9 9F D4 3C E0
-0220 | BF 6D 06 CB 50 89 AB EC FA D8 C5 CE A3 C5 2D A0
-0230 | 78 57 6A 65
+0130 | 06 50 39 43 86 61 DC E2 B8 22 49 67 E9 22 27 64 +0140 | 4F 6D 61 43 82 24 EC EA A1 1C D6 B6 3A 0C BB 4D +0150 | 28 45 54 12 92 73 2A 09 72 08 06 03 5A 6D 3A C2 +0160 | DA 0A 4C 49 D1 5B DB C4 B5 16 63 30 4F A8 E0 BA +0170 | E8 08 99 FB AA 3C D6 46 D6 A1 17 01 CF 0F 35 F6 +0180 | E5 67 81 83 C0 5B 49 05 07 67 5F 06 43 4C EB 2A +0190 | AE 2C 92 70 A0 2F C0 56 7D 48 21 14 77 A0 76 74 +01A0 | 31 E8 E7 E6 43 B2 52 7E F5 60 AB B3 5C DB 2C 14 +01B0 | C6 8B 5E D5 5A 11 DF 0E DF 59 0E 8D 71 FD 99 58 +01C0 | C2 87 11 29 14 B9 E2 8B 13 82 ED FF 40 36 2D D1 +01D0 | 0E CB E7 35 11 C9 9B F6 89 0B B1 26 BA 8D 5F 7F +01E0 | 8B 36 43 6D 27 78 A2 10 15 05 D0 90 96 79 C8 4D +01F0 | 46 A6 88 7A 89 33 FF 36 EA B1 DC 62 6D 9A 25 2F +0200 | 51 AD 62 26 73 4E D4 39 CD E4 80 F1 D0 6A 07 E9 +0210 | E5 6E 19 56 75 38 9F B0 17 C8 B2 B3 11 4C E1 D4 +0220 | E2 D1 67 43 EA D3 17 6E 00 71 4B D9 E1 81 7F CC +0230 | 29 9B 6C 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, 80128706378576A650194D1CA299B6C65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 48C020000 (652 in decimal)EC020000 (748 in decimal) Message body length
nonce 24, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 40, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Value received from server in Step 2
encrypted_answer 56, 596FE500200C17DE39BD4AA784BC84B8916 CFA008DEC140880AA6A1DDB0D1AFDAE9 D840662E41703A97006C94F77B137321 78A45FB93A20D2D0D9B8C3F5734B38FE BE91695530C2D5CFC1A73045380D5D11 B1D72E8821E643877833E81B64DC76F8 1F2030F78A107A8C7F08EF6CFDDD8471 F08D1715C1961B98316A544BD9B10A86 E3F55F75781396146BE668B31E4BA7DD 5432CA04F127B805CAC587149EEDC217 7F4BC363E970EB2FD33031B8AE04658B E96408B95FCF6FAF7913AC2B15E95273 B75842B2E8FDC6C9CFB111A42BEBDB71 3B34FB946B7C3DF58EE2997C6C99CC3C E85EEF80525CBDC4B679E0565986675A 5622DA675DEA4716F145A525518EFE3B A22501580BCF189D91F130C3AB18F3D1 17084E14AE3166568C264D1CA5F26A49 023CE2CD9E3FC18EB10FEEF87112D5F9 2F72B4164B36A84812B040530E534DEE DE975F9ACE07B91ECEA9383E91C1A859 C0C609BB758EA42111DF600F798AC57E 26A7ABE379EFC2D1FBB0D4434BE64DAC 6935DC056F31B7F7889815AE7DD75F1B F965E62B54E897D5DECD2A457982CEC6 8172DA40786D425D2832E5E158A791B4 787678FD7597745FA714353539C964BA 9E53C81F1D1603DC206F9A6DBBA49DD1 9A0E62A7042DF6497FCB56E3F3450EFD 98A6CA39862AB24E4FF1B9D75B3DF881 52ECF0AA9E6240E39C0B1877FA6490E2 E5A7B1C1334D73C8AEE6CCF78132CE64 27D878E87CE15A460D230B507D453A02 ACA135CF81B455EE1F7DDF8FEFD92F1D 9429608A7D883A07AC7996ADBEFFD2A0 9209FD1F4AD1151532BF12EDB02E49A1 1A6E7E494987FD786BA8836893E8EF60
19D009B7
FE500200C39EE209EC8096710D352E3B BE1D4B261241CA3F83F6C5ED1E427213 DBC930C4150E73A1185DF1A25B99881C 8A3C2A5E120AB14E5105C4C2414FD6BD 25798925D0A46218676FB60A1989CFF8 9CAC9B2061BE4B68CDE59B0BCA81B447 75B3DE66A3E305AAB906AF0E5D4DC006 F160976E214543E478EFA9E91D19C3AF FCFB96B1DAE5FE18AAED6FA396E3CE63 634283EB6E619066A336F3F05D4A4F95 370153314FF1CC0D5C8E7CFC25A922F1 1750BDFA60501AB70C74D0C73D131033 742E85E89CEF90937608528447A8A407 33B93CD67CB3FFA7C2EE74296A07835E 16072780AAE5D3E27186637C7B34EB97 432AA2C8980F798C1BC6E5BBB6D6F6E0 CBA735E77A5655A3E45522A02BBC29F1 893C537DB1FC3EE8A0FD9B89F6F796ED 6BB890BE2EE400CB02866990B9E43BAB 9018F9B15CF3AFBC06FDFB823E9AAD0C B49CF4E1D0C6DD39DE9325A42B5BD06E 7C76BC16F65253D1F7246CE7BE1BD462 ADB27BA8B02B358C226C84DA562AE056 13920261F37C771B89F1A1B0378C4D6D CE71A57E258039436FAFD7FD887869C7 37D05E9BFC8D95A0A8633E48A63908A6 BDF4E5FC12B40775C840CDCF26EE6844 AF13A4E34C539EF3A615D0A7381C40B0 03E2B18C6D27DD4FA58764274CDF2FD5 26FF5192F70BD84DE9B5214C07310630 EE100B5A77F26BF1B3EA3C01A5113379 91B605E6717DA5AB0FE66035C118D4E1 0546F60E3017B0281162C89588E37A69 159EE21347E9C0707EABC9DF9703EEBC 88784597E6B93ED646EDFED5D9D37E1C D088FD1352845BFB6B6622F802BD53F3 AA5AEC62F8A5698F80752684A09F8CDA
9590F146
See below
@@ -570,13 +570,13 @@ answer = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D - + - + @@ -594,13 +594,13 @@ answer = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D - + - + @@ -609,34 +609,34 @@ answer = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D
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 = FA223F79DB839C4032A866C22627E8A2BEDC7D7DD97750EC78C16A1DD1EEB5A7A524B278E3CBF338F6B4534FA2E1D02F54AFE9DE6D2A0EF202AC120EF371EB46EA441593A97B55D3D6C1D953D745D61184F55E62FEB477C9EFDAB7DA2F140F3120E6EDE8BEAEAE832CB044C5D21B72736BC218852C83E79D273906AAE118C3A7A1869B231D07957ED3CEFDBC9288FCFB7D67124ECB741DA87F2F09DE5C9446EF701AAB6C669387281AA33C3DA36FD729FF262BBF882A571DABC0B536CF61901DEECC74FB50EAACA96853C36EAF9CE9618A8D0D1631670018306CA8259487D5F5AB8284D66E788B839BAE3E86A84361ED6E1932F1BE136974300965F624A9874F
+
b = A6B98A45AB89CF2E759A556982AF732D1E78F44276DB83C371FD474ECBE1020CD825CE8DCC077B8CC8404514449BB66C2DD075E3C050CA0C2176948F033197912A1C32783A1C807ED82E76EE4203654D76A57601CDA8E4F45F03F4BD4418015380CBF778ED9ED702CB1954D9EE019A1530D635BA6A13F0D31CF7E1ECFC3C1482A159F1F7C6F801619D5D3C783D84EABA01D2B0A2BF926E4307EA5C8B0A2AAFBAE6A41F2E70E28D0B92BBA7D6F77CC724D297C6296AB3CAFB49CF6C82514FE075D86FA4DD20B4BBFAA91CDD5543325F6C700C3C560BF0CD3049066D01D3B9E2925273B32FF49710E5B24C5A3109490799F87E9026917147A47A820EC6A119A016

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

-
g_b = 4794207B47FFE9402E417C311BBB1E5AB2208C86C54618B57ADFE9F3F76E4BC1A2C1F9A673633995763B7D841ED27560274F053C655A9E449CF202C1694D66E1FE8908456D575CFA9FB95EF93FA70A83E25065759D532B696358DAC071BEC0190E277CB1498E73CE014C9CBA14BF8B0760A52EBC54BDE6F9F82E97B20A734EE02DB16E086B5CBC896E750F61EC581D4B24F0A2FA6D4E4D0E93A20B3FCD59DDA25AD614F71A2C3A321A4203D27C711B8092ED126CA3D2A2D41D19A6E412B6AA1D8CFF391250E594B688F103DDBF0BB2FEDCE1C803F72C784E894C85A41E7CD8C922F53C84C7B0D0C518E9F1478F89681430A96674B0203CCDD6FD5D3F5E0EEA79
+
g_b = 593D04663CDA5975735282EE4A67E7A1BCA672A2E44E1CECAEE63110734C101E8D1504CA33F98A94CD5DC904A4DE45C4117CE07E6D30AF3370E5AFCA20D0BCCE86B97B74A613DF0841A981CA8C6E2768D5041A371DF571EAD4BDD6645EB15742F4FEF19BEE1F317A400279D095CDB54B8A73998A7A46B50DAC02177537040412C72E1E103AE8E7D4E49C7D193DB043821EF06EA6EE4667F05B643B6C47C4AB13F3B1BE81DF776E2FC0A1C9969A8451833800E25537070E4FF6F78D017654B3C58168152D8959DA48DB34BBA1937D327A4891B2CB935D1CD9F624F599E5734D9D6CE4C8BDA382D331BCBE126E0598C86E55BF2BF98AF1BEDC695A1009F78AD0B1
7.1) generation of encrypted_data

Generated payload (excluding transport headers/trailers):

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

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, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 20, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Value received from server in Step 2
g_a 300, 260FE00010036818F1E00E7591F6A206F57 9064D243E9F0064137DBBFD1A690484E 5AAFB7B9EF7BB2A8955E92E37A727173 6944E35E7C10015D24A9863931E9ACA5 EFDE76A01339FBBC0334908CBBBB0830 4FD7D8D15DF0A211ADE4AA2FE558CFBF 223063C6CD0F00673A5E5DA0C49D4509 23F9CEE7FAC37E7F79DB1307C35C6D3A AF26C41A2B7E44EA360AD75B9994B90C 43FD2B344D3AC5ED7FBD69CC04E74C3F AFB27027AE55D600E1F74D24984A7355 51100256A579029DD39739D85BACF4C1 6279FA6728CA5B187FD5CF585C9C4039 E6EB43E7F52F5A12956A465B057757AD 0282DB99A67D2C7060E942E5587FB6B9 9FD43CE0BF6D06CB5089ABECFAD8C5CE
A3C52DA0
FE000100065039438661DCE2B8224967 E92227644F6D61438224ECEAA11CD6B6 3A0CBB4D2845541292732A0972080603 5A6D3AC2DA0A4C49D15BDBC4B5166330 4FA8E0BAE80899FBAA3CD646D6A11701 CF0F35F6E5678183C05B490507675F06 434CEB2AAE2C9270A02FC0567D482114 77A0767431E8E7E643B2527EF560ABB3 5CDB2C14C68B5ED55A11DF0EDF590E8D 71FD9958C287112914B9E28B1382EDFF 40362DD10ECBE73511C99BF6890BB126 BA8D5F7F8B36436D2778A2101505D090 9679C84D46A6887A8933FF36EAB1DC62 6D9A252F51AD6226734ED439CDE480F1 D06A07E9E56E195675389FB017C8B2B3 114CE1D4E2D16743EAD3176E00714BD9
E1817FCC
g_a diffie-hellman parameter
server_time 560, 478576A65 (1701468024 in decimal)299B6C65 (1701616425 in decimal) Server time
@@ -658,19 +658,19 @@ answer = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D - + - + - + @@ -684,47 +684,47 @@ answer = BA0D89B532E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D

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 = 54B6436632E057DC820E1367DAC9FDEFB00DFAE3876998EC69F2D28B691257F3D95284D80000000000000000FE0001004794207B47FFE9402E417C311BBB1E5AB2208C86C54618B57ADFE9F3F76E4BC1A2C1F9A673633995763B7D841ED27560274F053C655A9E449CF202C1694D66E1FE8908456D575CFA9FB95EF93FA70A83E25065759D532B696358DAC071BEC0190E277CB1498E73CE014C9CBA14BF8B0760A52EBC54BDE6F9F82E97B20A734EE02DB16E086B5CBC896E750F61EC581D4B24F0A2FA6D4E4D0E93A20B3FCD59DDA25AD614F71A2C3A321A4203D27C711B8092ED126CA3D2A2D41D19A6E412B6AA1D8CFF391250E594B688F103DDBF0BB2FEDCE1C803F72C784E894C85A41E7CD8C922F53C84C7B0D0C518E9F1478F89681430A96674B0203CCDD6FD5D3F5E0EEA79
-padding = 3D0E887B866287F60AB02427
-tmp_aes_key = 1FA0C6C36D28340F63C36679A188F02CBC03D6791638C1933344638328FA854A
-tmp_aes_iv = 220ECFDF406702AC5470D1E4CB02A9E4978FD532FF34E56D05742C3B60535397
+
data = 54B64366B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8B0000000000000000FE000100593D04663CDA5975735282EE4A67E7A1BCA672A2E44E1CECAEE63110734C101E8D1504CA33F98A94CD5DC904A4DE45C4117CE07E6D30AF3370E5AFCA20D0BCCE86B97B74A613DF0841A981CA8C6E2768D5041A371DF571EAD4BDD6645EB15742F4FEF19BEE1F317A400279D095CDB54B8A73998A7A46B50DAC02177537040412C72E1E103AE8E7D4E49C7D193DB043821EF06EA6EE4667F05B643B6C47C4AB13F3B1BE81DF776E2FC0A1C9969A8451833800E25537070E4FF6F78D017654B3C58168152D8959DA48DB34BBA1937D327A4891B2CB935D1CD9F624F599E5734D9D6CE4C8BDA382D331BCBE126E0598C86E55BF2BF98AF1BEDC695A1009F78AD0B1
+padding = 3873AFAE5B7795F8342CB49B
+tmp_aes_key = 668610D763D3448CD0105B192110D48F48A44E8F8881873208DAB2E4C0909447
+tmp_aes_iv = A922BBD641DBFA4F93367A356DC3477420A3D1E970DFECEAF029345EC96CB73B

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 = 66B0AD9E25FC2135F701BE15BD718C2532491B2AE8C015AACAD46D729A821DFAC4B6452FA1EC816CA2D703B138B4D20C713EB126B98B5B12EE3ED9624C876965C9432395F529CE5D21D85254343D213ED6FE54AFECE50C08183BE192F40C7405571C29322F4F3BBE01D5D71D928D9D559A47C73C6B72C48345AF3F92176B4B63F8BE8E9836378BA2FD2739D26A3ED48892A11A9E8FD02654B0CCB39CA9BB55F91DF7FF56CFCAFF11A592AEFAEC4D65D444F12BC2453DCF0AAFF7CCCF3FE9CDA1F6E372402DC37A397F2F0AEB75DE66B74DADBDBCD7969BF0AB870668A3D2E6B36ED9167855CF134E432A164CA000362A077DBD1646F3BA4E47E51764F9AEF0D0D4F89EEE2C2CC36B1E085E8133289DE510AC2696745330FC4FD49103995CC2556519D5CB27A924EAFAE46E6C8C7CB728FA99569541F2E2E188A18673EAF8C3E54CA0DB7C484F083F9F4165DD9EC603E3
+
encrypted_data = EE7E78B01E5C903C68FD369A20E2D31A5CB0CB4432972ACEFCA6C070AB87655B43B7564834D9E2BFBF790113A20E36789236A264E29E086BBCE67D3284A0BACD1928C088D01091C494068365E22733C7FCE094332BFD5B621030808B96871B57122C4C338BDB5F03F7EA2B3D820A55E35285BC0A86135AEA53A49CF309CF4ADF083A64FD0E604044FDD2E2A1DF386C5A3B12DA3BCEB7F26AA8E49B358D1BC0B246F530E5BB834D24B62442EC257790F3DBBB1856F178511A0A7B8F6D531599F738C684D8AEC684BF9BE886FC5AA588D1C7045FCF542D8AC850C668DF948D739C425E3FBC2382E3EEFDBA4D1524CBE57934FC7DC6CDE2B69A581D1A6F1C4BA10FEB3E4DD8211DAF073143B8A916AA043C00587B9B1AB75843D63720A96BA9A6E9E06480F3A56451176C4AC5B4B99267423A93907A5E0F97BF080D924072A303D520B337904B2DBA47517CD7D2ECFCE551

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

Payload (de)serialization:

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
nonce 4, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 20, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Value received from server in Step 2
g_b 36, 260FE0001004794207B47FFE9402E417C31 1BBB1E5AB2208C86C54618B57ADFE9F3 F76E4BC1A2C1F9A673633995763B7D84 1ED27560274F053C655A9E449CF202C1 694D66E1FE8908456D575CFA9FB95EF9 3FA70A83E25065759D532B696358DAC0 71BEC0190E277CB1498E73CE014C9CBA 14BF8B0760A52EBC54BDE6F9F82E97B2 0A734EE02DB16E086B5CBC896E750F61 EC581D4B24F0A2FA6D4E4D0E93A20B3F CD59DDA25AD614F71A2C3A321A4203D2 7C711B8092ED126CA3D2A2D41D19A6E4 12B6AA1D8CFF391250E594B688F103DD BF0BB2FEDCE1C803F72C784E894C85A4 1E7CD8C922F53C84C7B0D0C518E9F147 8F89681430A96674B0203CCDD6FD5D3F
5E0EEA79
FE000100593D04663CDA5975735282EE 4A67E7A1BCA672A2E44E1CECAEE63110 734C101E8D1504CA33F98A94CD5DC904 A4DE45C4117CE07E6D30AF3370E5AFCA 20D0BCCE86B97B74A613DF0841A981CA 8C6E2768D5041A371DF571EAD4BDD664 5EB15742F4FEF19BEE1F317A400279D0 95CDB54B8A73998A7A46B50DAC021775 37040412C72E1E103AE8E7D4E49C7D19 3DB043821EF06EA6EE4667F05B643B6C 47C4AB13F3B1BE81DF776E2FC0A1C996 9A8451833800E25537070E4FF6F78D01 7654B3C58168152D8959DA48DB34BBA1 937D327A4891B2CB935D1CD9F624F599 E5734D9D6CE4C8BDA382D331BCBE126E 0598C86E55BF2BF98AF1BEDC695A1009
F78AD0B1
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 = A0983834503C26760938BC9F8089449624E25079568DF30B8E2DEB29275D6A37AC7A9C649B233DC4BFF38D6F26D38E458C836BA1617AF6DB987808714336AFCFB35E2E4ADC0002E087EC8BB873B0B834EDAF1734505BC30C17BE65839B7478533BE5275F752DD4025B229B5717E344578F207D6D8E14C0DE3444A1EC54200513A2E9C2343DBFC27972B9E4E54FCBA0EFE8EE76FD4E40628B984DFB7F5C11C7336E5B1830E40575C4CDB8B30B37A6ED28EF64CFF2987DE7EB6260C9393503CE3639E54EF3B1F69C2517B26F33879D98680878D398342DF0E696795E886F5139A3C096C7AB3DA69B0655829C0C72EE94AB5519A56C85DA4258B430025E734AC1AE
+
auth_key = 4376473535A11FC78F947EA41F4CA6B3851B063824F7E6DA8D6E3643887D2865AAD3A0448CF0641170409ACE280B325AC0CF3802CA8E73F64675D59C90B750ADF2013A273D7AE5BD1D06BF9B59FA7FA62E9C3980E3A21E33B52FDA1CB10549CF6DB2945F7F295CD4EE605F81F7F9CCF819455B331DC860C5158733E4A6B3EF21EC93E4E7E3D7410EAAC498BDD40400FAE56941E59B514DF52B1201FA9489AFB7AC7FE222C71159E3BEAC0526E4207B80F0B37F2906B9C9BD6EBDF8959368758C26431EE83CAE372CA6BC8D3F0DFB349C72433A0A16E8ADF4161F362EF31F66E0A5FDF69A0547D8E5198BA128206E7A93EA4FAFCBA0A48C68279A0CA89536B2EA
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 1C 51 2F 79 57 6A 65
-0010 | 6C 00 00 00 34 F7 CB 3B 32 E0 57 DC 82 0E 13 67
-0020 | DA C9 FD EF B0 0D FA E3 87 69 98 EC 69 F2 D2 8B
-0030 | 69 12 57 F3 D9 52 84 D8 39 05 5F 23 70 02 4E 46
-0040 | 87 B3 CC A3 BD 03 31 D4
+
0000 | 00 00 00 00 00 00 00 00 01 B0 E6 10 2A 9B 6C 65
+0010 | 74 00 00 00 34 F7 CB 3B B0 69 7A FD F7 E5 50 64
+0020 | 0E A2 6A DB 92 59 0D E2 FE AC 66 0A F9 82 4B 19
+0030 | 0F 2A B1 7D A0 85 CE 8B E8 E4 7E DE 0C 39 66 FA
+0040 | 4F 82 5E D6 F5 4B 76 C5

Payload (de)serialization:

dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
message_id 8, 8C844050078576A65642C0E00299B6C65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 40, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Value received from server in Step 2
encrypted_data 56, 340FE50010066B0AD9E25FC2135F701BE15 BD718C2532491B2AE8C015AACAD46D72 9A821DFAC4B6452FA1EC816CA2D703B1 38B4D20C713EB126B98B5B12EE3ED962 4C876965C9432395F529CE5D21D85254 343D213ED6FE54AFECE50C08183BE192 F40C7405571C29322F4F3BBE01D5D71D 928D9D559A47C73C6B72C48345AF3F92 176B4B63F8BE8E9836378BA2FD2739D2 6A3ED48892A11A9E8FD02654B0CCB39C A9BB55F91DF7FF56CFCAFF11A592AEFA EC4D65D444F12BC2453DCF0AAFF7CCCF 3FE9CDA1F6E372402DC37A397F2F0AEB 75DE66B74DADBDBCD7969BF0AB870668 A3D2E6B36ED9167855CF134E432A164C A000362A077DBD1646F3BA4E47E51764 F9AEF0D0D4F89EEE2C2CC36B1E085E81 33289DE510AC2696745330FC4FD49103 995CC2556519D5CB27A924EAFAE46E6C 8C7CB728FA99569541F2E2E188A18673 EAF8C3E54CA0DB7C484F083F9F4165DD
9EC603E3
FE500100EE7E78B01E5C903C68FD369A 20E2D31A5CB0CB4432972ACEFCA6C070 AB87655B43B7564834D9E2BFBF790113 A20E36789236A264E29E086BBCE67D32 84A0BACD1928C088D01091C494068365 E22733C7FCE094332BFD5B621030808B 96871B57122C4C338BDB5F03F7EA2B3D 820A55E35285BC0A86135AEA53A49CF3 09CF4ADF083A64FD0E604044FDD2E2A1 DF386C5A3B12DA3BCEB7F26AA8E49B35 8D1BC0B246F530E5BB834D24B62442EC 257790F3DBBB1856F178511A0A7B8F6D 531599F738C684D8AEC684BF9BE886FC 5AA588D1C7045FCF542D8AC850C668DF 948D739C425E3FBC2382E3EEFDBA4D15 24CBE57934FC7DC6CDE2B69A581D1A6F 1C4BA10FEB3E4DD8211DAF073143B8A9 16AA043C00587B9B1AB75843D63720A9 6BA9A6E9E06480F3A56451176C4AC5B4 B99267423A93907A5E0F97BF080D9240 72A303D520B337904B2DBA47517CD7D2
ECFCE551
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);< - + - + - +
message_id 8, 8011C512F79576A6501B0E6102A9B6C65 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 46C000000 (108 in decimal)74000000 (116 in decimal) Message body length
nonce 24, 1632E057DC820E1367DAC9FDEFB00DFAE3B0697AFDF7E550640EA26ADB92590DE2 Value generated by client in Step 1
server_nonce 40, 16876998EC69F2D28B691257F3D95284D8FEAC660AF9824B190F2AB17DA085CE8B Value received from server in Step 2
new_nonce_hash1 56, 1639055F2370024E4687B3CCA3BD0331D4E8E47EDE0C3966FA4F825ED6F54B76C5 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.