@@ -77,7 +77,7 @@
message_id |
8, 8 |
-841C00002688A266 |
+84320D008490A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
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 E0 99 F1 26 88 A2 66
-0010 | 74 00 00 00 63 24 16 05 D5 49 52 34 D2 F9 4E 3F
-0020 | 02 4B DF 6D EF 52 10 8B 91 CE 65 C0 BC 19 5D 9A
-0030 | 0A 3F 41 56 AA 51 1B AA 08 1B 71 02 1F 03 9C 33
-0040 | F3 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 78 06 70 84 90 A2 66
+0010 | B0 00 00 00 63 24 16 05 B8 1E E8 98 8B A0 21 46
+0020 | C0 B5 86 ED 6E 48 FA F7 71 C1 F5 53 57 41 48 71
+0030 | 77 74 D4 C4 99 5C F5 44 08 27 A9 1D 5F F3 26 2B
+0040 | 57 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 |
-01E099F12688A266 |
+017806708490A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-74000000 (116 in decimal) |
+B0000000 (176 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Server-generated random number |
pq |
56, 12 |
-081B71021F039C33F3000000 TL byte deserialization => bigendian conversion to decimal => 1977364043620168691 |
+0827A91D5FF3262B57000000 TL byte deserialization => bigendian conversion to decimal => 2857847736481753943 |
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 = 1977364043620168691
-Decompose into 2 prime cofactors p < q
: 1977364043620168691 = 1338204457 * 1477624763
-p = 1338204457
-q = 1477624763
+pq = 2857847736481753943
+Decompose into 2 prime cofactors p < q
: 2857847736481753943 = 1463159681 * 1953202903
+p = 1463159681
+q = 1953202903
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 1B 71 02 1F 03 9C 33 F3 00 00 00
-0010 | 04 4F C3 61 29 00 00 00 04 58 12 C3 BB 00 00 00
-0020 | D5 49 52 34 D2 F9 4E 3F 02 4B DF 6D EF 52 10 8B
-0030 | 91 CE 65 C0 BC 19 5D 9A 0A 3F 41 56 AA 51 1B AA
-0040 | 86 09 1F 3A 8D 38 47 DB DB 88 DF 4E 68 8A 57 06
-0050 | 9C 1B 45 4B C6 A3 D7 BC 43 7E F7 8C 9C A1 B2 5B
+0000 | 95 5F F5 A9 08 27 A9 1D 5F F3 26 2B 57 00 00 00
+0010 | 04 57 36 0B 81 00 00 00 04 74 6B 82 D7 00 00 00
+0020 | B8 1E E8 98 8B A0 21 46 C0 B5 86 ED 6E 48 FA F7
+0030 | 71 C1 F5 53 57 41 48 71 77 74 D4 C4 99 5C F5 44
+0040 | 6D AA 2E FD D6 10 27 7A BB 80 31 B3 B0 AA 71 7A
+0050 | 03 95 0C BE 63 65 5A FD D4 A4 24 60 79 6B DE 22
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 = 1477624763
pq |
4, 12 |
-081B71021F039C33F3000000 TL byte deserialization => bigendian conversion to decimal => 1977364043620168691 |
+0827A91D5FF3262B57000000 TL byte deserialization => bigendian conversion to decimal => 2857847736481753943 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-044FC36129000000 TL byte deserialization => bigendian conversion to decimal => 1338204457 |
+0457360B81000000 TL byte deserialization => bigendian conversion to decimal => 1463159681 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-045812C3BB000000 TL byte deserialization => bigendian conversion to decimal => 1477624763 |
+04746B82D7000000 TL byte deserialization => bigendian conversion to decimal => 1953202903 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-86091F3A8D3847DBDB88DF4E688A5706 9C1B454BC6A3D7BC437EF78C9CA1B25B |
+6DAA2EFDD610277ABB8031B3B0AA717A 03950CBE63655AFDD4A42460796BDE22 |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1477624763
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 = 955FF5A9081B71021F039C33F3000000044FC36129000000045812C3BB000000D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BAA86091F3A8D3847DBDB88DF4E688A57069C1B454BC6A3D7BC437EF78C9CA1B25B02000000
-random_padding_bytes = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC3607BF3AC49009C087970240A4B436675CCEB8941EEFA4C187A269A96F088718A0AB909D9B63103C513CB51894B67E5A1E36B0FDEAB53F1187833FF2E5B73126A
+data = 955FF5A90827A91D5FF3262B570000000457360B8100000004746B82D7000000B81EE8988BA02146C0B586ED6E48FAF771C1F553574148717774D4C4995CF5446DAA2EFDD610277ABB8031B3B0AA717A03950CBE63655AFDD4A42460796BDE2202000000
+random_padding_bytes = 69E092E50B0AD67D6BFD8CAF612C2B852A0E890E09EFB78D28319AA6B2827B8A2446068F0BB195CA24668AA5B0008FD3891EF71588DD1B48767830F926C9D83C7DD532AD2A9CA011B534E58042307AC4FB2502B9B228628D8A7B643B
And this is the output:
-encrypted_data = 81D68F713065B63EACA49E0BBC3E7283B247D50BC53A08D8B020CAE60C5141EB9A103F354288EA611E758F20614D3588CA43F2376711C34A339C7597002E13AA81CDEE14A65761258EE967096CB77249915C4B45DEC98C607EDB65659E22A672DDBE4BB7F03CCEDA6DC5E56A28C93AD4380B24ECDD0D117982D447DE54F48B28F4F1A7B3A792060A4CE543B8A526653BBD140BB533F50462D912749BC7638CB27ED4652CDD03CC63D40D2DBC451B1E3389431BE046D5D765E694D8A36B5D6D56318EAF229A24567AD08CE7B77B333C6563012580E4E95AC0A574BA9D10D3A4EE94177BD0DFFA842823692B8E9ED43C4977D32EEB1653516EB28C2F2A195F1614
+encrypted_data = C616B3FD7EBD370E1C9280766678C627401185FE0714795CC93A8209D3DABA9D6C334D56F5AC96A121830F130182D46AB6931176C025FEDF6E201D0C999C6F2C3828CCA61866FDC5AE0E9E0CD9C823A048D85517E8C7245CA4BA133997419137B4E6E5E914C205BF4110857F42F80A50189CFD65A62B3F4FC6B53F03FB619E9B521F2B0AC481B496C0D071C92BE35014E7817F4CF4185278A8DB7D3ACA323699FC415CA25D86F830FD0253195AF221D0550152FD5F8A53BAB4B9287ED541ADEB48A65DC504D5CE595B992E6D237DFDB8C9F9A30D80531FCCC2127D5EFF4FD3DFBA5A181E7B7C5A709CD58D2BBF0D5D4CBA13D9D055ACD6D9C9753CC54160E351
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 7C A4 01 00 27 88 A2 66
-0010 | 40 01 00 00 BE E4 12 D7 D5 49 52 34 D2 F9 4E 3F
-0020 | 02 4B DF 6D EF 52 10 8B 91 CE 65 C0 BC 19 5D 9A
-0030 | 0A 3F 41 56 AA 51 1B AA 04 4F C3 61 29 00 00 00
-0040 | 04 58 12 C3 BB 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 81 D6 8F 71 30 65 B6 3E AC A4 9E 0B
-0060 | BC 3E 72 83 B2 47 D5 0B C5 3A 08 D8 B0 20 CA E6
-0070 | 0C 51 41 EB 9A 10 3F 35 42 88 EA 61 1E 75 8F 20
-0080 | 61 4D 35 88 CA 43 F2 37 67 11 C3 4A 33 9C 75 97
-0090 | 00 2E 13 AA 81 CD EE 14 A6 57 61 25 8E E9 67 09
-00A0 | 6C B7 72 49 91 5C 4B 45 DE C9 8C 60 7E DB 65 65
-00B0 | 9E 22 A6 72 DD BE 4B B7 F0 3C CE DA 6D C5 E5 6A
-00C0 | 28 C9 3A D4 38 0B 24 EC DD 0D 11 79 82 D4 47 DE
-00D0 | 54 F4 8B 28 F4 F1 A7 B3 A7 92 06 0A 4C E5 43 B8
-00E0 | A5 26 65 3B BD 14 0B B5 33 F5 04 62 D9 12 74 9B
-00F0 | C7 63 8C B2 7E D4 65 2C DD 03 CC 63 D4 0D 2D BC
-0100 | 45 1B 1E 33 89 43 1B E0 46 D5 D7 65 E6 94 D8 A3
-0110 | 6B 5D 6D 56 31 8E AF 22 9A 24 56 7A D0 8C E7 B7
-0120 | 7B 33 3C 65 63 01 25 80 E4 E9 5A C0 A5 74 BA 9D
-0130 | 10 D3 A4 EE 94 17 7B D0 DF FA 84 28 23 69 2B 8E
-0140 | 9E D4 3C 49 77 D3 2E EB 16 53 51 6E B2 8C 2F 2A
-0150 | 19 5F 16 14
+0000 | 00 00 00 00 00 00 00 00 88 32 0D 00 84 90 A2 66
+0010 | 40 01 00 00 BE E4 12 D7 B8 1E E8 98 8B A0 21 46
+0020 | C0 B5 86 ED 6E 48 FA F7 71 C1 F5 53 57 41 48 71
+0030 | 77 74 D4 C4 99 5C F5 44 04 57 36 0B 81 00 00 00
+0040 | 04 74 6B 82 D7 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 C6 16 B3 FD 7E BD 37 0E 1C 92 80 76
+0060 | 66 78 C6 27 40 11 85 FE 07 14 79 5C C9 3A 82 09
+0070 | D3 DA BA 9D 6C 33 4D 56 F5 AC 96 A1 21 83 0F 13
+0080 | 01 82 D4 6A B6 93 11 76 C0 25 FE DF 6E 20 1D 0C
+0090 | 99 9C 6F 2C 38 28 CC A6 18 66 FD C5 AE 0E 9E 0C
+00A0 | D9 C8 23 A0 48 D8 55 17 E8 C7 24 5C A4 BA 13 39
+00B0 | 97 41 91 37 B4 E6 E5 E9 14 C2 05 BF 41 10 85 7F
+00C0 | 42 F8 0A 50 18 9C FD 65 A6 2B 3F 4F C6 B5 3F 03
+00D0 | FB 61 9E 9B 52 1F 2B 0A C4 81 B4 96 C0 D0 71 C9
+00E0 | 2B E3 50 14 E7 81 7F 4C F4 18 52 78 A8 DB 7D 3A
+00F0 | CA 32 36 99 FC 41 5C A2 5D 86 F8 30 FD 02 53 19
+0100 | 5A F2 21 D0 55 01 52 FD 5F 8A 53 BA B4 B9 28 7E
+0110 | D5 41 AD EB 48 A6 5D C5 04 D5 CE 59 5B 99 2E 6D
+0120 | 23 7D FD B8 C9 F9 A3 0D 80 53 1F CC C2 12 7D 5E
+0130 | FF 4F D3 DF BA 5A 18 1E 7B 7C 5A 70 9C D5 8D 2B
+0140 | BF 0D 5D 4C BA 13 D9 D0 55 AC D6 D9 C9 75 3C C5
+0150 | 41 60 E3 51
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 = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC36
message_id |
8, 8 |
-7CA401002788A266 |
+88320D008490A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC36
nonce |
24, 16 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Value received from server in Step 2 |
p |
56, 8 |
-044FC36129000000 TL byte deserialization => bigendian conversion to decimal => 1338204457 |
+0457360B81000000 TL byte deserialization => bigendian conversion to decimal => 1463159681 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-045812C3BB000000 TL byte deserialization => bigendian conversion to decimal => 1477624763 |
+04746B82D7000000 TL byte deserialization => bigendian conversion to decimal => 1953202903 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC36
encrypted_data |
80, 260 |
-FE00010081D68F713065B63EACA49E0B BC3E7283B247D50BC53A08D8B020CAE6 0C5141EB9A103F354288EA611E758F20 614D3588CA43F2376711C34A339C7597 002E13AA81CDEE14A65761258EE96709 6CB77249915C4B45DEC98C607EDB6565 9E22A672DDBE4BB7F03CCEDA6DC5E56A 28C93AD4380B24ECDD0D117982D447DE 54F48B28F4F1A7B3A792060A4CE543B8 A526653BBD140BB533F50462D912749B C7638CB27ED4652CDD03CC63D40D2DBC 451B1E3389431BE046D5D765E694D8A3 6B5D6D56318EAF229A24567AD08CE7B7 7B333C6563012580E4E95AC0A574BA9D 10D3A4EE94177BD0DFFA842823692B8E 9ED43C4977D32EEB1653516EB28C2F2A 195F1614 |
+FE000100C616B3FD7EBD370E1C928076 6678C627401185FE0714795CC93A8209 D3DABA9D6C334D56F5AC96A121830F13 0182D46AB6931176C025FEDF6E201D0C 999C6F2C3828CCA61866FDC5AE0E9E0C D9C823A048D85517E8C7245CA4BA1339 97419137B4E6E5E914C205BF4110857F 42F80A50189CFD65A62B3F4FC6B53F03 FB619E9B521F2B0AC481B496C0D071C9 2BE35014E7817F4CF4185278A8DB7D3A CA323699FC415CA25D86F830FD025319 5AF221D0550152FD5F8A53BAB4B9287E D541ADEB48A65DC504D5CE595B992E6D 237DFDB8C9F9A30D80531FCCC2127D5E FF4FD3DFBA5A181E7B7C5A709CD58D2B BF0D5D4CBA13D9D055ACD6D9C9753CC5 4160E351 |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC36
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 B4 4D C9 27 88 A2 66
-0010 | 78 02 00 00 5C 07 E8 D0 D5 49 52 34 D2 F9 4E 3F
-0020 | 02 4B DF 6D EF 52 10 8B 91 CE 65 C0 BC 19 5D 9A
-0030 | 0A 3F 41 56 AA 51 1B AA FE 50 02 00 26 43 49 06
-0040 | CC A6 F9 0D 1A 09 DE 80 57 5A 51 EE F2 5D B1 D9
-0050 | 04 C5 77 B7 5E CA 4A B1 23 EE 99 BD 87 3D 1B C5
-0060 | 09 39 02 2C 69 BD D9 21 4E 78 D0 DE 5B B5 9F DB
-0070 | 62 1F 47 ED B1 F2 7E 66 08 CA 7D EB 59 17 27 97
-0080 | AE 7A 6C 3F 9B 18 D2 CA 10 96 29 51 86 09 E5 74
-0090 | E1 2A 8A 7A 9E BB 22 E0 71 61 01 D7 E7 CB 61 C1
-00A0 | 4E C5 65 81 C8 96 13 C2 F8 68 CE BC 36 45 11 BB
-00B0 | 86 AB AB 29 12 D5 61 F9 D9 39 4C EA D7 28 EE 33
-00C0 | 13 85 89 5C EF 5D B4 93 A2 72 E8 20 67 53 AF 7F
-00D0 | 8E EF CB 04 C5 B8 DA 52 98 E5 21 02 D8 8F 94 08
-00E0 | 9F 9A F2 8E 0A A1 36 83 8F 95 00 DD FC 28 3A FB
-00F0 | 34 45 E3 60 40 53 33 08 F7 63 A1 71 1C 0B E9 C0
-0100 | DE 87 A1 E3 32 99 7E D9 FC 8D 4F DC 11 41 CB C4
-0110 | 28 CC 91 9A 6A B9 CE FD 53 8A AA 0C 62 99 EC 3D
-0120 | F7 67 C9 7E 6E 5F 06 30 18 08 DE C8 60 BA F0 53
-0130 | 24 D8 2D D8 8F 00 A9 3C BC 65 67 FD B8 67 23 99
-0140 | ED F5 EE B2 6E 5B CF 24 A5 1C DE 67 F6 3D 43 4F
-0150 | 68 52 65 FA 4D BB D7 BB 93 9D DF 66 31 10 B3 A9
-0160 | CB 29 BA CD 39 33 04 C7 BE 6D A0 53 7F 9E ED 7F
-0170 | F8 54 82 0C 8B A2 48 6E 32 97 30 F5 F1 F5 03 F0
-0180 | EB 5F FD 8E AC 39 86 8D 08 F8 9A 74 A6 44 21 7F
-0190 | C5 B3 98 54 3D 35 14 B2 F3 01 FA B1 BC 7C B6 0A
-01A0 | 60 A3 EA F7 99 2D D1 69 AA CC BE 34 B1 0A 62 AB
-01B0 | A0 9C 67 17 DA A9 AF 8D 91 21 10 31 12 09 F4 8F
-01C0 | A6 1B 74 BC D5 23 F0 9C C7 85 1A 02 4C 8E A8 41
-01D0 | E3 EB 37 DB 14 3D 5E C8 2C 82 67 26 CA 1B AD 0A
-01E0 | 8A B4 C8 E9 C4 CB 63 4B 24 9D E8 B6 C1 E9 90 9C
-01F0 | B4 8B C6 1A 65 6D 5A 5A 08 52 4D 3C 95 BB FE 86
-0200 | 31 2C 50 3A 53 FA 7D 75 5D 67 52 1C 45 FB 81 69
-0210 | B6 B5 F2 AE 57 F2 04 26 F5 75 B2 7C E1 82 00 3E
-0220 | FA 8F EE AF 88 D2 8B 3D 80 2D 17 F4 9A C5 85 16
-0230 | 5F 89 99 7D 04 86 F9 68 85 DA AE FE A1 3A CF 9F
-0240 | 25 5F 15 1D 9F FA C3 6A 0D D2 85 4A 36 3F 43 20
-0250 | 35 4F 12 E3 CE 11 66 51 F0 41 3E 85 14 27 87 FA
-0260 | C5 32 3F 9C 83 5A CF 98 94 0D 9E E0 A0 2B F4 2F
-0270 | 88 26 77 26 A9 33 52 42 15 23 C6 F4 A8 0F BA 96
-0280 | BE 84 7F 84 11 FE 44 62 7C A4 62 49
+0000 | 00 00 00 00 00 00 00 00 01 F8 96 3F 85 90 A2 66
+0010 | 7C 02 00 00 5C 07 E8 D0 B8 1E E8 98 8B A0 21 46
+0020 | C0 B5 86 ED 6E 48 FA F7 71 C1 F5 53 57 41 48 71
+0030 | 77 74 D4 C4 99 5C F5 44 FE 50 02 00 47 5B BE CE
+0040 | 6C 46 22 4C C4 C5 67 9D 72 3D 24 59 8D 98 65 4C
+0050 | BD 0D D1 56 F6 12 4B 11 18 D7 5B 41 5D 29 3D A5
+0060 | 9E E6 E5 98 C5 BF 7B 7D F1 7A 3D 5D D7 0B 34 FD
+0070 | 12 29 90 34 99 C5 03 12 B1 B9 BD BD 9C 1F A9 67
+0080 | 95 0B EF BC F4 AF 43 AB DF BE 33 E3 88 5A 6E 62
+0090 | BF ED DB 58 30 93 66 16 E4 AF 9B 89 BF 75 26 99
+00A0 | 70 5A 61 0C BA BA 62 AB 5A EF 88 1F 95 54 69 3B
+00B0 | 72 F0 FD D0 54 C8 73 6C D3 38 D7 5F 0D C8 0C 13
+00C0 | C2 DC 1D BB ED 4B 48 93 34 58 D9 B0 B3 5D 8A 2D
+00D0 | 5A 15 11 66 E2 07 11 6E 43 B7 24 B3 77 EA E3 30
+00E0 | A5 45 74 6C 6F E4 59 F3 49 74 34 C4 59 E5 9E E6
+00F0 | 4C D0 A8 DE C0 E0 96 4D 6D 70 DB 0F ED 7E FC B4
+0100 | B1 BB 3D 09 8A 2A 48 81 27 88 2D 07 B5 02 03 3A
+0110 | 06 1F E1 AF A8 46 75 74 15 08 6E E6 78 C0 43 CE
+0120 | F9 06 F4 D5 1E 08 55 F0 05 88 3A 31 1C ED F0 2F
+0130 | B9 35 AF 67 89 C8 BE 18 C3 3E BE AE DF 34 04 A0
+0140 | 46 E9 37 47 18 7E BF E7 15 B4 07 73 63 57 FB D1
+0150 | 2D B4 8D 20 0F D4 DA 76 BE B5 2F 1B 8C A0 66 DE
+0160 | F5 6B B2 69 C8 0F 0E 38 81 AE 1A 10 01 2B D4 49
+0170 | AB 41 7A 63 84 D8 6B F6 99 A7 98 9E BD 56 6A FD
+0180 | A4 AB A1 76 A0 1F 25 46 25 CC D3 4E A8 5E 14 77
+0190 | 30 DF AA BC 9F AB 5C D8 2F A6 C2 69 64 E2 04 44
+01A0 | 69 AA 8A B5 07 78 DA 3C 33 2A F8 DA B7 F3 EF CA
+01B0 | 19 5F ED 61 57 2B 0E C4 01 EB C5 52 81 8F 48 25
+01C0 | 07 78 B2 00 7F 5F 72 CE E3 F0 1C B8 64 3C 0F 85
+01D0 | CF 39 A7 6C 19 FB EE E6 C0 FE C3 B0 4D 22 79 02
+01E0 | 86 03 E1 44 B8 BE D6 3C CA 16 8B F8 3E 1D 66 E0
+01F0 | 47 E0 64 3A 1B 90 39 9F 5E 49 1E B8 1D 39 61 ED
+0200 | 2C 0A 21 44 33 38 A4 7C 62 26 62 44 8E 13 47 F3
+0210 | 04 DD C9 EF 9B 5C 91 FA 09 87 26 1D 8B 08 5F 2B
+0220 | F2 77 3F AE 15 CC 42 78 0C 07 91 65 34 4D F2 4C
+0230 | E1 FF 4A 9F B0 F0 2C E3 F0 10 6E 85 29 D2 1F 75
+0240 | 55 FB AC 26 3A 42 0D DA B1 A6 CC C7 F6 33 6B 98
+0250 | 53 B8 4E C5 AE 67 CE 63 8C A1 01 FE 04 14 7E 64
+0260 | A0 D5 03 9D D1 70 07 B0 2A EE B3 73 45 58 E2 53
+0270 | 78 60 AA 99 0A 5D FD 6B E4 8A CE 6E DE 1D 72 B8
+0280 | 54 43 B2 D2 60 56 CE 66 32 01 F5 AE
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 = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC36
message_id |
8, 8 |
-01B44DC92788A266 |
+01F8963F8590A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-78020000 (632 in decimal) |
+7C020000 (636 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC36
nonce |
24, 16 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-FE50020026434906CCA6F90D1A09DE80 575A51EEF25DB1D904C577B75ECA4AB1 23EE99BD873D1BC50939022C69BDD921 4E78D0DE5BB59FDB621F47EDB1F27E66 08CA7DEB59172797AE7A6C3F9B18D2CA 109629518609E574E12A8A7A9EBB22E0 716101D7E7CB61C14EC56581C89613C2 F868CEBC364511BB86ABAB2912D561F9 D9394CEAD728EE331385895CEF5DB493 A272E8206753AF7F8EEFCB04C5B8DA52 98E52102D88F94089F9AF28E0AA13683 8F9500DDFC283AFB3445E36040533308 F763A1711C0BE9C0DE87A1E332997ED9 FC8D4FDC1141CBC428CC919A6AB9CEFD 538AAA0C6299EC3DF767C97E6E5F0630 1808DEC860BAF05324D82DD88F00A93C BC6567FDB8672399EDF5EEB26E5BCF24 A51CDE67F63D434F685265FA4DBBD7BB 939DDF663110B3A9CB29BACD393304C7 BE6DA0537F9EED7FF854820C8BA2486E 329730F5F1F503F0EB5FFD8EAC39868D 08F89A74A644217FC5B398543D3514B2 F301FAB1BC7CB60A60A3EAF7992DD169 AACCBE34B10A62ABA09C6717DAA9AF8D 912110311209F48FA61B74BCD523F09C C7851A024C8EA841E3EB37DB143D5EC8 2C826726CA1BAD0A8AB4C8E9C4CB634B 249DE8B6C1E9909CB48BC61A656D5A5A 08524D3C95BBFE86312C503A53FA7D75 5D67521C45FB8169B6B5F2AE57F20426 F575B27CE182003EFA8FEEAF88D28B3D 802D17F49AC585165F89997D0486F968 85DAAEFEA13ACF9F255F151D9FFAC36A 0DD2854A363F4320354F12E3CE116651 F0413E85142787FAC5323F9C835ACF98 940D9EE0A02BF42F88267726A9335242 1523C6F4A80FBA96BE847F8411FE4462 7CA46249 |
+FE500200475BBECE6C46224CC4C5679D 723D24598D98654CBD0DD156F6124B11 18D75B415D293DA59EE6E598C5BF7B7D F17A3D5DD70B34FD1229903499C50312 B1B9BDBD9C1FA967950BEFBCF4AF43AB DFBE33E3885A6E62BFEDDB5830936616 E4AF9B89BF752699705A610CBABA62AB 5AEF881F9554693B72F0FDD054C8736C D338D75F0DC80C13C2DC1DBBED4B4893 3458D9B0B35D8A2D5A151166E207116E 43B724B377EAE330A545746C6FE459F3 497434C459E59EE64CD0A8DEC0E0964D 6D70DB0FED7EFCB4B1BB3D098A2A4881 27882D07B502033A061FE1AFA8467574 15086EE678C043CEF906F4D51E0855F0 05883A311CEDF02FB935AF6789C8BE18 C33EBEAEDF3404A046E93747187EBFE7 15B407736357FBD12DB48D200FD4DA76 BEB52F1B8CA066DEF56BB269C80F0E38 81AE1A10012BD449AB417A6384D86BF6 99A7989EBD566AFDA4ABA176A01F2546 25CCD34EA85E147730DFAABC9FAB5CD8 2FA6C26964E2044469AA8AB50778DA3C 332AF8DAB7F3EFCA195FED61572B0EC4 01EBC552818F48250778B2007F5F72CE E3F01CB8643C0F85CF39A76C19FBEEE6 C0FEC3B04D2279028603E144B8BED63C CA168BF83E1D66E047E0643A1B90399F 5E491EB81D3961ED2C0A21443338A47C 622662448E1347F304DDC9EF9B5C91FA 0987261D8B085F2BF2773FAE15CC4278 0C079165344DF24CE1FF4A9FB0F02CE3 F0106E8529D21F7555FBAC263A420DDA B1A6CCC7F6336B9853B84EC5AE67CE63 8CA101FE04147E64A0D5039DD17007B0 2AEEB3734558E2537860AA990A5DFD6B E48ACE6EDE1D72B85443B2D26056CE66 3201F5AE |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = 75C88EFAEDE3F11885EF451A697D383137C41695B2B77E8D03109FC36
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = 26434906CCA6F90D1A09DE80575A51EEF25DB1D904C577B75ECA4AB123EE99BD873D1BC50939022C69BDD9214E78D0DE5BB59FDB621F47EDB1F27E6608CA7DEB59172797AE7A6C3F9B18D2CA109629518609E574E12A8A7A9EBB22E0716101D7E7CB61C14EC56581C89613C2F868CEBC364511BB86ABAB2912D561F9D9394CEAD728EE331385895CEF5DB493A272E8206753AF7F8EEFCB04C5B8DA5298E52102D88F94089F9AF28E0AA136838F9500DDFC283AFB3445E36040533308F763A1711C0BE9C0DE87A1E332997ED9FC8D4FDC1141CBC428CC919A6AB9CEFD538AAA0C6299EC3DF767C97E6E5F06301808DEC860BAF05324D82DD88F00A93CBC6567FDB8672399EDF5EEB26E5BCF24A51CDE67F63D434F685265FA4DBBD7BB939DDF663110B3A9CB29BACD393304C7BE6DA0537F9EED7FF854820C8BA2486E329730F5F1F503F0EB5FFD8EAC39868D08F89A74A644217FC5B398543D3514B2F301FAB1BC7CB60A60A3EAF7992DD169AACCBE34B10A62ABA09C6717DAA9AF8D912110311209F48FA61B74BCD523F09CC7851A024C8EA841E3EB37DB143D5EC82C826726CA1BAD0A8AB4C8E9C4CB634B249DE8B6C1E9909CB48BC61A656D5A5A08524D3C95BBFE86312C503A53FA7D755D67521C45FB8169B6B5F2AE57F20426F575B27CE182003EFA8FEEAF88D28B3D802D17F49AC585165F89997D0486F96885DAAEFEA13ACF9F255F151D9FFAC36A0DD2854A363F4320354F12E3CE116651F0413E85142787FAC5323F9C835ACF98940D9EE0A02BF42F88267726A93352421523C6F4A80FBA96BE847F8411FE44627CA46249
-tmp_aes_key = D3922C50D6EF99ADFD87C8BDDFFD4CDA1C3D6316A316CF3C8DBD1F46DF79D162
-tmp_aes_iv = F80B1F841E55718E97B0730CBC1A88C5686A4CA91926680348AD74FB86091F3A
+encrypted_answer = 475BBECE6C46224CC4C5679D723D24598D98654CBD0DD156F6124B1118D75B415D293DA59EE6E598C5BF7B7DF17A3D5DD70B34FD1229903499C50312B1B9BDBD9C1FA967950BEFBCF4AF43ABDFBE33E3885A6E62BFEDDB5830936616E4AF9B89BF752699705A610CBABA62AB5AEF881F9554693B72F0FDD054C8736CD338D75F0DC80C13C2DC1DBBED4B48933458D9B0B35D8A2D5A151166E207116E43B724B377EAE330A545746C6FE459F3497434C459E59EE64CD0A8DEC0E0964D6D70DB0FED7EFCB4B1BB3D098A2A488127882D07B502033A061FE1AFA846757415086EE678C043CEF906F4D51E0855F005883A311CEDF02FB935AF6789C8BE18C33EBEAEDF3404A046E93747187EBFE715B407736357FBD12DB48D200FD4DA76BEB52F1B8CA066DEF56BB269C80F0E3881AE1A10012BD449AB417A6384D86BF699A7989EBD566AFDA4ABA176A01F254625CCD34EA85E147730DFAABC9FAB5CD82FA6C26964E2044469AA8AB50778DA3C332AF8DAB7F3EFCA195FED61572B0EC401EBC552818F48250778B2007F5F72CEE3F01CB8643C0F85CF39A76C19FBEEE6C0FEC3B04D2279028603E144B8BED63CCA168BF83E1D66E047E0643A1B90399F5E491EB81D3961ED2C0A21443338A47C622662448E1347F304DDC9EF9B5C91FA0987261D8B085F2BF2773FAE15CC42780C079165344DF24CE1FF4A9FB0F02CE3F0106E8529D21F7555FBAC263A420DDAB1A6CCC7F6336B9853B84EC5AE67CE638CA101FE04147E64A0D5039DD17007B02AEEB3734558E2537860AA990A5DFD6BE48ACE6EDE1D72B85443B2D26056CE663201F5AE
+tmp_aes_key = C7662A7CD11630CAE946C0E8C90E28B8291DA1C29130D81D8341A55D47C1F4BE
+tmp_aes_iv = F69ACF2331B4EDB15931C58AF8A570F560D6281C7EE7C2F40868B76A6DAA2EFD
Yielding:
-answer_with_hash = 748D7299A8A39DD2AEE663D6151A94EC7C49892BBA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BAA03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010067409202B2D24664CA1A3CFF2EA1C56C8B428EA8AFE9552870366AE99142CEA27F6E013DA6CE86221FFA5B56716A8DD955058F30CC63A3C225987203EF629DF95B69DD7E363E9B8E7431930CAAFC15BE11880E8DFA81CD4074532E0E634D7D2D127ECDABF432DE36640767A6AFD010B092632EA434A4A05ABAA388E7BA52BC5BFC85A8500216671EE3CA7398A3EC208176CDA3D8A17C2F4A8E7352CFDD4DC6C5025EC6A9453DEF5715322AA589E506154074994C724E922ECE1B7907BF3DD95FE5DC069BFE72E791A1E8E4D4F5CB38F79C5E619ACA32F49D49B26FDF656085037803BED1DAF2EC623AEF9867BB78DEB94ACC676D402EA0141915AE293E50ED3B2788A266314D36040518DBAC
-answer = BA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BAA03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010067409202B2D24664CA1A3CFF2EA1C56C8B428EA8AFE9552870366AE99142CEA27F6E013DA6CE86221FFA5B56716A8DD955058F30CC63A3C225987203EF629DF95B69DD7E363E9B8E7431930CAAFC15BE11880E8DFA81CD4074532E0E634D7D2D127ECDABF432DE36640767A6AFD010B092632EA434A4A05ABAA388E7BA52BC5BFC85A8500216671EE3CA7398A3EC208176CDA3D8A17C2F4A8E7352CFDD4DC6C5025EC6A9453DEF5715322AA589E506154074994C724E922ECE1B7907BF3DD95FE5DC069BFE72E791A1E8E4D4F5CB38F79C5E619ACA32F49D49B26FDF656085037803BED1DAF2EC623AEF9867BB78DEB94ACC676D402EA0141915AE293E50ED3B2788A266314D36040518DBAC
+answer_with_hash = 645ECD8175ED7E2EECAFB6836F63F77DF4997C77BA0D89B5B81EE8988BA02146C0B586ED6E48FAF771C1F553574148717774D4C4995CF54403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFEFF0000E1423A539D948A59D31D200D4B7CC58F76380EDCF090A93A024CDF0C01D95C2B1B336CE19D2B7A5DCC3A0D879D3488006C2EA97344FBFEA5AF18DF21780867A15C9C87ABDFB53499CC37FBF6574233F43C08290D2928F375575CD55387228123C14A5AB18AF99BA0E1BFCDC81ADA129AA4311EC81368FCA5743615AE2B5227D9C347158153FCB062E6C182DFBC68A62B11DD42EB578DA81E6C07342C20213569D312360D0F802E8D9EE01A611081C1C682C4218370F0E073D6138DBE6E0C09DC07AEED430A6D965E3C5B3F4E3627CA8F1CCBBAA20790C84F124B815458D123D45BBEAAD191DCB294646BFF46A3741F5B4312C80FE993C4E14779C3DC2A0FD0008590A266EECFE0BACF892D30
+answer = BA0D89B5B81EE8988BA02146C0B586ED6E48FAF771C1F553574148717774D4C4995CF54403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFEFF0000E1423A539D948A59D31D200D4B7CC58F76380EDCF090A93A024CDF0C01D95C2B1B336CE19D2B7A5DCC3A0D879D3488006C2EA97344FBFEA5AF18DF21780867A15C9C87ABDFB53499CC37FBF6574233F43C08290D2928F375575CD55387228123C14A5AB18AF99BA0E1BFCDC81ADA129AA4311EC81368FCA5743615AE2B5227D9C347158153FCB062E6C182DFBC68A62B11DD42EB578DA81E6C07342C20213569D312360D0F802E8D9EE01A611081C1C682C4218370F0E073D6138DBE6E0C09DC07AEED430A6D965E3C5B3F4E3627CA8F1CCBBAA20790C84F124B815458D123D45BBEAAD191DCB294646BFF46A3741F5B4312C80FE993C4E14779C3DC2A0FD0008590A266EECFE0BACF892D30
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 D5 49 52 34 D2 F9 4E 3F 02 4B DF 6D
-0010 | EF 52 10 8B 91 CE 65 C0 BC 19 5D 9A 0A 3F 41 56
-0020 | AA 51 1B AA 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 B8 1E E8 98 8B A0 21 46 C0 B5 86 ED
+0010 | 6E 48 FA F7 71 C1 F5 53 57 41 48 71 77 74 D4 C4
+0020 | 99 5C F5 44 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
@@ -531,24 +531,24 @@ answer = BA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BA
00F0 | E8 3E BE A0 F8 7F A9 FF 5E ED 70 05 0D ED 28 49
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 | 67 40 92 02 B2 D2 46 64 CA 1A 3C FF 2E A1 C5 6C
-0140 | 8B 42 8E A8 AF E9 55 28 70 36 6A E9 91 42 CE A2
-0150 | 7F 6E 01 3D A6 CE 86 22 1F FA 5B 56 71 6A 8D D9
-0160 | 55 05 8F 30 CC 63 A3 C2 25 98 72 03 EF 62 9D F9
-0170 | 5B 69 DD 7E 36 3E 9B 8E 74 31 93 0C AA FC 15 BE
-0180 | 11 88 0E 8D FA 81 CD 40 74 53 2E 0E 63 4D 7D 2D
-0190 | 12 7E CD AB F4 32 DE 36 64 07 67 A6 AF D0 10 B0
-01A0 | 92 63 2E A4 34 A4 A0 5A BA A3 88 E7 BA 52 BC 5B
-01B0 | FC 85 A8 50 02 16 67 1E E3 CA 73 98 A3 EC 20 81
-01C0 | 76 CD A3 D8 A1 7C 2F 4A 8E 73 52 CF DD 4D C6 C5
-01D0 | 02 5E C6 A9 45 3D EF 57 15 32 2A A5 89 E5 06 15
-01E0 | 40 74 99 4C 72 4E 92 2E CE 1B 79 07 BF 3D D9 5F
-01F0 | E5 DC 06 9B FE 72 E7 91 A1 E8 E4 D4 F5 CB 38 F7
-0200 | 9C 5E 61 9A CA 32 F4 9D 49 B2 6F DF 65 60 85 03
-0210 | 78 03 BE D1 DA F2 EC 62 3A EF 98 67 BB 78 DE B9
-0220 | 4A CC 67 6D 40 2E A0 14 19 15 AE 29 3E 50 ED 3B
-0230 | 27 88 A2 66
+0120 | 34 B1 04 03 11 9C D8 E3 B9 2F CC 5B FE FF 00 00
+0130 | E1 42 3A 53 9D 94 8A 59 D3 1D 20 0D 4B 7C C5 8F
+0140 | 76 38 0E DC F0 90 A9 3A 02 4C DF 0C 01 D9 5C 2B
+0150 | 1B 33 6C E1 9D 2B 7A 5D CC 3A 0D 87 9D 34 88 00
+0160 | 6C 2E A9 73 44 FB FE A5 AF 18 DF 21 78 08 67 A1
+0170 | 5C 9C 87 AB DF B5 34 99 CC 37 FB F6 57 42 33 F4
+0180 | 3C 08 29 0D 29 28 F3 75 57 5C D5 53 87 22 81 23
+0190 | C1 4A 5A B1 8A F9 9B A0 E1 BF CD C8 1A DA 12 9A
+01A0 | A4 31 1E C8 13 68 FC A5 74 36 15 AE 2B 52 27 D9
+01B0 | C3 47 15 81 53 FC B0 62 E6 C1 82 DF BC 68 A6 2B
+01C0 | 11 DD 42 EB 57 8D A8 1E 6C 07 34 2C 20 21 35 69
+01D0 | D3 12 36 0D 0F 80 2E 8D 9E E0 1A 61 10 81 C1 C6
+01E0 | 82 C4 21 83 70 F0 E0 73 D6 13 8D BE 6E 0C 09 DC
+01F0 | 07 AE ED 43 0A 6D 96 5E 3C 5B 3F 4E 36 27 CA 8F
+0200 | 1C CB BA A2 07 90 C8 4F 12 4B 81 54 58 D1 23 D4
+0210 | 5B BE AA D1 91 DC B2 94 64 6B FF 46 A3 74 1F 5B
+0220 | 43 12 C8 0F E9 93 C4 E1 47 79 C3 DC 2A 0F D0 00
+0230 | 85 90 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 = BA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BA
nonce |
4, 16 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BA
g_a |
300, 260 |
-FE00010067409202B2D24664CA1A3CFF 2EA1C56C8B428EA8AFE9552870366AE9 9142CEA27F6E013DA6CE86221FFA5B56 716A8DD955058F30CC63A3C225987203 EF629DF95B69DD7E363E9B8E7431930C AAFC15BE11880E8DFA81CD4074532E0E 634D7D2D127ECDABF432DE36640767A6 AFD010B092632EA434A4A05ABAA388E7 BA52BC5BFC85A8500216671EE3CA7398 A3EC208176CDA3D8A17C2F4A8E7352CF DD4DC6C5025EC6A9453DEF5715322AA5 89E506154074994C724E922ECE1B7907 BF3DD95FE5DC069BFE72E791A1E8E4D4 F5CB38F79C5E619ACA32F49D49B26FDF 656085037803BED1DAF2EC623AEF9867 BB78DEB94ACC676D402EA0141915AE29 3E50ED3B |
+FEFF0000E1423A539D948A59D31D200D 4B7CC58F76380EDCF090A93A024CDF0C 01D95C2B1B336CE19D2B7A5DCC3A0D87 9D3488006C2EA97344FBFEA5AF18DF21 780867A15C9C87ABDFB53499CC37FBF6 574233F43C08290D2928F375575CD553 87228123C14A5AB18AF99BA0E1BFCDC8 1ADA129AA4311EC81368FCA5743615AE 2B5227D9C347158153FCB062E6C182DF BC68A62B11DD42EB578DA81E6C07342C 20213569D312360D0F802E8D9EE01A61 1081C1C682C4218370F0E073D6138DBE 6E0C09DC07AEED430A6D965E3C5B3F4E 3627CA8F1CCBBAA20790C84F124B8154 58D123D45BBEAAD191DCB294646BFF46 A3741F5B4312C80FE993C4E14779C3DC 2A0FD000 |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-2788A266 (1721927719 in decimal) |
+8590A266 (1721929861 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BA
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 = 4FC6E364722AF1B09F0E67F99417FB9D01696C9964E96D5E005AFCA193FEE6AF3244493557F7398FF0603F8A9F0B5085038D0CB19137C1A818E37B6F24D581B35D28A7E87111849E65A304603596E01D0146C675CB6F27C2A593DF773DCACF13EB0CAB93BE44EBBB539B2F761057E36747D452AB9AFF3ECCEB848B9F6733A9E6FDCB8058208FC0FCB60375705B92659E49D3ECBE42B0E6CD4A2F94740B0186DEE9AF5D3A66F51FB606D423D7F75C7596657006EB0A6670F64EA7AA38310F0F59B49C88064356DF9D9D9D4A914BEABCB7CDDCA9BAE4919F8C5AED04AC552C8B5D6D56F66B80BD9F0E5ECE70F2AEF7C72007BBD0812908D2760E1DDEEA11742B3F
+b = 664DFD427B63E3EE79EFAAED1F93B8D1F7618D5BC9EA96D1336BF949671FD574B373EA0094B4D3706E52B859C4C8C2B4A19DCF54BE54288C3482254D6F3C943405120EBCD82A3584EF18DDF4CB29ACAE679A5D2F9A66BE9681E322093618DCB00FCD6BB8FD162C0DEBD8D536DCD153A18729309098FAE7A2F88216D2E85A69CCDBB029F9445D7CBA61E07B10DCA5E2DDFC225E0F48DCF9894F0A1156581EA7E8DCA6AC795864254AE50AA078FCFF479AB50B300C9305616D4F903B15C91F4DE1177DF78416F9C4A8249DEE5C0B9043A509CEBB93DD16607E023720512AD579EBB97A3F769117DB7D1D850E61D2D2CD11313BA2CBFCE20EC2E70BB25028994FBF
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 35FE84F9813D7991C97A1C570369C1F36D02218D03A985DED79734FCB3FD8C28642D964DDA0BAB0933F0862F4E26B5608DF1534866A5D0D7B8846E4EAC4187E4147DD750FE6837DE38F8C20F5BC68BDD6F33D992C738BF10A07799F8E56133633B23B2623632872D3880587AD5F56237F4A9A6BF6F572A766DDF64082B3A154B4FA3E28EB5BE5551B43481C200FE2C7C0E725659637613D29059B279DFB2BCA34B51598FA8D5D1AD8A7B19F466A187D237D18AE476300D8AF5274BDFAC17EDC89A62C0E76D7D96E3B7AE6311221371E701E8D1F775985BD58D8F93B06112DE2F77136FC35C299594F1E0226E1464CC4C9F2E598E6E617C6A69BBD14B9DC1F9C6
+g_b = 05354DCA9AB51D8269F671246B9348819F09B3B9277BF3B56C839134610981632383BC24125794EF5EDB45135343DC24122F0B9334026D054C5C60DE07B86E0DD48F5A9D7D221F64FD01A9E3EF425CE98E6DC74FE800EAF28D8315D12094A1AA3448C43C183EF4D6272765ECDD6B694737062DCD55F1F1AE443B1D22B0D97AD56A9F49616B7BAEED6A6582BA61A1EEB628A3B15AB199772973E1090ABEFF8C3671DB7EA305F72CE409815BC4A89D8EA6BA48786E16E5DA2CDD06F054C78D5E532B1C642BE8071D82EBFE1F43217396030651B50C683131E0000FB13F6951C64CE291E77E9FDBC92CFDB64865D13AFDF81CA37D1A1A561CCE717BEA06C513CD4A
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 D5 49 52 34 D2 F9 4E 3F 02 4B DF 6D
-0010 | EF 52 10 8B 91 CE 65 C0 BC 19 5D 9A 0A 3F 41 56
-0020 | AA 51 1B AA 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 35 FE 84 F9 81 3D 79 91 C9 7A 1C 57 03 69 C1 F3
-0040 | 6D 02 21 8D 03 A9 85 DE D7 97 34 FC B3 FD 8C 28
-0050 | 64 2D 96 4D DA 0B AB 09 33 F0 86 2F 4E 26 B5 60
-0060 | 8D F1 53 48 66 A5 D0 D7 B8 84 6E 4E AC 41 87 E4
-0070 | 14 7D D7 50 FE 68 37 DE 38 F8 C2 0F 5B C6 8B DD
-0080 | 6F 33 D9 92 C7 38 BF 10 A0 77 99 F8 E5 61 33 63
-0090 | 3B 23 B2 62 36 32 87 2D 38 80 58 7A D5 F5 62 37
-00A0 | F4 A9 A6 BF 6F 57 2A 76 6D DF 64 08 2B 3A 15 4B
-00B0 | 4F A3 E2 8E B5 BE 55 51 B4 34 81 C2 00 FE 2C 7C
-00C0 | 0E 72 56 59 63 76 13 D2 90 59 B2 79 DF B2 BC A3
-00D0 | 4B 51 59 8F A8 D5 D1 AD 8A 7B 19 F4 66 A1 87 D2
-00E0 | 37 D1 8A E4 76 30 0D 8A F5 27 4B DF AC 17 ED C8
-00F0 | 9A 62 C0 E7 6D 7D 96 E3 B7 AE 63 11 22 13 71 E7
-0100 | 01 E8 D1 F7 75 98 5B D5 8D 8F 93 B0 61 12 DE 2F
-0110 | 77 13 6F C3 5C 29 95 94 F1 E0 22 6E 14 64 CC 4C
-0120 | 9F 2E 59 8E 6E 61 7C 6A 69 BB D1 4B 9D C1 F9 C6
+0000 | 54 B6 43 66 B8 1E E8 98 8B A0 21 46 C0 B5 86 ED
+0010 | 6E 48 FA F7 71 C1 F5 53 57 41 48 71 77 74 D4 C4
+0020 | 99 5C F5 44 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 05 35 4D CA 9A B5 1D 82 69 F6 71 24 6B 93 48 81
+0040 | 9F 09 B3 B9 27 7B F3 B5 6C 83 91 34 61 09 81 63
+0050 | 23 83 BC 24 12 57 94 EF 5E DB 45 13 53 43 DC 24
+0060 | 12 2F 0B 93 34 02 6D 05 4C 5C 60 DE 07 B8 6E 0D
+0070 | D4 8F 5A 9D 7D 22 1F 64 FD 01 A9 E3 EF 42 5C E9
+0080 | 8E 6D C7 4F E8 00 EA F2 8D 83 15 D1 20 94 A1 AA
+0090 | 34 48 C4 3C 18 3E F4 D6 27 27 65 EC DD 6B 69 47
+00A0 | 37 06 2D CD 55 F1 F1 AE 44 3B 1D 22 B0 D9 7A D5
+00B0 | 6A 9F 49 61 6B 7B AE ED 6A 65 82 BA 61 A1 EE B6
+00C0 | 28 A3 B1 5A B1 99 77 29 73 E1 09 0A BE FF 8C 36
+00D0 | 71 DB 7E A3 05 F7 2C E4 09 81 5B C4 A8 9D 8E A6
+00E0 | BA 48 78 6E 16 E5 DA 2C DD 06 F0 54 C7 8D 5E 53
+00F0 | 2B 1C 64 2B E8 07 1D 82 EB FE 1F 43 21 73 96 03
+0100 | 06 51 B5 0C 68 31 31 E0 00 0F B1 3F 69 51 C6 4C
+0110 | E2 91 E7 7E 9F DB C9 2C FD B6 48 65 D1 3A FD F8
+0120 | 1C A3 7D 1A 1A 56 1C CE 71 7B EA 06 C5 13 CD 4A
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 = BA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BA
nonce |
4, 16 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE00010035FE84F9813D7991C97A1C57 0369C1F36D02218D03A985DED79734FC B3FD8C28642D964DDA0BAB0933F0862F 4E26B5608DF1534866A5D0D7B8846E4E AC4187E4147DD750FE6837DE38F8C20F 5BC68BDD6F33D992C738BF10A07799F8 E56133633B23B2623632872D3880587A D5F56237F4A9A6BF6F572A766DDF6408 2B3A154B4FA3E28EB5BE5551B43481C2 00FE2C7C0E725659637613D29059B279 DFB2BCA34B51598FA8D5D1AD8A7B19F4 66A187D237D18AE476300D8AF5274BDF AC17EDC89A62C0E76D7D96E3B7AE6311 221371E701E8D1F775985BD58D8F93B0 6112DE2F77136FC35C299594F1E0226E 1464CC4C9F2E598E6E617C6A69BBD14B 9DC1F9C6 |
+FE00010005354DCA9AB51D8269F67124 6B9348819F09B3B9277BF3B56C839134 610981632383BC24125794EF5EDB4513 5343DC24122F0B9334026D054C5C60DE 07B86E0DD48F5A9D7D221F64FD01A9E3 EF425CE98E6DC74FE800EAF28D8315D1 2094A1AA3448C43C183EF4D6272765EC DD6B694737062DCD55F1F1AE443B1D22 B0D97AD56A9F49616B7BAEED6A6582BA 61A1EEB628A3B15AB199772973E1090A BEFF8C3671DB7EA305F72CE409815BC4 A89D8EA6BA48786E16E5DA2CDD06F054 C78D5E532B1C642BE8071D82EBFE1F43 217396030651B50C683131E0000FB13F 6951C64CE291E77E9FDBC92CFDB64865 D13AFDF81CA37D1A1A561CCE717BEA06 C513CD4A |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B5D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BA
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 = 54B64366D5495234D2F94E3F024BDF6DEF52108B91CE65C0BC195D9A0A3F4156AA511BAA0000000000000000FE00010035FE84F9813D7991C97A1C570369C1F36D02218D03A985DED79734FCB3FD8C28642D964DDA0BAB0933F0862F4E26B5608DF1534866A5D0D7B8846E4EAC4187E4147DD750FE6837DE38F8C20F5BC68BDD6F33D992C738BF10A07799F8E56133633B23B2623632872D3880587AD5F56237F4A9A6BF6F572A766DDF64082B3A154B4FA3E28EB5BE5551B43481C200FE2C7C0E725659637613D29059B279DFB2BCA34B51598FA8D5D1AD8A7B19F466A187D237D18AE476300D8AF5274BDFAC17EDC89A62C0E76D7D96E3B7AE6311221371E701E8D1F775985BD58D8F93B06112DE2F77136FC35C299594F1E0226E1464CC4C9F2E598E6E617C6A69BBD14B9DC1F9C6
-padding = E0DE2B81437D0447A05DFE05
-tmp_aes_key = D3922C50D6EF99ADFD87C8BDDFFD4CDA1C3D6316A316CF3C8DBD1F46DF79D162
-tmp_aes_iv = F80B1F841E55718E97B0730CBC1A88C5686A4CA91926680348AD74FB86091F3A
+data = 54B64366B81EE8988BA02146C0B586ED6E48FAF771C1F553574148717774D4C4995CF5440000000000000000FE00010005354DCA9AB51D8269F671246B9348819F09B3B9277BF3B56C839134610981632383BC24125794EF5EDB45135343DC24122F0B9334026D054C5C60DE07B86E0DD48F5A9D7D221F64FD01A9E3EF425CE98E6DC74FE800EAF28D8315D12094A1AA3448C43C183EF4D6272765ECDD6B694737062DCD55F1F1AE443B1D22B0D97AD56A9F49616B7BAEED6A6582BA61A1EEB628A3B15AB199772973E1090ABEFF8C3671DB7EA305F72CE409815BC4A89D8EA6BA48786E16E5DA2CDD06F054C78D5E532B1C642BE8071D82EBFE1F43217396030651B50C683131E0000FB13F6951C64CE291E77E9FDBC92CFDB64865D13AFDF81CA37D1A1A561CCE717BEA06C513CD4A
+padding = 713B2E085D8855979577F563
+tmp_aes_key = C7662A7CD11630CAE946C0E8C90E28B8291DA1C29130D81D8341A55D47C1F4BE
+tmp_aes_iv = F69ACF2331B4EDB15931C58AF8A570F560D6281C7EE7C2F40868B76A6DAA2EFD
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 = EE128F62F0C4E93570510E0F0D896213D3CC0FA48AC4E4250C145F2B5F4E79EE574E3105DAFA646DEA4E7DCEAA2CB4CB29CD09A606E3E61E1C07D13EF6415331F0681A10307B2022A751BD2A0EAF278B7E65707F7B6525A0ED7F7C9982763CB580D3EC10967017ABC2FEEE438E85E1F39AD4EC26E7CCD5D0BC3A8F541C8F58D399507E810C6605EAD3F19F6BD7F4D058EC85796EC4F3EC4B1A859983A3CD3ABC8D8BFFE78439F4176B6F6BF611696ED41378235A6BCF5BDED89A145A3AB54C6D6BCA7CC20DBF11D12D0AA36992E36C281B5D45B70C36E0CB672DB63631B948AA58DFC0CDDF27BBFF33836319044266B10A73678B1BC5660BD2D913A60B4FF50EFADD220F934EA70E7A64BF115D7F955D4DE8FE668291E57751FE5EA9942D7611A9800D55D0743000337D32EBD658F20F1141DA206FD8018003F1A344F5B7EA8C6B108A993D9613BADC4B97B9B49FE4FD
+encrypted_data = C9647315637804559FC08818538119083A6625746B895EA5F06A90A911F850B4DE88623B62E6319080BB17857735195377CB70C5B72AFE4F5C97483F245B49DD63694A0BD4CC98239F505C4DF785A8744C1DB7BBA34B9A222E86F9EFF68CF374F70DF1F6ECD900CA4BA626D7FE6E16804E2B94431CB60A4F67CAA6637141ED25FAD81ED3D97961378D60F3ADBB472A674A690B4ED2A52E91D176644A01B74E423ED5838D28F364DE64E152F426B5FEAD53223D240010D68C021C2EA4BBE45A0CA21DFD1DC9B9B0AA1D506C3332342AECCF5174759E37034D3139651061B91B345B66F51612F8FFD864FF2DE15463584BDAC0B7900FAC0A2BCC5A0328955A4EDD92146C55488D03F7D28067C5C4007B4D35090662B73A1EBEE30BB7EE27A8F97EFCDEEBF948CACE605BFDDAC000F87A9AE0D5EAC659BEFD46C6270B0483E00DE7C2299F65507ED4994FA8312A3EDD9173
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 44 79 09 00 27 88 A2 66
-0010 | 78 01 00 00 1F 5F 04 F5 D5 49 52 34 D2 F9 4E 3F
-0020 | 02 4B DF 6D EF 52 10 8B 91 CE 65 C0 BC 19 5D 9A
-0030 | 0A 3F 41 56 AA 51 1B AA FE 50 01 00 EE 12 8F 62
-0040 | F0 C4 E9 35 70 51 0E 0F 0D 89 62 13 D3 CC 0F A4
-0050 | 8A C4 E4 25 0C 14 5F 2B 5F 4E 79 EE 57 4E 31 05
-0060 | DA FA 64 6D EA 4E 7D CE AA 2C B4 CB 29 CD 09 A6
-0070 | 06 E3 E6 1E 1C 07 D1 3E F6 41 53 31 F0 68 1A 10
-0080 | 30 7B 20 22 A7 51 BD 2A 0E AF 27 8B 7E 65 70 7F
-0090 | 7B 65 25 A0 ED 7F 7C 99 82 76 3C B5 80 D3 EC 10
-00A0 | 96 70 17 AB C2 FE EE 43 8E 85 E1 F3 9A D4 EC 26
-00B0 | E7 CC D5 D0 BC 3A 8F 54 1C 8F 58 D3 99 50 7E 81
-00C0 | 0C 66 05 EA D3 F1 9F 6B D7 F4 D0 58 EC 85 79 6E
-00D0 | C4 F3 EC 4B 1A 85 99 83 A3 CD 3A BC 8D 8B FF E7
-00E0 | 84 39 F4 17 6B 6F 6B F6 11 69 6E D4 13 78 23 5A
-00F0 | 6B CF 5B DE D8 9A 14 5A 3A B5 4C 6D 6B CA 7C C2
-0100 | 0D BF 11 D1 2D 0A A3 69 92 E3 6C 28 1B 5D 45 B7
-0110 | 0C 36 E0 CB 67 2D B6 36 31 B9 48 AA 58 DF C0 CD
-0120 | DF 27 BB FF 33 83 63 19 04 42 66 B1 0A 73 67 8B
-0130 | 1B C5 66 0B D2 D9 13 A6 0B 4F F5 0E FA DD 22 0F
-0140 | 93 4E A7 0E 7A 64 BF 11 5D 7F 95 5D 4D E8 FE 66
-0150 | 82 91 E5 77 51 FE 5E A9 94 2D 76 11 A9 80 0D 55
-0160 | D0 74 30 00 33 7D 32 EB D6 58 F2 0F 11 41 DA 20
-0170 | 6F D8 01 80 03 F1 A3 44 F5 B7 EA 8C 6B 10 8A 99
-0180 | 3D 96 13 BA DC 4B 97 B9 B4 9F E4 FD
+0000 | 00 00 00 00 00 00 00 00 24 5D 05 00 85 90 A2 66
+0010 | 78 01 00 00 1F 5F 04 F5 B8 1E E8 98 8B A0 21 46
+0020 | C0 B5 86 ED 6E 48 FA F7 71 C1 F5 53 57 41 48 71
+0030 | 77 74 D4 C4 99 5C F5 44 FE 50 01 00 C9 64 73 15
+0040 | 63 78 04 55 9F C0 88 18 53 81 19 08 3A 66 25 74
+0050 | 6B 89 5E A5 F0 6A 90 A9 11 F8 50 B4 DE 88 62 3B
+0060 | 62 E6 31 90 80 BB 17 85 77 35 19 53 77 CB 70 C5
+0070 | B7 2A FE 4F 5C 97 48 3F 24 5B 49 DD 63 69 4A 0B
+0080 | D4 CC 98 23 9F 50 5C 4D F7 85 A8 74 4C 1D B7 BB
+0090 | A3 4B 9A 22 2E 86 F9 EF F6 8C F3 74 F7 0D F1 F6
+00A0 | EC D9 00 CA 4B A6 26 D7 FE 6E 16 80 4E 2B 94 43
+00B0 | 1C B6 0A 4F 67 CA A6 63 71 41 ED 25 FA D8 1E D3
+00C0 | D9 79 61 37 8D 60 F3 AD BB 47 2A 67 4A 69 0B 4E
+00D0 | D2 A5 2E 91 D1 76 64 4A 01 B7 4E 42 3E D5 83 8D
+00E0 | 28 F3 64 DE 64 E1 52 F4 26 B5 FE AD 53 22 3D 24
+00F0 | 00 10 D6 8C 02 1C 2E A4 BB E4 5A 0C A2 1D FD 1D
+0100 | C9 B9 B0 AA 1D 50 6C 33 32 34 2A EC CF 51 74 75
+0110 | 9E 37 03 4D 31 39 65 10 61 B9 1B 34 5B 66 F5 16
+0120 | 12 F8 FF D8 64 FF 2D E1 54 63 58 4B DA C0 B7 90
+0130 | 0F AC 0A 2B CC 5A 03 28 95 5A 4E DD 92 14 6C 55
+0140 | 48 8D 03 F7 D2 80 67 C5 C4 00 7B 4D 35 09 06 62
+0150 | B7 3A 1E BE E3 0B B7 EE 27 A8 F9 7E FC DE EB F9
+0160 | 48 CA CE 60 5B FD DA C0 00 F8 7A 9A E0 D5 EA C6
+0170 | 59 BE FD 46 C6 27 0B 04 83 E0 0D E7 C2 29 9F 65
+0180 | 50 7E D4 99 4F A8 31 2A 3E DD 91 73
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 |
-447909002788A266 |
+245D05008590A266 |
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 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE500100EE128F62F0C4E93570510E0F 0D896213D3CC0FA48AC4E4250C145F2B 5F4E79EE574E3105DAFA646DEA4E7DCE AA2CB4CB29CD09A606E3E61E1C07D13E F6415331F0681A10307B2022A751BD2A 0EAF278B7E65707F7B6525A0ED7F7C99 82763CB580D3EC10967017ABC2FEEE43 8E85E1F39AD4EC26E7CCD5D0BC3A8F54 1C8F58D399507E810C6605EAD3F19F6B D7F4D058EC85796EC4F3EC4B1A859983 A3CD3ABC8D8BFFE78439F4176B6F6BF6 11696ED41378235A6BCF5BDED89A145A 3AB54C6D6BCA7CC20DBF11D12D0AA369 92E36C281B5D45B70C36E0CB672DB636 31B948AA58DFC0CDDF27BBFF33836319 044266B10A73678B1BC5660BD2D913A6 0B4FF50EFADD220F934EA70E7A64BF11 5D7F955D4DE8FE668291E57751FE5EA9 942D7611A9800D55D0743000337D32EB D658F20F1141DA206FD8018003F1A344 F5B7EA8C6B108A993D9613BADC4B97B9 B49FE4FD |
+FE500100C9647315637804559FC08818 538119083A6625746B895EA5F06A90A9 11F850B4DE88623B62E6319080BB1785 7735195377CB70C5B72AFE4F5C97483F 245B49DD63694A0BD4CC98239F505C4D F785A8744C1DB7BBA34B9A222E86F9EF F68CF374F70DF1F6ECD900CA4BA626D7 FE6E16804E2B94431CB60A4F67CAA663 7141ED25FAD81ED3D97961378D60F3AD BB472A674A690B4ED2A52E91D176644A 01B74E423ED5838D28F364DE64E152F4 26B5FEAD53223D240010D68C021C2EA4 BBE45A0CA21DFD1DC9B9B0AA1D506C33 32342AECCF5174759E37034D31396510 61B91B345B66F51612F8FFD864FF2DE1 5463584BDAC0B7900FAC0A2BCC5A0328 955A4EDD92146C55488D03F7D28067C5 C4007B4D35090662B73A1EBEE30BB7EE 27A8F97EFCDEEBF948CACE605BFDDAC0 00F87A9AE0D5EAC659BEFD46C6270B04 83E00DE7C2299F65507ED4994FA8312A 3EDD9173 |
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 = 4E9D7310E7DD44DC1811D9843D91C8D73B77CC8E3670787FFFFC330929B0F94033B71364C7DAC87250FCF63429DBA44334639B457CA99F84CBEB3F3E8D9E0EFA458009B0510540C9AA18BC71CEAF7726912F7C334C246BFD5CF63EFCC282F286E532A866CA08CBBCBF484B260769627187A5524B3843F9B2E14009565AFC8282F507822121349062019E3804C3DE38AA6507CA4E6AA3CC2B7739B76215B9805C7F70DB4F9C8B558B15AEB1168280F17B03823DDB0B9357D172C3D896EE46080CF38DC75636B5033A479315DA2F9DB1F968EB82CE646A6A39BF8AA880595E879C0BD447B3BB368241033C7FD443F57C7046ABDD68683D7CDDC0667DFE06D247E8
+auth_key = 91DB36AD929C40B4E43312AA240BE2B4169B0E8ECAA41B4BE66F346CAD9D0D8030E1D44E0E243BFCF11556C09CB440B31FAB8C964F781E7B1788D3668EFC88065B1643E007ECE7D11D7BA6D37CB4115197728332170936833E5BB3B23B1ED5FB0B9527DA7EDF69394543596E062621657101AB58F99E465941F42DF26E53AA76776D713AFE6558AA20C37CD464E22659A2149B828F39FDE6F2E95539C21EF263D134A153B037386473FDE9A03D992F0EC1830A048E017E680BD9D79B592DE19138B8AAFF2E9E4AB24BB81B563C1F5903E933B675613B3CAB2AECAF8F94D715E5F3AE2FF769083A29BE57A2F50B86DF5A19CC9AF1D2EDD602E4702575A62DB260
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 40 4B A0 28 88 A2 66
-0010 | 64 00 00 00 34 F7 CB 3B D5 49 52 34 D2 F9 4E 3F
-0020 | 02 4B DF 6D EF 52 10 8B 91 CE 65 C0 BC 19 5D 9A
-0030 | 0A 3F 41 56 AA 51 1B AA 9B 13 77 69 10 28 36 EE
-0040 | D5 85 94 3C 56 A3 F3 AB
+0000 | 00 00 00 00 00 00 00 00 01 4C 17 D8 85 90 A2 66
+0010 | 94 00 00 00 34 F7 CB 3B B8 1E E8 98 8B A0 21 46
+0020 | C0 B5 86 ED 6E 48 FA F7 71 C1 F5 53 57 41 48 71
+0030 | 77 74 D4 C4 99 5C F5 44 B5 4F 21 9D 5F 9F 6F 94
+0040 | DA A5 B4 AC 22 AD 7A 2C
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 |
-01404BA02888A266 |
+014C17D88590A266 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-64000000 (100 in decimal) |
+94000000 (148 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 |
-D5495234D2F94E3F024BDF6DEF52108B |
+B81EE8988BA02146C0B586ED6E48FAF7 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-91CE65C0BC195D9A0A3F4156AA511BAA |
+71C1F553574148717774D4C4995CF544 |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-9B137769102836EED585943C56A3F3AB |
+B54F219D5F9F6F94DAA5B4AC22AD7A2C |
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. |
diff --git a/data/web/corefork.telegram.org/type/StarsTransactionPeer.html b/data/web/corefork.telegram.org/type/StarsTransactionPeer.html
index 4c3e4d9863..f40920de34 100644
--- a/data/web/corefork.telegram.org/type/StarsTransactionPeer.html
+++ b/data/web/corefork.telegram.org/type/StarsTransactionPeer.html
@@ -84,7 +84,7 @@
starsTransactionPeerPremiumBot |
- |
+Describes a Telegram Star transaction made using @PremiumBot (i.e. using the inputInvoiceStars flow described here »). |
starsTransactionPeerFragment |
diff --git a/data/web/corefork.telegram.org/type/payments.StarsStatus.html b/data/web/corefork.telegram.org/type/payments.StarsStatus.html
index 0fde8d138f..9a07ab13f5 100644
--- a/data/web/corefork.telegram.org/type/payments.StarsStatus.html
+++ b/data/web/corefork.telegram.org/type/payments.StarsStatus.html
@@ -91,7 +91,7 @@
payments.getStarsTransactions |
-Fetch Telegram Stars transactions. |
+Fetch Telegram Stars transactions.
The inbound and outbound flags are mutually exclusive: if none of the two are set, both incoming and outgoing transactions are fetched. |