diff --git a/data/web/corefork.telegram.org/constructor/inputTakeoutFileLocation.html b/data/web/corefork.telegram.org/constructor/inputTakeoutFileLocation.html index 59dc9f0d29..a7da8d3bd5 100644 --- a/data/web/corefork.telegram.org/constructor/inputTakeoutFileLocation.html +++ b/data/web/corefork.telegram.org/constructor/inputTakeoutFileLocation.html @@ -4,10 +4,10 @@ inputTakeoutFileLocation - + - + @@ -59,7 +59,10 @@

Parameters

This constructor does not require any parameters.

Type

-

InputFileLocation

+

InputFileLocation

+

Related pages

+

Takeout API

+

Telegram's API allows users to export all of their information through the takeout 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 4ba44d3712..083e58df3f 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 90 0A 0C 00 61 A8 70 65
-0010 | 14 00 00 00 F1 8E 7E BE 71 4B B1 C3 0B B2 D2 9E
-0020 | 0D A3 4A 1E D3 72 C3 D6
+
0000 | 00 00 00 00 00 00 00 00 2C 08 0F 00 D9 BA 70 65
+0010 | 14 00 00 00 F1 8E 7E BE 8C 08 57 AA 2E 27 2A 56
+0020 | 04 13 E8 05 64 5D EF 49

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 88 20 C8 61 A8 70 65
-0010 | B4 00 00 00 63 24 16 05 71 4B B1 C3 0B B2 D2 9E
-0020 | 0D A3 4A 1E D3 72 C3 D6 6D 43 E5 FE 7F 4B 90 E8
-0030 | 0C 49 C1 D2 AF FE FB CC 08 16 02 19 B9 66 B6 E4
-0040 | CF 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 28 3D 66 D9 BA 70 65
+0010 | A8 00 00 00 63 24 16 05 8C 08 57 AA 2E 27 2A 56
+0020 | 04 13 E8 05 64 5D EF 49 B5 9D 25 38 AE 48 79 78
+0030 | F7 F4 B2 24 D3 82 08 D2 08 10 27 B3 FE 7D 03 77
+0040 | DF 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 = 1585858302870742223
-

Decompose into 2 prime cofactors p < q: 1585858302870742223 = 1057715569 * 1499323967

-
p = 1057715569
-q = 1499323967
+
pq = 1164096934299006943
+

Decompose into 2 prime cofactors p < q: 1164096934299006943 = 1033809769 * 1126026247

+
p = 1033809769
+q = 1126026247

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 16 02 19 B9 66 B6 E4 CF 00 00 00
-0010 | 04 3F 0B 75 71 00 00 00 04 59 5D DE 3F 00 00 00
-0020 | 71 4B B1 C3 0B B2 D2 9E 0D A3 4A 1E D3 72 C3 D6
-0030 | 6D 43 E5 FE 7F 4B 90 E8 0C 49 C1 D2 AF FE FB CC
-0040 | 72 E9 8A BF 26 1B FD 56 13 43 90 79 F4 7A 6B CC
-0050 | 42 3C D3 A1 98 79 5E C7 6C 18 7E 50 46 E2 2E 7E
+
0000 | 95 5F F5 A9 08 10 27 B3 FE 7D 03 77 DF 00 00 00
+0010 | 04 3D 9E AF 69 00 00 00 04 43 1D CC 07 00 00 00
+0020 | 8C 08 57 AA 2E 27 2A 56 04 13 E8 05 64 5D EF 49
+0030 | B5 9D 25 38 AE 48 79 78 F7 F4 B2 24 D3 82 08 D2
+0040 | 4A 86 DA 13 B5 C2 A3 1B 4F 72 3B 48 3F CA CE 69
+0050 | 1C 88 2A 77 01 72 91 6D AE AD 0C 68 E6 E6 4D B6
 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 = 1499323967
- + - + - + - + - + - + @@ -291,39 +291,39 @@ q = 1499323967

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 = 955FF5A908160219B966B6E4CF000000043F0B757100000004595DDE3F000000714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBCC72E98ABF261BFD5613439079F47A6BCC423CD3A198795EC76C187E5046E22E7E02000000
-random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8151BA9E00C1274726C7A4727CBB5ED09B8B0C83F0E141F475AD8399B41B4470783F727CE364C299F5C9036FD533A2E382567605EB3D7F92907766111C649CC8
+
data = 955FF5A9081027B3FE7D0377DF000000043D9EAF6900000004431DCC070000008C0857AA2E272A560413E805645DEF49B59D2538AE487978F7F4B224D38208D24A86DA13B5C2A31B4F723B483FCACE691C882A770172916DAEAD0C68E6E64DB602000000
+random_padding_bytes = C68C9B857D0A036C3DC519E08DF98D07995A10FCA0663CA30F360CE48478B49CF6DA417C914DE0E6FCD8D4D8A95B0B33E0F9BD31FF38C3156E6DEE36330868ADAE220F86FC6D95170B4DB2BF6967C865EB4870DDBA59E284FF761A11

And this is the output:

