From 1268bdb36a823282e755c2fe432e57af48c2e51c Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 28 Jun 2023 20:02:07 +0000 Subject: [PATCH] Update content of files --- .../mtproto/samples-auth_key.html | 398 +++++++++--------- 1 file changed, 199 insertions(+), 199 deletions(-) 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 33d904cccf..54fe2989e8 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 @@ For example, for the abridged version of the transport », the…">

1. request req_pq_multi

Sent payload (excluding transport headers/trailers):

-
0000 | 00 00 00 00 00 00 00 00 00 00 00 00 DA 8E 9C 64
-0010 | 14 00 00 00 F1 8E 7E BE B6 DC 10 51 90 17 31 08
-0020 | 76 D2 47 AC A4 B3 55 10
+
0000 | 00 00 00 00 00 00 00 00 00 00 00 00 13 90 9C 64
+0010 | 14 00 00 00 F1 8E 7E BE A1 F9 B9 D5 B1 C7 24 55
+0020 | 20 11 1F B7 30 1C 95 C0

Payload serialization:

req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;
@@ -77,7 +77,7 @@ For example, for the abridged version of the transport », the…"> - + @@ -95,7 +95,7 @@ For example, for the abridged version of the transport », the…"> - + @@ -104,11 +104,11 @@ For example, for the abridged version of the transport », the…">

2. response respq

Received payload (excluding transport headers/trailers):

-
0000 | 00 00 00 00 00 00 00 00 01 9C 6E 01 DB 8E 9C 64
-0010 | 84 00 00 00 63 24 16 05 B6 DC 10 51 90 17 31 08
-0020 | 76 D2 47 AC A4 B3 55 10 43 99 A0 E5 D8 AA B5 BD
-0030 | CD 30 8D A2 8E 00 47 19 08 12 90 AE 4B 1D 71 2D
-0040 | 01 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 A8 D4 9C 13 90 9C 64
+0010 | 78 00 00 00 63 24 16 05 A1 F9 B9 D5 B1 C7 24 55
+0020 | 20 11 1F B7 30 1C 95 C0 70 EA 28 24 B9 2F 73 9F
+0030 | 4C 26 45 7B 02 94 8D CA 08 28 6C A9 D9 90 2D A7
+0040 | ED 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 serialization:

@@ -132,13 +132,13 @@ For example, for the abridged version of the transport », the…">
- + - + @@ -150,19 +150,19 @@ For example, for the abridged version of the transport », the…"> - + - + - + @@ -207,20 +207,20 @@ For example, for the abridged version of the transport », the…">

2.1. decompose p and q

-
pq = 1337760726968773889
-

Decompose into 2 prime cofactors: 1048960817 * 1275320017 = 1337760726968773889

-
p = 1048960817
-q = 1275320017
+
pq = 2912889810893776877
+

Decompose into 2 prime cofactors: 1567638131 * 1858139167 = 2912889810893776877

+
p = 1567638131
+q = 1858139167

2.2. encrypted_data generation

Generated payload (excluding transport headers/trailers):

-
0000 | 95 5F F5 A9 08 12 90 AE 4B 1D 71 2D 01 00 00 00
-0010 | 04 3E 85 DF 31 00 00 00 04 4C 03 D6 D1 00 00 00
-0020 | B6 DC 10 51 90 17 31 08 76 D2 47 AC A4 B3 55 10
-0030 | 43 99 A0 E5 D8 AA B5 BD CD 30 8D A2 8E 00 47 19
-0040 | B4 3C 50 7D 9E EB AB BE 7E 82 39 06 E9 64 94 95
-0050 | 82 0A CA 9C 3A C2 66 75 1B 5B 5F C4 98 65 4E F9
+
0000 | 95 5F F5 A9 08 28 6C A9 D9 90 2D A7 ED 00 00 00
+0010 | 04 5D 70 42 73 00 00 00 04 6E C0 F4 1F 00 00 00
+0020 | A1 F9 B9 D5 B1 C7 24 55 20 11 1F B7 30 1C 95 C0
+0030 | 70 EA 28 24 B9 2F 73 9F 4C 26 45 7B 02 94 8D CA
+0040 | F6 CB F0 39 C5 6D 79 01 6C 22 33 6A C3 4A C3 CC
+0050 | C6 CF 1F 11 32 3A CB FC CB 06 62 7E 94 BB C3 59
 0060 | 02 00 00 00

