diff --git a/data/web/corefork.telegram.org/api/layers.html b/data/web/corefork.telegram.org/api/layers.html
index a50ff9b669..84804456cd 100644
--- a/data/web/corefork.telegram.org/api/layers.html
+++ b/data/web/corefork.telegram.org/api/layers.html
@@ -46,7 +46,7 @@
Below you will find information on schema changes. For more details on the use of layers, see Invoking API methods.
@@ -77,7 +77,7 @@
message_id |
8, 8 |
-281E0B006F7EA266 |
+802201001C80A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Random number |
@@ -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 04 D5 D9 6F 7E A2 66
-0010 | BC 00 00 00 63 24 16 05 92 63 8E CF 53 C6 21 AC
-0020 | 5A 56 9F A7 D8 24 8D D2 81 32 9E 3B 6E D3 C9 C1
-0030 | 4C F7 5A 8A 5D 4F 9E 5C 08 10 69 D1 E8 78 0E 37
-0040 | 25 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
+0000 | 00 00 00 00 00 00 00 00 01 A4 B3 F5 1C 80 A2 66
+0010 | 50 00 00 00 63 24 16 05 83 B0 58 5B 19 7D 96 F7
+0020 | BF 9A D3 67 84 FA 35 A1 13 31 71 3E 97 3C FD 9A
+0030 | AA 92 CB F4 6F 51 58 C0 08 16 34 14 91 F1 0D F2
+0040 | 47 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 @@
message_id |
8, 8 |
-0104D5D96F7EA266 |
+01A4B3F51C80A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-BC000000 (188 in decimal) |
+50000000 (80 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Server-generated random number |
pq |
56, 12 |
-081069D1E8780E3725000000 TL byte deserialization => bigendian conversion to decimal => 1182707173538281253 |
+0816341491F10DF247000000 TL byte deserialization => bigendian conversion to decimal => 1599926384670405191 |
Single-byte prefix denoting length, an 8-byte string, and three bytes of padding |
@@ -208,22 +208,22 @@
Proof of work
3) Client decomposes pq into prime factors such that p < q.
-pq = 1182707173538281253
-Decompose into 2 prime cofactors p < q
: 1182707173538281253 = 1078298003 * 1096827751
-p = 1078298003
-q = 1096827751
+pq = 1599926384670405191
+Decompose into 2 prime cofactors p < q
: 1599926384670405191 = 1191256111 * 1343058281
+p = 1191256111
+q = 1343058281
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 10 69 D1 E8 78 0E 37 25 00 00 00
-0010 | 04 40 45 85 93 00 00 00 04 41 60 43 67 00 00 00
-0020 | 92 63 8E CF 53 C6 21 AC 5A 56 9F A7 D8 24 8D D2
-0030 | 81 32 9E 3B 6E D3 C9 C1 4C F7 5A 8A 5D 4F 9E 5C
-0040 | 38 DD 22 3E CA ED DA E7 C5 BB FA 37 3B 0E BB 43
-0050 | 1E 09 F4 94 D6 DF BC DC DF 42 A4 B7 9A E8 53 5D
+0000 | 95 5F F5 A9 08 16 34 14 91 F1 0D F2 47 00 00 00
+0010 | 04 47 01 20 2F 00 00 00 04 50 0D 71 69 00 00 00
+0020 | 83 B0 58 5B 19 7D 96 F7 BF 9A D3 67 84 FA 35 A1
+0030 | 13 31 71 3E 97 3C FD 9A AA 92 CB F4 6F 51 58 C0
+0040 | 79 68 97 19 BE 03 14 A2 99 5F DE 1F BA 86 20 98
+0050 | 1A EB 50 99 10 BE 5F 92 5C 93 98 65 5D BB 9D 33
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 = 1096827751
pq |
4, 12 |
-081069D1E8780E3725000000 TL byte deserialization => bigendian conversion to decimal => 1182707173538281253 |
+0816341491F10DF247000000 TL byte deserialization => bigendian conversion to decimal => 1599926384670405191 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-0440458593000000 TL byte deserialization => bigendian conversion to decimal => 1078298003 |
+044701202F000000 TL byte deserialization => bigendian conversion to decimal => 1191256111 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-0441604367000000 TL byte deserialization => bigendian conversion to decimal => 1096827751 |
+04500D7169000000 TL byte deserialization => bigendian conversion to decimal => 1343058281 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-38DD223ECAEDDAE7C5BBFA373B0EBB43 1E09F494D6DFBCDCDF42A4B79AE8535D |
+79689719BE0314A2995FDE1FBA862098 1AEB509910BE5F925C9398655DBB9D33 |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1096827751
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 = 955FF5A9081069D1E8780E37250000000440458593000000044160436700000092638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5C38DD223ECAEDDAE7C5BBFA373B0EBB431E09F494D6DFBCDCDF42A4B79AE8535D02000000
-random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A88255BD4D45DA41CA3C1649B54EB3856D8378D6F98DE38562C5EBEC143F2D64B558D2476578B8F406DB632774296B96CF0B518F3E7BAF90336BF6DF6184EE92
+data = 955FF5A90816341491F10DF247000000044701202F00000004500D716900000083B0585B197D96F7BF9AD36784FA35A11331713E973CFD9AAA92CBF46F5158C079689719BE0314A2995FDE1FBA8620981AEB509910BE5F925C9398655DBB9D3302000000
+random_padding_bytes = C8E4576EF64B3977CB5C690948A7B8F9372499FEA2EAAB77F1ECEAA0BCDC116018A90D87C362454B47BA9DD16F8B02F31219A142AAFE6147C39DA25F4BFF755818B6A817316741BDC3B244C246FCF3CFF64C7DC544F77E45DD8D7066
And this is the output:
-encrypted_data = 3F5C01340DB35237AAAD2C0BAEF9EA263633CB2CE3B6138BB2E90BA40A9D1604ED43BA2B309F74CD9487FB0FD2288211651B6F3E10A04164E3D24F964832F83CAB5D43BDFC5D3C3F6F21B517B3ED63307A2087BA057FF0A15BC110781D6DB73F17DA58D47373A3BB24D3946D126B78D0166423EDF10E39B51228C8EDB6F8B68CFD92D66A3696C9F3FF6ECAFA2F1E8BA4EC0F7E38715B77BBC9F38D231D1BEF3529E1698922C9332877BC42C929D4BFDD492108953E805EF55E44CEE939D8F759BA673FED970382500672EC7B0D5DCDD9D42BE029C20B05C248775DF37CF2EA86E3CCC1A0968C93F4CE3418A3490118411EA877EA2E8B0BE7FB3144FFEFC4F003
+encrypted_data = 4F3F03A204A2F836A9E9DEEC0BD637AB712E6BD26076D3658D029D5FC9BD6D5037242603AA51BC288DD35C82DC27F10F34DC197D652A4D563B81B3AC6485A1050783CC418E7B496C61CFCBF379A51614F50F9C6A79F4DA9A2FAAAFD6C630F53565DE6DA19F27E60791871155599876738A476490CFBDA7ED00726747C98428C14F6BA3C3684080244E986AAF750C6515143DB0749BE4F3EFCD5F2E64CEBD5678FB3C93B484D272E9CFBEC8D7E752B81D16DA6C5C241A1A53E95FA086F1B5D7D9AE302E88BFF11AA724E930A27453D3110D64614443FDE0DE832D9F794B3E731D8A063AA2B23FAAA30BA22C2DFFDA63D5A8CB7C325ABE85DFE610FE3288B9CFA2
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 2C 1E 0B 00 6F 7E A2 66
-0010 | 40 01 00 00 BE E4 12 D7 92 63 8E CF 53 C6 21 AC
-0020 | 5A 56 9F A7 D8 24 8D D2 81 32 9E 3B 6E D3 C9 C1
-0030 | 4C F7 5A 8A 5D 4F 9E 5C 04 40 45 85 93 00 00 00
-0040 | 04 41 60 43 67 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 3F 5C 01 34 0D B3 52 37 AA AD 2C 0B
-0060 | AE F9 EA 26 36 33 CB 2C E3 B6 13 8B B2 E9 0B A4
-0070 | 0A 9D 16 04 ED 43 BA 2B 30 9F 74 CD 94 87 FB 0F
-0080 | D2 28 82 11 65 1B 6F 3E 10 A0 41 64 E3 D2 4F 96
-0090 | 48 32 F8 3C AB 5D 43 BD FC 5D 3C 3F 6F 21 B5 17
-00A0 | B3 ED 63 30 7A 20 87 BA 05 7F F0 A1 5B C1 10 78
-00B0 | 1D 6D B7 3F 17 DA 58 D4 73 73 A3 BB 24 D3 94 6D
-00C0 | 12 6B 78 D0 16 64 23 ED F1 0E 39 B5 12 28 C8 ED
-00D0 | B6 F8 B6 8C FD 92 D6 6A 36 96 C9 F3 FF 6E CA FA
-00E0 | 2F 1E 8B A4 EC 0F 7E 38 71 5B 77 BB C9 F3 8D 23
-00F0 | 1D 1B EF 35 29 E1 69 89 22 C9 33 28 77 BC 42 C9
-0100 | 29 D4 BF DD 49 21 08 95 3E 80 5E F5 5E 44 CE E9
-0110 | 39 D8 F7 59 BA 67 3F ED 97 03 82 50 06 72 EC 7B
-0120 | 0D 5D CD D9 D4 2B E0 29 C2 0B 05 C2 48 77 5D F3
-0130 | 7C F2 EA 86 E3 CC C1 A0 96 8C 93 F4 CE 34 18 A3
-0140 | 49 01 18 41 1E A8 77 EA 2E 8B 0B E7 FB 31 44 FF
-0150 | EF C4 F0 03
+0000 | 00 00 00 00 00 00 00 00 E4 9E 03 00 1D 80 A2 66
+0010 | 40 01 00 00 BE E4 12 D7 83 B0 58 5B 19 7D 96 F7
+0020 | BF 9A D3 67 84 FA 35 A1 13 31 71 3E 97 3C FD 9A
+0030 | AA 92 CB F4 6F 51 58 C0 04 47 01 20 2F 00 00 00
+0040 | 04 50 0D 71 69 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 4F 3F 03 A2 04 A2 F8 36 A9 E9 DE EC
+0060 | 0B D6 37 AB 71 2E 6B D2 60 76 D3 65 8D 02 9D 5F
+0070 | C9 BD 6D 50 37 24 26 03 AA 51 BC 28 8D D3 5C 82
+0080 | DC 27 F1 0F 34 DC 19 7D 65 2A 4D 56 3B 81 B3 AC
+0090 | 64 85 A1 05 07 83 CC 41 8E 7B 49 6C 61 CF CB F3
+00A0 | 79 A5 16 14 F5 0F 9C 6A 79 F4 DA 9A 2F AA AF D6
+00B0 | C6 30 F5 35 65 DE 6D A1 9F 27 E6 07 91 87 11 55
+00C0 | 59 98 76 73 8A 47 64 90 CF BD A7 ED 00 72 67 47
+00D0 | C9 84 28 C1 4F 6B A3 C3 68 40 80 24 4E 98 6A AF
+00E0 | 75 0C 65 15 14 3D B0 74 9B E4 F3 EF CD 5F 2E 64
+00F0 | CE BD 56 78 FB 3C 93 B4 84 D2 72 E9 CF BE C8 D7
+0100 | E7 52 B8 1D 16 DA 6C 5C 24 1A 1A 53 E9 5F A0 86
+0110 | F1 B5 D7 D9 AE 30 2E 88 BF F1 1A A7 24 E9 30 A2
+0120 | 74 53 D3 11 0D 64 61 44 43 FD E0 DE 83 2D 9F 79
+0130 | 4B 3E 73 1D 8A 06 3A A2 B2 3F AA A3 0B A2 2C 2D
+0140 | FF DA 63 D5 A8 CB 7C 32 5A BE 85 DF E6 10 FE 32
+0150 | 88 B9 CF A2
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;
@@ -345,7 +345,7 @@ random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A
message_id |
8, 8 |
-2C1E0B006F7EA266 |
+E49E03001D80A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A
nonce |
24, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Value received from server in Step 2 |
p |
56, 8 |
-0440458593000000 TL byte deserialization => bigendian conversion to decimal => 1078298003 |
+044701202F000000 TL byte deserialization => bigendian conversion to decimal => 1191256111 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-0441604367000000 TL byte deserialization => bigendian conversion to decimal => 1096827751 |
+04500D7169000000 TL byte deserialization => bigendian conversion to decimal => 1343058281 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A
encrypted_data |
80, 260 |
-FE0001003F5C01340DB35237AAAD2C0B AEF9EA263633CB2CE3B6138BB2E90BA4 0A9D1604ED43BA2B309F74CD9487FB0F D2288211651B6F3E10A04164E3D24F96 4832F83CAB5D43BDFC5D3C3F6F21B517 B3ED63307A2087BA057FF0A15BC11078 1D6DB73F17DA58D47373A3BB24D3946D 126B78D0166423EDF10E39B51228C8ED B6F8B68CFD92D66A3696C9F3FF6ECAFA 2F1E8BA4EC0F7E38715B77BBC9F38D23 1D1BEF3529E1698922C9332877BC42C9 29D4BFDD492108953E805EF55E44CEE9 39D8F759BA673FED970382500672EC7B 0D5DCDD9D42BE029C20B05C248775DF3 7CF2EA86E3CCC1A0968C93F4CE3418A3 490118411EA877EA2E8B0BE7FB3144FF EFC4F003 |
+FE0001004F3F03A204A2F836A9E9DEEC 0BD637AB712E6BD26076D3658D029D5F C9BD6D5037242603AA51BC288DD35C82 DC27F10F34DC197D652A4D563B81B3AC 6485A1050783CC418E7B496C61CFCBF3 79A51614F50F9C6A79F4DA9A2FAAAFD6 C630F53565DE6DA19F27E60791871155 599876738A476490CFBDA7ED00726747 C98428C14F6BA3C3684080244E986AAF 750C6515143DB0749BE4F3EFCD5F2E64 CEBD5678FB3C93B484D272E9CFBEC8D7 E752B81D16DA6C5C241A1A53E95FA086 F1B5D7D9AE302E88BFF11AA724E930A2 7453D3110D64614443FDE0DE832D9F79 4B3E731D8A063AA2B23FAAA30BA22C2D FFDA63D5A8CB7C325ABE85DFE610FE32 88B9CFA2 |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 30 CA 95 70 7E A2 66
-0010 | A8 02 00 00 5C 07 E8 D0 92 63 8E CF 53 C6 21 AC
-0020 | 5A 56 9F A7 D8 24 8D D2 81 32 9E 3B 6E D3 C9 C1
-0030 | 4C F7 5A 8A 5D 4F 9E 5C FE 50 02 00 4A 6A 11 FB
-0040 | 97 0A C5 BB 6D 54 76 57 BF 18 6B CF 62 9E EA 5C
-0050 | 2E 48 93 F2 62 79 D6 26 75 C1 CB FB 1F 45 67 73
-0060 | 3F 41 4A D6 61 A9 C5 73 1B A9 CD E1 F9 95 79 F3
-0070 | 1E 3B 0F E9 69 A8 40 15 C5 93 8E 51 C0 6E E5 32
-0080 | 9A E9 3E 5A E3 30 3B D9 85 02 91 86 C3 C5 4E 80
-0090 | AE 84 25 5F 1A E2 88 15 02 41 87 D2 4E 72 10 1F
-00A0 | 33 2C 42 94 68 4D 5E 10 DB E4 1B 51 EE CD 54 CF
-00B0 | DC 71 C2 94 AF F3 76 E4 B7 8D D8 89 E6 A2 E8 5B
-00C0 | 02 9B EE 34 EC 99 20 28 74 74 70 AD 85 28 E4 73
-00D0 | F0 4B 6D BE 47 BF 58 0C 65 5A CA 44 A6 30 A2 95
-00E0 | 61 03 42 7B F3 3D 34 39 D8 70 F8 86 65 73 6E 65
-00F0 | 04 B8 A2 14 A6 BE 1C F6 72 57 4D B1 98 02 68 BC
-0100 | 78 3F 22 B8 34 39 48 8B 33 52 F3 F9 EA 90 CD A2
-0110 | 2A B2 00 47 BE 70 3E 3F 2F 42 10 39 A2 28 53 74
-0120 | 06 19 C1 91 9B FE 77 D3 BA 43 CC 55 10 05 E5 0E
-0130 | 21 8B 9C 5E C9 9E 8B EE B1 FD D5 02 74 95 E9 2D
-0140 | 49 8A AF 0A 46 32 5B BD D9 52 BB A8 4E CF 87 58
-0150 | 42 F2 A5 98 08 25 69 4E 5C 41 F3 A5 CB E6 F6 06
-0160 | DA 68 19 99 53 F2 36 E3 66 B1 B0 5C FE 33 80 E6
-0170 | E4 0B 3F 78 26 02 D6 B1 65 FE EA 28 E8 9A D2 BA
-0180 | 4B B1 43 BA 9C E8 92 2C 6F 97 0C 99 4D 7F 8F 89
-0190 | 97 65 00 D5 41 FF 1B BB 2B CD 7D 3C AE 73 FC 9E
-01A0 | AE 6E 40 F6 79 10 11 5F BD 7D 36 98 34 D1 31 BD
-01B0 | 91 53 FC 82 36 CD 6C E1 E3 2E 65 B9 FA 4F 2C 15
-01C0 | E2 79 63 57 6E 29 8F 4F D9 64 25 2F 4B E3 D5 80
-01D0 | 89 88 6C 28 1C 8E F9 F6 53 CB D5 7F 75 07 6E 57
-01E0 | E0 1D 79 23 6E A4 BE 9A E9 9F 16 86 A1 7F A7 EF
-01F0 | 83 84 47 F9 C6 C5 22 89 6C A1 CD 52 04 88 BA 05
-0200 | 4D 1E D2 BF 9C 28 37 AD F2 37 D4 44 D4 AD EF A3
-0210 | 97 90 D5 60 4E C9 20 E1 BD C3 86 2B A1 D6 C7 BC
-0220 | AE 8C E1 CA 78 9C 03 97 98 16 E3 63 39 A3 13 D2
-0230 | 10 18 0F 8C 9B DC E0 9A 17 7C 46 9D A9 13 30 18
-0240 | AF 50 20 43 10 72 E3 38 C7 FC E7 77 E7 6F BF E5
-0250 | 9E 01 40 F8 6E 13 E7 8A FF 7D 82 76 DB 16 79 40
-0260 | 4F 04 94 30 B1 A8 85 8B CA 07 E0 68 12 4F 2F AA
-0270 | 32 36 A7 66 07 B6 8A 86 28 40 59 23 8B 9A CE B6
-0280 | 97 9B 9C 1F 17 9E EF 5A 62 B8 4C C6
+0000 | 00 00 00 00 00 00 00 00 01 5C D3 9E 1D 80 A2 66
+0010 | DC 02 00 00 5C 07 E8 D0 83 B0 58 5B 19 7D 96 F7
+0020 | BF 9A D3 67 84 FA 35 A1 13 31 71 3E 97 3C FD 9A
+0030 | AA 92 CB F4 6F 51 58 C0 FE 50 02 00 25 EE 70 E7
+0040 | 96 2F B4 DC 4E 6E 8B 22 66 97 4D F9 65 0E EF 9C
+0050 | 64 2E C3 EF 9D 62 12 26 B3 49 25 5E 68 E8 EC DB
+0060 | 1E 28 33 39 3E 6C C7 5D 0D 08 59 9C 95 CA 3F 47
+0070 | 2E 7C FD B9 BF 91 7D 46 6B 9E 05 47 41 FB 26 36
+0080 | 8B D4 B3 EB AD 64 75 35 4B 06 83 5E 41 31 34 CA
+0090 | A6 BE D5 42 A3 CB 6E 16 AA F9 0C 12 C6 05 21 40
+00A0 | AD B9 DD 4B 0C 2A 92 7E A7 CB 7F 56 9E 85 06 B6
+00B0 | CD 22 B7 60 0A 99 00 2C B5 77 2F 4B B1 68 2E 1F
+00C0 | CD C1 18 72 27 53 91 F3 3D 5F 5F 43 62 92 4D ED
+00D0 | 68 02 07 10 8B AD 62 80 DE FE B1 EA 49 1C 09 0F
+00E0 | 6A 57 82 E0 C0 F5 29 1E 73 38 11 FF 24 A3 BA 4A
+00F0 | F4 66 55 6C A5 05 33 AE F1 1F 2B C9 EA 65 B9 25
+0100 | A7 D0 B2 5F DE B7 99 4C 0B B3 65 E4 26 BE 78 6C
+0110 | 92 7E 34 6E 80 B3 AD 7D C7 17 7C 3D 7F 03 7C 6B
+0120 | EF 0F CF B6 93 C9 13 06 A5 2D BD 9D A1 E7 BB 46
+0130 | EF 1C D4 56 05 81 0C 50 93 7E C2 E5 7B 55 2A 84
+0140 | 6E 32 E8 57 DF FE E8 51 A2 4A 39 B6 73 5E 71 F7
+0150 | 23 07 BD D7 85 16 60 EA 27 9B 89 5D A4 95 22 49
+0160 | 7F E4 1B 7E 10 74 8D 09 92 EC 05 81 B1 C1 DE 34
+0170 | 5F 31 00 5A 92 AC D1 9F A6 42 98 4F E0 43 7C 20
+0180 | 49 B1 C5 04 24 01 3F 1F D6 79 1D E0 4A 79 2F 85
+0190 | D0 01 88 7A 94 E4 07 FA 26 7A 56 91 62 8C 30 A7
+01A0 | CE D1 F2 11 DD 6C 86 D8 62 92 44 F7 42 D9 48 28
+01B0 | 6C C7 D5 DE 9B 05 9B 86 A1 59 64 B9 B8 BE 46 2F
+01C0 | 3F 26 9F 39 39 17 BD 39 C9 8E 0A 0E D4 67 A3 65
+01D0 | 59 FF 1F A5 FA 91 35 AA 98 B9 F9 49 70 91 01 AA
+01E0 | BB 36 0C 1F 67 13 F2 0F 51 C5 E0 B5 FF 6B BD 6D
+01F0 | 7B CE 3B 82 3C C8 86 E6 D9 FD 22 6F 40 3D 03 A6
+0200 | 65 84 4D 8A 37 6E 94 2F CA 68 1C 20 38 ED 7B 30
+0210 | 6D 42 09 B6 46 95 2C B8 0A B7 55 E8 D6 E3 49 0B
+0220 | E9 80 08 EA 89 8F 26 A6 8F 6D FC E2 09 D1 45 F5
+0230 | BA FA 67 AB 0D 91 E6 45 C3 79 B5 AE 2A 84 B5 7F
+0240 | 09 E0 81 F8 6E 9C 31 FD 64 52 04 81 57 00 69 A6
+0250 | 51 40 A1 B6 47 00 3B 0D B5 0B 39 EC C2 CB 04 FC
+0260 | 53 D4 37 D5 43 A0 9D F3 70 87 C3 B7 76 96 5C 91
+0270 | D6 8E D8 07 D7 6C 82 B1 56 FD 8D 78 54 29 7B E8
+0280 | 26 FA A5 73 3E 50 91 18 87 86 E5 14
Payload (de)serialization:
server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;
@@ -464,13 +464,13 @@ random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A
message_id |
8, 8 |
-0130CA95707EA266 |
+015CD39E1D80A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-A8020000 (680 in decimal) |
+DC020000 (732 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A
nonce |
24, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-FE5002004A6A11FB970AC5BB6D547657 BF186BCF629EEA5C2E4893F26279D626 75C1CBFB1F4567733F414AD661A9C573 1BA9CDE1F99579F31E3B0FE969A84015 C5938E51C06EE5329AE93E5AE3303BD9 85029186C3C54E80AE84255F1AE28815 024187D24E72101F332C4294684D5E10 DBE41B51EECD54CFDC71C294AFF376E4 B78DD889E6A2E85B029BEE34EC992028 747470AD8528E473F04B6DBE47BF580C 655ACA44A630A2956103427BF33D3439 D870F88665736E6504B8A214A6BE1CF6 72574DB1980268BC783F22B83439488B 3352F3F9EA90CDA22AB20047BE703E3F 2F421039A22853740619C1919BFE77D3 BA43CC551005E50E218B9C5EC99E8BEE B1FDD5027495E92D498AAF0A46325BBD D952BBA84ECF875842F2A5980825694E 5C41F3A5CBE6F606DA68199953F236E3 66B1B05CFE3380E6E40B3F782602D6B1 65FEEA28E89AD2BA4BB143BA9CE8922C 6F970C994D7F8F89976500D541FF1BBB 2BCD7D3CAE73FC9EAE6E40F67910115F BD7D369834D131BD9153FC8236CD6CE1 E32E65B9FA4F2C15E27963576E298F4F D964252F4BE3D58089886C281C8EF9F6 53CBD57F75076E57E01D79236EA4BE9A E99F1686A17FA7EF838447F9C6C52289 6CA1CD520488BA054D1ED2BF9C2837AD F237D444D4ADEFA39790D5604EC920E1 BDC3862BA1D6C7BCAE8CE1CA789C0397 9816E36339A313D210180F8C9BDCE09A 177C469DA9133018AF5020431072E338 C7FCE777E76FBFE59E0140F86E13E78A FF7D8276DB1679404F049430B1A8858B CA07E068124F2FAA3236A76607B68A86 284059238B9ACEB6979B9C1F179EEF5A 62B84CC6 |
+FE50020025EE70E7962FB4DC4E6E8B22 66974DF9650EEF9C642EC3EF9D621226 B349255E68E8ECDB1E2833393E6CC75D 0D08599C95CA3F472E7CFDB9BF917D46 6B9E054741FB26368BD4B3EBAD647535 4B06835E413134CAA6BED542A3CB6E16 AAF90C12C6052140ADB9DD4B0C2A927E A7CB7F569E8506B6CD22B7600A99002C B5772F4BB1682E1FCDC11872275391F3 3D5F5F4362924DED680207108BAD6280 DEFEB1EA491C090F6A5782E0C0F5291E 733811FF24A3BA4AF466556CA50533AE F11F2BC9EA65B925A7D0B25FDEB7994C 0BB365E426BE786C927E346E80B3AD7D C7177C3D7F037C6BEF0FCFB693C91306 A52DBD9DA1E7BB46EF1CD45605810C50 937EC2E57B552A846E32E857DFFEE851 A24A39B6735E71F72307BDD7851660EA 279B895DA49522497FE41B7E10748D09 92EC0581B1C1DE345F31005A92ACD19F A642984FE0437C2049B1C50424013F1F D6791DE04A792F85D001887A94E407FA 267A5691628C30A7CED1F211DD6C86D8 629244F742D948286CC7D5DE9B059B86 A15964B9B8BE462F3F269F393917BD39 C98E0A0ED467A36559FF1FA5FA9135AA 98B9F949709101AABB360C1F6713F20F 51C5E0B5FF6BBD6D7BCE3B823CC886E6 D9FD226F403D03A665844D8A376E942F CA681C2038ED7B306D4209B646952CB8 0AB755E8D6E3490BE98008EA898F26A6 8F6DFCE209D145F5BAFA67AB0D91E645 C379B5AE2A84B57F09E081F86E9C31FD 64520481570069A65140A1B647003B0D B50B39ECC2CB04FC53D437D543A09DF3 7087C3B776965C91D68ED807D76C82B1 56FD8D7854297BE826FAA5733E509118 8786E514 |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = 36BC32FCFD16542DAA475870C8D2B5F292D1528FA6DCA73533C04201A
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = 4A6A11FB970AC5BB6D547657BF186BCF629EEA5C2E4893F26279D62675C1CBFB1F4567733F414AD661A9C5731BA9CDE1F99579F31E3B0FE969A84015C5938E51C06EE5329AE93E5AE3303BD985029186C3C54E80AE84255F1AE28815024187D24E72101F332C4294684D5E10DBE41B51EECD54CFDC71C294AFF376E4B78DD889E6A2E85B029BEE34EC992028747470AD8528E473F04B6DBE47BF580C655ACA44A630A2956103427BF33D3439D870F88665736E6504B8A214A6BE1CF672574DB1980268BC783F22B83439488B3352F3F9EA90CDA22AB20047BE703E3F2F421039A22853740619C1919BFE77D3BA43CC551005E50E218B9C5EC99E8BEEB1FDD5027495E92D498AAF0A46325BBDD952BBA84ECF875842F2A5980825694E5C41F3A5CBE6F606DA68199953F236E366B1B05CFE3380E6E40B3F782602D6B165FEEA28E89AD2BA4BB143BA9CE8922C6F970C994D7F8F89976500D541FF1BBB2BCD7D3CAE73FC9EAE6E40F67910115FBD7D369834D131BD9153FC8236CD6CE1E32E65B9FA4F2C15E27963576E298F4FD964252F4BE3D58089886C281C8EF9F653CBD57F75076E57E01D79236EA4BE9AE99F1686A17FA7EF838447F9C6C522896CA1CD520488BA054D1ED2BF9C2837ADF237D444D4ADEFA39790D5604EC920E1BDC3862BA1D6C7BCAE8CE1CA789C03979816E36339A313D210180F8C9BDCE09A177C469DA9133018AF5020431072E338C7FCE777E76FBFE59E0140F86E13E78AFF7D8276DB1679404F049430B1A8858BCA07E068124F2FAA3236A76607B68A86284059238B9ACEB6979B9C1F179EEF5A62B84CC6
-tmp_aes_key = 9B2DB3607E4868AB72C98C0FAA723450C93F5D03DC01F3FD919CF5E015C70210
-tmp_aes_iv = 717BECED312445E965C2A534DFA9A07681B16D91A159E96CF2CB727F38DD223E
+encrypted_answer = 25EE70E7962FB4DC4E6E8B2266974DF9650EEF9C642EC3EF9D621226B349255E68E8ECDB1E2833393E6CC75D0D08599C95CA3F472E7CFDB9BF917D466B9E054741FB26368BD4B3EBAD6475354B06835E413134CAA6BED542A3CB6E16AAF90C12C6052140ADB9DD4B0C2A927EA7CB7F569E8506B6CD22B7600A99002CB5772F4BB1682E1FCDC11872275391F33D5F5F4362924DED680207108BAD6280DEFEB1EA491C090F6A5782E0C0F5291E733811FF24A3BA4AF466556CA50533AEF11F2BC9EA65B925A7D0B25FDEB7994C0BB365E426BE786C927E346E80B3AD7DC7177C3D7F037C6BEF0FCFB693C91306A52DBD9DA1E7BB46EF1CD45605810C50937EC2E57B552A846E32E857DFFEE851A24A39B6735E71F72307BDD7851660EA279B895DA49522497FE41B7E10748D0992EC0581B1C1DE345F31005A92ACD19FA642984FE0437C2049B1C50424013F1FD6791DE04A792F85D001887A94E407FA267A5691628C30A7CED1F211DD6C86D8629244F742D948286CC7D5DE9B059B86A15964B9B8BE462F3F269F393917BD39C98E0A0ED467A36559FF1FA5FA9135AA98B9F949709101AABB360C1F6713F20F51C5E0B5FF6BBD6D7BCE3B823CC886E6D9FD226F403D03A665844D8A376E942FCA681C2038ED7B306D4209B646952CB80AB755E8D6E3490BE98008EA898F26A68F6DFCE209D145F5BAFA67AB0D91E645C379B5AE2A84B57F09E081F86E9C31FD64520481570069A65140A1B647003B0DB50B39ECC2CB04FC53D437D543A09DF37087C3B776965C91D68ED807D76C82B156FD8D7854297BE826FAA5733E5091188786E514
+tmp_aes_key = 67630CD17CB12A5126F4CB291AEB81CC809995FC713CCAFD7626920004ADFDD5
+tmp_aes_iv = 75F9EF2A2C236C84B0E7EF83548AFA321BAE5B84A8BADBBE10DDA22879689719
Yielding:
-answer_with_hash = 275BF3A03306402F7DFA72ED4E2D817BB3DD2960BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001000C68334471841DEA570C80A4FAA55311D859A67D0F084D40648AFEA0A5121BE22E28CF3EFB6D160C52A13B31BB5B69A915FF598DBD7255E75AD0E0B15A9EA208AFCC1E8E7008575E71EBBFB2FCF3700D2269107D3DF02D82B7545A691ECC58098ECDBA37B2A0BE6374F3B3B09A52FF1871CA9CB08B1B64D49BFEA518BEE2CFD2FF755529DEAE5E300238D88754DD192E0F4055B3E6E5690B91F9912A8B727446221461CE12AB102A4D6644FCA2B7590D053C152E812F1317E7609226EE5D880E1F57F353EDB29D8F175B0E424E88E51B53BD278FBD733EA738AB1B31A0D943C32AEC019131364488C78FC1A481151A2626299A8BA60EE1B93C7ED8300D83D4A4707EA26688B738ADE93C2AE0
-answer = BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001000C68334471841DEA570C80A4FAA55311D859A67D0F084D40648AFEA0A5121BE22E28CF3EFB6D160C52A13B31BB5B69A915FF598DBD7255E75AD0E0B15A9EA208AFCC1E8E7008575E71EBBFB2FCF3700D2269107D3DF02D82B7545A691ECC58098ECDBA37B2A0BE6374F3B3B09A52FF1871CA9CB08B1B64D49BFEA518BEE2CFD2FF755529DEAE5E300238D88754DD192E0F4055B3E6E5690B91F9912A8B727446221461CE12AB102A4D6644FCA2B7590D053C152E812F1317E7609226EE5D880E1F57F353EDB29D8F175B0E424E88E51B53BD278FBD733EA738AB1B31A0D943C32AEC019131364488C78FC1A481151A2626299A8BA60EE1B93C7ED8300D83D4A4707EA26688B738ADE93C2AE0
+answer_with_hash = 8874EC20B27CF30D45E77DEAA9951DD810042416BA0D89B583B0585B197D96F7BF9AD36784FA35A11331713E973CFD9AAA92CBF46F5158C003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008DD333670D6BD116DC20BB073A65921A8F20E1890F595D3490038C4E8987BEE08D5B9EFE0B942B1CAB7D34B611F7A136E7EF0D9F5FF621CCC0D2FB1DC452D88C3FABBF5BBE965A19E56FC3B9B76070C6AE03FFECF9C7FB17B46ACA2B61B2F6DAA1CBD3EEEAE719D06FB5A01EAA016075B7DAC7C934C8F3CFB79E8E3594549725D6B1121A22AD93B9BBB003066863F59FC819C16B963CCE9A71E327DD6AD135792DDC17B05DB6C33A0A14E3458EFBA402989D504152C489FDF42D20121D35EF573D06838351938ED47F38E91142E08D2907AEFB4D8A289B6173BD04AC05A165C6EE2B5CB158BB712F87CB32C02D5991070BCD367235A04F8CFB83E2AD1D3C65391D80A266C404F3D9970E6900
+answer = BA0D89B583B0585B197D96F7BF9AD36784FA35A11331713E973CFD9AAA92CBF46F5158C003000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008DD333670D6BD116DC20BB073A65921A8F20E1890F595D3490038C4E8987BEE08D5B9EFE0B942B1CAB7D34B611F7A136E7EF0D9F5FF621CCC0D2FB1DC452D88C3FABBF5BBE965A19E56FC3B9B76070C6AE03FFECF9C7FB17B46ACA2B61B2F6DAA1CBD3EEEAE719D06FB5A01EAA016075B7DAC7C934C8F3CFB79E8E3594549725D6B1121A22AD93B9BBB003066863F59FC819C16B963CCE9A71E327DD6AD135792DDC17B05DB6C33A0A14E3458EFBA402989D504152C489FDF42D20121D35EF573D06838351938ED47F38E91142E08D2907AEFB4D8A289B6173BD04AC05A165C6EE2B5CB158BB712F87CB32C02D5991070BCD367235A04F8CFB83E2AD1D3C65391D80A266C404F3D9970E6900
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 92 63 8E CF 53 C6 21 AC 5A 56 9F A7
-0010 | D8 24 8D D2 81 32 9E 3B 6E D3 C9 C1 4C F7 5A 8A
-0020 | 5D 4F 9E 5C 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 83 B0 58 5B 19 7D 96 F7 BF 9A D3 67
+0010 | 84 FA 35 A1 13 31 71 3E 97 3C FD 9A AA 92 CB F4
+0020 | 6F 51 58 C0 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 = BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5
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 | 0C 68 33 44 71 84 1D EA 57 0C 80 A4 FA A5 53 11
-0140 | D8 59 A6 7D 0F 08 4D 40 64 8A FE A0 A5 12 1B E2
-0150 | 2E 28 CF 3E FB 6D 16 0C 52 A1 3B 31 BB 5B 69 A9
-0160 | 15 FF 59 8D BD 72 55 E7 5A D0 E0 B1 5A 9E A2 08
-0170 | AF CC 1E 8E 70 08 57 5E 71 EB BF B2 FC F3 70 0D
-0180 | 22 69 10 7D 3D F0 2D 82 B7 54 5A 69 1E CC 58 09
-0190 | 8E CD BA 37 B2 A0 BE 63 74 F3 B3 B0 9A 52 FF 18
-01A0 | 71 CA 9C B0 8B 1B 64 D4 9B FE A5 18 BE E2 CF D2
-01B0 | FF 75 55 29 DE AE 5E 30 02 38 D8 87 54 DD 19 2E
-01C0 | 0F 40 55 B3 E6 E5 69 0B 91 F9 91 2A 8B 72 74 46
-01D0 | 22 14 61 CE 12 AB 10 2A 4D 66 44 FC A2 B7 59 0D
-01E0 | 05 3C 15 2E 81 2F 13 17 E7 60 92 26 EE 5D 88 0E
-01F0 | 1F 57 F3 53 ED B2 9D 8F 17 5B 0E 42 4E 88 E5 1B
-0200 | 53 BD 27 8F BD 73 3E A7 38 AB 1B 31 A0 D9 43 C3
-0210 | 2A EC 01 91 31 36 44 88 C7 8F C1 A4 81 15 1A 26
-0220 | 26 29 9A 8B A6 0E E1 B9 3C 7E D8 30 0D 83 D4 A4
-0230 | 70 7E A2 66
+0130 | 8D D3 33 67 0D 6B D1 16 DC 20 BB 07 3A 65 92 1A
+0140 | 8F 20 E1 89 0F 59 5D 34 90 03 8C 4E 89 87 BE E0
+0150 | 8D 5B 9E FE 0B 94 2B 1C AB 7D 34 B6 11 F7 A1 36
+0160 | E7 EF 0D 9F 5F F6 21 CC C0 D2 FB 1D C4 52 D8 8C
+0170 | 3F AB BF 5B BE 96 5A 19 E5 6F C3 B9 B7 60 70 C6
+0180 | AE 03 FF EC F9 C7 FB 17 B4 6A CA 2B 61 B2 F6 DA
+0190 | A1 CB D3 EE EA E7 19 D0 6F B5 A0 1E AA 01 60 75
+01A0 | B7 DA C7 C9 34 C8 F3 CF B7 9E 8E 35 94 54 97 25
+01B0 | D6 B1 12 1A 22 AD 93 B9 BB B0 03 06 68 63 F5 9F
+01C0 | C8 19 C1 6B 96 3C CE 9A 71 E3 27 DD 6A D1 35 79
+01D0 | 2D DC 17 B0 5D B6 C3 3A 0A 14 E3 45 8E FB A4 02
+01E0 | 98 9D 50 41 52 C4 89 FD F4 2D 20 12 1D 35 EF 57
+01F0 | 3D 06 83 83 51 93 8E D4 7F 38 E9 11 42 E0 8D 29
+0200 | 07 AE FB 4D 8A 28 9B 61 73 BD 04 AC 05 A1 65 C6
+0210 | EE 2B 5C B1 58 BB 71 2F 87 CB 32 C0 2D 59 91 07
+0220 | 0B CD 36 72 35 A0 4F 8C FB 83 E2 AD 1D 3C 65 39
+0230 | 1D 80 A2 66
Payload (de)serialization:
server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
@@ -570,13 +570,13 @@ answer = BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5
nonce |
4, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5
g_a |
300, 260 |
-FE0001000C68334471841DEA570C80A4 FAA55311D859A67D0F084D40648AFEA0 A5121BE22E28CF3EFB6D160C52A13B31 BB5B69A915FF598DBD7255E75AD0E0B1 5A9EA208AFCC1E8E7008575E71EBBFB2 FCF3700D2269107D3DF02D82B7545A69 1ECC58098ECDBA37B2A0BE6374F3B3B0 9A52FF1871CA9CB08B1B64D49BFEA518 BEE2CFD2FF755529DEAE5E300238D887 54DD192E0F4055B3E6E5690B91F9912A 8B727446221461CE12AB102A4D6644FC A2B7590D053C152E812F1317E7609226 EE5D880E1F57F353EDB29D8F175B0E42 4E88E51B53BD278FBD733EA738AB1B31 A0D943C32AEC019131364488C78FC1A4 81151A2626299A8BA60EE1B93C7ED830 0D83D4A4 |
+FE0001008DD333670D6BD116DC20BB07 3A65921A8F20E1890F595D3490038C4E 8987BEE08D5B9EFE0B942B1CAB7D34B6 11F7A136E7EF0D9F5FF621CCC0D2FB1D C452D88C3FABBF5BBE965A19E56FC3B9 B76070C6AE03FFECF9C7FB17B46ACA2B 61B2F6DAA1CBD3EEEAE719D06FB5A01E AA016075B7DAC7C934C8F3CFB79E8E35 94549725D6B1121A22AD93B9BBB00306 6863F59FC819C16B963CCE9A71E327DD 6AD135792DDC17B05DB6C33A0A14E345 8EFBA402989D504152C489FDF42D2012 1D35EF573D06838351938ED47F38E911 42E08D2907AEFB4D8A289B6173BD04AC 05A165C6EE2B5CB158BB712F87CB32C0 2D5991070BCD367235A04F8CFB83E2AD 1D3C6539 |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-707EA266 (1721925232 in decimal) |
+1D80A266 (1721925661 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5
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 = 1840B50088DA0DC4578C07F6EB06641EF319E5E2D020EAB4EC8751AAE39667B4D657CFB741A2A2B54A3FFA5FF91134BE2035C31855E3FCA3279852E0797C7D0B1CA1DD904D15B82E26C220276DBBF9FCC701EF6F995B5719C9AE7DB57BCE98FA4B7E3D60F6D432F4AC844A43554181998D259A61DE4EB2F523AA6DAD34A9AB0F8648F109F111F0BC617CEE7D538C7B8A36258A2F5C372D58D25A42DF7B8CB0C8D7C07955FAEAAA126F16D97BBEDF961839E52F2D4273D7AAF2A1B285922EA87FC0ECF136FBA0C8AD99318BCFED07E58590F67016B4E8B3CC8A99EA7C01EF72FCF907E5D7A73E066B65E93ECDEB53D552386BB007F2ED31070F2F041946227E3C
+b = 4030612088CBABF5B36205D028CABC1B2BB0A966F03E92E00ADF21DE80B56E7B03B8A3997B9ED47F3B5A6C2B765DF0D7C27B4337D967E2C5940936487CA6451802F100ED0C6F95A7EAA29269A1429E0C5287C735D96979B17A37CF00DF60526E1EDB7E22AAF40693EC3B7AF50C7A402AEED2E84E8B927D500920AA171EA836B3B868E30C92B850DCD78B0BE11CA91313BA6840E7AEF59B8B894AAA1594C1111055B616FB5FB79C873CE1DC79CCF4D496AB0A41DDB03F16A14D664BA28C57F5B397B4CE12B30AF1C509C54B2D75427DA4D78C4A0211A8060323C7A1766703ACEE86445200A985EA1EBA5969AB74A1E00A95830472B062DA18D5D314DA23E76CBA
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 6891C7A59696CDB5942FD0A8B5FAA47FE78B5B0EA12ED2FB72907BE893C82CBD079C15FB57D2E8AA2FA9137CADE959E8D33788335F9C47724E1A4E69D6847BC801BEFB9E4B76A5576EC51C0F03CA867FBDE38B968B794C3AC46E8778B62DCCAC92765FB26D60EFB3B744E39E61576AA9DC0005B67ED889B38215CE6D2465EFA4F5D61D79960E7A4AA148CFCE9034425149D35AEEE5810E959A570EA8BEBF211EEC7F209F4780FC480D0C0F0047572B4F589A25F3C388F46AA4C3919F1F027DA968BDF28EACE21F53F51861CDCC4174B761A6FF9B4BC90A614C3722EB6953E6E11A3368F20BBD05A286BDB71E8F95C3A6080BBB8A6737095B7E7B63B14D14AF16
+g_b = 1BE9C56BC2F495CD45ACF44410F7B823CCD5DDE747A32CCDAD82042A879B4D604F6530676402940645FD9227974B55B02AC7226789601429E187D1227B234E60D1E2E36C084589FD7DCDD10A46C214AB5956023DCAF68A062238332ACA6FC89034375C7A1080D7A97AD7C2F2765F8CECF1C486AD4D195902013008204A36EDF0BD45A4F3F5A42BEE532D721FF31DED4FB03D8FC48293EBD37D0D4D3457806B3680905DA1DC7E481F3F49F56FB878060CCD33A7F86C4EF17D0A00A29A2BF5AF423DBD881C2538FD38A62D5143C5AF4CC9823465A0BF07BE942D4E36132CA373374F6E49056D98122C1ECBAD99A230C8749D2EB72D7551E9EEAC37A4E8E7C55A46
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 92 63 8E CF 53 C6 21 AC 5A 56 9F A7
-0010 | D8 24 8D D2 81 32 9E 3B 6E D3 C9 C1 4C F7 5A 8A
-0020 | 5D 4F 9E 5C 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 68 91 C7 A5 96 96 CD B5 94 2F D0 A8 B5 FA A4 7F
-0040 | E7 8B 5B 0E A1 2E D2 FB 72 90 7B E8 93 C8 2C BD
-0050 | 07 9C 15 FB 57 D2 E8 AA 2F A9 13 7C AD E9 59 E8
-0060 | D3 37 88 33 5F 9C 47 72 4E 1A 4E 69 D6 84 7B C8
-0070 | 01 BE FB 9E 4B 76 A5 57 6E C5 1C 0F 03 CA 86 7F
-0080 | BD E3 8B 96 8B 79 4C 3A C4 6E 87 78 B6 2D CC AC
-0090 | 92 76 5F B2 6D 60 EF B3 B7 44 E3 9E 61 57 6A A9
-00A0 | DC 00 05 B6 7E D8 89 B3 82 15 CE 6D 24 65 EF A4
-00B0 | F5 D6 1D 79 96 0E 7A 4A A1 48 CF CE 90 34 42 51
-00C0 | 49 D3 5A EE E5 81 0E 95 9A 57 0E A8 BE BF 21 1E
-00D0 | EC 7F 20 9F 47 80 FC 48 0D 0C 0F 00 47 57 2B 4F
-00E0 | 58 9A 25 F3 C3 88 F4 6A A4 C3 91 9F 1F 02 7D A9
-00F0 | 68 BD F2 8E AC E2 1F 53 F5 18 61 CD CC 41 74 B7
-0100 | 61 A6 FF 9B 4B C9 0A 61 4C 37 22 EB 69 53 E6 E1
-0110 | 1A 33 68 F2 0B BD 05 A2 86 BD B7 1E 8F 95 C3 A6
-0120 | 08 0B BB 8A 67 37 09 5B 7E 7B 63 B1 4D 14 AF 16
+0000 | 54 B6 43 66 83 B0 58 5B 19 7D 96 F7 BF 9A D3 67
+0010 | 84 FA 35 A1 13 31 71 3E 97 3C FD 9A AA 92 CB F4
+0020 | 6F 51 58 C0 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 1B E9 C5 6B C2 F4 95 CD 45 AC F4 44 10 F7 B8 23
+0040 | CC D5 DD E7 47 A3 2C CD AD 82 04 2A 87 9B 4D 60
+0050 | 4F 65 30 67 64 02 94 06 45 FD 92 27 97 4B 55 B0
+0060 | 2A C7 22 67 89 60 14 29 E1 87 D1 22 7B 23 4E 60
+0070 | D1 E2 E3 6C 08 45 89 FD 7D CD D1 0A 46 C2 14 AB
+0080 | 59 56 02 3D CA F6 8A 06 22 38 33 2A CA 6F C8 90
+0090 | 34 37 5C 7A 10 80 D7 A9 7A D7 C2 F2 76 5F 8C EC
+00A0 | F1 C4 86 AD 4D 19 59 02 01 30 08 20 4A 36 ED F0
+00B0 | BD 45 A4 F3 F5 A4 2B EE 53 2D 72 1F F3 1D ED 4F
+00C0 | B0 3D 8F C4 82 93 EB D3 7D 0D 4D 34 57 80 6B 36
+00D0 | 80 90 5D A1 DC 7E 48 1F 3F 49 F5 6F B8 78 06 0C
+00E0 | CD 33 A7 F8 6C 4E F1 7D 0A 00 A2 9A 2B F5 AF 42
+00F0 | 3D BD 88 1C 25 38 FD 38 A6 2D 51 43 C5 AF 4C C9
+0100 | 82 34 65 A0 BF 07 BE 94 2D 4E 36 13 2C A3 73 37
+0110 | 4F 6E 49 05 6D 98 12 2C 1E CB AD 99 A2 30 C8 74
+0120 | 9D 2E B7 2D 75 51 E9 EE AC 37 A4 E8 E7 C5 5A 46
Payload (de)serialization:
client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;
@@ -658,19 +658,19 @@ answer = BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5
nonce |
4, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE0001006891C7A59696CDB5942FD0A8 B5FAA47FE78B5B0EA12ED2FB72907BE8 93C82CBD079C15FB57D2E8AA2FA9137C ADE959E8D33788335F9C47724E1A4E69 D6847BC801BEFB9E4B76A5576EC51C0F 03CA867FBDE38B968B794C3AC46E8778 B62DCCAC92765FB26D60EFB3B744E39E 61576AA9DC0005B67ED889B38215CE6D 2465EFA4F5D61D79960E7A4AA148CFCE 9034425149D35AEEE5810E959A570EA8 BEBF211EEC7F209F4780FC480D0C0F00 47572B4F589A25F3C388F46AA4C3919F 1F027DA968BDF28EACE21F53F51861CD CC4174B761A6FF9B4BC90A614C3722EB 6953E6E11A3368F20BBD05A286BDB71E 8F95C3A6080BBB8A6737095B7E7B63B1 4D14AF16 |
+FE0001001BE9C56BC2F495CD45ACF444 10F7B823CCD5DDE747A32CCDAD82042A 879B4D604F6530676402940645FD9227 974B55B02AC7226789601429E187D122 7B234E60D1E2E36C084589FD7DCDD10A 46C214AB5956023DCAF68A062238332A CA6FC89034375C7A1080D7A97AD7C2F2 765F8CECF1C486AD4D19590201300820 4A36EDF0BD45A4F3F5A42BEE532D721F F31DED4FB03D8FC48293EBD37D0D4D34 57806B3680905DA1DC7E481F3F49F56F B878060CCD33A7F86C4EF17D0A00A29A 2BF5AF423DBD881C2538FD38A62D5143 C5AF4CC9823465A0BF07BE942D4E3613 2CA373374F6E49056D98122C1ECBAD99 A230C8749D2EB72D7551E9EEAC37A4E8 E7C55A46 |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B592638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5
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 = 54B6436692638ECF53C621AC5A569FA7D8248DD281329E3B6ED3C9C14CF75A8A5D4F9E5C0000000000000000FE0001006891C7A59696CDB5942FD0A8B5FAA47FE78B5B0EA12ED2FB72907BE893C82CBD079C15FB57D2E8AA2FA9137CADE959E8D33788335F9C47724E1A4E69D6847BC801BEFB9E4B76A5576EC51C0F03CA867FBDE38B968B794C3AC46E8778B62DCCAC92765FB26D60EFB3B744E39E61576AA9DC0005B67ED889B38215CE6D2465EFA4F5D61D79960E7A4AA148CFCE9034425149D35AEEE5810E959A570EA8BEBF211EEC7F209F4780FC480D0C0F0047572B4F589A25F3C388F46AA4C3919F1F027DA968BDF28EACE21F53F51861CDCC4174B761A6FF9B4BC90A614C3722EB6953E6E11A3368F20BBD05A286BDB71E8F95C3A6080BBB8A6737095B7E7B63B14D14AF16
-padding = 13EB1DB04EB9EDDD42C44712
-tmp_aes_key = 9B2DB3607E4868AB72C98C0FAA723450C93F5D03DC01F3FD919CF5E015C70210
-tmp_aes_iv = 717BECED312445E965C2A534DFA9A07681B16D91A159E96CF2CB727F38DD223E
+data = 54B6436683B0585B197D96F7BF9AD36784FA35A11331713E973CFD9AAA92CBF46F5158C00000000000000000FE0001001BE9C56BC2F495CD45ACF44410F7B823CCD5DDE747A32CCDAD82042A879B4D604F6530676402940645FD9227974B55B02AC7226789601429E187D1227B234E60D1E2E36C084589FD7DCDD10A46C214AB5956023DCAF68A062238332ACA6FC89034375C7A1080D7A97AD7C2F2765F8CECF1C486AD4D195902013008204A36EDF0BD45A4F3F5A42BEE532D721FF31DED4FB03D8FC48293EBD37D0D4D3457806B3680905DA1DC7E481F3F49F56FB878060CCD33A7F86C4EF17D0A00A29A2BF5AF423DBD881C2538FD38A62D5143C5AF4CC9823465A0BF07BE942D4E36132CA373374F6E49056D98122C1ECBAD99A230C8749D2EB72D7551E9EEAC37A4E8E7C55A46
+padding = 6D823D3CA76D5F34328264AC
+tmp_aes_key = 67630CD17CB12A5126F4CB291AEB81CC809995FC713CCAFD7626920004ADFDD5
+tmp_aes_iv = 75F9EF2A2C236C84B0E7EF83548AFA321BAE5B84A8BADBBE10DDA22879689719
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 = 57FB7D62F641FB4AC199BED27A3C1231DF85D99079CB4EE37A289F5C3367409FBF957C33F98259512A879321EFAA6A9AC948B905E02E50675F026C2951EBF7BE5C8F919C7DDA0E65EF616F2E458DC5776CF61EA4D56EC6BCB249C4485CAE4C3E0132E4EDF4507F8C261C9A702EDB7358A0A9DA3327A8AE722E617E28A59BC3CE85F565D443C7CE753C51C6D8D0D334DFDA0082A647CE51B351A8F21D8C20FEFE83B6C5DD7B832024285DC9A8D2388DB4D28A5EC5C89E883B6C7D8128AE5F9384D4D69E563F0D3E2CE696F84D8F3E3634AB290C58C44226EBDD966D9F6119E1AA3B712BFFDF7865E9B335634DFF768B8D71AA37FBB223A7DEEF5E8BAD8FCB25768573BF66BE741D7A204912C9C6AF77409F7036D8D4C990AE0B366516A8330370EDB22F363EFB37727F42C2933255E221F13C9E21F8F4666741F46850A3975317BA74671356AA736581FA0DD241309D41
+encrypted_data = 3DADC7C4EFED521B1D284817E75E255DFE4B0A1793312E3B0E0FE8B27FEEA2CED932DD07A780E871552073D4A3D5EC939C3441B28781E9A61CD34D9AA25E6122A4D876D00507CAC07280585B70253425E55DBDFE0A3930DD57382BAF7F7F9E5DDC26651B1DB19B4D24E40D9D12ADA32585C1356A8287462A5424A26CCD31442CAF51BA175039BD21F451C557F898B3D3A8191FD3E7A60D39C7A7B4E4B4C774649A6172745BC8398AE89C95EA6524053E3265DD68F722E9E1BE7FBC9397B821B0AE83FC095BA72DEF29082EDDAC4FAFF49C119B6A808EB92C635D5F109D90B3F23AC33683BE8292204C9FB210A08B8021B1CB61A72898F88D9C5B7116113F34582E970642BE781925CA2B7B7BD49498A32B6A8630A99F36F6F24ADFB06265AE4FD405E9D868B4F96F1BF215BD0865DAA20328A4013702409FCF0FB1744D45A44210E12B30450F0A15245D8190A9761F48
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 1C 07 05 00 70 7E A2 66
-0010 | 78 01 00 00 1F 5F 04 F5 92 63 8E CF 53 C6 21 AC
-0020 | 5A 56 9F A7 D8 24 8D D2 81 32 9E 3B 6E D3 C9 C1
-0030 | 4C F7 5A 8A 5D 4F 9E 5C FE 50 01 00 57 FB 7D 62
-0040 | F6 41 FB 4A C1 99 BE D2 7A 3C 12 31 DF 85 D9 90
-0050 | 79 CB 4E E3 7A 28 9F 5C 33 67 40 9F BF 95 7C 33
-0060 | F9 82 59 51 2A 87 93 21 EF AA 6A 9A C9 48 B9 05
-0070 | E0 2E 50 67 5F 02 6C 29 51 EB F7 BE 5C 8F 91 9C
-0080 | 7D DA 0E 65 EF 61 6F 2E 45 8D C5 77 6C F6 1E A4
-0090 | D5 6E C6 BC B2 49 C4 48 5C AE 4C 3E 01 32 E4 ED
-00A0 | F4 50 7F 8C 26 1C 9A 70 2E DB 73 58 A0 A9 DA 33
-00B0 | 27 A8 AE 72 2E 61 7E 28 A5 9B C3 CE 85 F5 65 D4
-00C0 | 43 C7 CE 75 3C 51 C6 D8 D0 D3 34 DF DA 00 82 A6
-00D0 | 47 CE 51 B3 51 A8 F2 1D 8C 20 FE FE 83 B6 C5 DD
-00E0 | 7B 83 20 24 28 5D C9 A8 D2 38 8D B4 D2 8A 5E C5
-00F0 | C8 9E 88 3B 6C 7D 81 28 AE 5F 93 84 D4 D6 9E 56
-0100 | 3F 0D 3E 2C E6 96 F8 4D 8F 3E 36 34 AB 29 0C 58
-0110 | C4 42 26 EB DD 96 6D 9F 61 19 E1 AA 3B 71 2B FF
-0120 | DF 78 65 E9 B3 35 63 4D FF 76 8B 8D 71 AA 37 FB
-0130 | B2 23 A7 DE EF 5E 8B AD 8F CB 25 76 85 73 BF 66
-0140 | BE 74 1D 7A 20 49 12 C9 C6 AF 77 40 9F 70 36 D8
-0150 | D4 C9 90 AE 0B 36 65 16 A8 33 03 70 ED B2 2F 36
-0160 | 3E FB 37 72 7F 42 C2 93 32 55 E2 21 F1 3C 9E 21
-0170 | F8 F4 66 67 41 F4 68 50 A3 97 53 17 BA 74 67 13
-0180 | 56 AA 73 65 81 FA 0D D2 41 30 9D 41
+0000 | 00 00 00 00 00 00 00 00 C8 78 07 00 1D 80 A2 66
+0010 | 78 01 00 00 1F 5F 04 F5 83 B0 58 5B 19 7D 96 F7
+0020 | BF 9A D3 67 84 FA 35 A1 13 31 71 3E 97 3C FD 9A
+0030 | AA 92 CB F4 6F 51 58 C0 FE 50 01 00 3D AD C7 C4
+0040 | EF ED 52 1B 1D 28 48 17 E7 5E 25 5D FE 4B 0A 17
+0050 | 93 31 2E 3B 0E 0F E8 B2 7F EE A2 CE D9 32 DD 07
+0060 | A7 80 E8 71 55 20 73 D4 A3 D5 EC 93 9C 34 41 B2
+0070 | 87 81 E9 A6 1C D3 4D 9A A2 5E 61 22 A4 D8 76 D0
+0080 | 05 07 CA C0 72 80 58 5B 70 25 34 25 E5 5D BD FE
+0090 | 0A 39 30 DD 57 38 2B AF 7F 7F 9E 5D DC 26 65 1B
+00A0 | 1D B1 9B 4D 24 E4 0D 9D 12 AD A3 25 85 C1 35 6A
+00B0 | 82 87 46 2A 54 24 A2 6C CD 31 44 2C AF 51 BA 17
+00C0 | 50 39 BD 21 F4 51 C5 57 F8 98 B3 D3 A8 19 1F D3
+00D0 | E7 A6 0D 39 C7 A7 B4 E4 B4 C7 74 64 9A 61 72 74
+00E0 | 5B C8 39 8A E8 9C 95 EA 65 24 05 3E 32 65 DD 68
+00F0 | F7 22 E9 E1 BE 7F BC 93 97 B8 21 B0 AE 83 FC 09
+0100 | 5B A7 2D EF 29 08 2E DD AC 4F AF F4 9C 11 9B 6A
+0110 | 80 8E B9 2C 63 5D 5F 10 9D 90 B3 F2 3A C3 36 83
+0120 | BE 82 92 20 4C 9F B2 10 A0 8B 80 21 B1 CB 61 A7
+0130 | 28 98 F8 8D 9C 5B 71 16 11 3F 34 58 2E 97 06 42
+0140 | BE 78 19 25 CA 2B 7B 7B D4 94 98 A3 2B 6A 86 30
+0150 | A9 9F 36 F6 F2 4A DF B0 62 65 AE 4F D4 05 E9 D8
+0160 | 68 B4 F9 6F 1B F2 15 BD 08 65 DA A2 03 28 A4 01
+0170 | 37 02 40 9F CF 0F B1 74 4D 45 A4 42 10 E1 2B 30
+0180 | 45 0F 0A 15 24 5D 81 90 A9 76 1F 48
Payload (de)serialization:
set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;
@@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id |
8, 8 |
-1C070500707EA266 |
+C87807001D80A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce |
24, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE50010057FB7D62F641FB4AC199BED2 7A3C1231DF85D99079CB4EE37A289F5C 3367409FBF957C33F98259512A879321 EFAA6A9AC948B905E02E50675F026C29 51EBF7BE5C8F919C7DDA0E65EF616F2E 458DC5776CF61EA4D56EC6BCB249C448 5CAE4C3E0132E4EDF4507F8C261C9A70 2EDB7358A0A9DA3327A8AE722E617E28 A59BC3CE85F565D443C7CE753C51C6D8 D0D334DFDA0082A647CE51B351A8F21D 8C20FEFE83B6C5DD7B832024285DC9A8 D2388DB4D28A5EC5C89E883B6C7D8128 AE5F9384D4D69E563F0D3E2CE696F84D 8F3E3634AB290C58C44226EBDD966D9F 6119E1AA3B712BFFDF7865E9B335634D FF768B8D71AA37FBB223A7DEEF5E8BAD 8FCB25768573BF66BE741D7A204912C9 C6AF77409F7036D8D4C990AE0B366516 A8330370EDB22F363EFB37727F42C293 3255E221F13C9E21F8F4666741F46850 A3975317BA74671356AA736581FA0DD2 41309D41 |
+FE5001003DADC7C4EFED521B1D284817 E75E255DFE4B0A1793312E3B0E0FE8B2 7FEEA2CED932DD07A780E871552073D4 A3D5EC939C3441B28781E9A61CD34D9A A25E6122A4D876D00507CAC07280585B 70253425E55DBDFE0A3930DD57382BAF 7F7F9E5DDC26651B1DB19B4D24E40D9D 12ADA32585C1356A8287462A5424A26C CD31442CAF51BA175039BD21F451C557 F898B3D3A8191FD3E7A60D39C7A7B4E4 B4C774649A6172745BC8398AE89C95EA 6524053E3265DD68F722E9E1BE7FBC93 97B821B0AE83FC095BA72DEF29082EDD AC4FAFF49C119B6A808EB92C635D5F10 9D90B3F23AC33683BE8292204C9FB210 A08B8021B1CB61A72898F88D9C5B7116 113F34582E970642BE781925CA2B7B7B D49498A32B6A8630A99F36F6F24ADFB0 6265AE4FD405E9D868B4F96F1BF215BD 0865DAA20328A4013702409FCF0FB174 4D45A44210E12B30450F0A15245D8190 A9761F48 |
Encrypted client_DH_inner_data generated previously, serialized as a TL byte string |
@@ -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 = 2EDAB8AA240CECA596ED70730B81372D914A08B43581358B3AFAB5F35D59334C00CFD1716655045A595310552C162496C67CD53CC2C3724A666D89B3BE30E95B314281DD39C9BEB1BC2BCCC6D26696532019BCDF2CCE825A58392F288FE979E1AD55FBE4A37E3A4CF121CC7EDF525442EDB8A71A11D36097F82E1E181B5251B65B91D300898C59AA4FB471CC50052D8692DB527BF4E5D0B3C73106FE1AF6143CA57CCA3D281EAEB624B456C4A15646976FEF93E2A2DECE0C8909FEF3E98443AC9DE79153934423125C4A121275471F6F785A793B0E45A92687FB2897D82480825606FA38F0C68D4A1A6F67507E9731778CDEE9B2119A789CB4DAF9D1A5EF41D1
+auth_key = 2C1B305A1CD023A6FB0A0F9B7A7C3B905BDA3D2F6BAB6BDC40881D071DD4A4119BA66061E2693E9E95EB99663370F980F69AA469171EB0F9AEEB7415ABEDCFF874FB65C0730D5ECA2DC0F1852C38BC022CA6E8C423F02F3351F72AEE42B5D66CE99DC99EF930255F2A7EE0F835D910184B31FB415DE142F79E52F39F203BEEC60BCE968FE12499C335CD39D4898756624D1F86D0224BA0257FE7FB3BC63C8E3ABB150E839F0DB55342A01C7BD12031EE5E8785970F9C77B42FAA995810CE38D98EE0D7A109012D9F3AB3582271779099B8530D50CCBC5E55807B8B46C568C11887DB471E8C517AE933FEDB453F176633CD675F865CF07A04E7D8BA29A0CFED56
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 C4 15 0E 71 7E A2 66
-0010 | A0 00 00 00 34 F7 CB 3B 92 63 8E CF 53 C6 21 AC
-0020 | 5A 56 9F A7 D8 24 8D D2 81 32 9E 3B 6E D3 C9 C1
-0030 | 4C F7 5A 8A 5D 4F 9E 5C 23 0B 1D 76 15 E4 CF 65
-0040 | A1 99 33 B0 1D 8C 24 6D
+0000 | 00 00 00 00 00 00 00 00 01 A0 E9 63 1E 80 A2 66
+0010 | 40 00 00 00 34 F7 CB 3B 83 B0 58 5B 19 7D 96 F7
+0020 | BF 9A D3 67 84 FA 35 A1 13 31 71 3E 97 3C FD 9A
+0030 | AA 92 CB F4 6F 51 58 C0 66 15 3C 8E 75 C2 9B DB
+0040 | AF AF 0F EE 28 29 98 01
Payload (de)serialization:
dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
@@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id |
8, 8 |
-01C4150E717EA266 |
+01A0E9631E80A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-A0000000 (160 in decimal) |
+40000000 (64 in decimal) |
Message body length |
@@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce |
24, 16 |
-92638ECF53C621AC5A569FA7D8248DD2 |
+83B0585B197D96F7BF9AD36784FA35A1 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-81329E3B6ED3C9C14CF75A8A5D4F9E5C |
+1331713E973CFD9AAA92CBF46F5158C0 |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-230B1D7615E4CF65A19933B01D8C246D |
+66153C8E75C29BDBAFAF0FEE28299801 |
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. |