-
encrypted_data = 4EA2380641698C2596000043E7D90FE474A067D6FA95E763F78A098B4C5B43EA7554676363D4C0AF73359317E20272DD3FBBA6F43F6A79D4E6994E35850896A7AE793D43A21ECABFA4BBFB39537FD30121551BAF514224A89BE8D0BF088203596A17B4490CB4A9810B2DF800A32F33FB4FF8FFEE551478F7848D3861DAA94C0D6C497B7F22E90C7F9678C84C234952A3BA4533EFF7F1A0F6F08BD9EC77DCF2CB50D5C6689DD4C1955BAD8C7E2678482BB3C55F19639A59BBF682B9E0E46BBC27D97EDF3473F6C487312E23A48A9E07504203D5031C39F79053FFE356359ECE4FDEB94805E217DC7FBFDDED9803A4C63AE336441A86F8697512D6B78D62745B61
+
encrypted_data = 492CE78F83CA6A61FF81F0F010DAC442CD1D47CD7D1BC72127378CE3B8BEFF5EE0CFBDA122C64EA25F7DF09BC71891441412D1A414AAEDB32BE57D34C102A5D6C7780D883E7A1F70344DBB7B309E6940EE857C4370BDE1BD7BF86FE75D479A1694BE236B44E5A5204DCFB1D85FA4384DC6BFA1E1A3D6A580458C9DA238E0660532470B54E8F5627726495698FEBA681B1FAB46AA003F2E01116FE0D666189A3B56DBEBFE3CACA4267F46A0819FE8E6C275DC07EA7562F28F7702563FFD6E1DA6ED17BCBC16005EB76D1A5862DB7B06D761B778BF211BAD88E32A80C4E7573E2FCFCC5A84FA7B8377F3893E2899ABDD473214F7C0249C4CA88BA1F3665C8F9F28

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

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, 8900A0C0061A870652C080F00D9BA7065 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Random number
message_id 8, 8018820C861A8706501283D66D9BA7065 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 4B4000000 (180 in decimal)A8000000 (168 in decimal) Message body length
nonce 24, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 40, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Server-generated random number
pq 56, 1208160219B966B6E4CF000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1585858302870742223
081027B3FE7D0377DF000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1164096934299006943
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
pq 4, 1208160219B966B6E4CF000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1585858302870742223
081027B3FE7D0377DF000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1164096934299006943
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p 16, 8043F0B7571000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1057715569
043D9EAF69000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1033809769
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 24, 804595DDE3F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1499323967
04431DCC07000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1126026247
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce 32, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 48, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Value received from server in Step 2
new_nonce 64, 3272E98ABF261BFD5613439079F47A6BCC 423CD3A198795EC76C187E5046E22E7E4A86DA13B5C2A31B4F723B483FCACE69 1C882A770172916DAEAD0C68E6E64DB6 Client-generated random number
@@ -345,7 +345,7 @@ random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8 - + @@ -363,25 +363,25 @@ random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8 - + - + - + - + @@ -393,7 +393,7 @@ random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8 - + @@ -402,47 +402,47 @@ random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8
6) Server responds with:

Received payload (excluding transport headers/trailers):

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

Payload (de)serialization:

server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
message_id 8, 8940A0C0061A8706530080F00D9BA7065 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 40, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Value received from server in Step 2
p 56, 8043F0B7571000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1057715569
043D9EAF69000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1033809769
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 64, 804595DDE3F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1499323967
04431DCC07000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1126026247
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
encrypted_data 80, 260FE0001004EA2380641698C2596000043 E7D90FE474A067D6FA95E763F78A098B 4C5B43EA7554676363D4C0AF73359317 E20272DD3FBBA6F43F6A79D4E6994E35 850896A7AE793D43A21ECABFA4BBFB39 537FD30121551BAF514224A89BE8D0BF 088203596A17B4490CB4A9810B2DF800 A32F33FB4FF8FFEE551478F7848D3861 DAA94C0D6C497B7F22E90C7F9678C84C 234952A3BA4533EFF7F1A0F6F08BD9EC 77DCF2CB50D5C6689DD4C1955BAD8C7E 2678482BB3C55F19639A59BBF682B9E0 E46BBC27D97EDF3473F6C487312E23A4 8A9E07504203D5031C39F79053FFE356 359ECE4FDEB94805E217DC7FBFDDED98 03A4C63AE336441A86F8697512D6B78D
62745B61
FE000100492CE78F83CA6A61FF81F0F0 10DAC442CD1D47CD7D1BC72127378CE3 B8BEFF5EE0CFBDA122C64EA25F7DF09B C71891441412D1A414AAEDB32BE57D34 C102A5D6C7780D883E7A1F70344DBB7B 309E6940EE857C4370BDE1BD7BF86FE7 5D479A1694BE236B44E5A5204DCFB1D8 5FA4384DC6BFA1E1A3D6A580458C9DA2 38E0660532470B54E8F5627726495698 FEBA681B1FAB46AA003F2E01116FE0D6 66189A3B56DBEBFE3CACA4267F46A081 9FE8E6C275DC07EA7562F28F7702563F FD6E1DA6ED17BCBC16005EB76D1A5862 DB7B06D761B778BF211BAD88E32A80C4 E7573E2FCFCC5A84FA7B8377F3893E28 99ABDD473214F7C0249C4CA88BA1F366
5C8F9F28
Value generated above
@@ -464,13 +464,13 @@ random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8 - + - + @@ -482,19 +482,19 @@ random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8 - + - + - + @@ -502,20 +502,20 @@ random_padding_bytes = 01F8D5324DEBFE218C34AA9097EB801DE041D93EB5434C6B3C1A252C8

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