Payload 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 @@ p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_non
 
- + - + - + - + - + - + @@ -291,39 +291,39 @@ p_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_non

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 = 955FF5A9081290AE4B1D712D01000000043E85DF31000000044C03D6D1000000B6DC10519017310876D247ACA4B355104399A0E5D8AAB5BDCD308DA28E004719B43C507D9EEBABBE7E823906E9649495820ACA9C3AC266751B5B5FC498654EF902000000
-random_padding_bytes = C6F11EFC01816FE553BFCDFA8B80814BE952BA8143ED88F3DAD022261442D4310A62D4F11D432BAC7576C64FFBB3C09FEF8696F6463D2156BE02306E6922FAC0326490EEDB9858A6D6CC9DDF9E28F4863A6E2D9145878453E5B3B14F
+
data = 955FF5A908286CA9D9902DA7ED000000045D704273000000046EC0F41F000000A1F9B9D5B1C7245520111FB7301C95C070EA2824B92F739F4C26457B02948DCAF6CBF039C56D79016C22336AC34AC3CCC6CF1F11323ACBFCCB06627E94BBC35902000000
+random_padding_bytes = C00B71D54D522A134D231AEE7DD68B5290D97FA57F4C2A735C4A5FC2044F28D9C361D1E16F70C6A33477F27B5EF538D532398E3A34BE17192389F2C3F214F8F2A50C9646E1143EA5B5C421DE5A2F8A20FBDC3F3C08D706F13EDA3BB9

And this is the output:

-
encrypted_data = 1E92C72633BB85FA813D502FC57B5B648069E794FDE049C4BBE3ED024F1B7B8B2E1648FB0BD331BF7B95C8F849853C6C8CC80CD190CE7A316684885DC058A5F53BD766D20CDDA3C67385642A95F3A8B1DD8C0C8BE0B0A6E542EED23AF615397C4AF4C6BBBF7263EAFD155A0C5885CED64748810D20636B5A6CDDB8CF97631317C684D64A0D2D77F692A319EFD792E95D78E2BCD9206BCB13433732242A7A83DFCDF5FA7B1F6AB03A029EFD05149D727B2C6DEE04DCE77B64017486B4C48C16C65102A732624C404034125A676011A7F35487618E5FC02ADAA21BC78AC95F47F74FB7B3225C02CBF105408B1C897905E622D9604800A1B51A0792A05E92B31D37
+
encrypted_data = C576240305C4E62F0D4C1C7DA76D16A3F0529C38CC8AC087C3A098D44B4A6D96E0508217EEE987E092F079FE61ED02D73B513E612D1CA391D3DFF3AFEE0919B45A5E5F80677517543A2624E46E238564118311EABB002ECE73BAD010C1DAB49F422FF700351772C017721407B6058F684A65C271B618AD30B6FFAC6F27AA39F7425E6C20AB1B3F3CEF228863F88D0EE72409A5E737C928562CF4FCA9C2158FBD92991126735E7C0A036CE498C9675017C10137AB1D0584CB7D75975DE4F3D3746B8416ACDA103A753C0B249D0D29D0E0E81206B56BC583333DEABEA203D7E42A19680F4C3996E408E369D208533C2C6EE9D1574F3722BCD9EC15789EE285942A

The length of the final string is 256 bytes.

3. request req_dh_params

Sent payload (excluding transport headers/trailers):

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

