@@ -77,7 +77,7 @@
message_id |
8, 8 |
-A4550100ED11BD64 |
+D4A80E002E14BD64 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
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 A0 BF 74 ED 11 BD 64
-0010 | C0 00 00 00 63 24 16 05 7A 1F FF 53 21 A4 04 32
-0020 | 84 F5 F3 02 41 19 D9 50 AE CF 0E 9B D3 89 17 4E
-0030 | 9A E7 5D CB 0D 3C 7D C6 08 28 99 20 60 6C 46 1C
-0040 | 09 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 E0 CB D7 2E 14 BD 64
+0010 | A0 00 00 00 63 24 16 05 8E 5F 16 4A 0C 6B 62 63
+0020 | 47 92 D9 A2 43 3E AC 5C FE 23 5C 20 EB 66 2B E4
+0030 | 8E D2 C1 3C 79 3D 50 9C 08 1C 80 7A AA 22 BE D9
+0040 | E5 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 |
-01A0BF74ED11BD64 |
+01E0CBD72E14BD64 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-C0000000 (192 in decimal) |
+A0000000 (160 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Server-generated random number |
pq |
56, 12 |
-08289920606C461C09000000 TL byte deserialization => bigendian conversion to decimal => 2925405031459331081 |
+081C807AAA22BED9E5000000 TL byte deserialization => bigendian conversion to decimal => 2053776301226908133 |
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 = 2925405031459331081
-Decompose into 2 prime cofactors p < q
: 2925405031459331081 = 1643114519 * 1780402399
-p = 1643114519
-q = 1780402399
+pq = 2053776301226908133
+Decompose into 2 prime cofactors p < q
: 2053776301226908133 = 1121131069 * 1831878857
+p = 1121131069
+q = 1831878857
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 28 99 20 60 6C 46 1C 09 00 00 00
-0010 | 04 61 EF F0 17 00 00 00 04 6A 1E C8 DF 00 00 00
-0020 | 7A 1F FF 53 21 A4 04 32 84 F5 F3 02 41 19 D9 50
-0030 | AE CF 0E 9B D3 89 17 4E 9A E7 5D CB 0D 3C 7D C6
-0040 | 6C A1 C6 89 07 5B 8C 46 00 AE 53 8F C7 FC 25 EB
-0050 | 2F A6 AE B2 7C 98 DA 61 16 37 33 04 59 E7 26 2B
+0000 | 95 5F F5 A9 08 1C 80 7A AA 22 BE D9 E5 00 00 00
+0010 | 04 42 D3 1A 3D 00 00 00 04 6D 30 40 C9 00 00 00
+0020 | 8E 5F 16 4A 0C 6B 62 63 47 92 D9 A2 43 3E AC 5C
+0030 | FE 23 5C 20 EB 66 2B E4 8E D2 C1 3C 79 3D 50 9C
+0040 | 24 62 30 E0 F7 4C 3B 30 6D 14 55 BE 80 8E 51 15
+0050 | C3 83 B4 53 C1 05 90 F5 F1 BC 06 A3 92 F4 53 AE
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 = 1780402399
pq |
4, 12 |
-08289920606C461C09000000 TL byte deserialization => bigendian conversion to decimal => 2925405031459331081 |
+081C807AAA22BED9E5000000 TL byte deserialization => bigendian conversion to decimal => 2053776301226908133 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-0461EFF017000000 TL byte deserialization => bigendian conversion to decimal => 1643114519 |
+0442D31A3D000000 TL byte deserialization => bigendian conversion to decimal => 1121131069 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-046A1EC8DF000000 TL byte deserialization => bigendian conversion to decimal => 1780402399 |
+046D3040C9000000 TL byte deserialization => bigendian conversion to decimal => 1831878857 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-6CA1C689075B8C4600AE538FC7FC25EB 2FA6AEB27C98DA611637330459E7262B |
+246230E0F74C3B306D1455BE808E5115 C383B453C10590F5F1BC06A392F453AE |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1780402399
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 = 955FF5A908289920606C461C090000000461EFF017000000046A1EC8DF0000007A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC66CA1C689075B8C4600AE538FC7FC25EB2FA6AEB27C98DA611637330459E7262B02000000
-random_padding_bytes = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E3C2EF33429907DDB72AA767140458683AC22A999BD10FB9ECE9C27A6FEB746AF79344E71C65A3586F245E2B9989A7485B9D8CE41EF11909767BFCF0649835B6
+data = 955FF5A9081C807AAA22BED9E50000000442D31A3D000000046D3040C90000008E5F164A0C6B62634792D9A2433EAC5CFE235C20EB662BE48ED2C13C793D509C246230E0F74C3B306D1455BE808E5115C383B453C10590F5F1BC06A392F453AE02000000
+random_padding_bytes = D8C2D66723BF8F092A2418648093840A780CA68C813B7C9483DA6DE69CF837169BA442C0DDD6D6C78996180264C84FDA86DB11FFC9B0BB468838AE2B66D7E30074BBF5F03F447D742FA3D3FB8C2386424811E3DDC176FB862128FAFA
And this is the output:
-encrypted_data = 8A2A79C21D9784430CEF751E4A40E5D5164F7FB8359E8AC36124DD9B62F67C90F461D7430A775B4F7CE86695EC96184E27A068E467F15DADB39811EE6B2D4FF09214E8464D15AFA5B041AD2C63A5DC4998483C0B8613F861F6418CB5747037186FCDB931024825C624468745C211F6411E1FAD46AF894557658CE235E1E2D0CFFE775BBC4B67420ABB5E39D0C4D662A9D40A5C0DEA36AC79B95187C0C4116D05C1F5C103735ADA2F61ECB182FAB923B941D2129268DF31C6C9648AD8EE23E64A6CE497C385EC5C29B55BCB4D6535DFED8120F0DF56465AA0DC5B47DC4459C9C586E373A527594CA7B276652791C513E36AED4110E5CF2A925AAC1F5B4C6D57F9
+encrypted_data = 5BC3252F8978A35583A450936F32CADF16E7D245869BB3B882FB7A9B8117836F046C6C5F59ECC9038A5FCB8BAB8F13ACE5159E1CC09E2155C86C9E436AB17E3830EADAB050CD1370AA016A84B50BCA8E65BB7B982CC74641387B38AB81368F256ECAE971CB023BEB33609FD05949E5F0FE53B40AADD403A024FC2F3FBC0F23C2E0682F44BB9A922C3E932BB40694E10CFF6EF9C155522C77C6C920E7296E6616DD4D060F026DBB94559CF84CB92C9B465C8FE3211E2E884ED7A7E6EA49B88DD04CCB61017EF276CE28AD0B8A3EC2843DDC58133D07F7B4AACF7BD0B1AFC8C6DA8C044B80210E384A0B0E4D52F602288B68520F57A40D4D177D16B4BDEA5A7342
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 64 71 04 00 ED 11 BD 64
-0010 | 40 01 00 00 BE E4 12 D7 7A 1F FF 53 21 A4 04 32
-0020 | 84 F5 F3 02 41 19 D9 50 AE CF 0E 9B D3 89 17 4E
-0030 | 9A E7 5D CB 0D 3C 7D C6 04 61 EF F0 17 00 00 00
-0040 | 04 6A 1E C8 DF 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 8A 2A 79 C2 1D 97 84 43 0C EF 75 1E
-0060 | 4A 40 E5 D5 16 4F 7F B8 35 9E 8A C3 61 24 DD 9B
-0070 | 62 F6 7C 90 F4 61 D7 43 0A 77 5B 4F 7C E8 66 95
-0080 | EC 96 18 4E 27 A0 68 E4 67 F1 5D AD B3 98 11 EE
-0090 | 6B 2D 4F F0 92 14 E8 46 4D 15 AF A5 B0 41 AD 2C
-00A0 | 63 A5 DC 49 98 48 3C 0B 86 13 F8 61 F6 41 8C B5
-00B0 | 74 70 37 18 6F CD B9 31 02 48 25 C6 24 46 87 45
-00C0 | C2 11 F6 41 1E 1F AD 46 AF 89 45 57 65 8C E2 35
-00D0 | E1 E2 D0 CF FE 77 5B BC 4B 67 42 0A BB 5E 39 D0
-00E0 | C4 D6 62 A9 D4 0A 5C 0D EA 36 AC 79 B9 51 87 C0
-00F0 | C4 11 6D 05 C1 F5 C1 03 73 5A DA 2F 61 EC B1 82
-0100 | FA B9 23 B9 41 D2 12 92 68 DF 31 C6 C9 64 8A D8
-0110 | EE 23 E6 4A 6C E4 97 C3 85 EC 5C 29 B5 5B CB 4D
-0120 | 65 35 DF ED 81 20 F0 DF 56 46 5A A0 DC 5B 47 DC
-0130 | 44 59 C9 C5 86 E3 73 A5 27 59 4C A7 B2 76 65 27
-0140 | 91 C5 13 E3 6A ED 41 10 E5 CF 2A 92 5A AC 1F 5B
-0150 | 4C 6D 57 F9
+0000 | 00 00 00 00 00 00 00 00 D8 A8 0E 00 2E 14 BD 64
+0010 | 40 01 00 00 BE E4 12 D7 8E 5F 16 4A 0C 6B 62 63
+0020 | 47 92 D9 A2 43 3E AC 5C FE 23 5C 20 EB 66 2B E4
+0030 | 8E D2 C1 3C 79 3D 50 9C 04 42 D3 1A 3D 00 00 00
+0040 | 04 6D 30 40 C9 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 5B C3 25 2F 89 78 A3 55 83 A4 50 93
+0060 | 6F 32 CA DF 16 E7 D2 45 86 9B B3 B8 82 FB 7A 9B
+0070 | 81 17 83 6F 04 6C 6C 5F 59 EC C9 03 8A 5F CB 8B
+0080 | AB 8F 13 AC E5 15 9E 1C C0 9E 21 55 C8 6C 9E 43
+0090 | 6A B1 7E 38 30 EA DA B0 50 CD 13 70 AA 01 6A 84
+00A0 | B5 0B CA 8E 65 BB 7B 98 2C C7 46 41 38 7B 38 AB
+00B0 | 81 36 8F 25 6E CA E9 71 CB 02 3B EB 33 60 9F D0
+00C0 | 59 49 E5 F0 FE 53 B4 0A AD D4 03 A0 24 FC 2F 3F
+00D0 | BC 0F 23 C2 E0 68 2F 44 BB 9A 92 2C 3E 93 2B B4
+00E0 | 06 94 E1 0C FF 6E F9 C1 55 52 2C 77 C6 C9 20 E7
+00F0 | 29 6E 66 16 DD 4D 06 0F 02 6D BB 94 55 9C F8 4C
+0100 | B9 2C 9B 46 5C 8F E3 21 1E 2E 88 4E D7 A7 E6 EA
+0110 | 49 B8 8D D0 4C CB 61 01 7E F2 76 CE 28 AD 0B 8A
+0120 | 3E C2 84 3D DC 58 13 3D 07 F7 B4 AA CF 7B D0 B1
+0130 | AF C8 C6 DA 8C 04 4B 80 21 0E 38 4A 0B 0E 4D 52
+0140 | F6 02 28 8B 68 52 0F 57 A4 0D 4D 17 7D 16 B4 BD
+0150 | EA 5A 73 42
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 = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E
message_id |
8, 8 |
-64710400ED11BD64 |
+D8A80E002E14BD64 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E
nonce |
24, 16 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Value received from server in Step 2 |
p |
56, 8 |
-0461EFF017000000 TL byte deserialization => bigendian conversion to decimal => 1643114519 |
+0442D31A3D000000 TL byte deserialization => bigendian conversion to decimal => 1121131069 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-046A1EC8DF000000 TL byte deserialization => bigendian conversion to decimal => 1780402399 |
+046D3040C9000000 TL byte deserialization => bigendian conversion to decimal => 1831878857 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E
encrypted_data |
80, 260 |
-FE0001008A2A79C21D9784430CEF751E 4A40E5D5164F7FB8359E8AC36124DD9B 62F67C90F461D7430A775B4F7CE86695 EC96184E27A068E467F15DADB39811EE 6B2D4FF09214E8464D15AFA5B041AD2C 63A5DC4998483C0B8613F861F6418CB5 747037186FCDB931024825C624468745 C211F6411E1FAD46AF894557658CE235 E1E2D0CFFE775BBC4B67420ABB5E39D0 C4D662A9D40A5C0DEA36AC79B95187C0 C4116D05C1F5C103735ADA2F61ECB182 FAB923B941D2129268DF31C6C9648AD8 EE23E64A6CE497C385EC5C29B55BCB4D 6535DFED8120F0DF56465AA0DC5B47DC 4459C9C586E373A527594CA7B2766527 91C513E36AED4110E5CF2A925AAC1F5B 4C6D57F9 |
+FE0001005BC3252F8978A35583A45093 6F32CADF16E7D245869BB3B882FB7A9B 8117836F046C6C5F59ECC9038A5FCB8B AB8F13ACE5159E1CC09E2155C86C9E43 6AB17E3830EADAB050CD1370AA016A84 B50BCA8E65BB7B982CC74641387B38AB 81368F256ECAE971CB023BEB33609FD0 5949E5F0FE53B40AADD403A024FC2F3F BC0F23C2E0682F44BB9A922C3E932BB4 0694E10CFF6EF9C155522C77C6C920E7 296E6616DD4D060F026DBB94559CF84C B92C9B465C8FE3211E2E884ED7A7E6EA 49B88DD04CCB61017EF276CE28AD0B8A 3EC2843DDC58133D07F7B4AACF7BD0B1 AFC8C6DA8C044B80210E384A0B0E4D52 F602288B68520F57A40D4D177D16B4BD EA5A7342 |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 C4 B1 0B EE 11 BD 64
-0010 | A4 02 00 00 5C 07 E8 D0 7A 1F FF 53 21 A4 04 32
-0020 | 84 F5 F3 02 41 19 D9 50 AE CF 0E 9B D3 89 17 4E
-0030 | 9A E7 5D CB 0D 3C 7D C6 FE 50 02 00 A3 88 64 8C
-0040 | D5 DA 2B 14 23 28 E2 B5 A9 A7 88 4B AD 7E 83 96
-0050 | 68 D1 29 3E E3 13 51 F6 2C 68 2A 7F 57 E1 73 6E
-0060 | 0B 9B 54 6C FE 89 6B 13 22 5E 79 25 6F 4F 22 94
-0070 | EF 95 DE 2D 1C C0 02 3B 2C E2 37 6E 39 C7 67 43
-0080 | F2 B9 AB 75 22 B6 DE 54 F5 6F E3 EC 90 29 74 D1
-0090 | B8 24 D1 D9 D2 BF 23 FC F3 08 66 40 D3 E6 9B F1
-00A0 | 38 16 BE 72 DE 36 71 FE 80 D6 1C 6C 3A D3 37 08
-00B0 | F6 FF 83 DE 4C E6 D7 32 B6 D4 1B 31 DC B6 F3 03
-00C0 | 7A 58 29 84 C3 DF 6B 8B BE BA 87 16 C4 51 F2 62
-00D0 | 33 C5 D9 1B F7 A8 5E 2E A7 C3 E1 A5 40 F0 59 C3
-00E0 | F4 9A 56 31 AD 04 92 27 CD 5C 23 4E 86 15 5D 2B
-00F0 | 9A C4 5B 5C CE 99 5C 85 4B 88 05 CF 4C 83 3B BF
-0100 | FA E0 49 B7 28 F8 AB CD 8B 2B 85 94 1A 42 58 91
-0110 | 5D AD A8 E0 2F B2 6B A7 7A 1E B9 D4 FC 64 C3 B5
-0120 | 06 71 DA A1 07 F2 BB 3A B7 2B 2F 4E 13 BA 2D 40
-0130 | 4A AD 55 38 DC 16 49 39 E8 BD 33 A8 53 39 01 C0
-0140 | 5A C8 E2 0B 70 B7 B8 7A 88 11 A7 87 38 FF 02 77
-0150 | B1 57 85 33 0C 35 1E F6 97 96 8F 1F 8C E7 54 CC
-0160 | DD 86 12 7E D1 67 83 5C 9B AF 23 D7 8E 4C 49 E1
-0170 | 81 75 1D 49 BD 84 2B 8C 85 85 60 FB 1D A0 D4 24
-0180 | 43 1F 40 39 1B C1 16 31 E1 08 5D A2 B0 36 13 43
-0190 | 69 AD 9C A1 9D 6F 51 30 FA BA 5A EA F4 FD B2 0B
-01A0 | 19 DB 3F 95 1F 02 15 A3 64 C2 0F 09 2D 70 1F 3D
-01B0 | D0 9D 24 26 38 00 AA A4 66 61 23 EB 55 C9 CB B1
-01C0 | C3 6D AB 84 3A D2 A9 88 BE 11 97 73 EE 76 0D 7E
-01D0 | 9F 2C 9A A4 BB AD 38 44 19 7C 43 1B FE EC 91 33
-01E0 | 92 08 D4 1D A5 BA 2B EE 45 43 DC FE A6 84 9E 24
-01F0 | CC E5 CB 90 13 2A CC 47 5B EF 84 2A 61 CD DF 76
-0200 | E8 BF B9 DB 30 60 D8 85 04 0C 41 FD 20 A9 F6 CC
-0210 | 72 A0 9E 8D F3 C5 FC 54 42 59 79 69 06 04 8F 83
-0220 | A0 C0 BA B4 B8 EA 6E 42 1E 5B 4A 2F 3C 1E A1 9E
-0230 | DA 72 0D 98 3C A2 D3 10 0A 43 89 06 40 E3 18 08
-0240 | 39 2F 37 5C 60 2C C4 7F 39 A8 DD EE 81 1A 7D 28
-0250 | 6D 9D 6D A8 F6 87 FA DC 9F 81 E5 2C 9D 42 13 78
-0260 | 86 78 D4 47 73 30 AA 0A 6B 04 DC 05 D7 DF 5A 8D
-0270 | 6E FC 75 52 70 AC BC 90 D2 DA 36 73 BA 1A 2F 4A
-0280 | F5 ED 02 86 87 73 17 0E 8B 5A 63 C6
+0000 | 00 00 00 00 00 00 00 00 01 AC 30 79 2F 14 BD 64
+0010 | A8 02 00 00 5C 07 E8 D0 8E 5F 16 4A 0C 6B 62 63
+0020 | 47 92 D9 A2 43 3E AC 5C FE 23 5C 20 EB 66 2B E4
+0030 | 8E D2 C1 3C 79 3D 50 9C FE 50 02 00 9A D5 42 1A
+0040 | 13 6A 4C F5 E7 E2 56 F9 DF ED 61 C1 70 66 5F F7
+0050 | 0E D7 48 AE 53 2C A3 1F 6D 77 21 AB 8A D3 E5 B0
+0060 | D1 C3 D1 BE EF 5D FE DB F3 FE 8C C6 CC C3 77 7C
+0070 | 2D 02 7C D4 41 A2 0B DC 85 BE 70 75 D3 C4 AB 1C
+0080 | 99 92 7D 63 89 4B DB 4F B2 23 48 EF D2 DD 0B 95
+0090 | 17 B5 7E 21 C6 57 9C 1F D6 BC A0 DD DD 7F 17 8E
+00A0 | B1 5F AC 08 79 A7 5B AB 6A 4A C1 38 DA 5A C9 5B
+00B0 | 88 91 5F 03 98 1C EE BC 75 DC A7 C9 8B 12 72 84
+00C0 | F1 AE BF 79 B0 F7 2B 80 FF 49 39 CA 8D 68 20 AA
+00D0 | E5 7C 45 39 28 CF 26 3C BC E8 51 E8 C0 30 63 C6
+00E0 | A4 8C 4D 46 B9 0D F9 2D 68 20 5D 5E FC C8 20 67
+00F0 | 78 81 00 52 28 B2 3E EE B2 D5 CF 70 27 D9 3D BC
+0100 | D4 A5 18 4C CE 5A 33 90 4E 33 5A 00 9A 39 3F 1D
+0110 | 4B A1 D3 1D 21 1E 55 D8 11 D0 9E 48 B4 63 3E B8
+0120 | DE 26 BD DB 33 47 94 FD 6C 7B E7 F7 1C 42 73 F0
+0130 | 00 DE 89 56 2B 30 08 1A 5C E0 BC AC 99 9C EF E2
+0140 | 3A 64 01 CF B1 32 09 D4 31 E6 BF 8B AD B2 D5 C5
+0150 | 2C CE 21 0E 8F 2D 5E 01 82 4B DF B6 69 38 EA F7
+0160 | FE B7 D6 12 BB 7D F4 A2 54 E8 A6 F9 FF D7 A8 70
+0170 | 5F A0 11 32 8F EC 82 1D 88 22 2B F3 18 9D DA 79
+0180 | A2 8E A8 13 46 50 31 B3 25 44 44 A4 48 ED 57 0B
+0190 | B9 0E 73 03 2B 81 48 5B E1 19 22 BD 1C 23 46 B5
+01A0 | C5 21 0E F5 B0 44 DA 4C A5 88 08 F5 E8 C5 AA 5E
+01B0 | 32 C8 9C C3 9F 3B 8F E8 09 2C B4 F1 0F 3D 4D 08
+01C0 | FD 7D 21 D2 49 AB 1D 8F ED FD 89 7D 27 38 3B 00
+01D0 | 0D 01 C9 14 CF D8 58 7D B8 AF A3 0F 99 FA 7C 87
+01E0 | 16 EB 79 F0 71 0B 72 AE B5 97 73 A1 FB 66 ED 24
+01F0 | 3C 0D 3F 48 38 AE 5A 09 ED F6 A9 A9 08 6E 86 B3
+0200 | 36 29 E3 32 28 E8 1D FE 6E 21 CC E3 E7 32 6A 0B
+0210 | 1E 9B A4 D4 49 F6 2B 4F C5 84 5F 96 52 9E F6 A9
+0220 | 94 22 53 0F 18 DC 65 6B 8D 85 57 28 4C 9C AD DA
+0230 | 57 CD 68 F6 A2 97 6D C6 A9 C1 3F 8A 70 13 51 7A
+0240 | F5 7F 96 7E 21 A7 40 41 E8 2A B8 21 EC 63 3B 8F
+0250 | DA CA 0F D0 D2 CC 58 0B FA 5B 3D 9C 66 8B DC 22
+0260 | 12 95 8F A2 44 C4 40 77 23 56 D9 ED 1C 25 33 E0
+0270 | 9D 26 E7 60 F7 E9 48 4E D1 2D 3D 25 C6 83 A8 41
+0280 | 97 3C D7 0D BA 12 C1 91 6B 74 E8 81
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 = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E
message_id |
8, 8 |
-01C4B10BEE11BD64 |
+01AC30792F14BD64 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-A4020000 (676 in decimal) |
+A8020000 (680 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E
nonce |
24, 16 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-FE500200A388648CD5DA2B142328E2B5 A9A7884BAD7E839668D1293EE31351F6 2C682A7F57E1736E0B9B546CFE896B13 225E79256F4F2294EF95DE2D1CC0023B 2CE2376E39C76743F2B9AB7522B6DE54 F56FE3EC902974D1B824D1D9D2BF23FC F3086640D3E69BF13816BE72DE3671FE 80D61C6C3AD33708F6FF83DE4CE6D732 B6D41B31DCB6F3037A582984C3DF6B8B BEBA8716C451F26233C5D91BF7A85E2E A7C3E1A540F059C3F49A5631AD049227 CD5C234E86155D2B9AC45B5CCE995C85 4B8805CF4C833BBFFAE049B728F8ABCD 8B2B85941A4258915DADA8E02FB26BA7 7A1EB9D4FC64C3B50671DAA107F2BB3A B72B2F4E13BA2D404AAD5538DC164939 E8BD33A8533901C05AC8E20B70B7B87A 8811A78738FF0277B15785330C351EF6 97968F1F8CE754CCDD86127ED167835C 9BAF23D78E4C49E181751D49BD842B8C 858560FB1DA0D424431F40391BC11631 E1085DA2B036134369AD9CA19D6F5130 FABA5AEAF4FDB20B19DB3F951F0215A3 64C20F092D701F3DD09D24263800AAA4 666123EB55C9CBB1C36DAB843AD2A988 BE119773EE760D7E9F2C9AA4BBAD3844 197C431BFEEC91339208D41DA5BA2BEE 4543DCFEA6849E24CCE5CB90132ACC47 5BEF842A61CDDF76E8BFB9DB3060D885 040C41FD20A9F6CC72A09E8DF3C5FC54 4259796906048F83A0C0BAB4B8EA6E42 1E5B4A2F3C1EA19EDA720D983CA2D310 0A43890640E31808392F375C602CC47F 39A8DDEE811A7D286D9D6DA8F687FADC 9F81E52C9D4213788678D4477330AA0A 6B04DC05D7DF5A8D6EFC755270ACBC90 D2DA3673BA1A2F4AF5ED02868773170E 8B5A63C6 |
+FE5002009AD5421A136A4CF5E7E256F9 DFED61C170665FF70ED748AE532CA31F 6D7721AB8AD3E5B0D1C3D1BEEF5DFEDB F3FE8CC6CCC3777C2D027CD441A20BDC 85BE7075D3C4AB1C99927D63894BDB4F B22348EFD2DD0B9517B57E21C6579C1F D6BCA0DDDD7F178EB15FAC0879A75BAB 6A4AC138DA5AC95B88915F03981CEEBC 75DCA7C98B127284F1AEBF79B0F72B80 FF4939CA8D6820AAE57C453928CF263C BCE851E8C03063C6A48C4D46B90DF92D 68205D5EFCC820677881005228B23EEE B2D5CF7027D93DBCD4A5184CCE5A3390 4E335A009A393F1D4BA1D31D211E55D8 11D09E48B4633EB8DE26BDDB334794FD 6C7BE7F71C4273F000DE89562B30081A 5CE0BCAC999CEFE23A6401CFB13209D4 31E6BF8BADB2D5C52CCE210E8F2D5E01 824BDFB66938EAF7FEB7D612BB7DF4A2 54E8A6F9FFD7A8705FA011328FEC821D 88222BF3189DDA79A28EA813465031B3 254444A448ED570BB90E73032B81485B E11922BD1C2346B5C5210EF5B044DA4C A58808F5E8C5AA5E32C89CC39F3B8FE8 092CB4F10F3D4D08FD7D21D249AB1D8F EDFD897D27383B000D01C914CFD8587D B8AFA30F99FA7C8716EB79F0710B72AE B59773A1FB66ED243C0D3F4838AE5A09 EDF6A9A9086E86B33629E33228E81DFE 6E21CCE3E7326A0B1E9BA4D449F62B4F C5845F96529EF6A99422530F18DC656B 8D8557284C9CADDA57CD68F6A2976DC6 A9C13F8A7013517AF57F967E21A74041 E82AB821EC633B8FDACA0FD0D2CC580B FA5B3D9C668BDC2212958FA244C44077 2356D9ED1C2533E09D26E760F7E9484E D12D3D25C683A841973CD70DBA12C191 6B74E881 |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = 735163AEA2B383D2EBD0AC816B28F8917E1839FC97142A60B876B633E
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = A388648CD5DA2B142328E2B5A9A7884BAD7E839668D1293EE31351F62C682A7F57E1736E0B9B546CFE896B13225E79256F4F2294EF95DE2D1CC0023B2CE2376E39C76743F2B9AB7522B6DE54F56FE3EC902974D1B824D1D9D2BF23FCF3086640D3E69BF13816BE72DE3671FE80D61C6C3AD33708F6FF83DE4CE6D732B6D41B31DCB6F3037A582984C3DF6B8BBEBA8716C451F26233C5D91BF7A85E2EA7C3E1A540F059C3F49A5631AD049227CD5C234E86155D2B9AC45B5CCE995C854B8805CF4C833BBFFAE049B728F8ABCD8B2B85941A4258915DADA8E02FB26BA77A1EB9D4FC64C3B50671DAA107F2BB3AB72B2F4E13BA2D404AAD5538DC164939E8BD33A8533901C05AC8E20B70B7B87A8811A78738FF0277B15785330C351EF697968F1F8CE754CCDD86127ED167835C9BAF23D78E4C49E181751D49BD842B8C858560FB1DA0D424431F40391BC11631E1085DA2B036134369AD9CA19D6F5130FABA5AEAF4FDB20B19DB3F951F0215A364C20F092D701F3DD09D24263800AAA4666123EB55C9CBB1C36DAB843AD2A988BE119773EE760D7E9F2C9AA4BBAD3844197C431BFEEC91339208D41DA5BA2BEE4543DCFEA6849E24CCE5CB90132ACC475BEF842A61CDDF76E8BFB9DB3060D885040C41FD20A9F6CC72A09E8DF3C5FC544259796906048F83A0C0BAB4B8EA6E421E5B4A2F3C1EA19EDA720D983CA2D3100A43890640E31808392F375C602CC47F39A8DDEE811A7D286D9D6DA8F687FADC9F81E52C9D4213788678D4477330AA0A6B04DC05D7DF5A8D6EFC755270ACBC90D2DA3673BA1A2F4AF5ED02868773170E8B5A63C6
-tmp_aes_key = 85AA00CFCCA8B6329A0C9D212D490203901D497207ADA2F2C1B6E79C73805245
-tmp_aes_iv = 42A87B37C91087D651A5B460CD41CEDAADCA9BF58C11BCCFD4C568256CA1C689
+encrypted_answer = 9AD5421A136A4CF5E7E256F9DFED61C170665FF70ED748AE532CA31F6D7721AB8AD3E5B0D1C3D1BEEF5DFEDBF3FE8CC6CCC3777C2D027CD441A20BDC85BE7075D3C4AB1C99927D63894BDB4FB22348EFD2DD0B9517B57E21C6579C1FD6BCA0DDDD7F178EB15FAC0879A75BAB6A4AC138DA5AC95B88915F03981CEEBC75DCA7C98B127284F1AEBF79B0F72B80FF4939CA8D6820AAE57C453928CF263CBCE851E8C03063C6A48C4D46B90DF92D68205D5EFCC820677881005228B23EEEB2D5CF7027D93DBCD4A5184CCE5A33904E335A009A393F1D4BA1D31D211E55D811D09E48B4633EB8DE26BDDB334794FD6C7BE7F71C4273F000DE89562B30081A5CE0BCAC999CEFE23A6401CFB13209D431E6BF8BADB2D5C52CCE210E8F2D5E01824BDFB66938EAF7FEB7D612BB7DF4A254E8A6F9FFD7A8705FA011328FEC821D88222BF3189DDA79A28EA813465031B3254444A448ED570BB90E73032B81485BE11922BD1C2346B5C5210EF5B044DA4CA58808F5E8C5AA5E32C89CC39F3B8FE8092CB4F10F3D4D08FD7D21D249AB1D8FEDFD897D27383B000D01C914CFD8587DB8AFA30F99FA7C8716EB79F0710B72AEB59773A1FB66ED243C0D3F4838AE5A09EDF6A9A9086E86B33629E33228E81DFE6E21CCE3E7326A0B1E9BA4D449F62B4FC5845F96529EF6A99422530F18DC656B8D8557284C9CADDA57CD68F6A2976DC6A9C13F8A7013517AF57F967E21A74041E82AB821EC633B8FDACA0FD0D2CC580BFA5B3D9C668BDC2212958FA244C440772356D9ED1C2533E09D26E760F7E9484ED12D3D25C683A841973CD70DBA12C1916B74E881
+tmp_aes_key = ED0582A5A37DC51D44A48A3DB9BDE1BDA036E0883025EA375501EDB2CD8E19F0
+tmp_aes_iv = D5646AAAEABD85D919B9FABFB922A5F55031EECBF9A4E95A9F28C2DA246230E0
Yielding:
-answer_with_hash = 31B3FAE5374F2B33BECE4463CD329053F28C37A6BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010058E1620D6674A2157FDB3E6673F00386E2344EEFABCE42C02CCD18FE7956945231BCFB649AD7DFBF69A59E39F0EAB71ED41D4EFE0B50E2AA83AA7FE0DAD6F0EC201870018B03E43D0A3D935B68B6C2094C63067674814889A48D693CCC539F1E7903466ECB3B483530D5AA25C6513AF4645AAAD8CCB05754915078058B4632C74C7ED016E8F7B6F3B0652F709DF778AD295D0814E1EBCDE34533426807A9EA10155E0B11938223B501A6BAE2E1B1F468E2626A2351BACAC6C7B4191F9C58982A2F8D9F42669762212CB5F8876BDE5C93D63E7337D1927B213474AD9F00476A65D0B500ACB9A7A35C83AB0BC5B83A2BDABC959F8D649AE2E5B77997DEF7A9652BEE11BD644BB9F4E72D93B8BA
-answer = BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC603000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010058E1620D6674A2157FDB3E6673F00386E2344EEFABCE42C02CCD18FE7956945231BCFB649AD7DFBF69A59E39F0EAB71ED41D4EFE0B50E2AA83AA7FE0DAD6F0EC201870018B03E43D0A3D935B68B6C2094C63067674814889A48D693CCC539F1E7903466ECB3B483530D5AA25C6513AF4645AAAD8CCB05754915078058B4632C74C7ED016E8F7B6F3B0652F709DF778AD295D0814E1EBCDE34533426807A9EA10155E0B11938223B501A6BAE2E1B1F468E2626A2351BACAC6C7B4191F9C58982A2F8D9F42669762212CB5F8876BDE5C93D63E7337D1927B213474AD9F00476A65D0B500ACB9A7A35C83AB0BC5B83A2BDABC959F8D649AE2E5B77997DEF7A9652BEE11BD644BB9F4E72D93B8BA
+answer_with_hash = 25489064474896343C19122637D8FE5A7A846D64BA0D89B58E5F164A0C6B62634792D9A2433EAC5CFE235C20EB662BE48ED2C13C793D509C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100B64E75C04088ED0DF30F06C46CDDB48E9E93516BB5A95ED45853D0D5E6391335F5EAE0C95773DCBB2CFDAD9991B4A361DB987C20B61D2A82DFE890ED723E61A46AD3ABA8A69D0AE919F38FA2F452A49B60A8740F4A0F14E0C8FDB8453CE75A0A9D3D22ACEA3E56D95D5E0657FB91C89AE9F9939A0F884D09FE9DC6D0AD3C704318ABD27B95F8C92E2C726D0DA4F406CBF3FBC18BD3D0ECF1AB6163D0DCD25FA8339B298283AEDBA4B322CB4CD384D27088DA94418FC8438A6AFE9758E660D9EF600B34ABC521D4994F0D34ADBC2E969AD59B73C4F1F53BCA585F7195B4746ACB70DC66ABA8B47B65518E4EB0EE2B4F06CB98AA72B51751178D456EBC3C3573982F14BD6493F6FBEFB93195F7
+answer = BA0D89B58E5F164A0C6B62634792D9A2433EAC5CFE235C20EB662BE48ED2C13C793D509C03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100B64E75C04088ED0DF30F06C46CDDB48E9E93516BB5A95ED45853D0D5E6391335F5EAE0C95773DCBB2CFDAD9991B4A361DB987C20B61D2A82DFE890ED723E61A46AD3ABA8A69D0AE919F38FA2F452A49B60A8740F4A0F14E0C8FDB8453CE75A0A9D3D22ACEA3E56D95D5E0657FB91C89AE9F9939A0F884D09FE9DC6D0AD3C704318ABD27B95F8C92E2C726D0DA4F406CBF3FBC18BD3D0ECF1AB6163D0DCD25FA8339B298283AEDBA4B322CB4CD384D27088DA94418FC8438A6AFE9758E660D9EF600B34ABC521D4994F0D34ADBC2E969AD59B73C4F1F53BCA585F7195B4746ACB70DC66ABA8B47B65518E4EB0EE2B4F06CB98AA72B51751178D456EBC3C3573982F14BD6493F6FBEFB93195F7
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 7A 1F FF 53 21 A4 04 32 84 F5 F3 02
-0010 | 41 19 D9 50 AE CF 0E 9B D3 89 17 4E 9A E7 5D CB
-0020 | 0D 3C 7D C6 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 8E 5F 16 4A 0C 6B 62 63 47 92 D9 A2
+0010 | 43 3E AC 5C FE 23 5C 20 EB 66 2B E4 8E D2 C1 3C
+0020 | 79 3D 50 9C 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 = BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC
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 | 58 E1 62 0D 66 74 A2 15 7F DB 3E 66 73 F0 03 86
-0140 | E2 34 4E EF AB CE 42 C0 2C CD 18 FE 79 56 94 52
-0150 | 31 BC FB 64 9A D7 DF BF 69 A5 9E 39 F0 EA B7 1E
-0160 | D4 1D 4E FE 0B 50 E2 AA 83 AA 7F E0 DA D6 F0 EC
-0170 | 20 18 70 01 8B 03 E4 3D 0A 3D 93 5B 68 B6 C2 09
-0180 | 4C 63 06 76 74 81 48 89 A4 8D 69 3C CC 53 9F 1E
-0190 | 79 03 46 6E CB 3B 48 35 30 D5 AA 25 C6 51 3A F4
-01A0 | 64 5A AA D8 CC B0 57 54 91 50 78 05 8B 46 32 C7
-01B0 | 4C 7E D0 16 E8 F7 B6 F3 B0 65 2F 70 9D F7 78 AD
-01C0 | 29 5D 08 14 E1 EB CD E3 45 33 42 68 07 A9 EA 10
-01D0 | 15 5E 0B 11 93 82 23 B5 01 A6 BA E2 E1 B1 F4 68
-01E0 | E2 62 6A 23 51 BA CA C6 C7 B4 19 1F 9C 58 98 2A
-01F0 | 2F 8D 9F 42 66 97 62 21 2C B5 F8 87 6B DE 5C 93
-0200 | D6 3E 73 37 D1 92 7B 21 34 74 AD 9F 00 47 6A 65
-0210 | D0 B5 00 AC B9 A7 A3 5C 83 AB 0B C5 B8 3A 2B DA
-0220 | BC 95 9F 8D 64 9A E2 E5 B7 79 97 DE F7 A9 65 2B
-0230 | EE 11 BD 64
+0130 | B6 4E 75 C0 40 88 ED 0D F3 0F 06 C4 6C DD B4 8E
+0140 | 9E 93 51 6B B5 A9 5E D4 58 53 D0 D5 E6 39 13 35
+0150 | F5 EA E0 C9 57 73 DC BB 2C FD AD 99 91 B4 A3 61
+0160 | DB 98 7C 20 B6 1D 2A 82 DF E8 90 ED 72 3E 61 A4
+0170 | 6A D3 AB A8 A6 9D 0A E9 19 F3 8F A2 F4 52 A4 9B
+0180 | 60 A8 74 0F 4A 0F 14 E0 C8 FD B8 45 3C E7 5A 0A
+0190 | 9D 3D 22 AC EA 3E 56 D9 5D 5E 06 57 FB 91 C8 9A
+01A0 | E9 F9 93 9A 0F 88 4D 09 FE 9D C6 D0 AD 3C 70 43
+01B0 | 18 AB D2 7B 95 F8 C9 2E 2C 72 6D 0D A4 F4 06 CB
+01C0 | F3 FB C1 8B D3 D0 EC F1 AB 61 63 D0 DC D2 5F A8
+01D0 | 33 9B 29 82 83 AE DB A4 B3 22 CB 4C D3 84 D2 70
+01E0 | 88 DA 94 41 8F C8 43 8A 6A FE 97 58 E6 60 D9 EF
+01F0 | 60 0B 34 AB C5 21 D4 99 4F 0D 34 AD BC 2E 96 9A
+0200 | D5 9B 73 C4 F1 F5 3B CA 58 5F 71 95 B4 74 6A CB
+0210 | 70 DC 66 AB A8 B4 7B 65 51 8E 4E B0 EE 2B 4F 06
+0220 | CB 98 AA 72 B5 17 51 17 8D 45 6E BC 3C 35 73 98
+0230 | 2F 14 BD 64
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 = BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC
nonce |
4, 16 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC
g_a |
300, 260 |
-FE00010058E1620D6674A2157FDB3E66 73F00386E2344EEFABCE42C02CCD18FE 7956945231BCFB649AD7DFBF69A59E39 F0EAB71ED41D4EFE0B50E2AA83AA7FE0 DAD6F0EC201870018B03E43D0A3D935B 68B6C2094C63067674814889A48D693C CC539F1E7903466ECB3B483530D5AA25 C6513AF4645AAAD8CCB0575491507805 8B4632C74C7ED016E8F7B6F3B0652F70 9DF778AD295D0814E1EBCDE345334268 07A9EA10155E0B11938223B501A6BAE2 E1B1F468E2626A2351BACAC6C7B4191F 9C58982A2F8D9F42669762212CB5F887 6BDE5C93D63E7337D1927B213474AD9F 00476A65D0B500ACB9A7A35C83AB0BC5 B83A2BDABC959F8D649AE2E5B77997DE F7A9652B |
+FE000100B64E75C04088ED0DF30F06C4 6CDDB48E9E93516BB5A95ED45853D0D5 E6391335F5EAE0C95773DCBB2CFDAD99 91B4A361DB987C20B61D2A82DFE890ED 723E61A46AD3ABA8A69D0AE919F38FA2 F452A49B60A8740F4A0F14E0C8FDB845 3CE75A0A9D3D22ACEA3E56D95D5E0657 FB91C89AE9F9939A0F884D09FE9DC6D0 AD3C704318ABD27B95F8C92E2C726D0D A4F406CBF3FBC18BD3D0ECF1AB6163D0 DCD25FA8339B298283AEDBA4B322CB4C D384D27088DA94418FC8438A6AFE9758 E660D9EF600B34ABC521D4994F0D34AD BC2E969AD59B73C4F1F53BCA585F7195 B4746ACB70DC66ABA8B47B65518E4EB0 EE2B4F06CB98AA72B51751178D456EBC 3C357398 |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-EE11BD64 (1690112494 in decimal) |
+2F14BD64 (1690113071 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC
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 = B3C37A78F0E2CF3DFD73058C307D5AFA60E8B7E1AB475A6D99655AB4C6357EF1DF004922FBCABDD23699358BEA3B90E08C8D9F1629D207C5A1783D3A04957514EAA13B6C32B406CD9FAF3BB68AE78E79F05AF658E042CBA669315BA3EAC969FE41C0EB1A48AE93A5B8903DD25B3C0512CEA54052EA3124A6E11FA2D09B2070D0FC35A04EC6A0FEA49DB3D8942678744332724A5AD2BB7C773AFFACF7A1E6471B671A5246DC06DD4E5D0CD59F849151A72E13C11FB8C223C219377281C2AB4B8636D4F70AF43DB553C28DF9800E22A09287024A4B7485AD4908364EF504A85BF61DAC712BD5E53FF9DF6031043A5183BD28A7753715A423C391ABA768EA5CF0EC
+b = 56C1449E5A2F720CBCADBB68EF35C1D815E9301191135A1419A9077B842C0341B2A182B29F1F79AB536792624D7B1C3BF4349ADCFA372F62666D9A63A1217C4CE21CB3D65D2125ABC96370300FE20FCFBE685207ABB301CE27F336D3A89544D3BCF5BB638785C5630712A22D2BEAE305804324847D01B831120B71F728338DB2A60F1905B2382FF5EA7AE58BB53CE8D9D0D73495977A7BF865989F17202E41DD6734581497AB0EA6597D82698145043F13BB626FA45CA73371BAF8F9B55D43D78AB6332B44FE461149B85311D7164BE672E41F5CC59D4447CB9B8F850C0B69479FFEADC7CF32D0DCA9153312EA33A5089C8FFA47D3876FCD1447C9F2358CCF83
Then compute g_b = pow(g, b) mod dh_prime
-g_b = AA82DBBD312351768B5F124ADFB02652BEE2FAF1F8FFC91AA6B0345E298872140BF61EFEC9CD11766ED91EF01F344035594C892977E472381070EBC0B7C7892928EA191C7540DE70A25AB8926787C0204DB502269A22DF61B19CD106CBD7AFEB48CB5DD797A1FFD2BBE9EA1BF799122792F96B5D1F10E5E7DD0A5F5C8AA09A3AA56B15CCA0F4D3CDBD9FB4ADD433FC63864D14131172AABD7F7835D0419525EC50BBB849F90EDDB0A979603B7DD896AEB4F5D52F4FDA5893250285C2CDFB60480F3D09BBD5D32DB68A565AABAE4042AA10173EF78DE1445897282AD6CE3F8CBFDF8F0D7A9F95EB171BFC8A3A009DAA20FAE28E5C0C165D2E4305DD7450E19CA5
+g_b = B2AD360A45789F4112258889A9715D4418EEE7C974812D2A84D5AD9914ED70EB24B15A22E4AE92BC94DCBC69B7CCC29E42DA828565A5E737393E572278B691D63464ACF501742F232E6A51B2CCE5F239DF9D2B6D79B10D6E471A0D6671843562820BA231CC9D9FAAE0656146F3A52577F7A2CC93E67AF54F1B3BF8B86A5D51E6B020671649675A4CA718A9F312FB65E52B0BAF8E41357D7F981B21F22F3279D656D409C45ABAD9D827EDB0D0888CDF68177AB4AFC91814640B3FC9A53502BAF163436E17B6A81F78183643668B767E89D396FFA8E8C93074BE51DC1AB533A4080A9ADC265FF04BF40D2696C24A28508D467AAB8A553521DC6D6B270E403CF988
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 7A 1F FF 53 21 A4 04 32 84 F5 F3 02
-0010 | 41 19 D9 50 AE CF 0E 9B D3 89 17 4E 9A E7 5D CB
-0020 | 0D 3C 7D C6 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | AA 82 DB BD 31 23 51 76 8B 5F 12 4A DF B0 26 52
-0040 | BE E2 FA F1 F8 FF C9 1A A6 B0 34 5E 29 88 72 14
-0050 | 0B F6 1E FE C9 CD 11 76 6E D9 1E F0 1F 34 40 35
-0060 | 59 4C 89 29 77 E4 72 38 10 70 EB C0 B7 C7 89 29
-0070 | 28 EA 19 1C 75 40 DE 70 A2 5A B8 92 67 87 C0 20
-0080 | 4D B5 02 26 9A 22 DF 61 B1 9C D1 06 CB D7 AF EB
-0090 | 48 CB 5D D7 97 A1 FF D2 BB E9 EA 1B F7 99 12 27
-00A0 | 92 F9 6B 5D 1F 10 E5 E7 DD 0A 5F 5C 8A A0 9A 3A
-00B0 | A5 6B 15 CC A0 F4 D3 CD BD 9F B4 AD D4 33 FC 63
-00C0 | 86 4D 14 13 11 72 AA BD 7F 78 35 D0 41 95 25 EC
-00D0 | 50 BB B8 49 F9 0E DD B0 A9 79 60 3B 7D D8 96 AE
-00E0 | B4 F5 D5 2F 4F DA 58 93 25 02 85 C2 CD FB 60 48
-00F0 | 0F 3D 09 BB D5 D3 2D B6 8A 56 5A AB AE 40 42 AA
-0100 | 10 17 3E F7 8D E1 44 58 97 28 2A D6 CE 3F 8C BF
-0110 | DF 8F 0D 7A 9F 95 EB 17 1B FC 8A 3A 00 9D AA 20
-0120 | FA E2 8E 5C 0C 16 5D 2E 43 05 DD 74 50 E1 9C A5
+0000 | 54 B6 43 66 8E 5F 16 4A 0C 6B 62 63 47 92 D9 A2
+0010 | 43 3E AC 5C FE 23 5C 20 EB 66 2B E4 8E D2 C1 3C
+0020 | 79 3D 50 9C 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | B2 AD 36 0A 45 78 9F 41 12 25 88 89 A9 71 5D 44
+0040 | 18 EE E7 C9 74 81 2D 2A 84 D5 AD 99 14 ED 70 EB
+0050 | 24 B1 5A 22 E4 AE 92 BC 94 DC BC 69 B7 CC C2 9E
+0060 | 42 DA 82 85 65 A5 E7 37 39 3E 57 22 78 B6 91 D6
+0070 | 34 64 AC F5 01 74 2F 23 2E 6A 51 B2 CC E5 F2 39
+0080 | DF 9D 2B 6D 79 B1 0D 6E 47 1A 0D 66 71 84 35 62
+0090 | 82 0B A2 31 CC 9D 9F AA E0 65 61 46 F3 A5 25 77
+00A0 | F7 A2 CC 93 E6 7A F5 4F 1B 3B F8 B8 6A 5D 51 E6
+00B0 | B0 20 67 16 49 67 5A 4C A7 18 A9 F3 12 FB 65 E5
+00C0 | 2B 0B AF 8E 41 35 7D 7F 98 1B 21 F2 2F 32 79 D6
+00D0 | 56 D4 09 C4 5A BA D9 D8 27 ED B0 D0 88 8C DF 68
+00E0 | 17 7A B4 AF C9 18 14 64 0B 3F C9 A5 35 02 BA F1
+00F0 | 63 43 6E 17 B6 A8 1F 78 18 36 43 66 8B 76 7E 89
+0100 | D3 96 FF A8 E8 C9 30 74 BE 51 DC 1A B5 33 A4 08
+0110 | 0A 9A DC 26 5F F0 4B F4 0D 26 96 C2 4A 28 50 8D
+0120 | 46 7A AB 8A 55 35 21 DC 6D 6B 27 0E 40 3C F9 88
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 = BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC
nonce |
4, 16 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE000100AA82DBBD312351768B5F124A DFB02652BEE2FAF1F8FFC91AA6B0345E 298872140BF61EFEC9CD11766ED91EF0 1F344035594C892977E472381070EBC0 B7C7892928EA191C7540DE70A25AB892 6787C0204DB502269A22DF61B19CD106 CBD7AFEB48CB5DD797A1FFD2BBE9EA1B F799122792F96B5D1F10E5E7DD0A5F5C 8AA09A3AA56B15CCA0F4D3CDBD9FB4AD D433FC63864D14131172AABD7F7835D0 419525EC50BBB849F90EDDB0A979603B 7DD896AEB4F5D52F4FDA5893250285C2 CDFB60480F3D09BBD5D32DB68A565AAB AE4042AA10173EF78DE1445897282AD6 CE3F8CBFDF8F0D7A9F95EB171BFC8A3A 009DAA20FAE28E5C0C165D2E4305DD74 50E19CA5 |
+FE000100B2AD360A45789F4112258889 A9715D4418EEE7C974812D2A84D5AD99 14ED70EB24B15A22E4AE92BC94DCBC69 B7CCC29E42DA828565A5E737393E5722 78B691D63464ACF501742F232E6A51B2 CCE5F239DF9D2B6D79B10D6E471A0D66 71843562820BA231CC9D9FAAE0656146 F3A52577F7A2CC93E67AF54F1B3BF8B8 6A5D51E6B020671649675A4CA718A9F3 12FB65E52B0BAF8E41357D7F981B21F2 2F3279D656D409C45ABAD9D827EDB0D0 888CDF68177AB4AFC91814640B3FC9A5 3502BAF163436E17B6A81F7818364366 8B767E89D396FFA8E8C93074BE51DC1A B533A4080A9ADC265FF04BF40D2696C2 4A28508D467AAB8A553521DC6D6B270E 403CF988 |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B57A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC
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 = 54B643667A1FFF5321A4043284F5F3024119D950AECF0E9BD389174E9AE75DCB0D3C7DC60000000000000000FE000100AA82DBBD312351768B5F124ADFB02652BEE2FAF1F8FFC91AA6B0345E298872140BF61EFEC9CD11766ED91EF01F344035594C892977E472381070EBC0B7C7892928EA191C7540DE70A25AB8926787C0204DB502269A22DF61B19CD106CBD7AFEB48CB5DD797A1FFD2BBE9EA1BF799122792F96B5D1F10E5E7DD0A5F5C8AA09A3AA56B15CCA0F4D3CDBD9FB4ADD433FC63864D14131172AABD7F7835D0419525EC50BBB849F90EDDB0A979603B7DD896AEB4F5D52F4FDA5893250285C2CDFB60480F3D09BBD5D32DB68A565AABAE4042AA10173EF78DE1445897282AD6CE3F8CBFDF8F0D7A9F95EB171BFC8A3A009DAA20FAE28E5C0C165D2E4305DD7450E19CA5
-padding = 5BF0DB8A6C0EB02EAD86C9FD
-tmp_aes_key = 85AA00CFCCA8B6329A0C9D212D490203901D497207ADA2F2C1B6E79C73805245
-tmp_aes_iv = 42A87B37C91087D651A5B460CD41CEDAADCA9BF58C11BCCFD4C568256CA1C689
+data = 54B643668E5F164A0C6B62634792D9A2433EAC5CFE235C20EB662BE48ED2C13C793D509C0000000000000000FE000100B2AD360A45789F4112258889A9715D4418EEE7C974812D2A84D5AD9914ED70EB24B15A22E4AE92BC94DCBC69B7CCC29E42DA828565A5E737393E572278B691D63464ACF501742F232E6A51B2CCE5F239DF9D2B6D79B10D6E471A0D6671843562820BA231CC9D9FAAE0656146F3A52577F7A2CC93E67AF54F1B3BF8B86A5D51E6B020671649675A4CA718A9F312FB65E52B0BAF8E41357D7F981B21F22F3279D656D409C45ABAD9D827EDB0D0888CDF68177AB4AFC91814640B3FC9A53502BAF163436E17B6A81F78183643668B767E89D396FFA8E8C93074BE51DC1AB533A4080A9ADC265FF04BF40D2696C24A28508D467AAB8A553521DC6D6B270E403CF988
+padding = 0807464CD9FF2CD3EFEB67DE
+tmp_aes_key = ED0582A5A37DC51D44A48A3DB9BDE1BDA036E0883025EA375501EDB2CD8E19F0
+tmp_aes_iv = D5646AAAEABD85D919B9FABFB922A5F55031EECBF9A4E95A9F28C2DA246230E0
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 = E2E97CCBFC703FEB7A5C71C49B7649000C524EAA6DEBD9AE571B812FE10630D72AA1B5962057DEAD590AC00B0FF26851972BE0877D958E5245E6E091BDD648F2E06774BDECA6B32D6A75CF3C6A818245108EA00B1C54A537E1360A627515B9B4C66C2F653004DE0B00BB6A66D66F5A2A8784F1B4E15E9363CE3B711322F96EF48768899CFDC7D7DE0161A0C9BD98743AD2933871F030830B19AB065CCAB55D395415D7C7E34ADDA5D24A46B579434E95649925E67578134010F2C4B9952FC14BBDE42536DE735AA16C775AD6821BCB2624A20D9144E560ACB228E7ABB33AEFA254C6E0AEBDE86DE109B8CC92E484D0FD3922EC0E767ACF5AC5FD8F2A8C6825590BECD9A89580EDACCFF7BB4540D1EFD6F19C4C2432C7C8316F33CB180BE33E2B2E3DE65A4C2B02FAD0CE83D4894E283E2588C4B49AF451156B119AF45811F6FE8C26C0FB7B9D8B7FC811D78FEE70FA42
+encrypted_data = F884E111EAC9F52C28528E2FC28B3DF3599A8CF8337F2BFE2B85B3FB9D6F9E1AA70AD08F2BB3A7E6F670195F088B6E5ADCBD58BA8A560A974F3B083B20905F11D13BFF45A9DFACE5F79345363139C12F0A498D796D9B4E40E30EA9BAC8C0E3C2BCC717576D36EE5CBECFDBB9AD9C9B09003B65F02600B78268ED3A9EB5A5B70CDC97C87F1BD800F5A17762D55F19404621E1C8A0CB1E95828301ECDBC509472E0AB94DFDD80E060D660F3BF253FB3E8530267384123F01FBB090A2F56CB5D1EB40AE2D160805504C0B8C5F6DADA393F5E809E841AF42FE8EC4B1FE213AA6FAF27EFF98C7A9135A5CF9753ABBBBCE017B064A1AC29F82DDE8D8F8CD4296B6710DCA9812F643CE99EB55BC7EEA7F383903373B547938C07557CDE4D1307BB790781D0E3C0947282A2B13684D213A08818FA5DDA63C44F5BECA9687187DD9DC4FB19A91BE96CB946B9CDF5EFFE984415983
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 7C F4 09 00 EE 11 BD 64
-0010 | 78 01 00 00 1F 5F 04 F5 7A 1F FF 53 21 A4 04 32
-0020 | 84 F5 F3 02 41 19 D9 50 AE CF 0E 9B D3 89 17 4E
-0030 | 9A E7 5D CB 0D 3C 7D C6 FE 50 01 00 E2 E9 7C CB
-0040 | FC 70 3F EB 7A 5C 71 C4 9B 76 49 00 0C 52 4E AA
-0050 | 6D EB D9 AE 57 1B 81 2F E1 06 30 D7 2A A1 B5 96
-0060 | 20 57 DE AD 59 0A C0 0B 0F F2 68 51 97 2B E0 87
-0070 | 7D 95 8E 52 45 E6 E0 91 BD D6 48 F2 E0 67 74 BD
-0080 | EC A6 B3 2D 6A 75 CF 3C 6A 81 82 45 10 8E A0 0B
-0090 | 1C 54 A5 37 E1 36 0A 62 75 15 B9 B4 C6 6C 2F 65
-00A0 | 30 04 DE 0B 00 BB 6A 66 D6 6F 5A 2A 87 84 F1 B4
-00B0 | E1 5E 93 63 CE 3B 71 13 22 F9 6E F4 87 68 89 9C
-00C0 | FD C7 D7 DE 01 61 A0 C9 BD 98 74 3A D2 93 38 71
-00D0 | F0 30 83 0B 19 AB 06 5C CA B5 5D 39 54 15 D7 C7
-00E0 | E3 4A DD A5 D2 4A 46 B5 79 43 4E 95 64 99 25 E6
-00F0 | 75 78 13 40 10 F2 C4 B9 95 2F C1 4B BD E4 25 36
-0100 | DE 73 5A A1 6C 77 5A D6 82 1B CB 26 24 A2 0D 91
-0110 | 44 E5 60 AC B2 28 E7 AB B3 3A EF A2 54 C6 E0 AE
-0120 | BD E8 6D E1 09 B8 CC 92 E4 84 D0 FD 39 22 EC 0E
-0130 | 76 7A CF 5A C5 FD 8F 2A 8C 68 25 59 0B EC D9 A8
-0140 | 95 80 ED AC CF F7 BB 45 40 D1 EF D6 F1 9C 4C 24
-0150 | 32 C7 C8 31 6F 33 CB 18 0B E3 3E 2B 2E 3D E6 5A
-0160 | 4C 2B 02 FA D0 CE 83 D4 89 4E 28 3E 25 88 C4 B4
-0170 | 9A F4 51 15 6B 11 9A F4 58 11 F6 FE 8C 26 C0 FB
-0180 | 7B 9D 8B 7F C8 11 D7 8F EE 70 FA 42
+0000 | 00 00 00 00 00 00 00 00 E4 51 02 00 2F 14 BD 64
+0010 | 78 01 00 00 1F 5F 04 F5 8E 5F 16 4A 0C 6B 62 63
+0020 | 47 92 D9 A2 43 3E AC 5C FE 23 5C 20 EB 66 2B E4
+0030 | 8E D2 C1 3C 79 3D 50 9C FE 50 01 00 F8 84 E1 11
+0040 | EA C9 F5 2C 28 52 8E 2F C2 8B 3D F3 59 9A 8C F8
+0050 | 33 7F 2B FE 2B 85 B3 FB 9D 6F 9E 1A A7 0A D0 8F
+0060 | 2B B3 A7 E6 F6 70 19 5F 08 8B 6E 5A DC BD 58 BA
+0070 | 8A 56 0A 97 4F 3B 08 3B 20 90 5F 11 D1 3B FF 45
+0080 | A9 DF AC E5 F7 93 45 36 31 39 C1 2F 0A 49 8D 79
+0090 | 6D 9B 4E 40 E3 0E A9 BA C8 C0 E3 C2 BC C7 17 57
+00A0 | 6D 36 EE 5C BE CF DB B9 AD 9C 9B 09 00 3B 65 F0
+00B0 | 26 00 B7 82 68 ED 3A 9E B5 A5 B7 0C DC 97 C8 7F
+00C0 | 1B D8 00 F5 A1 77 62 D5 5F 19 40 46 21 E1 C8 A0
+00D0 | CB 1E 95 82 83 01 EC DB C5 09 47 2E 0A B9 4D FD
+00E0 | D8 0E 06 0D 66 0F 3B F2 53 FB 3E 85 30 26 73 84
+00F0 | 12 3F 01 FB B0 90 A2 F5 6C B5 D1 EB 40 AE 2D 16
+0100 | 08 05 50 4C 0B 8C 5F 6D AD A3 93 F5 E8 09 E8 41
+0110 | AF 42 FE 8E C4 B1 FE 21 3A A6 FA F2 7E FF 98 C7
+0120 | A9 13 5A 5C F9 75 3A BB BB CE 01 7B 06 4A 1A C2
+0130 | 9F 82 DD E8 D8 F8 CD 42 96 B6 71 0D CA 98 12 F6
+0140 | 43 CE 99 EB 55 BC 7E EA 7F 38 39 03 37 3B 54 79
+0150 | 38 C0 75 57 CD E4 D1 30 7B B7 90 78 1D 0E 3C 09
+0160 | 47 28 2A 2B 13 68 4D 21 3A 08 81 8F A5 DD A6 3C
+0170 | 44 F5 BE CA 96 87 18 7D D9 DC 4F B1 9A 91 BE 96
+0180 | CB 94 6B 9C DF 5E FF E9 84 41 59 83
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 |
-7CF40900EE11BD64 |
+E45102002F14BD64 |
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 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE500100E2E97CCBFC703FEB7A5C71C4 9B7649000C524EAA6DEBD9AE571B812F E10630D72AA1B5962057DEAD590AC00B 0FF26851972BE0877D958E5245E6E091 BDD648F2E06774BDECA6B32D6A75CF3C 6A818245108EA00B1C54A537E1360A62 7515B9B4C66C2F653004DE0B00BB6A66 D66F5A2A8784F1B4E15E9363CE3B7113 22F96EF48768899CFDC7D7DE0161A0C9 BD98743AD2933871F030830B19AB065C CAB55D395415D7C7E34ADDA5D24A46B5 79434E95649925E67578134010F2C4B9 952FC14BBDE42536DE735AA16C775AD6 821BCB2624A20D9144E560ACB228E7AB B33AEFA254C6E0AEBDE86DE109B8CC92 E484D0FD3922EC0E767ACF5AC5FD8F2A 8C6825590BECD9A89580EDACCFF7BB45 40D1EFD6F19C4C2432C7C8316F33CB18 0BE33E2B2E3DE65A4C2B02FAD0CE83D4 894E283E2588C4B49AF451156B119AF4 5811F6FE8C26C0FB7B9D8B7FC811D78F EE70FA42 |
+FE500100F884E111EAC9F52C28528E2F C28B3DF3599A8CF8337F2BFE2B85B3FB 9D6F9E1AA70AD08F2BB3A7E6F670195F 088B6E5ADCBD58BA8A560A974F3B083B 20905F11D13BFF45A9DFACE5F7934536 3139C12F0A498D796D9B4E40E30EA9BA C8C0E3C2BCC717576D36EE5CBECFDBB9 AD9C9B09003B65F02600B78268ED3A9E B5A5B70CDC97C87F1BD800F5A17762D5 5F19404621E1C8A0CB1E95828301ECDB C509472E0AB94DFDD80E060D660F3BF2 53FB3E8530267384123F01FBB090A2F5 6CB5D1EB40AE2D160805504C0B8C5F6D ADA393F5E809E841AF42FE8EC4B1FE21 3AA6FAF27EFF98C7A9135A5CF9753ABB BBCE017B064A1AC29F82DDE8D8F8CD42 96B6710DCA9812F643CE99EB55BC7EEA 7F383903373B547938C07557CDE4D130 7BB790781D0E3C0947282A2B13684D21 3A08818FA5DDA63C44F5BECA9687187D D9DC4FB19A91BE96CB946B9CDF5EFFE9 84415983 |
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 = 60C3EBE25C20992BC7E3AB95617D651DA3D04909117333817FE270070722B1D732F5BEEFCEDFA92E6B2E7619829B2DC6E843BED0E26EB0C21963A64F61B7C0E8BBBCA739634630C704CEF0DEB334EC3839E14B65AA525508151896944036827ED12E17F702B7BC6ECA0C16F8346C5824780ADF27C167C482EE15753FF6C6CAE89F278C394E33C983125CD61A64E2016442C3A4448DF3652189A9BBB24D0860620968BD8BFFC9A3096BBB25997DB160FC5FA57FD53FB72E4466C813AAEF820109AB7BB5E02821738471B9E1AD8E2B3985E1EA592AC3B35D9A0C90289D3149D944ADBB17C53DC758D5DF1C527F33E69DC45005FB8A04C2434E2CB30053C2C6A892
+auth_key = 6CD4B349BC834B131D48FFD16564728AC22339AB1CE3A24C7424A6E91534775FAB4758AB0E780E522FCDA9412917348F9B6A6F7FE6CE11A623DE9D124E76C03BAE2850BBEB0150D1DA953103361B1E9EC4B53864AF2D6B63F80D18C815D333CB6BD2E6B2620A56FC95334E1119D2808DC99D9E97AE7726B4926593E8EDE3E28E531690392A56FBFFC06D5D9A13AAF98A8DD78DF0EFA46C532DC688C52F34E3968C6F44BDF19AE934A34F6B506E292768BFC716FEFC117F8A1B6F069AF7BC249275142FD83301E27699764B0656669636CC054CF9B70A5154A3ED818DA7A6208DC35501248D7A23D519836A8E53DB8ADC481C603131C0D0B8C740D83D87B1C48C
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 18 26 55 EE 11 BD 64
-0010 | 34 00 00 00 34 F7 CB 3B 7A 1F FF 53 21 A4 04 32
-0020 | 84 F5 F3 02 41 19 D9 50 AE CF 0E 9B D3 89 17 4E
-0030 | 9A E7 5D CB 0D 3C 7D C6 BA 1A A4 97 1D 49 9B B8
-0040 | 57 5C 32 8B 33 9D 8E 0A
+0000 | 00 00 00 00 00 00 00 00 01 E4 FB C3 2F 14 BD 64
+0010 | A8 00 00 00 34 F7 CB 3B 8E 5F 16 4A 0C 6B 62 63
+0020 | 47 92 D9 A2 43 3E AC 5C FE 23 5C 20 EB 66 2B E4
+0030 | 8E D2 C1 3C 79 3D 50 9C AD CC 2D 0E 37 33 E7 FC
+0040 | EE 4D ED 0E 31 E6 84 A8
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 |
-01182655EE11BD64 |
+01E4FBC32F14BD64 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-34000000 (52 in decimal) |
+A8000000 (168 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 |
-7A1FFF5321A4043284F5F3024119D950 |
+8E5F164A0C6B62634792D9A2433EAC5C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-AECF0E9BD389174E9AE75DCB0D3C7DC6 |
+FE235C20EB662BE48ED2C13C793D509C |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-BA1AA4971D499BB8575C328B339D8E0A |
+ADCC2D0E3733E7FCEE4DED0E31E684A8 |
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. |