-
encrypted_answer = 58DD2E14D631DC5D379323317FB5B66BDB204DFAD4602D49D7EC42E78E68329561ACC9D300B32C1DA81AAE5EBEB40917E4A88447732A37E3CA726C6077BEBC3DE686C5730D4E418C3651BE7B560F289279AC026F3011DC2D918DC701BB03462DA16868E62557035EB8734550C2627F3961CE3DB3AA803209DC892952F70391855CC9258A4855BA76808275DDF867B24405EA934048496A955EB50A705FE20323EFF619D507D4CA0C8E875254D7B6047F6DE2B2D88C4A47E46318A188BB1C6E41C7C2F991FC92601A6EC43E5164571340BCEA2DCC27811F45B41D70DBD75D0D62511ED2217CF062E45AD7C5B18F58C757FF781E7E6009F6DBDD4084BA98A5EF8CCBD167AEF54D63B9E8D5F3B4D7896BD9D87C072C06459C0FD6658221F7DE7FA8D95D2B2F7A4C379FD58C9D9D6B0324A2BA91F4856EDCB824B9386715EA6B8CCA962AC1A5BB8E4F3317ACAB8CC8931AB2D563775DC1C2FD92BB94B97EB81356A12B72C2CF785D74DB155220376FE34F1DBEC7116E89BBB21B31BEA10BE03155548B3A6134C7B0F6220DF33904523214881818E791577AA8DE234CBC798DC4E01EFD42EC6DE2134B80400341808450132361D4E81E51A7F6DD83F81305CA0A930C5B92ABA4BD4FDC68EE0D03497CD95C299B3BF021F3671BAE1DECB09AD02BA3B30040573CBA7E93E5D2837C5D69719757C2078F40E2056622D4384F8D7378AA32B44FF1D969E1CE87D6975D9B728F8DDE8DD32C13BB6BF5FD89FB88C2C375D6DE7A92E9D3D8866E58B36590B709FE6FD0959595BF7BC0BDD0E66CD8CC7A939CAED296780E82A655CD91C95B7B7FA11C89
-tmp_aes_key = 3FE4B2573D39B796E3E754BAD7E5694B779B2E5CDC24E7BBC8644EA592EB3C50
-tmp_aes_iv = 061B8FEC4658426330A47819BE55E3AE666E2A1D50FD3F0BC8BFF5AA72E98ABF
+
encrypted_answer = CD43284C99C4856A4EFEB93063801DC6E1165F4A640A3E3D2ADC77EA1C2F9F9427D6E26EE85C1915C6581A61D35110DA34C55B2190D8A0A900D64BF0717DA5718DEA9699D18925F61B0F5C1235075DBBC5C8DC6861F287604629044342F102824E91218CFD9C18030607C9188A232CB580E0D73610E5D4E212EB6A325358536CE45FD4A32D15FD219C0E1E1EFF00D58E2CAE99B5AFC0D1F558A3662B0129BFFDF994BD9016797940C417B032A3D0FA5F1E02646FCACF6CA335B08B269CD7686605A977EA06A9EEAC1B2209BEFD3EB35BC802C20A2F682E61B0253A746456CB551629555D15A6D3C313088B56E1C83A6FD3CFF4F462A7185AE12D916B1B210BA4EE0BE59F33E0BBAFE127D3CA15CE57CD8CA4B37B378DD374F2A1794E9F56839B3B4B1FC2865C41720374390622A1EDA4797B4FEBD2A267D1ACAB3794BBD4B1A4F9F0CEE964832DD974D7CC27992D2F2179D0B0379ADBF7E9744274245BE7D87C87F46C15DF958957D3BD9667619574307064DFBE7FAAAAE3ACCC09D6183AD5E939B01CFF9AC9FEDFE376619F1AC5E1286848B5F3F103655093F22881D957146E95D142B2A3811E7E37122A8144CB1E5936EEAD91A9F4A888C2A3849E92DF227F5BDC6589A14BBF47255BF1C33D4ED8D280F47747788A8C037FD9249D91F75C59A3D99BE1DC7096401CFDAECE28D6D01E31914285EE4426366E4A10616A07F2BEAE968F46D70862F955FCB2D74693E52F06B1CC3D669342CC0535D71352A9F27BF907821E83CAEC9A6411A7E11C75ABC7F77AAE8D2DDE1C0AF552DC4F853503688559B41C7F6346B72E9C8E61A56E5FA8
+tmp_aes_key = E72ED0F8639D01697E28103761678428DD27A841FE88E8661CE40117CA929698
+tmp_aes_iv = 5121E58CBC411F1BC521208D884CF6A566D0EE9A98CD65C09A9ABFEC4A86DA13

Yielding:

-
answer_with_hash = 07ECA4101914AB5A75FFBC8811821F95B5963665BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBCC03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001005603B6C3F0532C6D21D97B0DA21166CB7A6AB0D1AAABC8D38F2F9CB21072DEB29F6509473A8BE01587314115D07D16C8A613E4371F89A529C4F78EBE4CF6CC2887AE3BC0A024938C8647991C15CADEE89D18827770FBF8393752A77482BC5A724CA12A1186FCA7537217CC5CE5EC0AA779142B688E6A5CBEA8C434F09ACCBEA8724F94CE351110369F6B26FC7420FED13F47AB02B95824C04727753CDE29B0EB5E3FAE7BDB7237766DD41A0BA6B03D9D9C1D97ECB9E53686228FE1DFB990AFCC79A0D12693A80D859E1FC38AF02D92A14D4456DD847F08E8FA8DD12AE511D894D3E441196D580030CCD1F1583FCD29227DC1FA6B1A1AC1398A54BDD37E7FB8D662A870655D0385B79FF60FAC
-answer = BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBCC03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001005603B6C3F0532C6D21D97B0DA21166CB7A6AB0D1AAABC8D38F2F9CB21072DEB29F6509473A8BE01587314115D07D16C8A613E4371F89A529C4F78EBE4CF6CC2887AE3BC0A024938C8647991C15CADEE89D18827770FBF8393752A77482BC5A724CA12A1186FCA7537217CC5CE5EC0AA779142B688E6A5CBEA8C434F09ACCBEA8724F94CE351110369F6B26FC7420FED13F47AB02B95824C04727753CDE29B0EB5E3FAE7BDB7237766DD41A0BA6B03D9D9C1D97ECB9E53686228FE1DFB990AFCC79A0D12693A80D859E1FC38AF02D92A14D4456DD847F08E8FA8DD12AE511D894D3E441196D580030CCD1F1583FCD29227DC1FA6B1A1AC1398A54BDD37E7FB8D662A870655D0385B79FF60FAC
+
answer_with_hash = 39C14CB490051C2633CEA09D075C9D4CA64F6CE4BA0D89B58C0857AA2E272A560413E805645DEF49B59D2538AE487978F7F4B224D38208D203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001003CFA36C9475A852E62BF4EA6E1F0F6F950DAED6020304F8FB2297BFB6190FE150419E21F159DAD1981125C0346F2CF8DE6517FAA67E121AEDFEB6F2E3D684BA2EDECE72F9BA5779A4E2E0C419AF3D777C317C70C0A88E6490C41A48943C69BBC68F5BE5F788B00860C023F9C27440BA6D58C8590F60776BBC8FBEAD351A1D695BBE4A3C38E1002A5B61C304B87B40BB1E8FC9B5AA5181CA598D39C3CA0B534FAB93AB744197B1DD5F918F50DC09BC94630EB000CCDFF1F6F0636B9F3598B5F35BE8E06D2FFC80112B98973FC178AC6AB5B186FD3B9406E1ACAE8C86CA99574EF9B8A3DCD857B9C856072800DE97CCF81707FFE564396A8CD9B17B97359DE2100D9BA70651FFC5DAD646562E2
+answer = BA0D89B58C0857AA2E272A560413E805645DEF49B59D2538AE487978F7F4B224D38208D203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001003CFA36C9475A852E62BF4EA6E1F0F6F950DAED6020304F8FB2297BFB6190FE150419E21F159DAD1981125C0346F2CF8DE6517FAA67E121AEDFEB6F2E3D684BA2EDECE72F9BA5779A4E2E0C419AF3D777C317C70C0A88E6490C41A48943C69BBC68F5BE5F788B00860C023F9C27440BA6D58C8590F60776BBC8FBEAD351A1D695BBE4A3C38E1002A5B61C304B87B40BB1E8FC9B5AA5181CA598D39C3CA0B534FAB93AB744197B1DD5F918F50DC09BC94630EB000CCDFF1F6F0636B9F3598B5F35BE8E06D2FFC80112B98973FC178AC6AB5B186FD3B9406E1ACAE8C86CA99574EF9B8A3DCD857B9C856072800DE97CCF81707FFE564396A8CD9B17B97359DE2100D9BA70651FFC5DAD646562E2