Payload 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, 800000000DA8E9C640000000013909C64 Exact unixtime*2^32, +(4*N) if N messages with the same message ID were already generated
nonce 24, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Random number
message_id 8, 8019C6E01DB8E9C6401A8D49C13909C64 Exact unixtime*2^32, +(4*N) if N messages with the same message ID were already generated
message_length 16, 484000000 (132 in decimal)78000000 (120 in decimal) Message body length
nonce 24, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 40, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Server-generated random number
pq 56, 12081290AE4B1D712D01000000 (TL byte deserialization => bigendian conversion to decimal => 1337760726968773889)08286CA9D9902DA7ED000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2912889810893776877
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding
pq 4, 12081290AE4B1D712D01000000 (TL byte deserialization => bigendian conversion to decimal => 1337760726968773889)08286CA9D9902DA7ED000000
TL byte deserialization
=> bigendian conversion to decimal
=> 2912889810893776877
Single-byte prefix denoting length, 8-byte string, and three bytes of padding
p 16, 8043E85DF31000000 (TL byte deserialization => bigendian conversion to decimal => 1048960817)045D704273000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1567638131
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 24, 8044C03D6D1000000 (TL byte deserialization => bigendian conversion to decimal => 1275320017)046EC0F41F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1858139167
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
nonce 32, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 48, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Value received from server in Step 2
new_nonce 64, 32B43C507D9EEBABBE7E823906E9649495 820ACA9C3AC266751B5B5FC498654EF9F6CBF039C56D79016C22336AC34AC3CC C6CF1F11323ACBFCCB06627E94BBC359 Client-generated random number
@@ -345,7 +345,7 @@ random_padding_bytes = C6F11EFC01816FE553BFCDFA8B80814BE952BA8143ED88F3DAD022261 - + @@ -363,37 +363,37 @@ random_padding_bytes = C6F11EFC01816FE553BFCDFA8B80814BE952BA8143ED88F3DAD022261 - + - + - + - + - + - + @@ -402,47 +402,47 @@ random_padding_bytes = C6F11EFC01816FE553BFCDFA8B80814BE952BA8143ED88F3DAD022261

4. response server_dh_params_ok

Received payload (excluding transport headers/trailers):

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

Payload serialization:

server_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params;
 server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
@@ -465,13 +465,13 @@ server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:s
- + - + @@ -483,19 +483,19 @@ server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:s - + - + - + @@ -505,9 +505,9 @@ server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:s

Decrypt encrypted_answer using the process specified in step 5.

Generated payload (excluding transport headers/trailers):

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

