diff --git a/data/web/corefork.telegram.org/api/end-to-end/seq_no.html b/data/web/corefork.telegram.org/api/end-to-end/seq_no.html
index e126499845..9550516587 100644
--- a/data/web/corefork.telegram.org/api/end-to-end/seq_no.html
+++ b/data/web/corefork.telegram.org/api/end-to-end/seq_no.html
@@ -47,6 +47,7 @@
@@ -77,7 +77,7 @@
message_id |
8, 8 |
-50CF0A00AAA95F65 |
+BC200A0054B35F65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
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 34 C2 5E AA A9 5F 65
-0010 | 7C 00 00 00 63 24 16 05 7A 44 83 F4 E1 2D 9C 01
-0020 | 2A 39 CC C1 09 20 BD C3 94 D9 D0 DA D2 40 80 02
-0030 | 4B 00 1A 91 59 09 1D E9 08 19 0E BA FD 22 12 34
-0040 | 19 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 9C 77 FF 54 B3 5F 65
+0010 | 60 00 00 00 63 24 16 05 D3 C7 6C F7 7D 76 D6 35
+0020 | 46 A4 97 C0 42 3D FC 7C 50 9F E3 CA 67 09 F9 B8
+0030 | 73 01 F3 45 D6 43 08 4B 08 1E 27 F3 4F A8 42 ED
+0040 | 61 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 |
-0134C25EAAA95F65 |
+019C77FF54B35F65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-7C000000 (124 in decimal) |
+60000000 (96 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Server-generated random number |
pq |
56, 12 |
-08190EBAFD22123419000000 TL byte deserialization => bigendian conversion to decimal => 1805586096983258137 |
+081E27F34FA842ED61000000 TL byte deserialization => bigendian conversion to decimal => 2172972868680478049 |
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 = 1805586096983258137
-Decompose into 2 prime cofactors p < q
: 1805586096983258137 = 1335192181 * 1352304277
-p = 1335192181
-q = 1352304277
+pq = 2172972868680478049
+Decompose into 2 prime cofactors p < q
: 2172972868680478049 = 1263580933 * 1719694253
+p = 1263580933
+q = 1719694253
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 19 0E BA FD 22 12 34 19 00 00 00
-0010 | 04 4F 95 6A 75 00 00 00 04 50 9A 86 95 00 00 00
-0020 | 7A 44 83 F4 E1 2D 9C 01 2A 39 CC C1 09 20 BD C3
-0030 | 94 D9 D0 DA D2 40 80 02 4B 00 1A 91 59 09 1D E9
-0040 | A1 5B FB 1E 08 C5 1E 20 42 B9 86 9F 23 CE 17 B8
-0050 | 20 E0 9B 84 D4 26 1C 41 89 F2 A9 91 D3 C7 77 AB
+0000 | 95 5F F5 A9 08 1E 27 F3 4F A8 42 ED 61 00 00 00
+0010 | 04 4B 50 B7 05 00 00 00 04 66 80 73 AD 00 00 00
+0020 | D3 C7 6C F7 7D 76 D6 35 46 A4 97 C0 42 3D FC 7C
+0030 | 50 9F E3 CA 67 09 F9 B8 73 01 F3 45 D6 43 08 4B
+0040 | 26 DA C4 84 89 FD E6 FD D0 4F F0 95 2D 9F 30 64
+0050 | 47 CA 81 E3 4C 32 B0 21 6C A8 EC B1 BA F7 8D 82
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 = 1352304277
pq |
4, 12 |
-08190EBAFD22123419000000 TL byte deserialization => bigendian conversion to decimal => 1805586096983258137 |
+081E27F34FA842ED61000000 TL byte deserialization => bigendian conversion to decimal => 2172972868680478049 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-044F956A75000000 TL byte deserialization => bigendian conversion to decimal => 1335192181 |
+044B50B705000000 TL byte deserialization => bigendian conversion to decimal => 1263580933 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-04509A8695000000 TL byte deserialization => bigendian conversion to decimal => 1352304277 |
+04668073AD000000 TL byte deserialization => bigendian conversion to decimal => 1719694253 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-A15BFB1E08C51E2042B9869F23CE17B8 20E09B84D4261C4189F2A991D3C777AB |
+26DAC48489FDE6FDD04FF0952D9F3064 47CA81E34C32B0216CA8ECB1BAF78D82 |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1352304277
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 = 955FF5A908190EBAFD22123419000000044F956A7500000004509A86950000007A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE9A15BFB1E08C51E2042B9869F23CE17B820E09B84D4261C4189F2A991D3C777AB02000000
-random_padding_bytes = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D6712A5505A98A290362161A8342A389CAF7E0D3BFDF49D37A95E7B0F65C31A8DE9437948D64EAED939814469DE85F039E61F6E09BAFB429643C8AC8999DF1C58FE
+data = 955FF5A9081E27F34FA842ED61000000044B50B70500000004668073AD000000D3C76CF77D76D63546A497C0423DFC7C509FE3CA6709F9B87301F345D643084B26DAC48489FDE6FDD04FF0952D9F306447CA81E34C32B0216CA8ECB1BAF78D8202000000
+random_padding_bytes = C1C01D642E4BC7F519FC61A4D33B649C753B77441903A159E7E7EA6B65972F0E092E4B71D0689C50BD2FA87485E2CD451B3C842C973EDB59900D21B2BB18CD2B37860F2C95227911149221EC686679AFA76CD30695B46EF2039E235E
And this is the output:
-encrypted_data = 4C82E1FEED63DA610FE2BCAC65776CFCF60AA179AE04CD39B58115AB9B7D65C8D764559A5CE95D770FDB3F59BED8F998FE5A8F73AC9EB337F998CCA260E0B0CBE3410A013720307CEE38D9CADAD1C2E134F1AF7BBE3F97E049CD4F32E9A86597F71913236A5FD9F379AFEBFBB515CDD96206BE2B6EC9392F3F7CF7AAE09CAF82FFBF24A80F76C59C17D37428032233ECC54A5C3BE9009A44FC4BE484CD976DE235B488232FD570DAAF5363A134DA52CFE869D6D8F1730F148B3AFDC3649515002027B4A6AF07FC7F0A31BD01B1D115AC2DD25E9F8009449DE0401C0DF1BB9FE8DB545B42B035F5999021FF4AED3B0718762FE9CC577134FBF548AA162AC2B042
+encrypted_data = B29490390AC9CF440758BDF18319C0CAD5EA6787E13C6342C7BA88B80190F41A11CE3C61BD62D5735202D04A92E061B846D421D0FF16B64B8E67F96851C702C3705979818282141E009241CC0DA2FEAA75FBAEC812C4F61221D746D6AE9C70A208EC49C8B52EA105FF390FC2D7A4758670B02E20D3D34770B8470E9EAB0D989B187642E4A1700CEEF87AD519AAE7B5E8D0AE660953128F254B180701EB0F50C809D1537DD7399439A0B4A1005243DC79A3C6ECFF336C4A7275655F0DF0AB582B819E5FBC4ADFEB6D77769F55C90095ADB2509E31853876953E543A0B52D6B86135A6102718BF8567CA1EB814C35DF13EC2F5151A5618CC4B17622B7862127870
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 54 CF 0A 00 AA A9 5F 65
-0010 | 40 01 00 00 BE E4 12 D7 7A 44 83 F4 E1 2D 9C 01
-0020 | 2A 39 CC C1 09 20 BD C3 94 D9 D0 DA D2 40 80 02
-0030 | 4B 00 1A 91 59 09 1D E9 04 4F 95 6A 75 00 00 00
-0040 | 04 50 9A 86 95 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 4C 82 E1 FE ED 63 DA 61 0F E2 BC AC
-0060 | 65 77 6C FC F6 0A A1 79 AE 04 CD 39 B5 81 15 AB
-0070 | 9B 7D 65 C8 D7 64 55 9A 5C E9 5D 77 0F DB 3F 59
-0080 | BE D8 F9 98 FE 5A 8F 73 AC 9E B3 37 F9 98 CC A2
-0090 | 60 E0 B0 CB E3 41 0A 01 37 20 30 7C EE 38 D9 CA
-00A0 | DA D1 C2 E1 34 F1 AF 7B BE 3F 97 E0 49 CD 4F 32
-00B0 | E9 A8 65 97 F7 19 13 23 6A 5F D9 F3 79 AF EB FB
-00C0 | B5 15 CD D9 62 06 BE 2B 6E C9 39 2F 3F 7C F7 AA
-00D0 | E0 9C AF 82 FF BF 24 A8 0F 76 C5 9C 17 D3 74 28
-00E0 | 03 22 33 EC C5 4A 5C 3B E9 00 9A 44 FC 4B E4 84
-00F0 | CD 97 6D E2 35 B4 88 23 2F D5 70 DA AF 53 63 A1
-0100 | 34 DA 52 CF E8 69 D6 D8 F1 73 0F 14 8B 3A FD C3
-0110 | 64 95 15 00 20 27 B4 A6 AF 07 FC 7F 0A 31 BD 01
-0120 | B1 D1 15 AC 2D D2 5E 9F 80 09 44 9D E0 40 1C 0D
-0130 | F1 BB 9F E8 DB 54 5B 42 B0 35 F5 99 90 21 FF 4A
-0140 | ED 3B 07 18 76 2F E9 CC 57 71 34 FB F5 48 AA 16
-0150 | 2A C2 B0 42
+0000 | 00 00 00 00 00 00 00 00 7C E5 01 00 55 B3 5F 65
+0010 | 40 01 00 00 BE E4 12 D7 D3 C7 6C F7 7D 76 D6 35
+0020 | 46 A4 97 C0 42 3D FC 7C 50 9F E3 CA 67 09 F9 B8
+0030 | 73 01 F3 45 D6 43 08 4B 04 4B 50 B7 05 00 00 00
+0040 | 04 66 80 73 AD 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 B2 94 90 39 0A C9 CF 44 07 58 BD F1
+0060 | 83 19 C0 CA D5 EA 67 87 E1 3C 63 42 C7 BA 88 B8
+0070 | 01 90 F4 1A 11 CE 3C 61 BD 62 D5 73 52 02 D0 4A
+0080 | 92 E0 61 B8 46 D4 21 D0 FF 16 B6 4B 8E 67 F9 68
+0090 | 51 C7 02 C3 70 59 79 81 82 82 14 1E 00 92 41 CC
+00A0 | 0D A2 FE AA 75 FB AE C8 12 C4 F6 12 21 D7 46 D6
+00B0 | AE 9C 70 A2 08 EC 49 C8 B5 2E A1 05 FF 39 0F C2
+00C0 | D7 A4 75 86 70 B0 2E 20 D3 D3 47 70 B8 47 0E 9E
+00D0 | AB 0D 98 9B 18 76 42 E4 A1 70 0C EE F8 7A D5 19
+00E0 | AA E7 B5 E8 D0 AE 66 09 53 12 8F 25 4B 18 07 01
+00F0 | EB 0F 50 C8 09 D1 53 7D D7 39 94 39 A0 B4 A1 00
+0100 | 52 43 DC 79 A3 C6 EC FF 33 6C 4A 72 75 65 5F 0D
+0110 | F0 AB 58 2B 81 9E 5F BC 4A DF EB 6D 77 76 9F 55
+0120 | C9 00 95 AD B2 50 9E 31 85 38 76 95 3E 54 3A 0B
+0130 | 52 D6 B8 61 35 A6 10 27 18 BF 85 67 CA 1E B8 14
+0140 | C3 5D F1 3E C2 F5 15 1A 56 18 CC 4B 17 62 2B 78
+0150 | 62 12 78 70
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 = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D671
message_id |
8, 8 |
-54CF0A00AAA95F65 |
+7CE5010055B35F65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D671
nonce |
24, 16 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Value received from server in Step 2 |
p |
56, 8 |
-044F956A75000000 TL byte deserialization => bigendian conversion to decimal => 1335192181 |
+044B50B705000000 TL byte deserialization => bigendian conversion to decimal => 1263580933 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-04509A8695000000 TL byte deserialization => bigendian conversion to decimal => 1352304277 |
+04668073AD000000 TL byte deserialization => bigendian conversion to decimal => 1719694253 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D671
encrypted_data |
80, 260 |
-FE0001004C82E1FEED63DA610FE2BCAC 65776CFCF60AA179AE04CD39B58115AB 9B7D65C8D764559A5CE95D770FDB3F59 BED8F998FE5A8F73AC9EB337F998CCA2 60E0B0CBE3410A013720307CEE38D9CA DAD1C2E134F1AF7BBE3F97E049CD4F32 E9A86597F71913236A5FD9F379AFEBFB B515CDD96206BE2B6EC9392F3F7CF7AA E09CAF82FFBF24A80F76C59C17D37428 032233ECC54A5C3BE9009A44FC4BE484 CD976DE235B488232FD570DAAF5363A1 34DA52CFE869D6D8F1730F148B3AFDC3 649515002027B4A6AF07FC7F0A31BD01 B1D115AC2DD25E9F8009449DE0401C0D F1BB9FE8DB545B42B035F5999021FF4A ED3B0718762FE9CC577134FBF548AA16 2AC2B042 |
+FE000100B29490390AC9CF440758BDF1 8319C0CAD5EA6787E13C6342C7BA88B8 0190F41A11CE3C61BD62D5735202D04A 92E061B846D421D0FF16B64B8E67F968 51C702C3705979818282141E009241CC 0DA2FEAA75FBAEC812C4F61221D746D6 AE9C70A208EC49C8B52EA105FF390FC2 D7A4758670B02E20D3D34770B8470E9E AB0D989B187642E4A1700CEEF87AD519 AAE7B5E8D0AE660953128F254B180701 EB0F50C809D1537DD7399439A0B4A100 5243DC79A3C6ECFF336C4A7275655F0D F0AB582B819E5FBC4ADFEB6D77769F55 C90095ADB2509E31853876953E543A0B 52D6B86135A6102718BF8567CA1EB814 C35DF13EC2F5151A5618CC4B17622B78 62127870 |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D671
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 7C 90 1C AB A9 5F 65
-0010 | A8 02 00 00 5C 07 E8 D0 7A 44 83 F4 E1 2D 9C 01
-0020 | 2A 39 CC C1 09 20 BD C3 94 D9 D0 DA D2 40 80 02
-0030 | 4B 00 1A 91 59 09 1D E9 FE 50 02 00 73 6A 8A 7D
-0040 | 7A 91 D4 88 08 57 CF 9D AC 61 8A DC 53 BD CA 2B
-0050 | 7D 74 76 45 97 01 1B 98 2E D8 F1 F8 44 31 9D E0
-0060 | E9 F6 3C 47 27 D1 2E FE F6 C6 EA 5A 12 4B 47 4B
-0070 | 4C 78 44 E4 68 17 EF BE 1E 11 46 1D E1 92 A3 DC
-0080 | 03 DC 9A 71 D8 25 3A 7D 44 DF 20 B1 1C 12 3E 3D
-0090 | B8 CB 43 76 91 5F C5 47 93 94 28 45 67 71 AF A5
-00A0 | DE 7E E4 46 00 54 7E 58 BD A4 FE F5 90 F3 4C 33
-00B0 | C6 98 CD 81 E4 82 22 E8 E4 23 35 FE 16 BF C9 76
-00C0 | F3 A6 FB 2B D0 1E F6 DC 6E E3 14 66 F4 38 EE BB
-00D0 | 5E C1 15 F9 65 D8 19 AF AD 11 E4 14 A1 D4 4A 14
-00E0 | 34 46 36 B2 3E 7E 97 25 F2 75 48 34 AE 13 51 B7
-00F0 | 30 AD 67 47 5A 7C 52 39 0E 7B 8E 95 9B D7 8D 75
-0100 | E3 4D A3 DA C1 0F D4 F2 66 1B AA FF CF 9D DD 04
-0110 | 53 EF 6A E9 F9 79 EE B8 49 CF 92 CB 39 A5 0D 6B
-0120 | 3A 30 EB 93 3C 4A 5E D2 11 AE 6D 43 D9 FC EC 63
-0130 | 4B 7B 9F 20 D3 60 E1 FE 4F B5 3E 76 68 6C 69 3F
-0140 | 27 AA 9C 46 51 74 B5 EA 92 D2 FB BC 47 8D 5A C3
-0150 | D4 B8 63 9B 71 62 D2 43 C9 91 11 7C 66 E3 C9 AB
-0160 | 3C 08 C2 72 88 DE 0C CF E2 F4 D9 B1 2E F1 C7 64
-0170 | 14 85 76 D3 5F D3 CE A8 54 56 DD A0 B3 68 83 01
-0180 | CB C3 65 95 BC 5E 43 42 B6 AB 96 91 5C 3B 5C E1
-0190 | 0D 9A E3 A8 32 16 D1 3A A6 FB 0D DC 98 BE 0D FB
-01A0 | 99 7D 7D AC 0A 1C E7 58 07 9B 81 46 C7 32 6A 64
-01B0 | 67 96 37 3A C8 17 A5 8D 4F 6A 23 F7 C0 5F 63 0D
-01C0 | 36 EF 87 0D 61 6F 23 A0 A4 29 F1 C3 A5 59 C6 E0
-01D0 | 8F 34 77 FB 4B 63 C7 38 48 A2 BE F1 ED 2F 52 CE
-01E0 | AF 9C 55 08 B1 07 12 EE 04 D9 04 88 EE 36 3B 2B
-01F0 | 7F 53 E0 77 95 B4 E9 58 E6 AA 72 F6 2F 39 0A 68
-0200 | 8A A0 CF 0E 04 12 D4 6A B7 E7 EB 83 CA 01 D6 03
-0210 | 8B 19 38 22 1C 4C B2 86 9F 58 7C 36 E7 5F D4 F9
-0220 | DB B1 16 80 AB 83 FB 4A FB 70 90 B1 A6 5F 5A AA
-0230 | 13 7C 60 7F 47 8E 26 A0 F9 78 F1 07 99 CC FC 0C
-0240 | 5E BA 8C 44 91 50 6D 64 72 D2 4F 9E 27 F9 1C 01
-0250 | C8 7C AF 90 24 69 15 9C 7C ED 71 B4 B8 AE 6C 8B
-0260 | 62 EC 53 B7 60 93 DA F1 FC 8A C8 8E A7 E9 79 A2
-0270 | E2 0C 1F C2 19 DD 0C B5 A5 B6 1A 39 0B F1 36 E4
-0280 | 1B 00 15 FC E3 C0 CB 24 E8 65 9F 55
+0000 | 00 00 00 00 00 00 00 00 01 14 9F B8 55 B3 5F 65
+0010 | E0 02 00 00 5C 07 E8 D0 D3 C7 6C F7 7D 76 D6 35
+0020 | 46 A4 97 C0 42 3D FC 7C 50 9F E3 CA 67 09 F9 B8
+0030 | 73 01 F3 45 D6 43 08 4B FE 50 02 00 66 D3 81 F4
+0040 | 67 5B 7D 30 8F 41 FB 24 4E DB 36 89 A8 34 04 47
+0050 | DB 35 BD 19 0F B2 E2 8A D3 B0 F6 73 4A C8 09 9D
+0060 | 7D DB DA 11 AE E7 CA FD 5B AC 7C 3A CF 7D BF 4B
+0070 | E4 44 3B 82 2C E7 04 67 67 AE 39 22 2F 0B 79 02
+0080 | 1E 7C 45 90 CA 22 A9 48 75 B4 93 05 87 F7 5A 2F
+0090 | 77 86 DA 91 6E 82 59 77 F8 47 29 AA 8E 0D 1A CD
+00A0 | 94 AB E7 C3 CB F2 13 80 8F 36 2E 34 83 2D 4E BD
+00B0 | EC 44 B2 39 C2 45 10 64 10 BF 91 CB D5 DB B1 A8
+00C0 | C1 D8 B9 D7 DD 4C D4 26 B4 B9 F9 86 93 A4 DD 56
+00D0 | 2F 32 3C 3F 95 CA D8 16 88 43 92 36 13 79 55 2E
+00E0 | A9 3E AE FA FA 2A FB 37 C0 3A 6F 7C 73 7D DF D0
+00F0 | 9E 60 14 38 89 7E BA 18 C7 B7 3E 98 D9 DB 31 52
+0100 | BA 44 43 60 4C 93 C7 84 74 D3 EA 77 61 0F CC B5
+0110 | 42 AB 09 98 37 D7 AA AD 63 C2 A4 E0 8D 05 A2 A8
+0120 | 5D 9A 31 B9 E2 D4 BB 0A DE 62 71 18 1B 26 F8 00
+0130 | 62 65 84 42 6B B4 E7 14 C1 79 DE 8E C1 B7 06 C4
+0140 | C4 7A 43 DC 2B 6E 29 E8 DD 91 D6 96 FF 05 02 1C
+0150 | 21 11 75 A4 9F A1 40 EF BE 10 BF 74 3E 9C E2 58
+0160 | EC 49 C6 19 8E F9 50 B1 1A 1B 7C F2 DD C5 A4 95
+0170 | 40 AF 6E 38 40 10 9B E1 FD F9 55 41 86 B5 9E D3
+0180 | 7B E7 0F FB 73 AD 88 45 5B EE C8 C2 6E E8 7E 9F
+0190 | 0C A7 93 9E 99 49 1F AE 13 4A B1 45 1E 1E C1 4A
+01A0 | DA 97 27 BC 40 13 35 AC 82 FB 5F AE 55 B8 09 26
+01B0 | F1 11 D6 1E 9D 2A 38 04 5A 91 FC 46 BD 85 EA CC
+01C0 | 65 B6 A0 E2 C2 B4 AA AF BE AA 79 DE F4 FE 10 EC
+01D0 | CF 3E 45 40 39 F8 8A B5 9B FA A6 13 5C 28 B4 2D
+01E0 | 24 9D 78 FB EB D4 1E 63 7D D3 89 27 A5 EF 81 CF
+01F0 | 27 95 E2 C1 3A 75 67 9C DB 77 C6 F2 47 74 3D C9
+0200 | 4D E7 4D 94 83 44 9D 80 63 FF 24 E9 1B 80 3F A4
+0210 | 62 63 A7 D1 90 0D FE A9 88 56 40 3A 9E 9C 76 E9
+0220 | 1A 00 34 23 18 4D EC 1D 11 78 37 93 6C 29 D9 B7
+0230 | 33 6C C4 F7 6D 42 E0 29 48 5C E4 2F A2 F0 23 D3
+0240 | 01 33 C2 48 4F CC F7 8D FC 06 9B 5A 41 02 2F 7E
+0250 | 2E 2E B6 D6 0D F8 F6 B2 34 64 02 3A A6 94 9C 39
+0260 | 2D 97 4A A9 60 E1 78 F6 04 49 31 F0 32 EB F8 C0
+0270 | B5 3B 01 D4 50 72 6F ED E5 55 64 06 6E FF B2 B1
+0280 | F8 27 31 DA 90 B8 DC 44 F9 73 E6 BD
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 = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D671
message_id |
8, 8 |
-017C901CABA95F65 |
+01149FB855B35F65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-A8020000 (680 in decimal) |
+E0020000 (736 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D671
nonce |
24, 16 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-FE500200736A8A7D7A91D4880857CF9D AC618ADC53BDCA2B7D74764597011B98 2ED8F1F844319DE0E9F63C4727D12EFE F6C6EA5A124B474B4C7844E46817EFBE 1E11461DE192A3DC03DC9A71D8253A7D 44DF20B11C123E3DB8CB4376915FC547 939428456771AFA5DE7EE44600547E58 BDA4FEF590F34C33C698CD81E48222E8 E42335FE16BFC976F3A6FB2BD01EF6DC 6EE31466F438EEBB5EC115F965D819AF AD11E414A1D44A14344636B23E7E9725 F2754834AE1351B730AD67475A7C5239 0E7B8E959BD78D75E34DA3DAC10FD4F2 661BAAFFCF9DDD0453EF6AE9F979EEB8 49CF92CB39A50D6B3A30EB933C4A5ED2 11AE6D43D9FCEC634B7B9F20D360E1FE 4FB53E76686C693F27AA9C465174B5EA 92D2FBBC478D5AC3D4B8639B7162D243 C991117C66E3C9AB3C08C27288DE0CCF E2F4D9B12EF1C764148576D35FD3CEA8 5456DDA0B3688301CBC36595BC5E4342 B6AB96915C3B5CE10D9AE3A83216D13A A6FB0DDC98BE0DFB997D7DAC0A1CE758 079B8146C7326A646796373AC817A58D 4F6A23F7C05F630D36EF870D616F23A0 A429F1C3A559C6E08F3477FB4B63C738 48A2BEF1ED2F52CEAF9C5508B10712EE 04D90488EE363B2B7F53E07795B4E958 E6AA72F62F390A688AA0CF0E0412D46A B7E7EB83CA01D6038B1938221C4CB286 9F587C36E75FD4F9DBB11680AB83FB4A FB7090B1A65F5AAA137C607F478E26A0 F978F10799CCFC0C5EBA8C4491506D64 72D24F9E27F91C01C87CAF902469159C 7CED71B4B8AE6C8B62EC53B76093DAF1 FC8AC88EA7E979A2E20C1FC219DD0CB5 A5B61A390BF136E41B0015FCE3C0CB24 E8659F55 |
+FE50020066D381F4675B7D308F41FB24 4EDB3689A8340447DB35BD190FB2E28A D3B0F6734AC8099D7DDBDA11AEE7CAFD 5BAC7C3ACF7DBF4BE4443B822CE70467 67AE39222F0B79021E7C4590CA22A948 75B4930587F75A2F7786DA916E825977 F84729AA8E0D1ACD94ABE7C3CBF21380 8F362E34832D4EBDEC44B239C2451064 10BF91CBD5DBB1A8C1D8B9D7DD4CD426 B4B9F98693A4DD562F323C3F95CAD816 884392361379552EA93EAEFAFA2AFB37 C03A6F7C737DDFD09E601438897EBA18 C7B73E98D9DB3152BA4443604C93C784 74D3EA77610FCCB542AB099837D7AAAD 63C2A4E08D05A2A85D9A31B9E2D4BB0A DE6271181B26F800626584426BB4E714 C179DE8EC1B706C4C47A43DC2B6E29E8 DD91D696FF05021C211175A49FA140EF BE10BF743E9CE258EC49C6198EF950B1 1A1B7CF2DDC5A49540AF6E3840109BE1 FDF9554186B59ED37BE70FFB73AD8845 5BEEC8C26EE87E9F0CA7939E99491FAE 134AB1451E1EC14ADA9727BC401335AC 82FB5FAE55B80926F111D61E9D2A3804 5A91FC46BD85EACC65B6A0E2C2B4AAAF BEAA79DEF4FE10ECCF3E454039F88AB5 9BFAA6135C28B42D249D78FBEBD41E63 7DD38927A5EF81CF2795E2C13A75679C DB77C6F247743DC94DE74D9483449D80 63FF24E91B803FA46263A7D1900DFEA9 8856403A9E9C76E91A003423184DEC1D 117837936C29D9B7336CC4F76D42E029 485CE42FA2F023D30133C2484FCCF78D FC069B5A41022F7E2E2EB6D60DF8F6B2 3464023AA6949C392D974AA960E178F6 044931F032EBF8C0B53B01D450726FED E55564066EFFB2B1F82731DA90B8DC44 F973E6BD |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = 14ABE224D91B4219DF309EEAD010344A1DF5B86DB379750530408D671
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = 736A8A7D7A91D4880857CF9DAC618ADC53BDCA2B7D74764597011B982ED8F1F844319DE0E9F63C4727D12EFEF6C6EA5A124B474B4C7844E46817EFBE1E11461DE192A3DC03DC9A71D8253A7D44DF20B11C123E3DB8CB4376915FC547939428456771AFA5DE7EE44600547E58BDA4FEF590F34C33C698CD81E48222E8E42335FE16BFC976F3A6FB2BD01EF6DC6EE31466F438EEBB5EC115F965D819AFAD11E414A1D44A14344636B23E7E9725F2754834AE1351B730AD67475A7C52390E7B8E959BD78D75E34DA3DAC10FD4F2661BAAFFCF9DDD0453EF6AE9F979EEB849CF92CB39A50D6B3A30EB933C4A5ED211AE6D43D9FCEC634B7B9F20D360E1FE4FB53E76686C693F27AA9C465174B5EA92D2FBBC478D5AC3D4B8639B7162D243C991117C66E3C9AB3C08C27288DE0CCFE2F4D9B12EF1C764148576D35FD3CEA85456DDA0B3688301CBC36595BC5E4342B6AB96915C3B5CE10D9AE3A83216D13AA6FB0DDC98BE0DFB997D7DAC0A1CE758079B8146C7326A646796373AC817A58D4F6A23F7C05F630D36EF870D616F23A0A429F1C3A559C6E08F3477FB4B63C73848A2BEF1ED2F52CEAF9C5508B10712EE04D90488EE363B2B7F53E07795B4E958E6AA72F62F390A688AA0CF0E0412D46AB7E7EB83CA01D6038B1938221C4CB2869F587C36E75FD4F9DBB11680AB83FB4AFB7090B1A65F5AAA137C607F478E26A0F978F10799CCFC0C5EBA8C4491506D6472D24F9E27F91C01C87CAF902469159C7CED71B4B8AE6C8B62EC53B76093DAF1FC8AC88EA7E979A2E20C1FC219DD0CB5A5B61A390BF136E41B0015FCE3C0CB24E8659F55
-tmp_aes_key = 675641CF483005F1A58B6741C0D8550A8336A7072783138A41AD9980FC09FDE7
-tmp_aes_iv = 13465E12C0B0DC4CDA3685C09D2FDB128B40AAEA53CBDF1356F420FCA15BFB1E
+encrypted_answer = 66D381F4675B7D308F41FB244EDB3689A8340447DB35BD190FB2E28AD3B0F6734AC8099D7DDBDA11AEE7CAFD5BAC7C3ACF7DBF4BE4443B822CE7046767AE39222F0B79021E7C4590CA22A94875B4930587F75A2F7786DA916E825977F84729AA8E0D1ACD94ABE7C3CBF213808F362E34832D4EBDEC44B239C245106410BF91CBD5DBB1A8C1D8B9D7DD4CD426B4B9F98693A4DD562F323C3F95CAD816884392361379552EA93EAEFAFA2AFB37C03A6F7C737DDFD09E601438897EBA18C7B73E98D9DB3152BA4443604C93C78474D3EA77610FCCB542AB099837D7AAAD63C2A4E08D05A2A85D9A31B9E2D4BB0ADE6271181B26F800626584426BB4E714C179DE8EC1B706C4C47A43DC2B6E29E8DD91D696FF05021C211175A49FA140EFBE10BF743E9CE258EC49C6198EF950B11A1B7CF2DDC5A49540AF6E3840109BE1FDF9554186B59ED37BE70FFB73AD88455BEEC8C26EE87E9F0CA7939E99491FAE134AB1451E1EC14ADA9727BC401335AC82FB5FAE55B80926F111D61E9D2A38045A91FC46BD85EACC65B6A0E2C2B4AAAFBEAA79DEF4FE10ECCF3E454039F88AB59BFAA6135C28B42D249D78FBEBD41E637DD38927A5EF81CF2795E2C13A75679CDB77C6F247743DC94DE74D9483449D8063FF24E91B803FA46263A7D1900DFEA98856403A9E9C76E91A003423184DEC1D117837936C29D9B7336CC4F76D42E029485CE42FA2F023D30133C2484FCCF78DFC069B5A41022F7E2E2EB6D60DF8F6B23464023AA6949C392D974AA960E178F6044931F032EBF8C0B53B01D450726FEDE55564066EFFB2B1F82731DA90B8DC44F973E6BD
+tmp_aes_key = 3D27FBABF48F4AB792754710A5F63B0421105B1FCB1D6700FE2160586C3D6A5D
+tmp_aes_iv = 5E37276CE40077CFCD38F6235E1BB0D2CAB73E21A6E0BF08892BABEF26DAC484
Yielding:
-answer_with_hash = F16156B11DBD6B8DD84A429E1BDCA04013B42CCEBA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008C5C61AEBFFEBCFC1B46DA700574D4F9A46DD6A948E371C33FF555957C74FC04CCF78D94D962FF95E5A122DCAA060C03090E396460F608563CCE93A5C7CEB4AF9ED27C765084FDFD6881DE65C2EED350A0FEBEC40FE6F393EA3F912C5F61583436DF7C04CEBAC6C1BE5987596FCE1B1C8D68DA1F127E7D1CD713EE7D85B398540B571DD911C9830A33F6EDF8FD43200A87E661EA203279997485FAFE07520D6F4F40DFA7F9A0A619E0547E7548A3FD887BF49C485921F19276A18B08A9DB16B2B68B040331391BC5C64C58304EFEECCE8386E39CED5F97948D1CC3D7F53C2E65EC7F763FDD3718925B33BAE6BCE00583F234FAB7BBBC4C3FE660108B5A42730CABA95F65A9D4078A53F16A8D
-answer = BA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE903000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001008C5C61AEBFFEBCFC1B46DA700574D4F9A46DD6A948E371C33FF555957C74FC04CCF78D94D962FF95E5A122DCAA060C03090E396460F608563CCE93A5C7CEB4AF9ED27C765084FDFD6881DE65C2EED350A0FEBEC40FE6F393EA3F912C5F61583436DF7C04CEBAC6C1BE5987596FCE1B1C8D68DA1F127E7D1CD713EE7D85B398540B571DD911C9830A33F6EDF8FD43200A87E661EA203279997485FAFE07520D6F4F40DFA7F9A0A619E0547E7548A3FD887BF49C485921F19276A18B08A9DB16B2B68B040331391BC5C64C58304EFEECCE8386E39CED5F97948D1CC3D7F53C2E65EC7F763FDD3718925B33BAE6BCE00583F234FAB7BBBC4C3FE660108B5A42730CABA95F65A9D4078A53F16A8D
+answer_with_hash = 393A87194DCC3E35882E5BBE97CC9743826BA9B2BA0D89B5D3C76CF77D76D63546A497C0423DFC7C509FE3CA6709F9B87301F345D643084B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010006BF9BE57AB3FCF8F17D7D2F1136B62F73C4F918232B2A70D51EF194146111BB0C1B6C9EB8F01C304E96C12A2A23D30F02BBB6DB7431C2AF2111BAFB0BBF9A0F46315AA01F74691F1D6EC8126EF761DC18DE5CA3361489C5352E7FD57AA2978B65AC5EC7E1BD95D495B84F72DC88963C62C28AD871AB995CBA2F51F94E6AD7EF8721ABC5F1AE86EFE6AE9B584963FDFDAFB24F87A5780C6A0A5B2273C10C54B93F98E68219D01A8B58709943760C72F9B0C38528193613F55F2E08D8E1637A3EBA10EF58880E45584EDCD557CADDF1755AC695C14711AA5C0E76EDDC15E20D05463FF14D89EF2F4EA531E3B22F86DBD3B7FE893CD9A1A1DA8B712703E06925E555B35F658FF4853C209201EA
+answer = BA0D89B5D3C76CF77D76D63546A497C0423DFC7C509FE3CA6709F9B87301F345D643084B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010006BF9BE57AB3FCF8F17D7D2F1136B62F73C4F918232B2A70D51EF194146111BB0C1B6C9EB8F01C304E96C12A2A23D30F02BBB6DB7431C2AF2111BAFB0BBF9A0F46315AA01F74691F1D6EC8126EF761DC18DE5CA3361489C5352E7FD57AA2978B65AC5EC7E1BD95D495B84F72DC88963C62C28AD871AB995CBA2F51F94E6AD7EF8721ABC5F1AE86EFE6AE9B584963FDFDAFB24F87A5780C6A0A5B2273C10C54B93F98E68219D01A8B58709943760C72F9B0C38528193613F55F2E08D8E1637A3EBA10EF58880E45584EDCD557CADDF1755AC695C14711AA5C0E76EDDC15E20D05463FF14D89EF2F4EA531E3B22F86DBD3B7FE893CD9A1A1DA8B712703E06925E555B35F658FF4853C209201EA
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 7A 44 83 F4 E1 2D 9C 01 2A 39 CC C1
-0010 | 09 20 BD C3 94 D9 D0 DA D2 40 80 02 4B 00 1A 91
-0020 | 59 09 1D E9 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 D3 C7 6C F7 7D 76 D6 35 46 A4 97 C0
+0010 | 42 3D FC 7C 50 9F E3 CA 67 09 F9 B8 73 01 F3 45
+0020 | D6 43 08 4B 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 = BA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE
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 | 8C 5C 61 AE BF FE BC FC 1B 46 DA 70 05 74 D4 F9
-0140 | A4 6D D6 A9 48 E3 71 C3 3F F5 55 95 7C 74 FC 04
-0150 | CC F7 8D 94 D9 62 FF 95 E5 A1 22 DC AA 06 0C 03
-0160 | 09 0E 39 64 60 F6 08 56 3C CE 93 A5 C7 CE B4 AF
-0170 | 9E D2 7C 76 50 84 FD FD 68 81 DE 65 C2 EE D3 50
-0180 | A0 FE BE C4 0F E6 F3 93 EA 3F 91 2C 5F 61 58 34
-0190 | 36 DF 7C 04 CE BA C6 C1 BE 59 87 59 6F CE 1B 1C
-01A0 | 8D 68 DA 1F 12 7E 7D 1C D7 13 EE 7D 85 B3 98 54
-01B0 | 0B 57 1D D9 11 C9 83 0A 33 F6 ED F8 FD 43 20 0A
-01C0 | 87 E6 61 EA 20 32 79 99 74 85 FA FE 07 52 0D 6F
-01D0 | 4F 40 DF A7 F9 A0 A6 19 E0 54 7E 75 48 A3 FD 88
-01E0 | 7B F4 9C 48 59 21 F1 92 76 A1 8B 08 A9 DB 16 B2
-01F0 | B6 8B 04 03 31 39 1B C5 C6 4C 58 30 4E FE EC CE
-0200 | 83 86 E3 9C ED 5F 97 94 8D 1C C3 D7 F5 3C 2E 65
-0210 | EC 7F 76 3F DD 37 18 92 5B 33 BA E6 BC E0 05 83
-0220 | F2 34 FA B7 BB BC 4C 3F E6 60 10 8B 5A 42 73 0C
-0230 | AB A9 5F 65
+0130 | 06 BF 9B E5 7A B3 FC F8 F1 7D 7D 2F 11 36 B6 2F
+0140 | 73 C4 F9 18 23 2B 2A 70 D5 1E F1 94 14 61 11 BB
+0150 | 0C 1B 6C 9E B8 F0 1C 30 4E 96 C1 2A 2A 23 D3 0F
+0160 | 02 BB B6 DB 74 31 C2 AF 21 11 BA FB 0B BF 9A 0F
+0170 | 46 31 5A A0 1F 74 69 1F 1D 6E C8 12 6E F7 61 DC
+0180 | 18 DE 5C A3 36 14 89 C5 35 2E 7F D5 7A A2 97 8B
+0190 | 65 AC 5E C7 E1 BD 95 D4 95 B8 4F 72 DC 88 96 3C
+01A0 | 62 C2 8A D8 71 AB 99 5C BA 2F 51 F9 4E 6A D7 EF
+01B0 | 87 21 AB C5 F1 AE 86 EF E6 AE 9B 58 49 63 FD FD
+01C0 | AF B2 4F 87 A5 78 0C 6A 0A 5B 22 73 C1 0C 54 B9
+01D0 | 3F 98 E6 82 19 D0 1A 8B 58 70 99 43 76 0C 72 F9
+01E0 | B0 C3 85 28 19 36 13 F5 5F 2E 08 D8 E1 63 7A 3E
+01F0 | BA 10 EF 58 88 0E 45 58 4E DC D5 57 CA DD F1 75
+0200 | 5A C6 95 C1 47 11 AA 5C 0E 76 ED DC 15 E2 0D 05
+0210 | 46 3F F1 4D 89 EF 2F 4E A5 31 E3 B2 2F 86 DB D3
+0220 | B7 FE 89 3C D9 A1 A1 DA 8B 71 27 03 E0 69 25 E5
+0230 | 55 B3 5F 65
Payload (de)serialization:
server_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;
@@ -570,13 +570,13 @@ answer = BA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE
nonce |
4, 16 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE
g_a |
300, 260 |
-FE0001008C5C61AEBFFEBCFC1B46DA70 0574D4F9A46DD6A948E371C33FF55595 7C74FC04CCF78D94D962FF95E5A122DC AA060C03090E396460F608563CCE93A5 C7CEB4AF9ED27C765084FDFD6881DE65 C2EED350A0FEBEC40FE6F393EA3F912C 5F61583436DF7C04CEBAC6C1BE598759 6FCE1B1C8D68DA1F127E7D1CD713EE7D 85B398540B571DD911C9830A33F6EDF8 FD43200A87E661EA203279997485FAFE 07520D6F4F40DFA7F9A0A619E0547E75 48A3FD887BF49C485921F19276A18B08 A9DB16B2B68B040331391BC5C64C5830 4EFEECCE8386E39CED5F97948D1CC3D7 F53C2E65EC7F763FDD3718925B33BAE6 BCE00583F234FAB7BBBC4C3FE660108B 5A42730C |
+FE00010006BF9BE57AB3FCF8F17D7D2F 1136B62F73C4F918232B2A70D51EF194 146111BB0C1B6C9EB8F01C304E96C12A 2A23D30F02BBB6DB7431C2AF2111BAFB 0BBF9A0F46315AA01F74691F1D6EC812 6EF761DC18DE5CA3361489C5352E7FD5 7AA2978B65AC5EC7E1BD95D495B84F72 DC88963C62C28AD871AB995CBA2F51F9 4E6AD7EF8721ABC5F1AE86EFE6AE9B58 4963FDFDAFB24F87A5780C6A0A5B2273 C10C54B93F98E68219D01A8B58709943 760C72F9B0C38528193613F55F2E08D8 E1637A3EBA10EF58880E45584EDCD557 CADDF1755AC695C14711AA5C0E76EDDC 15E20D05463FF14D89EF2F4EA531E3B2 2F86DBD3B7FE893CD9A1A1DA8B712703 E06925E5 |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-ABA95F65 (1700768171 in decimal) |
+55B35F65 (1700770645 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE
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 = 13B66234DA363C82F3B76128DC878D77E8CBECFA1B39540E5C6028CBEF140B5280EEFCB0F1EBD195D4491F70324334DE50A0F2D27CF72A4BB3EFDC3D5C9404B0E90BBC7BA95905D344A7CECD3F621AB97B63F05E20685137FF83D4521E507B78B04F8D1C6DDADB563CA99B7CBF6980701D5570578B7E96B0A754C8FCBD60DE79CEF53CD8E9C5FE70AA0C55BC0384E9CE982AABF5F1896F599483EB701088A8E6A702B85DBE785C5A2860BC27579AE0CA009D1093A8E7FFF9269E724A208C213347B68D11EE65FDCE8B262F601BFCAB8D7162DDFEBFD5F43B6738E222D5CADB4A51E444506A16087A6DBE9DE1F06A55976F3B63FB4E75E494E94724B6628DF86D
+b = 64E2EF26A39DA1D134BFD62C4881C6600ABA06E681E481A21F6B9ECF59885EA9CBB9C82A124933495F18B5F74CA2CC395B9B52E81A2FCDEDB443EE445389587A87C2EED8B7D7A8028B8AB9578B0D11EBBC06AA404C3FCAA52EB20DA6DCF51415BC6C3010B2F03A968EADFFF7B51D4C52A21DA1A0A51B06372CAB3DBC72FD8707805F74FAB2E46A35CA38509312C7082C86470A72140C5221C19E99037B600243D8D84263EDB3096538788B74E9F447F4A4D1AF085B9F2AC39A4DF10D33D49663B6A02A66126D51801ABB27ED7421C78C2D6D23DA6530880F25BD752165B270F0CEEB4585B4DCE75B804E6928170D859C86460AC79320F3AD0E969FA9AC2694C7
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 76E7C32846DD187CA7917E86BBC3D83D61B1764BF6E1FF101420D41B17E64EFF529060E59F81BD13B39EA3F9A809F8AA091F209D8A056FD9D787FD9A1064E9FC646F327E77F40E3B27B589CAA0301E4B7C845AE17D77FE5B4ECD691B9B8D7AA74D9B83EEEC566146E58AF109623ED90F41EE7932F72FF5846BDBA9F56C798EA68AD987208A5140B3B29F550C88779C987EF9CCEE70E13772039844E312AB17D3CA3362080C49C16FC0D21DB2D450CE674E108075005E85EFD631072966E0929EFDAEFBFDEC54C4ECC2F02F83FDBF206B3169D3A26BA4D556DD320B5DFCB799D2F4360ADC7943B0FE8DB6781D447CAC4D31AD4F08288B18D5FDE78CAE43E6A62D
+g_b = 0101CD28945B9502B625E4B28EA75DE1E14906A131FBD5413560FE6EC87BEC6D633F1FF697108453542960A63EB30AE509DC57243D31585A7C17C5E399617701894EA6F8480A3102883D3CBA6C64B8C1A0278E70E3DB04B1F194B19115D3228C2EA6D913654E5E94B4238CF1E280D272920B001BC42DF938ADF07C190D6E8FECD564A28628F33F351245AB6A43F4A39CA1B47C1053C5D4A18B33B6EBC1E1698876A14E65C1963C277F4FCF8EEEA64A8BC97A725142EF37B8948B738494461443248699DC4F9FDFD0A8744D49AF7C42840DB9381F5D09DA3628EA002AEB7F32EBAF4FD275E7C6F8F99A37FA69FA321B30AF1AA988ABC5D9DFFCF97F221FD9172A
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 7A 44 83 F4 E1 2D 9C 01 2A 39 CC C1
-0010 | 09 20 BD C3 94 D9 D0 DA D2 40 80 02 4B 00 1A 91
-0020 | 59 09 1D E9 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 76 E7 C3 28 46 DD 18 7C A7 91 7E 86 BB C3 D8 3D
-0040 | 61 B1 76 4B F6 E1 FF 10 14 20 D4 1B 17 E6 4E FF
-0050 | 52 90 60 E5 9F 81 BD 13 B3 9E A3 F9 A8 09 F8 AA
-0060 | 09 1F 20 9D 8A 05 6F D9 D7 87 FD 9A 10 64 E9 FC
-0070 | 64 6F 32 7E 77 F4 0E 3B 27 B5 89 CA A0 30 1E 4B
-0080 | 7C 84 5A E1 7D 77 FE 5B 4E CD 69 1B 9B 8D 7A A7
-0090 | 4D 9B 83 EE EC 56 61 46 E5 8A F1 09 62 3E D9 0F
-00A0 | 41 EE 79 32 F7 2F F5 84 6B DB A9 F5 6C 79 8E A6
-00B0 | 8A D9 87 20 8A 51 40 B3 B2 9F 55 0C 88 77 9C 98
-00C0 | 7E F9 CC EE 70 E1 37 72 03 98 44 E3 12 AB 17 D3
-00D0 | CA 33 62 08 0C 49 C1 6F C0 D2 1D B2 D4 50 CE 67
-00E0 | 4E 10 80 75 00 5E 85 EF D6 31 07 29 66 E0 92 9E
-00F0 | FD AE FB FD EC 54 C4 EC C2 F0 2F 83 FD BF 20 6B
-0100 | 31 69 D3 A2 6B A4 D5 56 DD 32 0B 5D FC B7 99 D2
-0110 | F4 36 0A DC 79 43 B0 FE 8D B6 78 1D 44 7C AC 4D
-0120 | 31 AD 4F 08 28 8B 18 D5 FD E7 8C AE 43 E6 A6 2D
+0000 | 54 B6 43 66 D3 C7 6C F7 7D 76 D6 35 46 A4 97 C0
+0010 | 42 3D FC 7C 50 9F E3 CA 67 09 F9 B8 73 01 F3 45
+0020 | D6 43 08 4B 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 01 01 CD 28 94 5B 95 02 B6 25 E4 B2 8E A7 5D E1
+0040 | E1 49 06 A1 31 FB D5 41 35 60 FE 6E C8 7B EC 6D
+0050 | 63 3F 1F F6 97 10 84 53 54 29 60 A6 3E B3 0A E5
+0060 | 09 DC 57 24 3D 31 58 5A 7C 17 C5 E3 99 61 77 01
+0070 | 89 4E A6 F8 48 0A 31 02 88 3D 3C BA 6C 64 B8 C1
+0080 | A0 27 8E 70 E3 DB 04 B1 F1 94 B1 91 15 D3 22 8C
+0090 | 2E A6 D9 13 65 4E 5E 94 B4 23 8C F1 E2 80 D2 72
+00A0 | 92 0B 00 1B C4 2D F9 38 AD F0 7C 19 0D 6E 8F EC
+00B0 | D5 64 A2 86 28 F3 3F 35 12 45 AB 6A 43 F4 A3 9C
+00C0 | A1 B4 7C 10 53 C5 D4 A1 8B 33 B6 EB C1 E1 69 88
+00D0 | 76 A1 4E 65 C1 96 3C 27 7F 4F CF 8E EE A6 4A 8B
+00E0 | C9 7A 72 51 42 EF 37 B8 94 8B 73 84 94 46 14 43
+00F0 | 24 86 99 DC 4F 9F DF D0 A8 74 4D 49 AF 7C 42 84
+0100 | 0D B9 38 1F 5D 09 DA 36 28 EA 00 2A EB 7F 32 EB
+0110 | AF 4F D2 75 E7 C6 F8 F9 9A 37 FA 69 FA 32 1B 30
+0120 | AF 1A A9 88 AB C5 D9 DF FC F9 7F 22 1F D9 17 2A
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 = BA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE
nonce |
4, 16 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE00010076E7C32846DD187CA7917E86 BBC3D83D61B1764BF6E1FF101420D41B 17E64EFF529060E59F81BD13B39EA3F9 A809F8AA091F209D8A056FD9D787FD9A 1064E9FC646F327E77F40E3B27B589CA A0301E4B7C845AE17D77FE5B4ECD691B 9B8D7AA74D9B83EEEC566146E58AF109 623ED90F41EE7932F72FF5846BDBA9F5 6C798EA68AD987208A5140B3B29F550C 88779C987EF9CCEE70E13772039844E3 12AB17D3CA3362080C49C16FC0D21DB2 D450CE674E108075005E85EFD6310729 66E0929EFDAEFBFDEC54C4ECC2F02F83 FDBF206B3169D3A26BA4D556DD320B5D FCB799D2F4360ADC7943B0FE8DB6781D 447CAC4D31AD4F08288B18D5FDE78CAE 43E6A62D |
+FE0001000101CD28945B9502B625E4B2 8EA75DE1E14906A131FBD5413560FE6E C87BEC6D633F1FF697108453542960A6 3EB30AE509DC57243D31585A7C17C5E3 99617701894EA6F8480A3102883D3CBA 6C64B8C1A0278E70E3DB04B1F194B191 15D3228C2EA6D913654E5E94B4238CF1 E280D272920B001BC42DF938ADF07C19 0D6E8FECD564A28628F33F351245AB6A 43F4A39CA1B47C1053C5D4A18B33B6EB C1E1698876A14E65C1963C277F4FCF8E EEA64A8BC97A725142EF37B8948B7384 94461443248699DC4F9FDFD0A8744D49 AF7C42840DB9381F5D09DA3628EA002A EB7F32EBAF4FD275E7C6F8F99A37FA69 FA321B30AF1AA988ABC5D9DFFCF97F22 1FD9172A |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B57A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE
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 = 54B643667A4483F4E12D9C012A39CCC10920BDC394D9D0DAD24080024B001A9159091DE90000000000000000FE00010076E7C32846DD187CA7917E86BBC3D83D61B1764BF6E1FF101420D41B17E64EFF529060E59F81BD13B39EA3F9A809F8AA091F209D8A056FD9D787FD9A1064E9FC646F327E77F40E3B27B589CAA0301E4B7C845AE17D77FE5B4ECD691B9B8D7AA74D9B83EEEC566146E58AF109623ED90F41EE7932F72FF5846BDBA9F56C798EA68AD987208A5140B3B29F550C88779C987EF9CCEE70E13772039844E312AB17D3CA3362080C49C16FC0D21DB2D450CE674E108075005E85EFD631072966E0929EFDAEFBFDEC54C4ECC2F02F83FDBF206B3169D3A26BA4D556DD320B5DFCB799D2F4360ADC7943B0FE8DB6781D447CAC4D31AD4F08288B18D5FDE78CAE43E6A62D
-padding = AE24319859262BF27E60384F
-tmp_aes_key = 675641CF483005F1A58B6741C0D8550A8336A7072783138A41AD9980FC09FDE7
-tmp_aes_iv = 13465E12C0B0DC4CDA3685C09D2FDB128B40AAEA53CBDF1356F420FCA15BFB1E
+data = 54B64366D3C76CF77D76D63546A497C0423DFC7C509FE3CA6709F9B87301F345D643084B0000000000000000FE0001000101CD28945B9502B625E4B28EA75DE1E14906A131FBD5413560FE6EC87BEC6D633F1FF697108453542960A63EB30AE509DC57243D31585A7C17C5E399617701894EA6F8480A3102883D3CBA6C64B8C1A0278E70E3DB04B1F194B19115D3228C2EA6D913654E5E94B4238CF1E280D272920B001BC42DF938ADF07C190D6E8FECD564A28628F33F351245AB6A43F4A39CA1B47C1053C5D4A18B33B6EBC1E1698876A14E65C1963C277F4FCF8EEEA64A8BC97A725142EF37B8948B738494461443248699DC4F9FDFD0A8744D49AF7C42840DB9381F5D09DA3628EA002AEB7F32EBAF4FD275E7C6F8F99A37FA69FA321B30AF1AA988ABC5D9DFFCF97F221FD9172A
+padding = 53EE4FD5B53345A7C4414441
+tmp_aes_key = 3D27FBABF48F4AB792754710A5F63B0421105B1FCB1D6700FE2160586C3D6A5D
+tmp_aes_iv = 5E37276CE40077CFCD38F6235E1BB0D2CAB73E21A6E0BF08892BABEF26DAC484
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 = 9C62CA0C1111B634A8B405F217977B8AB414DBEF6A9C4C0CCAAE191FA11A08298465BE7CDF811B378EED574ED65E41A7C8FC50D1FC80A8AB5EF56E60A586AE048E4939E36D7826A6255D1D5D6B9AB5F6D1A237647DEF04C4A5FE39B948D61F01142087F30C3F08B516BE17A7BD0AA94252A0BDDE0D7DE30CAA4AB58C3BE89E996214D7E48BB30F9472E96B38C4D404B4F742EE74A23682B13B5FDA50D11929D506D208E525B86FD1FA768BDBB223FC5D27BC89F1E04326FD2E9F4DAA2F09E6A9EC91A7F57F5A3FA49311873C887716B8A625764A8671C05115A56EE368F904D36964D362F7B664F8BFA5CC51431AAF5173703555ED6B399E4FF3315FAB42B349073F604BE827B7088284CC347AAEE8A67AE688B7B33C2021899635DE1E6A41E588931A7ADF3FD5C990EA0D38DBCACB0F99F39372C7FB2B08CBDB690D5C6E008B48BD5B2101A92F8DDB32B5976B4BE82B
+encrypted_data = D87C822814EC5E1EB34E662573E9CD1D81E5610763754329FB82F1D3F26F190945E04FB3BE454EA6A7C45A68595D3368D0FE641D8F8EDA2B782745DAE87101473B4F17965547E0076AA6A8ACCFC9AB7989444DA3CE9864EDE9047B5A13C1DE5BC593B421494A2D286026C2E3E18197E31C2AE2DCC3D0AAA26501EDF471DF714EFB74E1484719CC4F2A41866755006A6CFEB75121ECD365129E5B5223C19A106059E064B6C8E0DF67EE9AB899F8FC91B743AD10E59763C2F2D3631EC8E330A3305B3339124B3393E99DEDC7ED864E953D706DBC4D8678145816E83EAFC5201872559C2FF7B873954DA23FFF48B91BD9ADA585C7546ABD5B2A9C64C3E415A763A5D632F0A2E20A01F0CEA280604BE1D03BF429463CE59ACE9D2F67F4823FFA5E581FB0C216D8CFABEE61ED86EF8920BA6B79ACDA6569EA73CDB07CB2F68B70E561CA641CC308239821350D567BF816C009
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 F8 78 08 00 AB A9 5F 65
-0010 | 78 01 00 00 1F 5F 04 F5 7A 44 83 F4 E1 2D 9C 01
-0020 | 2A 39 CC C1 09 20 BD C3 94 D9 D0 DA D2 40 80 02
-0030 | 4B 00 1A 91 59 09 1D E9 FE 50 01 00 9C 62 CA 0C
-0040 | 11 11 B6 34 A8 B4 05 F2 17 97 7B 8A B4 14 DB EF
-0050 | 6A 9C 4C 0C CA AE 19 1F A1 1A 08 29 84 65 BE 7C
-0060 | DF 81 1B 37 8E ED 57 4E D6 5E 41 A7 C8 FC 50 D1
-0070 | FC 80 A8 AB 5E F5 6E 60 A5 86 AE 04 8E 49 39 E3
-0080 | 6D 78 26 A6 25 5D 1D 5D 6B 9A B5 F6 D1 A2 37 64
-0090 | 7D EF 04 C4 A5 FE 39 B9 48 D6 1F 01 14 20 87 F3
-00A0 | 0C 3F 08 B5 16 BE 17 A7 BD 0A A9 42 52 A0 BD DE
-00B0 | 0D 7D E3 0C AA 4A B5 8C 3B E8 9E 99 62 14 D7 E4
-00C0 | 8B B3 0F 94 72 E9 6B 38 C4 D4 04 B4 F7 42 EE 74
-00D0 | A2 36 82 B1 3B 5F DA 50 D1 19 29 D5 06 D2 08 E5
-00E0 | 25 B8 6F D1 FA 76 8B DB B2 23 FC 5D 27 BC 89 F1
-00F0 | E0 43 26 FD 2E 9F 4D AA 2F 09 E6 A9 EC 91 A7 F5
-0100 | 7F 5A 3F A4 93 11 87 3C 88 77 16 B8 A6 25 76 4A
-0110 | 86 71 C0 51 15 A5 6E E3 68 F9 04 D3 69 64 D3 62
-0120 | F7 B6 64 F8 BF A5 CC 51 43 1A AF 51 73 70 35 55
-0130 | ED 6B 39 9E 4F F3 31 5F AB 42 B3 49 07 3F 60 4B
-0140 | E8 27 B7 08 82 84 CC 34 7A AE E8 A6 7A E6 88 B7
-0150 | B3 3C 20 21 89 96 35 DE 1E 6A 41 E5 88 93 1A 7A
-0160 | DF 3F D5 C9 90 EA 0D 38 DB CA CB 0F 99 F3 93 72
-0170 | C7 FB 2B 08 CB DB 69 0D 5C 6E 00 8B 48 BD 5B 21
-0180 | 01 A9 2F 8D DB 32 B5 97 6B 4B E8 2B
+0000 | 00 00 00 00 00 00 00 00 80 E5 01 00 55 B3 5F 65
+0010 | 78 01 00 00 1F 5F 04 F5 D3 C7 6C F7 7D 76 D6 35
+0020 | 46 A4 97 C0 42 3D FC 7C 50 9F E3 CA 67 09 F9 B8
+0030 | 73 01 F3 45 D6 43 08 4B FE 50 01 00 D8 7C 82 28
+0040 | 14 EC 5E 1E B3 4E 66 25 73 E9 CD 1D 81 E5 61 07
+0050 | 63 75 43 29 FB 82 F1 D3 F2 6F 19 09 45 E0 4F B3
+0060 | BE 45 4E A6 A7 C4 5A 68 59 5D 33 68 D0 FE 64 1D
+0070 | 8F 8E DA 2B 78 27 45 DA E8 71 01 47 3B 4F 17 96
+0080 | 55 47 E0 07 6A A6 A8 AC CF C9 AB 79 89 44 4D A3
+0090 | CE 98 64 ED E9 04 7B 5A 13 C1 DE 5B C5 93 B4 21
+00A0 | 49 4A 2D 28 60 26 C2 E3 E1 81 97 E3 1C 2A E2 DC
+00B0 | C3 D0 AA A2 65 01 ED F4 71 DF 71 4E FB 74 E1 48
+00C0 | 47 19 CC 4F 2A 41 86 67 55 00 6A 6C FE B7 51 21
+00D0 | EC D3 65 12 9E 5B 52 23 C1 9A 10 60 59 E0 64 B6
+00E0 | C8 E0 DF 67 EE 9A B8 99 F8 FC 91 B7 43 AD 10 E5
+00F0 | 97 63 C2 F2 D3 63 1E C8 E3 30 A3 30 5B 33 39 12
+0100 | 4B 33 93 E9 9D ED C7 ED 86 4E 95 3D 70 6D BC 4D
+0110 | 86 78 14 58 16 E8 3E AF C5 20 18 72 55 9C 2F F7
+0120 | B8 73 95 4D A2 3F FF 48 B9 1B D9 AD A5 85 C7 54
+0130 | 6A BD 5B 2A 9C 64 C3 E4 15 A7 63 A5 D6 32 F0 A2
+0140 | E2 0A 01 F0 CE A2 80 60 4B E1 D0 3B F4 29 46 3C
+0150 | E5 9A CE 9D 2F 67 F4 82 3F FA 5E 58 1F B0 C2 16
+0160 | D8 CF AB EE 61 ED 86 EF 89 20 BA 6B 79 AC DA 65
+0170 | 69 EA 73 CD B0 7C B2 F6 8B 70 E5 61 CA 64 1C C3
+0180 | 08 23 98 21 35 0D 56 7B F8 16 C0 09
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 |
-F8780800ABA95F65 |
+80E5010055B35F65 |
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 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE5001009C62CA0C1111B634A8B405F2 17977B8AB414DBEF6A9C4C0CCAAE191F A11A08298465BE7CDF811B378EED574E D65E41A7C8FC50D1FC80A8AB5EF56E60 A586AE048E4939E36D7826A6255D1D5D 6B9AB5F6D1A237647DEF04C4A5FE39B9 48D61F01142087F30C3F08B516BE17A7 BD0AA94252A0BDDE0D7DE30CAA4AB58C 3BE89E996214D7E48BB30F9472E96B38 C4D404B4F742EE74A23682B13B5FDA50 D11929D506D208E525B86FD1FA768BDB B223FC5D27BC89F1E04326FD2E9F4DAA 2F09E6A9EC91A7F57F5A3FA49311873C 887716B8A625764A8671C05115A56EE3 68F904D36964D362F7B664F8BFA5CC51 431AAF5173703555ED6B399E4FF3315F AB42B349073F604BE827B7088284CC34 7AAEE8A67AE688B7B33C2021899635DE 1E6A41E588931A7ADF3FD5C990EA0D38 DBCACB0F99F39372C7FB2B08CBDB690D 5C6E008B48BD5B2101A92F8DDB32B597 6B4BE82B |
+FE500100D87C822814EC5E1EB34E6625 73E9CD1D81E5610763754329FB82F1D3 F26F190945E04FB3BE454EA6A7C45A68 595D3368D0FE641D8F8EDA2B782745DA E87101473B4F17965547E0076AA6A8AC CFC9AB7989444DA3CE9864EDE9047B5A 13C1DE5BC593B421494A2D286026C2E3 E18197E31C2AE2DCC3D0AAA26501EDF4 71DF714EFB74E1484719CC4F2A418667 55006A6CFEB75121ECD365129E5B5223 C19A106059E064B6C8E0DF67EE9AB899 F8FC91B743AD10E59763C2F2D3631EC8 E330A3305B3339124B3393E99DEDC7ED 864E953D706DBC4D8678145816E83EAF C5201872559C2FF7B873954DA23FFF48 B91BD9ADA585C7546ABD5B2A9C64C3E4 15A763A5D632F0A2E20A01F0CEA28060 4BE1D03BF429463CE59ACE9D2F67F482 3FFA5E581FB0C216D8CFABEE61ED86EF 8920BA6B79ACDA6569EA73CDB07CB2F6 8B70E561CA641CC308239821350D567B F816C009 |
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 = 591926B9BE2F2FC2CAEF695B8EB04B6B19942248E324FAB986973ADC8DD156333B7D040871546D408791D4F6B9FB00D246FAC3780418CE8365F636707FE6D55EBC2B54455185F0FF6176CEED54C3CFBCA1F4FD55B247F27D0A393251000D51D9EAFBD47C016F973B79C776AE3A27242DE18C5676FE8B6298ED3D77DCE8FB483E5EA9DD2B1F7987F629B04065E4C47CD3621997D38202AC24430F2F2B90B68866AD10634136D6EA651A4269161D440DF0A2212A7853CB0EBC10258A93F8F4A3BC35805384DD41F44759892B22CB29C6ACE4EC39E331838757C7A4B69076F5745CBECB1F4042366DD8E56F7A6DDA38D482BAB8FF58F817B8274CDDBA493F91E232
+auth_key = 7CF9B59B3E589AD19732D8C6AC65E158087425B8292B8D9478CEE3A8DBEA0EEB7AAA241F99E0FF5B7AEE142B52C9884709FBCC7AC060DC5C9A650CEB1728884102B349E149425624A8FF289D891DAE6664661CF5CAE9598DD674533BB2FCD205EDF769CFBEA0718C47C7060D6E20BA996ED5A4157F0635EE0E75BD09C6D2393792E21DED2D3FC571F6E6CBE501DA25985185D58CE6BC67641A5771B6752F49BBCCDE3D50C39A292628A5D4FDFF95EF74343F7F00E78BD3DDC36F8F5650C27C2313F610D3F2667FF1471451159AC55D84B88C8BB571D1B9429F48448F551375E7BC8814DDEEE14A2C1CD10A8CEC3DB5CE854CEF9CAD8F25E0E0EC301146FE7915
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 98 7B 62 AB A9 5F 65
-0010 | 44 00 00 00 34 F7 CB 3B 7A 44 83 F4 E1 2D 9C 01
-0020 | 2A 39 CC C1 09 20 BD C3 94 D9 D0 DA D2 40 80 02
-0030 | 4B 00 1A 91 59 09 1D E9 B3 FD F0 C5 E2 04 74 DE
-0040 | 6A 15 7F C8 2E F9 58 9F
+0000 | 00 00 00 00 00 00 00 00 01 A0 54 0A 56 B3 5F 65
+0010 | 48 00 00 00 34 F7 CB 3B D3 C7 6C F7 7D 76 D6 35
+0020 | 46 A4 97 C0 42 3D FC 7C 50 9F E3 CA 67 09 F9 B8
+0030 | 73 01 F3 45 D6 43 08 4B 3C D0 2A AE BA DA C1 B2
+0040 | 14 02 56 C9 BF F8 13 05
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 |
-01987B62ABA95F65 |
+01A0540A56B35F65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-44000000 (68 in decimal) |
+48000000 (72 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 |
-7A4483F4E12D9C012A39CCC10920BDC3 |
+D3C76CF77D76D63546A497C0423DFC7C |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-94D9D0DAD24080024B001A9159091DE9 |
+509FE3CA6709F9B87301F345D643084B |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-B3FDF0C5E20474DE6A157FC82EF9589F |
+3CD02AAEBADAC1B2140256C9BFF81305 |
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. |