Generated payload (excluding transport headers/trailers):

-
0000 | BA 0D 89 B5 71 4B B1 C3 0B B2 D2 9E 0D A3 4A 1E
-0010 | D3 72 C3 D6 6D 43 E5 FE 7F 4B 90 E8 0C 49 C1 D2
-0020 | AF FE FB CC 03 00 00 00 FE 00 01 00 C7 1C AE B9
+
0000 | BA 0D 89 B5 8C 08 57 AA 2E 27 2A 56 04 13 E8 05
+0010 | 64 5D EF 49 B5 9D 25 38 AE 48 79 78 F7 F4 B2 24
+0020 | D3 82 08 D2 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 = BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBC
 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 | 56 03 B6 C3 F0 53 2C 6D 21 D9 7B 0D A2 11 66 CB
-0140 | 7A 6A B0 D1 AA AB C8 D3 8F 2F 9C B2 10 72 DE B2
-0150 | 9F 65 09 47 3A 8B E0 15 87 31 41 15 D0 7D 16 C8
-0160 | A6 13 E4 37 1F 89 A5 29 C4 F7 8E BE 4C F6 CC 28
-0170 | 87 AE 3B C0 A0 24 93 8C 86 47 99 1C 15 CA DE E8
-0180 | 9D 18 82 77 70 FB F8 39 37 52 A7 74 82 BC 5A 72
-0190 | 4C A1 2A 11 86 FC A7 53 72 17 CC 5C E5 EC 0A A7
-01A0 | 79 14 2B 68 8E 6A 5C BE A8 C4 34 F0 9A CC BE A8
-01B0 | 72 4F 94 CE 35 11 10 36 9F 6B 26 FC 74 20 FE D1
-01C0 | 3F 47 AB 02 B9 58 24 C0 47 27 75 3C DE 29 B0 EB
-01D0 | 5E 3F AE 7B DB 72 37 76 6D D4 1A 0B A6 B0 3D 9D
-01E0 | 9C 1D 97 EC B9 E5 36 86 22 8F E1 DF B9 90 AF CC
-01F0 | 79 A0 D1 26 93 A8 0D 85 9E 1F C3 8A F0 2D 92 A1
-0200 | 4D 44 56 DD 84 7F 08 E8 FA 8D D1 2A E5 11 D8 94
-0210 | D3 E4 41 19 6D 58 00 30 CC D1 F1 58 3F CD 29 22
-0220 | 7D C1 FA 6B 1A 1A C1 39 8A 54 BD D3 7E 7F B8 D6
-0230 | 62 A8 70 65
+0130 | 3C FA 36 C9 47 5A 85 2E 62 BF 4E A6 E1 F0 F6 F9 +0140 | 50 DA ED 60 20 30 4F 8F B2 29 7B FB 61 90 FE 15 +0150 | 04 19 E2 1F 15 9D AD 19 81 12 5C 03 46 F2 CF 8D +0160 | E6 51 7F AA 67 E1 21 AE DF EB 6F 2E 3D 68 4B A2 +0170 | ED EC E7 2F 9B A5 77 9A 4E 2E 0C 41 9A F3 D7 77 +0180 | C3 17 C7 0C 0A 88 E6 49 0C 41 A4 89 43 C6 9B BC +0190 | 68 F5 BE 5F 78 8B 00 86 0C 02 3F 9C 27 44 0B A6 +01A0 | D5 8C 85 90 F6 07 76 BB C8 FB EA D3 51 A1 D6 95 +01B0 | BB E4 A3 C3 8E 10 02 A5 B6 1C 30 4B 87 B4 0B B1 +01C0 | E8 FC 9B 5A A5 18 1C A5 98 D3 9C 3C A0 B5 34 FA +01D0 | B9 3A B7 44 19 7B 1D D5 F9 18 F5 0D C0 9B C9 46 +01E0 | 30 EB 00 0C CD FF 1F 6F 06 36 B9 F3 59 8B 5F 35 +01F0 | BE 8E 06 D2 FF C8 01 12 B9 89 73 FC 17 8A C6 AB +0200 | 5B 18 6F D3 B9 40 6E 1A CA E8 C8 6C A9 95 74 EF +0210 | 9B 8A 3D CD 85 7B 9C 85 60 72 80 0D E9 7C CF 81 +0220 | 70 7F FE 56 43 96 A8 CD 9B 17 B9 73 59 DE 21 00 +0230 | D9 BA 70 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, 80130BC7F62A870650104A6FBD9BA7065 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 494020000 (660 in decimal)B0020000 (688 in decimal) Message body length
nonce 24, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 40, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Value received from server in Step 2
encrypted_answer 56, 596FE50020058DD2E14D631DC5D37932331 7FB5B66BDB204DFAD4602D49D7EC42E7 8E68329561ACC9D300B32C1DA81AAE5E BEB40917E4A88447732A37E3CA726C60 77BEBC3DE686C5730D4E418C3651BE7B 560F289279AC026F3011DC2D918DC701 BB03462DA16868E62557035EB8734550 C2627F3961CE3DB3AA803209DC892952 F70391855CC9258A4855BA76808275DD F867B24405EA934048496A955EB50A70 5FE20323EFF619D507D4CA0C8E875254 D7B6047F6DE2B2D88C4A47E46318A188 BB1C6E41C7C2F991FC92601A6EC43E51 64571340BCEA2DCC27811F45B41D70DB D75D0D62511ED2217CF062E45AD7C5B1 8F58C757FF781E7E6009F6DBDD4084BA 98A5EF8CCBD167AEF54D63B9E8D5F3B4 D7896BD9D87C072C06459C0FD6658221 F7DE7FA8D95D2B2F7A4C379FD58C9D9D 6B0324A2BA91F4856EDCB824B9386715 EA6B8CCA962AC1A5BB8E4F3317ACAB8C C8931AB2D563775DC1C2FD92BB94B97E B81356A12B72C2CF785D74DB15522037 6FE34F1DBEC7116E89BBB21B31BEA10B E03155548B3A6134C7B0F6220DF33904 523214881818E791577AA8DE234CBC79 8DC4E01EFD42EC6DE2134B8040034180 8450132361D4E81E51A7F6DD83F81305 CA0A930C5B92ABA4BD4FDC68EE0D0349 7CD95C299B3BF021F3671BAE1DECB09A D02BA3B30040573CBA7E93E5D2837C5D 69719757C2078F40E2056622D4384F8D 7378AA32B44FF1D969E1CE87D6975D9B 728F8DDE8DD32C13BB6BF5FD89FB88C2 C375D6DE7A92E9D3D8866E58B36590B7 09FE6FD0959595BF7BC0BDD0E66CD8CC 7A939CAED296780E82A655CD91C95B7B
7FA11C89
FE500200CD43284C99C4856A4EFEB930 63801DC6E1165F4A640A3E3D2ADC77EA 1C2F9F9427D6E26EE85C1915C6581A61 D35110DA34C55B2190D8A0A900D64BF0 717DA5718DEA9699D18925F61B0F5C12 35075DBBC5C8DC6861F2876046290443 42F102824E91218CFD9C18030607C918 8A232CB580E0D73610E5D4E212EB6A32 5358536CE45FD4A32D15FD219C0E1E1E FF00D58E2CAE99B5AFC0D1F558A3662B 0129BFFDF994BD9016797940C417B032 A3D0FA5F1E02646FCACF6CA335B08B26 9CD7686605A977EA06A9EEAC1B2209BE FD3EB35BC802C20A2F682E61B0253A74 6456CB551629555D15A6D3C313088B56 E1C83A6FD3CFF4F462A7185AE12D916B 1B210BA4EE0BE59F33E0BBAFE127D3CA 15CE57CD8CA4B37B378DD374F2A1794E 9F56839B3B4B1FC2865C417203743906 22A1EDA4797B4FEBD2A267D1ACAB3794 BBD4B1A4F9F0CEE964832DD974D7CC27 992D2F2179D0B0379ADBF7E974427424 5BE7D87C87F46C15DF958957D3BD9667 619574307064DFBE7FAAAAE3ACCC09D6 183AD5E939B01CFF9AC9FEDFE376619F 1AC5E1286848B5F3F103655093F22881 D957146E95D142B2A3811E7E37122A81 44CB1E5936EEAD91A9F4A888C2A3849E 92DF227F5BDC6589A14BBF47255BF1C3 3D4ED8D280F47747788A8C037FD9249D 91F75C59A3D99BE1DC7096401CFDAECE 28D6D01E31914285EE4426366E4A1061 6A07F2BEAE968F46D70862F955FCB2D7 4693E52F06B1CC3D669342CC0535D713 52A9F27BF907821E83CAEC9A6411A7E1 1C75ABC7F77AAE8D2DDE1C0AF552DC4F 853503688559B41C7F6346B72E9C8E61
A56E5FA8
See below
@@ -570,13 +570,13 @@ answer = BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBC - + - + @@ -594,13 +594,13 @@ answer = BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBC - + - + @@ -609,34 +609,34 @@ answer = BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBC
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 = 0EEC74722391560E214D4AD0B17120AE4052148226120BAF2A12625066AA29255C2D038DFC97A3BCC4FD7F3B4A843DBA9B0199976F45625C80CDDA6EBD3F4AFFFCE2C5858CACBE69E149F99A543B3DF91D37ABDE36E89D0F52D35AE0C8F7B36086CCAFB792A67BCD2CB6901D56665545F0D7DD23BC0E07E0076BA7FAAA0F203FF78A9DE315D996A04647520D1FF3431DA8C4144EB88A75B305761B0CAA1E1E690673780CE89DA53E658D0A3EC7ED60E12BD2A9733288F875169C4C98D7644C7BC2FA3CCB2F864667B5B8E6F2E2345DD6D0C376AE591B6C70CF643698B5921B175179BDA90AB4F55CEBDBE153FC56897C468C13E7FC1DBE2C1F5ADA12AB0FB9E7
+
b = FF46A644DE3E1D0D15B1DF588E6E6CC4D8184D09043800C9EDA91F7D31EDA2D395040FFED3C210B11491B67D184D0F116AE510348D0CC0C666348DCA2943BF020D490E88CF7D6C50C6DBCEA7E61039FDE2D5A42890B96F3CB8CC9B803093999954FDEE3A5338A1AE55BF6C27E71C3799C6DF5CBC0369C181C794D13516E6A5B9CAE21189112A1D15C3722C168BA482DE131346C05DC38F61208044FAC7B6200696D125ABF4500AAE31D91A9EE4D9C9FEEDA6CCA9C946C16558962FFA47AD97258DDD4AFB4224C7347E542C7F72533DF161163C9112BC707AA7056165B4E029C534CD17EED194C1A6108A3A8B6DD0C2742D4FC5010795A79E2EA9239F82461C40

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