Payload 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, 800000000DB8E9C640400000013909C64 Exact unixtime*2^32, +(4*N) if N messages with the same message ID were already generated
nonce 24, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 40, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Value received from server in Step 2
p 56, 8043E85DF31000000 (TL byte deserialization => bigendian conversion to decimal => 1048960817)045D704273000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1567638131
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
q 64, 8044C03D6D1000000 (TL byte deserialization => bigendian conversion to decimal => 1275320017)046EC0F41F000000
TL byte deserialization
=> bigendian conversion to decimal
=> 1858139167
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding
public_key_fingerprint 72, 885FD64DE851D9DD0 (-3414540481677951611 in decimal)85FD64DE851D9DD0 fingerprint of public key used
encrypted_data 80, 260FE0001001E92C72633BB85FA813D502F C57B5B648069E794FDE049C4BBE3ED02 4F1B7B8B2E1648FB0BD331BF7B95C8F8 49853C6C8CC80CD190CE7A316684885D C058A5F53BD766D20CDDA3C67385642A 95F3A8B1DD8C0C8BE0B0A6E542EED23A F615397C4AF4C6BBBF7263EAFD155A0C 5885CED64748810D20636B5A6CDDB8CF 97631317C684D64A0D2D77F692A319EF D792E95D78E2BCD9206BCB1343373224 2A7A83DFCDF5FA7B1F6AB03A029EFD05 149D727B2C6DEE04DCE77B64017486B4 C48C16C65102A732624C404034125A67 6011A7F35487618E5FC02ADAA21BC78A C95F47F74FB7B3225C02CBF105408B1C 897905E622D9604800A1B51A0792A05E 92B31D37FE000100C576240305C4E62F0D4C1C7D A76D16A3F0529C38CC8AC087C3A098D4 4B4A6D96E0508217EEE987E092F079FE 61ED02D73B513E612D1CA391D3DFF3AF EE0919B45A5E5F80677517543A2624E4 6E238564118311EABB002ECE73BAD010 C1DAB49F422FF700351772C017721407 B6058F684A65C271B618AD30B6FFAC6F 27AA39F7425E6C20AB1B3F3CEF228863 F88D0EE72409A5E737C928562CF4FCA9 C2158FBD92991126735E7C0A036CE498 C9675017C10137AB1D0584CB7D75975D E4F3D3746B8416ACDA103A753C0B249D 0D29D0E0E81206B56BC583333DEABEA2 03D7E42A19680F4C3996E408E369D208 533C2C6EE9D1574F3722BCD9EC15789EE285942A See Generation of encrypted_data »
message_id 8, 80148EEA3DB8E9C6401C02E4114909C64 Exact unixtime*2^32, +(4*N) if N messages with the same message ID were already generated
message_length 16, 480020000 (640 in decimal)A0020000 (672 in decimal) Message body length
nonce 24, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 40, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Value received from server in Step 2
encrypted_answer 56, 596FE5002008D865C2E1E29572904F2E5A3 EDDC466A0D187E54AC63D7DC27A1219D CAABF3E7985FD0FF25B41125008D1590 AC78F68F95AB3067B6EE0777996335D6 223146F985D479A8F81A623DA9223715 D439A76BD37467BD1917CDDE0B798406 B091AFCDB01940AB7ABE328CEFCB43DC 6DBA18D878642113344035EFD17B45CE FBAF6AC9BC02CF3979DF673D039A073C 369C1AB343F2240E4BC8AF10677257E7 136F3DB1B8B6122116016D514B632F2C B3E54D848437EC54BE4E3610FFBABE2D 88C01188A21803DE806E28F0DED254D4 45B3ABCA9237560461A20121E65CDD08 C57D01E9EF77038D488FB7B69C37F4A3 F22D0DE6B605C09A403E074004001774 F9869C40D90459DECFB715E9CEE79D2D DCC041A4E5F527A8E1FE40BFD493566D 3A715F7F9EEFA84887DB72C99594D779 A0C6B1536C8586F66F06566EFFCF1A13 4FF9B5F09E99810D99A3337480B941DE A816ABC2D4655B709E3AE5616C97573A DA26E86696FAADABD1B534DC541DDE9B ECCDCD16AE98A30A9AE39E735E5A4820 C1BCC23E91B07EBF758EA8F123600932 EAC4D4DF29767D62F421BF3C059F98F0 7A3962969EB35803A81656E0CB8B9380 326B1D64F96EBC91EDBFC98DFDCF56D1 818CD8B09D3708A71301E42474E4888C 404356CD31E6345C8E264E022C6F67FD E7A59B33513F7E8942FB20640B9D4A94 D9BDA6F1F384A39DEDD5BB28DEEDE3E5 1DB1B814BEF67F819118F83BA5F51104 E22F89867D0490644E1284827FD876F1 2B2D1E42020E7BFA0267F0833DB15413 182EBA42D25C525DD38B96D68B18719D 406A2F335F8FCD0111C492D6D1283374 7FAC3F28FE500200A37DDE27DD2CD8365E53A44D 458FAEC707B84FFD0D1DC60F93EB8DEE 86408CDE4D4ACC01DEF41CA8F3F5530C A67C07C60F80B373EB00954BBA8DCA2F EBCC73374855DCACE34A584F835443B1 4CF61BB8D50232315B8423C48609B4F9 4300AA85ACDD37AE4833CF7262FD78F9 E9CF5591CCB137168CCB51C232D0993F B913EBF38428BA714C7C443B5434BFF6 EBC2649CD52BE10D91AFEBA29E8FF1CA E7905E05250450E9D4A82D3220A94DE8 CEDA2F5B30E5AA1EE5FD30B4F8411D98 1BFD7322650801490EBC4B06942493DB B2E3D61AEF428ED963E1696C26420224 65D2E457FDF970FC54A168483B26E457 DA08A3FA17BC1754E603CDF717C637C2 A4716E868E98DA8CEE3C1134620C12A0 A0129F136CD1E1F44AC1F6E9DBAB69A8 DE5C1E981204955EE6D147CF122BC6D9 693CCC31C8462B20512308525C42A244 4B0023F31F8491992111D1F70D15B060 BC129A98C48B1D3CF782F0808D2479CA 42164FFB92FD2C2DCFEB56E4953ECB49 6829E6FFBA59FFF5D8A66E4382D3AF89 BCA5143834EA4B2C30C7DE8D65A32FA6 390D57F7D502578FBA7616200D5B2E5B 12A899B8EB10C9EF4835C3B5ED95427F 063F0AFD1963ADF65CBC1FEC55CC2822 DDDE4A7EEBDCAD6EABADB0CF51A3D0FA 5A141B31BBE575187E6D7CCC57977D2E 7D86AA505F10F50034586375DCF22B9C 91B5B4B01151971E20E101E35418DF6C 1E896CBCDF6177FF9003B0DF2175F7A4 DC61C6FD7A7654AE504CDCA01A22314B 88D54A1BA4D6D490ABFA71DA42893CD8 2845FE55DAC268B2001D2B07AF47B509 2F2B4A7DFDD098480D53419D52DD9342E6E3F7E1 See Decomposition of encrypted_answer »
@@ -562,13 +562,13 @@ server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:s - + - + @@ -580,19 +580,19 @@ server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:s - + - + - + @@ -601,34 +601,34 @@ server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:s