-
g_b = 4C0AD051AA7FECFE57A4BDE64EC466ABA7708878C6913614A82ACE0A2E0B500D8AEA4032774EDFACC94A4FE955D6D55BC12E977A06B29268D97873E32CBF788905770D2F9C8E2211EE6991D23DBE32BCB1B6F337C42F8B45C5E56B9A8D0DDC70837F773F095057F6C712A938EBA2AE63490C4B3DEBA344F9D92AA535BE55B1E01FB002612A05655E040D0A4249F1098BD75DFFA83EF41A2051FEB659E084DB3460F89837E723A9A83624CC9952A534198F58D0A79789501BB55520D18280D56F0DC82A61436746D2B066A17674104AB415FF33C672A5C00A3B49BC71ED526161EE5FDE879CCFC0544130E474715F0C40226610F3F17514DB7F4C87680BD5D601
+
g_b = 259EBAEE7B5CD665A541B4BB0DF361E70084D27C85D10478BBD4191F5087EA2AB82C77E3797F21FFA2881CCA27CA3BEEBB7D98E642AE4B2F14525E886FB3BBA8FDF557FF02096B0AEBC48D19819C7B80E3F608B19CA178667396D1558D0ECB241B35913CF87FED52EAD65FA26D0F41DEF42FD4CBB5C044044C38274C4461579B168BAA5836EF39DE5087413125ABE21D1B2D3FD849F5B3C1429633315578F21188268DDD8C7CF825ED1AB28D5D3CF7CC673D2392EDE26CE3A1A22A1C309C533AFC35139FF3FAD9048BF24BB41308DC862731E4A602C0F75914EE118217F5EE12E20BF93D6BF31B37B937526C955830C017138FC004CA5DF48D0F288E8CDF4C80
7.1) generation of encrypted_data

Generated payload (excluding transport headers/trailers):

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

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, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 20, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Value received from server in Step 2
g_a 300, 260FE0001005603B6C3F0532C6D21D97B0D A21166CB7A6AB0D1AAABC8D38F2F9CB2 1072DEB29F6509473A8BE01587314115 D07D16C8A613E4371F89A529C4F78EBE 4CF6CC2887AE3BC0A024938C8647991C 15CADEE89D18827770FBF8393752A774 82BC5A724CA12A1186FCA7537217CC5C E5EC0AA779142B688E6A5CBEA8C434F0 9ACCBEA8724F94CE351110369F6B26FC 7420FED13F47AB02B95824C04727753C DE29B0EB5E3FAE7BDB7237766DD41A0B A6B03D9D9C1D97ECB9E53686228FE1DF B990AFCC79A0D12693A80D859E1FC38A F02D92A14D4456DD847F08E8FA8DD12A E511D894D3E441196D580030CCD1F158 3FCD29227DC1FA6B1A1AC1398A54BDD3
7E7FB8D6
FE0001003CFA36C9475A852E62BF4EA6 E1F0F6F950DAED6020304F8FB2297BFB 6190FE150419E21F159DAD1981125C03 46F2CF8DE6517FAA67E121AEDFEB6F2E 3D684BA2EDECE72F9BA5779A4E2E0C41 9AF3D777C317C70C0A88E6490C41A489 43C69BBC68F5BE5F788B00860C023F9C 27440BA6D58C8590F60776BBC8FBEAD3 51A1D695BBE4A3C38E1002A5B61C304B 87B40BB1E8FC9B5AA5181CA598D39C3C A0B534FAB93AB744197B1DD5F918F50D C09BC94630EB000CCDFF1F6F0636B9F3 598B5F35BE8E06D2FFC80112B98973FC 178AC6AB5B186FD3B9406E1ACAE8C86C A99574EF9B8A3DCD857B9C856072800D E97CCF81707FFE564396A8CD9B17B973
59DE2100
g_a diffie-hellman parameter
server_time 560, 462A87065 (1701881954 in decimal)D9BA7065 (1701886681 in decimal) Server time
@@ -658,19 +658,19 @@ answer = BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBC - + - + - + @@ -684,47 +684,47 @@ answer = BA0D89B5714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBC

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 = 54B64366714BB1C30BB2D29E0DA34A1ED372C3D66D43E5FE7F4B90E80C49C1D2AFFEFBCC0000000000000000FE0001004C0AD051AA7FECFE57A4BDE64EC466ABA7708878C6913614A82ACE0A2E0B500D8AEA4032774EDFACC94A4FE955D6D55BC12E977A06B29268D97873E32CBF788905770D2F9C8E2211EE6991D23DBE32BCB1B6F337C42F8B45C5E56B9A8D0DDC70837F773F095057F6C712A938EBA2AE63490C4B3DEBA344F9D92AA535BE55B1E01FB002612A05655E040D0A4249F1098BD75DFFA83EF41A2051FEB659E084DB3460F89837E723A9A83624CC9952A534198F58D0A79789501BB55520D18280D56F0DC82A61436746D2B066A17674104AB415FF33C672A5C00A3B49BC71ED526161EE5FDE879CCFC0544130E474715F0C40226610F3F17514DB7F4C87680BD5D601
-padding = FE047166BE57A528DFAB1B65
-tmp_aes_key = 3FE4B2573D39B796E3E754BAD7E5694B779B2E5CDC24E7BBC8644EA592EB3C50
-tmp_aes_iv = 061B8FEC4658426330A47819BE55E3AE666E2A1D50FD3F0BC8BFF5AA72E98ABF
+
data = 54B643668C0857AA2E272A560413E805645DEF49B59D2538AE487978F7F4B224D38208D20000000000000000FE000100259EBAEE7B5CD665A541B4BB0DF361E70084D27C85D10478BBD4191F5087EA2AB82C77E3797F21FFA2881CCA27CA3BEEBB7D98E642AE4B2F14525E886FB3BBA8FDF557FF02096B0AEBC48D19819C7B80E3F608B19CA178667396D1558D0ECB241B35913CF87FED52EAD65FA26D0F41DEF42FD4CBB5C044044C38274C4461579B168BAA5836EF39DE5087413125ABE21D1B2D3FD849F5B3C1429633315578F21188268DDD8C7CF825ED1AB28D5D3CF7CC673D2392EDE26CE3A1A22A1C309C533AFC35139FF3FAD9048BF24BB41308DC862731E4A602C0F75914EE118217F5EE12E20BF93D6BF31B37B937526C955830C017138FC004CA5DF48D0F288E8CDF4C80
+padding = C8E365AD21C981C0509DCDDE
+tmp_aes_key = E72ED0F8639D01697E28103761678428DD27A841FE88E8661CE40117CA929698
+tmp_aes_iv = 5121E58CBC411F1BC521208D884CF6A566D0EE9A98CD65C09A9ABFEC4A86DA13

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 = 92A899EBE18916C7454F5F53C75969234B53E67FF7AD43DF7D0AB62E32D5B68E0A62C29110C6412D06FC97B0131CA291B3901544131991E42DA9F6390EEB05F710C28E250FD83976F80764173FC6C74E5AA81A7FB55249E77425887E72EFABF8AB3CD122FE22B1333AE95A71AF43BD5BE35488E6356DB2271A659C1B3861EDD021B2111B942B04769055ADDFF57AB6A6EB8917AB4DB09C0180429AAD386F3BD5D205CA9F0E8073E61E95457669E0496135AD21906C670AA3FDF9A85699EDAD9762C773F0BE3821B004D9BA3B47369A628FD362E8FF1F08F57561A54AE2D0539216985365626F2619290CCB4A90A88055E5A13450340CFD528E7E80FA03DEFC264B494E74BB83C5F0F3501F72B4F1E1BE5D82B9B6807EF7EF6035ED7ECD6F826F42B6BF9DB14A37FF5B4B942711C1E6959B0527FEF86C708F416DC0D2D135417F0526D95B48723646158BAE0DB45C2C80
+
encrypted_data = E314D213DB6C3AB5686B84B871A81F4B0A47033B197C1D9FC1EED30045282D6BA1C36542DD9B8568CE734666CC866346FD7048E59239D6EC4E5886D9BEC7D43D01261435D4964C34BF2723222E288F76118FB0D2B114B15C7009AF6BCD6ADFA8C93F287E9E7F6CADB3E84283126EB9DB7ADD024BAF1E002BC4A3165206A1DA3D6172948B9CDE769234C19975528E3FF5192D076B8BBCCAD01B8D5C072C98D6483D255BAE0CD360ED66D169E4B4BE4B0418CBED8E8816CCE74BE787DE3076A7608700AD34CA7AD33B84B75180CA5E4607DF6B22FD910CDD18062FA38107A76105EA010C9DC2A1D0664711FDDB312095F0B86A901838AC91B6C04B70A9840880276D10B403A263E106441C20DF78C1F856CA246FB8EF7621BD2604C2533B1E727375D2E87F8FF0212957A975DFDE6DF836AD459118F4E7CA93BD8C71863284361A0A784BBB05206337B4AC59888838A485

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