4.2. generate diffie-helman parameters

First, generate a secure random 2048-bit number b:

-
b = 92549D6F1A98796EC18C878741CE8F934640D692BA5648C3A63127F55C069BE9DE4D77D4AB0E9AF97E61B4BD51FB05BC83FB4E84221457BA9BCA6472F3B2BF8DA157E881B60E1AFF73C2D818CDFDFE8D3D95EFF70B9D16643C0D24ACC7908F670EA7313453CEA05BBE32A58419E8EA4731E4070355BEFFB1713E0B504148B5F39AB39D2AA9E22DF6027FCF1CB26ACF796B96775CD2850F4F038736E71A901222CB7FE8F43B07E711CCE456A605B3F4E9B79C52F668FDF2826C0FF67A08989B7C14BD36A2868A6320CEDF8C158FD28FC20D5C68FB8CACEADE0EDF7C2BE68C06B5EF4E510F0DE25A9BE157A9D7DA89DE03E154DCE564099B8038ECEB5A70BFA549
+
b = E462A59CDB5CF30663768339228829F5626875E6C4EBD090CED99DAD8E0E8E4FEB63929E982673D12CDF5F5B8C80672DB6631246A7A794EFB29AA9DBCED0750557DE4E552937EF797184693AF0691AB79A66F6A093F8EAD7B3FA9DE8A3672CD2D6DFED1AD93A86A2FE073534FC2C719C2DD1692E5D65A481F312019ADF474503032DA7C24580FB95788EF9D4F222512619FE047D100E96F73E568276D4458B507DA463B19F691BC25571C3E59837ABA05AC5EBBD390126A80E8CCA94661F1BCABEF4A88A646C3D1C0C0CCAC3F5B1471AC5571043094EC328D304A377998992FAA0C46EDADD33FD09C9C727A9583B38192A316BB58C45512DB6C8848904ED7375

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

-
g_b = 62A00BD09764BFC4544FE958335D8AD80ED0536D7C929451F06735670F6C1C478B8899C91474F5C662E3564B0BC34A9BFDC4E91939D89FB3692BF10D8D32C48715C061E8D6D22B08CE5A487D2F4526356DBFCED0CB6E56E010D71FA602104643271B29F3167E2DF33EDFDFFE65B4BA27FA6902BEC9093E4D3FF574779341104DDB8AB74AB4651562A9EA9287795D7EF42E11EBC829EA997D12813A73B502FAC2F5153C136069AAB54206AB80E7A9CCDD49A8799390CA0E07932EB986FDA47F6C60C02A9FB8D59D00CCDB55B82608C807B3554F4CA6132611BFEDB5B3C55D1109847C4D49A313A5C36E6F3D0086A48356A01A9AC81A9F90671CAC0277EB3E5631
+
g_b = 036B95C4619BE45DA07482AFF85439E8982344A97F94B044DB2F5626A6E7E3B4CDF5B817A1BF5F5E36A528EB21CBD61E8FE69C4DCF4F5BF11C0E6BE0A9097449023527DBCBC767EBDBE443B88D6770094723F99F39F64CA2991AC9E5E2F470BB52068164E846F5E786B4968BB35940B4D41C9F754C85C4E40FC17E90D076D42F55154E0586F0EC67CFD6E8234B82F5D50420EFC121D8EF1D7970B7FC3A7C48334D7339566A462CDC6D67AFCFE643CEA20F1C2EFE09D9E8C5B43D5AC667157601C21DA10DC60357B7496C880E1E172EABF165316A023C1964E01B2AA123927F0C1212558B872E9EC5C7F7E4F6E82F657BF36BEE66D3C311E9342FC1BBE40BCAF0

4.3 generation of encrypted_data

Generated payload (excluding transport headers/trailers):

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

Payload serialization:

client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
nonce 4, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 20, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Value received from server in Step 2
dh_prime 40, 260FE000100C71CAEB9C6B1C9048E6C522F 70F13F73980D40238E3E21C14934D037 563D930F48198A0AA7C14058229493D2 2530F4DBFA336F6E0AC925139543AED4 4CCE7C3720FD51F69458705AC68CD4FE 6B6B13ABDC9746512969328454F18FAF 8C595F642477FE96BB2A941D5BCD1D4A C8CC49880708FA9B378E3C4F3A9060BE E67CF9A4A4A695811051907E162753B5 6B0F6B410DBA74D8A84B2A14B3144E0E F1284754FD17ED950D5965B4B9DD4658 2DB1178D169C6BC465B0D6FF9CA3928F EF5B9AE4E418FC15E83EBEA0F87FA9FF 5EED70050DED2849F47BF959D956850C E929851F0D8115F635B105EE2E4E15D0 4B2454BF6F4FADF034B10403119CD8E3 B92FCC5BFE000100C71CAEB9C6B1C9048E6C522F 70F13F73980D40238E3E21C14934D037 563D930F48198A0AA7C14058229493D2 2530F4DBFA336F6E0AC925139543AED4 4CCE7C3720FD51F69458705AC68CD4FE 6B6B13ABDC9746512969328454F18FAF 8C595F642477FE96BB2A941D5BCD1D4A C8CC49880708FA9B378E3C4F3A9060BE E67CF9A4A4A695811051907E162753B5 6B0F6B410DBA74D8A84B2A14B3144E0E F1284754FD17ED950D5965B4B9DD4658 2DB1178D169C6BC465B0D6FF9CA3928F EF5B9AE4E418FC15E83EBEA0F87FA9FF 5EED70050DED2849F47BF959D956850C E929851F0D8115F635B105EE2E4E15D0 4B2454BF6F4FADF034B10403119CD8E3B92FCC5B 2048-bit prime, in big-endian byte order, to be checked as specified in the auth key docs
g_a 300, 260FE0001005568999B78C1DEE130E604AA 3F04B39C6E618F5E29AE265EB15931D2 3CAF966934538F16D98FD30ADD5BDC39 4C88102285991AF079555E373E95DF41 D02C2B558D77B546688E46D23A5935F6 F3480B4395EBD292DC057E726664F6EB 3D913A99B88F67E6D76886D1594E8434 85328A67EFBCE99DE6CB43D0B91F471F C8B24AA16FB609A9F69D4A93ED8A4787 AF6494B57F90ECA28F6324AA070839AC 411B1F6898987251DD737ECFCD79E3E6 0919DBAD52BE0DB8D0BEBFADB5149485 1E2762E720D03A234AD5A76759EB561F F925F0AD72E2993346BF5989518DE3A3 38C90343978A387851FDB7EDF22DDC09 235CC51B23EEE155F8BB2BC8B20642D7 2203A986FE000100090D878A770D8BC39FD66502 CC47E29AAEFFD127DD1511907034FF46 7627A17620B6C321E5C04FD3D4CE55D5 F0EF8614F889F402EBFC703E499451EC 4269F1AB168857EE0738DB48F7AE0422 BCB96E131D27DA0F07DED601A59A3E2C 1F90F4DFC9A2E49244065B7859232DF5 650F0FF26640C523E69F34DB383818BC B826A12FEFB9847C5911A6230D16FDF6 C379BF0C7DE22CCD57D5DCF6A74AAC3F 8E888BA67EAD2C7FA619729BF0E472B3 8EC6B9AE4508A6BAE520D96611EC65DD AF4A95CED216B996A1EB5089AF75E24F 5FD2E55E7169A36C589FA131512BC949 667CBD73B7975D6144A9E38B0CB13FD9 3C06EDA84F843CF583718817E154D8A508B7F266 g_a diffie-hellman parameter
server_time 560, 4DB8E9C64 (1687981787 in decimal)14909C64 (1687982100 in decimal) Server time
@@ -650,25 +650,25 @@ server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:s - + - + - + - + @@ -681,31 +681,31 @@ AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv) = 928A4957D0463B525

5. request set_client_dh_params

Sent payload (excluding transport headers/trailers):

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

Payload serialization:

set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
nonce 4, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 20, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Value received from server in Step 2
g_b 36, 260FE00010062A00BD09764BFC4544FE958 335D8AD80ED0536D7C929451F0673567 0F6C1C478B8899C91474F5C662E3564B 0BC34A9BFDC4E91939D89FB3692BF10D 8D32C48715C061E8D6D22B08CE5A487D 2F4526356DBFCED0CB6E56E010D71FA6 02104643271B29F3167E2DF33EDFDFFE 65B4BA27FA6902BEC9093E4D3FF57477 9341104DDB8AB74AB4651562A9EA9287 795D7EF42E11EBC829EA997D12813A73 B502FAC2F5153C136069AAB54206AB80 E7A9CCDD49A8799390CA0E07932EB986 FDA47F6C60C02A9FB8D59D00CCDB55B8 2608C807B3554F4CA6132611BFEDB5B3 C55D1109847C4D49A313A5C36E6F3D00 86A48356A01A9AC81A9F90671CAC0277 EB3E5631FE000100036B95C4619BE45DA07482AF F85439E8982344A97F94B044DB2F5626 A6E7E3B4CDF5B817A1BF5F5E36A528EB 21CBD61E8FE69C4DCF4F5BF11C0E6BE0 A9097449023527DBCBC767EBDBE443B8 8D6770094723F99F39F64CA2991AC9E5 E2F470BB52068164E846F5E786B4968B B35940B4D41C9F754C85C4E40FC17E90 D076D42F55154E0586F0EC67CFD6E823 4B82F5D50420EFC121D8EF1D7970B7FC 3A7C48334D7339566A462CDC6D67AFCF E643CEA20F1C2EFE09D9E8C5B43D5AC6 67157601C21DA10DC60357B7496C880E 1E172EABF165316A023C1964E01B2AA1 23927F0C1212558B872E9EC5C7F7E4F6 E82F657BF36BEE66D3C311E9342FC1BBE40BCAF0 pow(g, b) mod dh_prime
retry_id 296, 80000000000000000 (0 in decimal)0000000000000000 Equal to zero at the time of the first attempt; otherwise, it is equal to auth_key_aux_hash from the previous failed attempt (see Item 9).
@@ -727,7 +727,7 @@ AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv) = 928A4957D0463B525 - + @@ -745,19 +745,19 @@ AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv) = 928A4957D0463B525 - + - + - + @@ -766,17 +766,17 @@ AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv) = 928A4957D0463B525

6. auth key generation

The clients computes the auth_key using formula g^{ab} mod dh_prime:

-
auth_key = 6589E74DF4D3A14DC49CEB853CE31AE5BB7661A344246B57754F266BD2AC21CF48AE77153BE3B478ACE8D9892D5B96F22A7B85D66FCAF031796FA850C47597F6EB0A9031820AC3C39AF15AC792D996952181E0EA3E5B833D08E07D265BCFCDB22510581432417877FFE184FDF726F2C3014645CDD580C76CF832306C378FE8521736C2998DBFD7BAE7405FFE7E680E2742971158A3A8BEF27D61E74F1FA91508368C792A69AF71E512D4E8680E66CC1F58240504BF590E03CDAD8923CC65DCB4A11D6B337C70CC5DE31A53D0BF4D03FD57EA6FFA569B5A22FFF99CB7C5DC5416DD0DC112C4664132E68F684542CD0F621D0502AD1F01E84726431418B915B956
+
auth_key = 550EABB544BBED3192BDC4914FF864B914BABC8026A4F9E9AD82D6DA35BC8EE141A04978963F9704191F93FDE7C138911610390797D66BAD3EAE14E891EE8F2A5AF52FC392FE98C0EE64DD557179C5D92919C5BE6B7FF5B394A1486C09F2F9BA27484021BAE0B3D65A3BC37CD7086DC58BD9B85B066D971C5BF107CB229700D9A05559D3B2547152124EAA507C4B845D8AD4138F66B671B556A5F686DCC2A5BD4C29352ACD1BA090F8D948FD9A29818CF77EB4C61AC3E9F0DE55B3FEFB89BCDECFED1440E443368F2AC98735FC50448870CD15E9E54015AF11B9DEC1EB3B642A25E396F22C580EF42F7B5D4F41D24C23A412657DB5A203D20EFA29A963C6F1C8