Payload (de)serialization:

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
nonce 4, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 20, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Value received from server in Step 2
g_b 36, 260FE0001004C0AD051AA7FECFE57A4BDE6 4EC466ABA7708878C6913614A82ACE0A 2E0B500D8AEA4032774EDFACC94A4FE9 55D6D55BC12E977A06B29268D97873E3 2CBF788905770D2F9C8E2211EE6991D2 3DBE32BCB1B6F337C42F8B45C5E56B9A 8D0DDC70837F773F095057F6C712A938 EBA2AE63490C4B3DEBA344F9D92AA535 BE55B1E01FB002612A05655E040D0A42 49F1098BD75DFFA83EF41A2051FEB659 E084DB3460F89837E723A9A83624CC99 52A534198F58D0A79789501BB55520D1 8280D56F0DC82A61436746D2B066A176 74104AB415FF33C672A5C00A3B49BC71 ED526161EE5FDE879CCFC0544130E474 715F0C40226610F3F17514DB7F4C8768
0BD5D601
FE000100259EBAEE7B5CD665A541B4BB 0DF361E70084D27C85D10478BBD4191F 5087EA2AB82C77E3797F21FFA2881CCA 27CA3BEEBB7D98E642AE4B2F14525E88 6FB3BBA8FDF557FF02096B0AEBC48D19 819C7B80E3F608B19CA178667396D155 8D0ECB241B35913CF87FED52EAD65FA2 6D0F41DEF42FD4CBB5C044044C38274C 4461579B168BAA5836EF39DE50874131 25ABE21D1B2D3FD849F5B3C142963331 5578F21188268DDD8C7CF825ED1AB28D 5D3CF7CC673D2392EDE26CE3A1A22A1C 309C533AFC35139FF3FAD9048BF24BB4 1308DC862731E4A602C0F75914EE1182 17F5EE12E20BF93D6BF31B37B937526C 955830C017138FC004CA5DF48D0F288E
8CDF4C80
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 = 550F6647E883F8FF80BE3F6A248487051C5F9AB8B106A45A26BD99EA740CBB7EEF34BA00A9206DFE74C79AFADB9990BF560E4BE79CC2FE46F7B0F1134DAE587D83C789A489A3B322D25EFF6E9EE0719742BE89E7673C7D09DDE9B0C25413D8221B75AC3BE377B1BD9463358EDA2BA9619EAFA1B7929731486276720C84A798CCA14C4979AB733D35E4D891DB4B1CFF95C2E45767AD151D7ED1E2A860B40FD2F0CD7F265AE5BE602676DA05FF5C2738ACDC778C9EF8AB885367408653E7184E7F76CBEB1E7BD518B31BD8F27A394FC2223DB692210944B373E7695EAACBF35BA1646B57153FF63C91CB5D884B6B2B22134C299161544CB78E69221EC82899AC1F
+
auth_key = 28CE00BA00B8208DACFC41AE516D18623B91B8328BD604A7A693574D488EFEF342847733B99CDCAB4F2370EE9EDB14032E2EE2D8620A8C42337D8F285E922EDD26FA091737827CAB1CAF2B74D7BA6E0DD917998E7BFE5F0BF288378B78A146ADB177AD59A193E70CF8FED7E27DFD800B80953288B7AD090C1A64E8890F23CE0A8350A8EE4BE5086B3F618F82B50E221BD58F4AABFF36F1BFBC20689DD18B627AD216A474DFAAE639DBD09F822AB19CD681FE28D98276C0E0CA6307EA2BADB5F072F463B23E94921F017DD92BA894431AA37FCDB5EB01726081AEE18F08DF2CEBEE2261F96229AE97F671F6A27E9CA81DEAFB0CA8FF9A7038B98EEBAD83DB6A15
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 CC AA D9 62 A8 70 65
-0010 | 68 00 00 00 34 F7 CB 3B 71 4B B1 C3 0B B2 D2 9E
-0020 | 0D A3 4A 1E D3 72 C3 D6 6D 43 E5 FE 7F 4B 90 E8
-0030 | 0C 49 C1 D2 AF FE FB CC BE 11 44 D4 2D 67 33 B4
-0040 | 98 85 D5 77 71 7C 4D 35
+
0000 | 00 00 00 00 00 00 00 00 01 BC 13 D1 DA BA 70 65
+0010 | 38 00 00 00 34 F7 CB 3B 8C 08 57 AA 2E 27 2A 56
+0020 | 04 13 E8 05 64 5D EF 49 B5 9D 25 38 AE 48 79 78
+0030 | F7 F4 B2 24 D3 82 08 D2 44 B9 74 84 35 A0 EF 63
+0040 | 5F 86 0E 16 F5 B6 FC F8