7. reply set_client_dh_params_answer

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 8C D5 ED DB 8E 9C 64
-0010 | 6C 00 00 00 34 F7 CB 3B B6 DC 10 51 90 17 31 08
-0020 | 76 D2 47 AC A4 B3 55 10 43 99 A0 E5 D8 AA B5 BD
-0030 | CD 30 8D A2 8E 00 47 19 B5 61 52 2A C5 74 D6 98
-0040 | A6 F9 64 2B 95 C9 E6 E2
+
0000 | 00 00 00 00 00 00 00 00 01 04 20 8A 14 90 9C 64
+0010 | 74 00 00 00 34 F7 CB 3B A1 F9 B9 D5 B1 C7 24 55
+0020 | 20 11 1F B7 30 1C 95 C0 70 EA 28 24 B9 2F 73 9F
+0030 | 4C 26 45 7B 02 94 8D CA 87 FA CB 12 63 11 10 7E
+0040 | CB 62 4A C0 8D 59 55 B4

Payload serialization:

dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
 dh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer;
@@ -800,13 +800,13 @@ dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = S
 
- + - + @@ -818,19 +818,19 @@ dh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = S - + - + - +
message_id 8, 804000000DB8E9C640000000014909C64 Exact unixtime*2^32, +(4*N) if N messages with the same message ID were already generated
nonce 24, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 40, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Value received from server in Step 2
encrypted_data 56, 340FE50010026D0EF6C26C9522946719512 FBD3F628D3ED3B0BA3AE96590C0FD966 6FE6D97C703BFE0CBC965F3FB01F870B A6C4183896F1E20FDD2BB707AB713E35 84D20A60960DCE2F9319E578466FDA6D F62DA688C23F159DEE4437A5534B7E74 58FE8AA71323CC7EC85E7CC9C23C7113 E7105AFA198DEBCA421FEA1870B9151C C7DB174A123196B089C2489DD4C8AA77 3F3394074D96A459A879AD3609A8BAEE 0F4C4F5EEAB98234DA38FD85CCA4C42F 0EA9D74FE305A911EDF8D01E3038A5F9 C2D9D9202CB81EC65F6B48FABD690379 E94619610B2B15BF38F39016E91626BE 3BE68E84ABE81732AF7B122592C3F0E9 38CC38B18FB6C6501987C54133329592 929E271413FB9924C99CC2583BC053DC 58D7730BDB4A53703F520BF99CE94A60 378D07266B9D28962D158D1CE9D1D458 0668B48A27E252F309AF598D3E39FA12 1E8DD42A81EBFD11F45E07C962BDD88C A5419B04FE5001003ECBCE8397309DA1845B9388 3B11992190FFB9C552265C262C6277A3 0E61862BC5450D6721781F07CEAD8167 FEE4BE784E4AAFF573D9DD31ED4C7648 DBD5A93CF2906EBBDE0CE8F2F52FD681 3CC3F863469CF0BEC77AF8A72B101AD6 BB93001A20C9E8F0EFA0AA458E84A0F2 BC74D1BE4D7ABBBBEC9AB69BDAC57EB7 83915117168353787BB6B673B43CBC33 FC0B280ACFE72E1BEA4DB7ECF6D6307C CCFB0F0C066868A382ACEAC68EA4AB0B 313A16EFDE55C34BF4F119E7F0EE5BD7 792FC85223C199AA7944EC8811940DCE 470CF6A1522335EBBA78EDF25975FE0E BD0633E01DEB6C8701A6BFF19AAB13BB 3E1E4C1743780412456E0133B370DC70 852063822002DE0050089E3749E5E62F D3B98CC040A160454A8156E6765B1C7B 22D36703A3ACD46BC50AF373C2F0CC4A 1C31453025D9A8704552BA9FE5E7F319 85B0548AB39333F9DBE93CC083FFBD09BA66DA06 Encrypted client_DH_inner_data, generated as follows
message_id 8, 8018CD5EDDB8E9C640104208A14909C64 Exact unixtime*2^32, +(4*N) if N messages with the same message ID were already generated
message_length 16, 46C000000 (108 in decimal)74000000 (116 in decimal) Message body length
nonce 24, 16B6DC10519017310876D247ACA4B35510A1F9B9D5B1C7245520111FB7301C95C0 Value generated by client in Step 1
server_nonce 40, 164399A0E5D8AAB5BDCD308DA28E00471970EA2824B92F739F4C26457B02948DCA Value received from server in Step 2
new_nonce_hash1 56, 16B561522AC574D698A6F9642B95C9E6E287FACB126311107ECB624AC08D5955B4 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.