Payload (de)serialization:

dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
message_id 8, 884C3060062A8706534080F00D9BA7065 Message ID generated as specified here » (unixtime() << 32) + (N*4)
nonce 24, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 40, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Value received from server in Step 2
encrypted_data 56, 340FE50010092A899EBE18916C7454F5F53 C75969234B53E67FF7AD43DF7D0AB62E 32D5B68E0A62C29110C6412D06FC97B0 131CA291B3901544131991E42DA9F639 0EEB05F710C28E250FD83976F8076417 3FC6C74E5AA81A7FB55249E77425887E 72EFABF8AB3CD122FE22B1333AE95A71 AF43BD5BE35488E6356DB2271A659C1B 3861EDD021B2111B942B04769055ADDF F57AB6A6EB8917AB4DB09C0180429AAD 386F3BD5D205CA9F0E8073E61E954576 69E0496135AD21906C670AA3FDF9A856 99EDAD9762C773F0BE3821B004D9BA3B 47369A628FD362E8FF1F08F57561A54A E2D0539216985365626F2619290CCB4A 90A88055E5A13450340CFD528E7E80FA 03DEFC264B494E74BB83C5F0F3501F72 B4F1E1BE5D82B9B6807EF7EF6035ED7E CD6F826F42B6BF9DB14A37FF5B4B9427 11C1E6959B0527FEF86C708F416DC0D2 D135417F0526D95B48723646158BAE0D
B45C2C80
FE500100E314D213DB6C3AB5686B84B8 71A81F4B0A47033B197C1D9FC1EED300 45282D6BA1C36542DD9B8568CE734666 CC866346FD7048E59239D6EC4E5886D9 BEC7D43D01261435D4964C34BF272322 2E288F76118FB0D2B114B15C7009AF6B CD6ADFA8C93F287E9E7F6CADB3E84283 126EB9DB7ADD024BAF1E002BC4A31652 06A1DA3D6172948B9CDE769234C19975 528E3FF5192D076B8BBCCAD01B8D5C07 2C98D6483D255BAE0CD360ED66D169E4 B4BE4B0418CBED8E8816CCE74BE787DE 3076A7608700AD34CA7AD33B84B75180 CA5E4607DF6B22FD910CDD18062FA381 07A76105EA010C9DC2A1D0664711FDDB 312095F0B86A901838AC91B6C04B70A9 840880276D10B403A263E106441C20DF 78C1F856CA246FB8EF7621BD2604C253 3B1E727375D2E87F8FF0212957A975DF DE6DF836AD459118F4E7CA93BD8C7186 3284361A0A784BBB05206337B4AC5988
8838A485
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/InputFileLocation.html b/data/web/corefork.telegram.org/type/InputFileLocation.html index 66210649a0..1c650c5648 100644 --- a/data/web/corefork.telegram.org/type/InputFileLocation.html +++ b/data/web/corefork.telegram.org/type/InputFileLocation.html @@ -92,7 +92,7 @@ - +
message_id 8, 801CCAAD962A8706501BC13D1DABA7065 Message ID generated as specified here » (unixtime() << 32) + (N*4)
message_length 16, 468000000 (104 in decimal)38000000 (56 in decimal) Message body length
nonce 24, 16714BB1C30BB2D29E0DA34A1ED372C3D68C0857AA2E272A560413E805645DEF49 Value generated by client in Step 1
server_nonce 40, 166D43E5FE7F4B90E80C49C1D2AFFEFBCCB59D2538AE487978F7F4B224D38208D2 Value received from server in Step 2
new_nonce_hash1 56, 16BE1144D42D6733B49885D577717C4D3544B9748435A0EF635F860E16F5B6FCF8 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.
inputTakeoutFileLocationEmpty constructor for takeoutUsed to download a JSON file that will contain all personal data related to features that do not have a specialized takeout method yet, see here » for more info on the takeout API.
inputPhotoFileLocation