@@ -77,7 +77,7 @@
message_id |
8, 8 |
-AC0F0F00D5F78565 |
+6470030092048765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
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 E4 41 97 D5 F7 85 65
-0010 | 88 00 00 00 63 24 16 05 F8 65 53 B8 A2 25 70 92
-0020 | 30 49 7E FC 0B CD 9A BC 6F EE C6 AF 0E 0E AC F6
-0030 | AD DF BD 26 CA 9A FC C4 08 22 BB A4 9C C9 33 B3
-0040 | B5 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 1C E0 C7 92 04 87 65
+0010 | 90 00 00 00 63 24 16 05 CA 3C B3 BE 46 BF BE 4B
+0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
+0030 | C0 EB 3D B2 61 FA E6 C2 08 13 69 3B F7 41 04 85
+0040 | FB 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 |
-01E44197D5F78565 |
+011CE0C792048765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-88000000 (136 in decimal) |
+90000000 (144 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Server-generated random number |
pq |
56, 12 |
-0822BBA49CC933B3B5000000 TL byte deserialization => bigendian conversion to decimal => 2502775011231904693 |
+0813693BF7410485FB000000 TL byte deserialization => bigendian conversion to decimal => 1398715092409026043 |
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 = 2502775011231904693
-Decompose into 2 prime cofactors p < q
: 2502775011231904693 = 1293611899 * 1934718607
-p = 1293611899
-q = 1934718607
+pq = 1398715092409026043
+Decompose into 2 prime cofactors p < q
: 1398715092409026043 = 1115785997 * 1253569319
+p = 1115785997
+q = 1253569319
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 22 BB A4 9C C9 33 B3 B5 00 00 00
-0010 | 04 4D 1A F3 7B 00 00 00 04 73 51 76 8F 00 00 00
-0020 | F8 65 53 B8 A2 25 70 92 30 49 7E FC 0B CD 9A BC
-0030 | 6F EE C6 AF 0E 0E AC F6 AD DF BD 26 CA 9A FC C4
-0040 | B0 EF F8 70 F2 98 11 C6 EB 1F 02 70 EB 8C 1A 62
-0050 | 89 87 DF 50 A2 3F 0F 0F 01 FD 6B 73 5D 0E 71 84
+0000 | 95 5F F5 A9 08 13 69 3B F7 41 04 85 FB 00 00 00
+0010 | 04 42 81 8B 0D 00 00 00 04 4A B7 F3 27 00 00 00
+0020 | CA 3C B3 BE 46 BF BE 4B C4 8A 94 6A FB 97 21 54
+0030 | 51 13 E1 CE DD 81 B1 3A C0 EB 3D B2 61 FA E6 C2
+0040 | 8E B5 F8 40 10 A0 D7 CA B5 FD 63 EF 27 46 19 58
+0050 | B7 97 E6 38 3C 0C CA 82 19 50 73 B5 EC 0B 5D 54
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 = 1934718607
pq |
4, 12 |
-0822BBA49CC933B3B5000000 TL byte deserialization => bigendian conversion to decimal => 2502775011231904693 |
+0813693BF7410485FB000000 TL byte deserialization => bigendian conversion to decimal => 1398715092409026043 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-044D1AF37B000000 TL byte deserialization => bigendian conversion to decimal => 1293611899 |
+0442818B0D000000 TL byte deserialization => bigendian conversion to decimal => 1115785997 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-047351768F000000 TL byte deserialization => bigendian conversion to decimal => 1934718607 |
+044AB7F327000000 TL byte deserialization => bigendian conversion to decimal => 1253569319 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-B0EFF870F29811C6EB1F0270EB8C1A62 8987DF50A23F0F0F01FD6B735D0E7184 |
+8EB5F84010A0D7CAB5FD63EF27461958 B797E6383C0CCA82195073B5EC0B5D54 |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1934718607
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 = 955FF5A90822BBA49CC933B3B5000000044D1AF37B000000047351768F000000F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4B0EFF870F29811C6EB1F0270EB8C1A628987DF50A23F0F0F01FD6B735D0E718402000000
-random_padding_bytes = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E95188A9C77AA64AEF4E4F6DB16F0A93941719764414939DF702C40E3B509045F4ED647CD7AE1CA8B1FB98994A296ACDDCF5FE4011832681F459F57A5290D8CF702
+data = 955FF5A90813693BF7410485FB0000000442818B0D000000044AB7F327000000CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C28EB5F84010A0D7CAB5FD63EF27461958B797E6383C0CCA82195073B5EC0B5D5402000000
+random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E37841DFA26B084E8560E412483E60C49EB345A5D73011785D1C67A25B3DBD1AEE5F8AFADC8BA6C1F2AE2E60313F097F5C439CBC0FDF2157746435C97462C312
And this is the output:
-encrypted_data = A042D464B3FA02364F92263167DDD5160D4C346A3910BC4B17268699BECDD6EBB6056A1F1D0E747FDEB2BE1012280A5374A3E44F10F82AA6138DAF6AB9E4517BF11B83E71BFBAD0FCFBDE44DA0D7AA0D2B0464F6479EAB10C11656B8A40AC2AEF6344F11A7A6DB56319AB33EE6D63C105893189DB643F89C49A2D596BD7AF67BF6C577D1DE1CF3128EA698D324968D0C355020004AC840B08982918002E3A7482606A809D69CA5982106ED1B4AD0F190A599C4BC383BB5ED173A6EF45EEFB17C53F442D2AFF470458539DC0A7199EC50001B7186AB0612A98534BC55E0414E05162757A8FFCCDAA966DAB94F6CF42E61EBA79A952983197065B4F13600DE233E
+encrypted_data = 79DD77DB50E0ED4052964B50F551D069639EA1C25B28728D03CE8C723DAC707D6C377DE081CFA27CD75AEC34E90959F498CC061AA5BBD75E516344F1919EA60F2AA9C13827B4A5B27DED555815509D13CAF75DE3BC225A9913FEE0A2ED070348ADCE86AE87B5C4A87144AE76F16389436AE95E96FF14BB36534ED4B5BE7C7B9F7C32847C9282C0BC56669EE02F6EB7B385BD3DF6C7EF1F727A0308C3F57E2566512EB7D7C7A8C0B5EF64E26CAF6BF216500A3842463184071C40425A2EB35440FD4DD789FA08050788C53C9D63F037D980E70A8C05E2FD2DD39C6F2DBAED1B65D7496E850A7851A9B4A056C4091915DBDBD8858C12CA55836312867BAB67A4F7
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 B0 0F 0F 00 D5 F7 85 65
-0010 | 40 01 00 00 BE E4 12 D7 F8 65 53 B8 A2 25 70 92
-0020 | 30 49 7E FC 0B CD 9A BC 6F EE C6 AF 0E 0E AC F6
-0030 | AD DF BD 26 CA 9A FC C4 04 4D 1A F3 7B 00 00 00
-0040 | 04 73 51 76 8F 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 A0 42 D4 64 B3 FA 02 36 4F 92 26 31
-0060 | 67 DD D5 16 0D 4C 34 6A 39 10 BC 4B 17 26 86 99
-0070 | BE CD D6 EB B6 05 6A 1F 1D 0E 74 7F DE B2 BE 10
-0080 | 12 28 0A 53 74 A3 E4 4F 10 F8 2A A6 13 8D AF 6A
-0090 | B9 E4 51 7B F1 1B 83 E7 1B FB AD 0F CF BD E4 4D
-00A0 | A0 D7 AA 0D 2B 04 64 F6 47 9E AB 10 C1 16 56 B8
-00B0 | A4 0A C2 AE F6 34 4F 11 A7 A6 DB 56 31 9A B3 3E
-00C0 | E6 D6 3C 10 58 93 18 9D B6 43 F8 9C 49 A2 D5 96
-00D0 | BD 7A F6 7B F6 C5 77 D1 DE 1C F3 12 8E A6 98 D3
-00E0 | 24 96 8D 0C 35 50 20 00 4A C8 40 B0 89 82 91 80
-00F0 | 02 E3 A7 48 26 06 A8 09 D6 9C A5 98 21 06 ED 1B
-0100 | 4A D0 F1 90 A5 99 C4 BC 38 3B B5 ED 17 3A 6E F4
-0110 | 5E EF B1 7C 53 F4 42 D2 AF F4 70 45 85 39 DC 0A
-0120 | 71 99 EC 50 00 1B 71 86 AB 06 12 A9 85 34 BC 55
-0130 | E0 41 4E 05 16 27 57 A8 FF CC DA A9 66 DA B9 4F
-0140 | 6C F4 2E 61 EB A7 9A 95 29 83 19 70 65 B4 F1 36
-0150 | 00 DE 23 3E
+0000 | 00 00 00 00 00 00 00 00 8C DE 09 00 92 04 87 65
+0010 | 40 01 00 00 BE E4 12 D7 CA 3C B3 BE 46 BF BE 4B
+0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
+0030 | C0 EB 3D B2 61 FA E6 C2 04 42 81 8B 0D 00 00 00
+0040 | 04 4A B7 F3 27 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 79 DD 77 DB 50 E0 ED 40 52 96 4B 50
+0060 | F5 51 D0 69 63 9E A1 C2 5B 28 72 8D 03 CE 8C 72
+0070 | 3D AC 70 7D 6C 37 7D E0 81 CF A2 7C D7 5A EC 34
+0080 | E9 09 59 F4 98 CC 06 1A A5 BB D7 5E 51 63 44 F1
+0090 | 91 9E A6 0F 2A A9 C1 38 27 B4 A5 B2 7D ED 55 58
+00A0 | 15 50 9D 13 CA F7 5D E3 BC 22 5A 99 13 FE E0 A2
+00B0 | ED 07 03 48 AD CE 86 AE 87 B5 C4 A8 71 44 AE 76
+00C0 | F1 63 89 43 6A E9 5E 96 FF 14 BB 36 53 4E D4 B5
+00D0 | BE 7C 7B 9F 7C 32 84 7C 92 82 C0 BC 56 66 9E E0
+00E0 | 2F 6E B7 B3 85 BD 3D F6 C7 EF 1F 72 7A 03 08 C3
+00F0 | F5 7E 25 66 51 2E B7 D7 C7 A8 C0 B5 EF 64 E2 6C
+0100 | AF 6B F2 16 50 0A 38 42 46 31 84 07 1C 40 42 5A
+0110 | 2E B3 54 40 FD 4D D7 89 FA 08 05 07 88 C5 3C 9D
+0120 | 63 F0 37 D9 80 E7 0A 8C 05 E2 FD 2D D3 9C 6F 2D
+0130 | BA ED 1B 65 D7 49 6E 85 0A 78 51 A9 B4 A0 56 C4
+0140 | 09 19 15 DB DB D8 85 8C 12 CA 55 83 63 12 86 7B
+0150 | AB 67 A4 F7
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 = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E951
message_id |
8, 8 |
-B00F0F00D5F78565 |
+8CDE090092048765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E951
nonce |
24, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Value received from server in Step 2 |
p |
56, 8 |
-044D1AF37B000000 TL byte deserialization => bigendian conversion to decimal => 1293611899 |
+0442818B0D000000 TL byte deserialization => bigendian conversion to decimal => 1115785997 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-047351768F000000 TL byte deserialization => bigendian conversion to decimal => 1934718607 |
+044AB7F327000000 TL byte deserialization => bigendian conversion to decimal => 1253569319 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E951
encrypted_data |
80, 260 |
-FE000100A042D464B3FA02364F922631 67DDD5160D4C346A3910BC4B17268699 BECDD6EBB6056A1F1D0E747FDEB2BE10 12280A5374A3E44F10F82AA6138DAF6A B9E4517BF11B83E71BFBAD0FCFBDE44D A0D7AA0D2B0464F6479EAB10C11656B8 A40AC2AEF6344F11A7A6DB56319AB33E E6D63C105893189DB643F89C49A2D596 BD7AF67BF6C577D1DE1CF3128EA698D3 24968D0C355020004AC840B089829180 02E3A7482606A809D69CA5982106ED1B 4AD0F190A599C4BC383BB5ED173A6EF4 5EEFB17C53F442D2AFF470458539DC0A 7199EC50001B7186AB0612A98534BC55 E0414E05162757A8FFCCDAA966DAB94F 6CF42E61EBA79A952983197065B4F136 00DE233E |
+FE00010079DD77DB50E0ED4052964B50 F551D069639EA1C25B28728D03CE8C72 3DAC707D6C377DE081CFA27CD75AEC34 E90959F498CC061AA5BBD75E516344F1 919EA60F2AA9C13827B4A5B27DED5558 15509D13CAF75DE3BC225A9913FEE0A2 ED070348ADCE86AE87B5C4A87144AE76 F16389436AE95E96FF14BB36534ED4B5 BE7C7B9F7C32847C9282C0BC56669EE0 2F6EB7B385BD3DF6C7EF1F727A0308C3 F57E2566512EB7D7C7A8C0B5EF64E26C AF6BF216500A3842463184071C40425A 2EB35440FD4DD789FA08050788C53C9D 63F037D980E70A8C05E2FD2DD39C6F2D BAED1B65D7496E850A7851A9B4A056C4 091915DBDBD8858C12CA55836312867B AB67A4F7 |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E951
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 B8 EC 57 D6 F7 85 65
-0010 | 78 02 00 00 5C 07 E8 D0 F8 65 53 B8 A2 25 70 92
-0020 | 30 49 7E FC 0B CD 9A BC 6F EE C6 AF 0E 0E AC F6
-0030 | AD DF BD 26 CA 9A FC C4 FE 50 02 00 5A 3F 28 85
-0040 | 1C 30 5E 8D 8A BF D2 FF 4C 9E 77 E7 FA 2F 20 3C
-0050 | F4 A9 6C CC 76 BE 66 84 FC 98 FE 9A 2B B7 7D 06
-0060 | 23 F8 CD 76 CF 2A 7B 27 59 F3 69 C6 FB EE 8B AF
-0070 | E9 FC 32 0C 2B D3 84 84 E6 7E C8 24 01 88 16 6A
-0080 | 23 58 F6 20 06 1A AD B1 91 33 71 40 BC C3 59 D6
-0090 | C0 85 DA 74 57 6A A7 DC D9 24 A5 22 AB A7 44 7C
-00A0 | 50 4D 19 95 38 73 84 F7 59 9B 11 71 16 1E A5 6B
-00B0 | C5 9A 51 DB 50 4F 20 F4 0F 62 0C 70 D9 4A A6 4E
-00C0 | B4 6D 41 99 0F BE E4 35 23 41 66 0C E7 E2 59 FD
-00D0 | 25 75 18 9C 56 DC 6A F0 FC 89 64 4B 45 19 B9 1C
-00E0 | 27 0C 98 D6 DF 1D FD F9 1B D2 B5 CF 07 76 F8 94
-00F0 | 95 B3 75 97 86 D0 24 2E 7B D7 79 01 41 BF 7D FD
-0100 | 92 CA F7 85 80 BD DE 6C 4F 5B 12 A5 04 FF 3B 02
-0110 | 5F 9F 84 40 7F D0 28 C8 6A 85 DF F6 17 0B 39 7D
-0120 | E7 3F 0E 68 78 8A 20 C9 E3 57 84 A2 93 D6 B0 E7
-0130 | DA 0E B1 9F 5C FB 85 23 13 E6 BC D1 EF 4C 3D C9
-0140 | 3A D3 1A 85 AA 70 26 19 7D 07 94 DB A7 C8 A2 02
-0150 | EC 6F C3 39 E3 0F 8B AD 95 56 86 43 82 B7 0D 52
-0160 | 21 CB 18 36 DB FD 14 04 5C 5E 08 5A 48 FE 13 BD
-0170 | 06 25 B9 96 14 F1 3A 16 7D 11 86 25 7C 16 1D A5
-0180 | 71 06 CA A8 F6 57 A0 A9 0F 9C 55 E1 F7 FA E5 15
-0190 | 78 32 BB 9E 40 8F B1 C0 E0 C8 13 22 F7 C8 DB 7E
-01A0 | FB 1B 07 21 66 42 8E B4 69 63 4A 91 C6 AD 82 9B
-01B0 | 3F 65 4C A6 46 F7 EF 22 AC 01 18 48 80 3A AD 64
-01C0 | FE F7 C0 73 72 4F 03 E9 9F B6 D9 A1 78 09 16 B8
-01D0 | 6B 1E 7C 0B 33 38 52 B7 0B 8B 42 40 C0 B7 D0 87
-01E0 | 2E B1 2F BF 51 A9 FD F6 83 F9 B5 E0 43 94 5A 49
-01F0 | 83 4F 4E E7 80 DC B4 C7 94 AD D9 38 C7 9D 10 9E
-0200 | A6 1B BA FE 3A 02 AE 7F BC 3C 74 0E 04 CD A7 72
-0210 | B0 71 8A 37 36 A9 5A 4E C0 8F 42 69 72 B1 58 A6
-0220 | 8D AC FD 4C BC 24 E3 E1 B8 09 FD 83 59 6C A0 AF
-0230 | 28 EF 10 90 A2 35 DC 9F F4 3B BA CA BC DC 0E AC
-0240 | 22 08 33 C6 40 74 79 66 96 72 19 5A 76 F4 3A 22
-0250 | BE 32 AE 4A FC 28 CC AB 1A EC 79 AE 24 D2 A2 18
-0260 | 57 F9 F4 40 C1 8E E3 8C CA 69 0A 7C 94 40 70 66
-0270 | E3 C7 39 77 FE EC 7D C9 3D 39 C6 5B 68 D6 8C D4
-0280 | D5 13 80 0A 08 DF 2C 4B 63 6C 79 6C
+0000 | 00 00 00 00 00 00 00 00 01 F4 CC 88 93 04 87 65
+0010 | D0 02 00 00 5C 07 E8 D0 CA 3C B3 BE 46 BF BE 4B
+0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
+0030 | C0 EB 3D B2 61 FA E6 C2 FE 50 02 00 43 3C C8 EE
+0040 | C7 42 7A 92 B1 A1 69 07 07 75 A0 9A 7D F0 45 CC
+0050 | 85 1C E6 F3 4D 34 4F E7 EE 5B B7 F6 E3 4D 8E 48
+0060 | A4 34 21 5B 46 5D C2 E2 18 D5 EF 09 6F 24 A4 7C
+0070 | 3A 00 A1 BD 1A 90 4E CC 20 80 8A 2C 6E C4 52 BB
+0080 | 1F EC E6 98 6A 15 5A DA 13 29 33 72 9F 55 74 7F
+0090 | 97 5B 2A 27 5B EC 43 82 F3 FE DC AC 18 F6 15 9C
+00A0 | AD 4F 4D F5 EC D5 3B B8 F7 B5 19 DD 46 03 55 32
+00B0 | 78 ED 44 08 BD EA 2E 11 89 4F 73 2F 0C 19 BB F3
+00C0 | 85 E6 82 19 21 41 92 98 86 6D C1 37 01 42 2E 62
+00D0 | D1 53 0E 66 AB 06 84 08 DC 0C BA 66 E7 BB B3 42
+00E0 | 2C CA A0 EB 4B 80 DE EF B3 41 54 F2 D3 A4 FF 64
+00F0 | 77 18 CA D6 86 46 59 F3 C8 97 42 27 3B 6E 3B 8A
+0100 | B5 ED 26 89 3F CE EA 2B 0A DD 3E 9D 2F C3 31 31
+0110 | 31 35 02 50 8E 3B 4A 5A 9D B4 C4 47 16 6B FB 59
+0120 | 45 E0 DB 2A D7 5D AD A8 BF 30 CE CA A5 F8 F1 55
+0130 | E6 A6 B2 2E C3 0B 71 4F 91 26 79 45 A6 6F A1 A8
+0140 | EE 33 57 33 AD C5 C4 42 A6 BD 59 3A 74 DD DB 46
+0150 | D7 33 27 9E 07 79 23 FF A1 3D B8 B3 B5 72 DF D1
+0160 | C1 2B B6 AF FB F1 B5 F6 79 C2 C3 49 80 E4 FD F8
+0170 | 6B EF F6 3F 79 4F 73 E5 2A DD E3 57 66 DC AB 85
+0180 | BB 4D BB 44 11 73 BE 06 F6 3C 4B BB 06 E4 10 EC
+0190 | 01 9C 11 2A 83 45 F9 CB 04 94 36 B9 CF B2 DF E3
+01A0 | 8C CD F5 70 05 5E EF 61 F4 F6 0A 22 16 4C F9 F2
+01B0 | CD A7 57 83 53 CF 20 0A 3A AD AE 5E 35 E3 0B 29
+01C0 | 2F E5 50 65 75 37 51 86 42 79 C0 6F 0F 2D 35 4E
+01D0 | 0F 78 6C 9F C0 80 67 23 5F C8 CA F3 A7 45 D0 7A
+01E0 | D8 AC 02 92 7C 12 71 79 1D 3E 53 13 C9 10 30 44
+01F0 | 28 43 43 9F 54 36 74 90 54 F0 9A E9 65 D3 40 EE
+0200 | EB B6 35 5B B5 C2 73 B4 65 A4 F9 16 66 E0 C0 04
+0210 | 3E ED A1 CA 20 58 F7 6B 88 BD C9 32 94 CC 37 0C
+0220 | 8C 6B F6 1A 85 FF A4 60 23 DB 16 DA CF 92 3B B1
+0230 | 25 DB A5 90 AD 80 8B D9 9C 40 4C 1B B6 59 71 B0
+0240 | F1 40 30 E6 1D A5 DC 12 90 A8 61 8C 84 EC 67 F0
+0250 | 83 76 12 B5 61 66 10 85 21 0F 90 78 A7 BB EB 4C
+0260 | 14 EE 10 AC 6A 02 C5 9D AB 2F 12 48 FA 9E F0 5C
+0270 | DD 37 C7 2C 40 7E A4 76 5A 8F EB 06 FB BD 48 D1
+0280 | 32 B4 2B 0D E4 DB E0 71 8A 8A CA 2A
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 = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E951
message_id |
8, 8 |
-01B8EC57D6F78565 |
+01F4CC8893048765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-78020000 (632 in decimal) |
+D0020000 (720 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E951
nonce |
24, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-FE5002005A3F28851C305E8D8ABFD2FF 4C9E77E7FA2F203CF4A96CCC76BE6684 FC98FE9A2BB77D0623F8CD76CF2A7B27 59F369C6FBEE8BAFE9FC320C2BD38484 E67EC8240188166A2358F620061AADB1 91337140BCC359D6C085DA74576AA7DC D924A522ABA7447C504D1995387384F7 599B1171161EA56BC59A51DB504F20F4 0F620C70D94AA64EB46D41990FBEE435 2341660CE7E259FD2575189C56DC6AF0 FC89644B4519B91C270C98D6DF1DFDF9 1BD2B5CF0776F89495B3759786D0242E 7BD7790141BF7DFD92CAF78580BDDE6C 4F5B12A504FF3B025F9F84407FD028C8 6A85DFF6170B397DE73F0E68788A20C9 E35784A293D6B0E7DA0EB19F5CFB8523 13E6BCD1EF4C3DC93AD31A85AA702619 7D0794DBA7C8A202EC6FC339E30F8BAD 9556864382B70D5221CB1836DBFD1404 5C5E085A48FE13BD0625B99614F13A16 7D1186257C161DA57106CAA8F657A0A9 0F9C55E1F7FAE5157832BB9E408FB1C0 E0C81322F7C8DB7EFB1B072166428EB4 69634A91C6AD829B3F654CA646F7EF22 AC011848803AAD64FEF7C073724F03E9 9FB6D9A1780916B86B1E7C0B333852B7 0B8B4240C0B7D0872EB12FBF51A9FDF6 83F9B5E043945A49834F4EE780DCB4C7 94ADD938C79D109EA61BBAFE3A02AE7F BC3C740E04CDA772B0718A3736A95A4E C08F426972B158A68DACFD4CBC24E3E1 B809FD83596CA0AF28EF1090A235DC9F F43BBACABCDC0EAC220833C640747966 9672195A76F43A22BE32AE4AFC28CCAB 1AEC79AE24D2A21857F9F440C18EE38C CA690A7C94407066E3C73977FEEC7DC9 3D39C65B68D68CD4D513800A08DF2C4B 636C796C |
+FE500200433CC8EEC7427A92B1A16907 0775A09A7DF045CC851CE6F34D344FE7 EE5BB7F6E34D8E48A434215B465DC2E2 18D5EF096F24A47C3A00A1BD1A904ECC 20808A2C6EC452BB1FECE6986A155ADA 132933729F55747F975B2A275BEC4382 F3FEDCAC18F6159CAD4F4DF5ECD53BB8 F7B519DD4603553278ED4408BDEA2E11 894F732F0C19BBF385E6821921419298 866DC13701422E62D1530E66AB068408 DC0CBA66E7BBB3422CCAA0EB4B80DEEF B34154F2D3A4FF647718CAD6864659F3 C89742273B6E3B8AB5ED26893FCEEA2B 0ADD3E9D2FC33131313502508E3B4A5A 9DB4C447166BFB5945E0DB2AD75DADA8 BF30CECAA5F8F155E6A6B22EC30B714F 91267945A66FA1A8EE335733ADC5C442 A6BD593A74DDDB46D733279E077923FF A13DB8B3B572DFD1C12BB6AFFBF1B5F6 79C2C34980E4FDF86BEFF63F794F73E5 2ADDE35766DCAB85BB4DBB441173BE06 F63C4BBB06E410EC019C112A8345F9CB 049436B9CFB2DFE38CCDF570055EEF61 F4F60A22164CF9F2CDA7578353CF200A 3AADAE5E35E30B292FE5506575375186 4279C06F0F2D354E0F786C9FC0806723 5FC8CAF3A745D07AD8AC02927C127179 1D3E5313C91030442843439F54367490 54F09AE965D340EEEBB6355BB5C273B4 65A4F91666E0C0043EEDA1CA2058F76B 88BDC93294CC370C8C6BF61A85FFA460 23DB16DACF923BB125DBA590AD808BD9 9C404C1BB65971B0F14030E61DA5DC12 90A8618C84EC67F0837612B561661085 210F9078A7BBEB4C14EE10AC6A02C59D AB2F1248FA9EF05CDD37C72C407EA476 5A8FEB06FBBD48D132B42B0DE4DBE071 8A8ACA2A |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = 57C530F3CB6A2A9A32BAB2A7B71E9E523B95ADD2A0EC7A5BB1072E951
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = 5A3F28851C305E8D8ABFD2FF4C9E77E7FA2F203CF4A96CCC76BE6684FC98FE9A2BB77D0623F8CD76CF2A7B2759F369C6FBEE8BAFE9FC320C2BD38484E67EC8240188166A2358F620061AADB191337140BCC359D6C085DA74576AA7DCD924A522ABA7447C504D1995387384F7599B1171161EA56BC59A51DB504F20F40F620C70D94AA64EB46D41990FBEE4352341660CE7E259FD2575189C56DC6AF0FC89644B4519B91C270C98D6DF1DFDF91BD2B5CF0776F89495B3759786D0242E7BD7790141BF7DFD92CAF78580BDDE6C4F5B12A504FF3B025F9F84407FD028C86A85DFF6170B397DE73F0E68788A20C9E35784A293D6B0E7DA0EB19F5CFB852313E6BCD1EF4C3DC93AD31A85AA7026197D0794DBA7C8A202EC6FC339E30F8BAD9556864382B70D5221CB1836DBFD14045C5E085A48FE13BD0625B99614F13A167D1186257C161DA57106CAA8F657A0A90F9C55E1F7FAE5157832BB9E408FB1C0E0C81322F7C8DB7EFB1B072166428EB469634A91C6AD829B3F654CA646F7EF22AC011848803AAD64FEF7C073724F03E99FB6D9A1780916B86B1E7C0B333852B70B8B4240C0B7D0872EB12FBF51A9FDF683F9B5E043945A49834F4EE780DCB4C794ADD938C79D109EA61BBAFE3A02AE7FBC3C740E04CDA772B0718A3736A95A4EC08F426972B158A68DACFD4CBC24E3E1B809FD83596CA0AF28EF1090A235DC9FF43BBACABCDC0EAC220833C6407479669672195A76F43A22BE32AE4AFC28CCAB1AEC79AE24D2A21857F9F440C18EE38CCA690A7C94407066E3C73977FEEC7DC93D39C65B68D68CD4D513800A08DF2C4B636C796C
-tmp_aes_key = 45C7AB984F1592CDDE5AF264AFE1C4870D8A34060F9EB956FC7EEDFC8B0E62D3
-tmp_aes_iv = D5BC4AF3EEED52FCD483055306E48EFDA96ABCD7B863C04EC5A6BDB6B0EFF870
+encrypted_answer = 433CC8EEC7427A92B1A169070775A09A7DF045CC851CE6F34D344FE7EE5BB7F6E34D8E48A434215B465DC2E218D5EF096F24A47C3A00A1BD1A904ECC20808A2C6EC452BB1FECE6986A155ADA132933729F55747F975B2A275BEC4382F3FEDCAC18F6159CAD4F4DF5ECD53BB8F7B519DD4603553278ED4408BDEA2E11894F732F0C19BBF385E6821921419298866DC13701422E62D1530E66AB068408DC0CBA66E7BBB3422CCAA0EB4B80DEEFB34154F2D3A4FF647718CAD6864659F3C89742273B6E3B8AB5ED26893FCEEA2B0ADD3E9D2FC33131313502508E3B4A5A9DB4C447166BFB5945E0DB2AD75DADA8BF30CECAA5F8F155E6A6B22EC30B714F91267945A66FA1A8EE335733ADC5C442A6BD593A74DDDB46D733279E077923FFA13DB8B3B572DFD1C12BB6AFFBF1B5F679C2C34980E4FDF86BEFF63F794F73E52ADDE35766DCAB85BB4DBB441173BE06F63C4BBB06E410EC019C112A8345F9CB049436B9CFB2DFE38CCDF570055EEF61F4F60A22164CF9F2CDA7578353CF200A3AADAE5E35E30B292FE55065753751864279C06F0F2D354E0F786C9FC08067235FC8CAF3A745D07AD8AC02927C1271791D3E5313C91030442843439F5436749054F09AE965D340EEEBB6355BB5C273B465A4F91666E0C0043EEDA1CA2058F76B88BDC93294CC370C8C6BF61A85FFA46023DB16DACF923BB125DBA590AD808BD99C404C1BB65971B0F14030E61DA5DC1290A8618C84EC67F0837612B561661085210F9078A7BBEB4C14EE10AC6A02C59DAB2F1248FA9EF05CDD37C72C407EA4765A8FEB06FBBD48D132B42B0DE4DBE0718A8ACA2A
+tmp_aes_key = B737C0FF1F5F66D10FC79BF85AF196E6CE551ED1F7C95F0820904BDD78399F05
+tmp_aes_iv = 9D521F3A9D1F9F59A7E832D00746A6DB30271078B445C4ACE53CD8F18EB5F840
Yielding:
-answer_with_hash = AA4A7B99B43F4855C91740A36D93C7ED49851BD9BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100608BF52BD3E21BFC441F4749A732F5A86A38F62EBFE2E3505F5AE976B2707D4D4662D94A924892F1C267BCC62E2A6989480DA740E2C2152FB8F4D87D157CFA24D8F810081AD3907B4E7A4B012DC8766A8AB93CA5160E3D9DCF5420C5060630890994D7FC3CA1102BD08BCAF5B43A014BC0E2828DF9EDCC655F133E26BA75DB899BE10DA6CBDAA82D7BADB1193F396EECEABDE3EE4D4AC4AE9186BAB67C687850FF21C6C221555D1696E552D1826E4DF2EC26E5D7F6974B4FD7DE975455D28101E52A346D18FFEED518353FAE35B2F76B5ECD6530A23F8D275748DA7F7A4BE45B22328167FDF960B94BFF35E6721E9E9F87D87DFEDF83D68EDA070986638DF6A1D6F78565A4D74B8AF1D895E3
-answer = BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100608BF52BD3E21BFC441F4749A732F5A86A38F62EBFE2E3505F5AE976B2707D4D4662D94A924892F1C267BCC62E2A6989480DA740E2C2152FB8F4D87D157CFA24D8F810081AD3907B4E7A4B012DC8766A8AB93CA5160E3D9DCF5420C5060630890994D7FC3CA1102BD08BCAF5B43A014BC0E2828DF9EDCC655F133E26BA75DB899BE10DA6CBDAA82D7BADB1193F396EECEABDE3EE4D4AC4AE9186BAB67C687850FF21C6C221555D1696E552D1826E4DF2EC26E5D7F6974B4FD7DE975455D28101E52A346D18FFEED518353FAE35B2F76B5ECD6530A23F8D275748DA7F7A4BE45B22328167FDF960B94BFF35E6721E9E9F87D87DFEDF83D68EDA070986638DF6A1D6F78565A4D74B8AF1D895E3
+answer_with_hash = EB2CF1723BEA9B28122FFCFCDF9811145C88DBC4BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010023DC8DF513A8FC95CAD3AEB05CD826F0883079AFB9E8B38FDE01D82732504F539EB893573D5F24E679C528983A14ECD297AF40336A847A1CECA677B02668094D9945E3D4958EDFB92BA516460825E855781E82DF13C39D2326EC81F5FD907D320B532ECAB643F7061E7A7D9BFCB3A8CB527B907F6CCDEDB5F4682DB7248F0074A4B815A5814B53D7A6A62DB0B4164B068AF9810AE3DF64100BCE4EA19FEDB456EE968FDC7C5ACE5C5906A268C03D2C83FF2BD2F2C48B2886FE4727D8BEBCDDAE4899EB491CB5F1C178901956276540DDCB72E48C3F9B56D84AA24FDFF4A24F6D026228FA18792D1F333D9B188CCF9E921CEC8ECAB9F464A7BCB035430549F7DF930487653CB8702FC7B8DB1D
+answer = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010023DC8DF513A8FC95CAD3AEB05CD826F0883079AFB9E8B38FDE01D82732504F539EB893573D5F24E679C528983A14ECD297AF40336A847A1CECA677B02668094D9945E3D4958EDFB92BA516460825E855781E82DF13C39D2326EC81F5FD907D320B532ECAB643F7061E7A7D9BFCB3A8CB527B907F6CCDEDB5F4682DB7248F0074A4B815A5814B53D7A6A62DB0B4164B068AF9810AE3DF64100BCE4EA19FEDB456EE968FDC7C5ACE5C5906A268C03D2C83FF2BD2F2C48B2886FE4727D8BEBCDDAE4899EB491CB5F1C178901956276540DDCB72E48C3F9B56D84AA24FDFF4A24F6D026228FA18792D1F333D9B188CCF9E921CEC8ECAB9F464A7BCB035430549F7DF930487653CB8702FC7B8DB1D
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 F8 65 53 B8 A2 25 70 92 30 49 7E FC
-0010 | 0B CD 9A BC 6F EE C6 AF 0E 0E AC F6 AD DF BD 26
-0020 | CA 9A FC C4 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 CA 3C B3 BE 46 BF BE 4B C4 8A 94 6A
+0010 | FB 97 21 54 51 13 E1 CE DD 81 B1 3A C0 EB 3D B2
+0020 | 61 FA E6 C2 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 = BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC
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 | 60 8B F5 2B D3 E2 1B FC 44 1F 47 49 A7 32 F5 A8
-0140 | 6A 38 F6 2E BF E2 E3 50 5F 5A E9 76 B2 70 7D 4D
-0150 | 46 62 D9 4A 92 48 92 F1 C2 67 BC C6 2E 2A 69 89
-0160 | 48 0D A7 40 E2 C2 15 2F B8 F4 D8 7D 15 7C FA 24
-0170 | D8 F8 10 08 1A D3 90 7B 4E 7A 4B 01 2D C8 76 6A
-0180 | 8A B9 3C A5 16 0E 3D 9D CF 54 20 C5 06 06 30 89
-0190 | 09 94 D7 FC 3C A1 10 2B D0 8B CA F5 B4 3A 01 4B
-01A0 | C0 E2 82 8D F9 ED CC 65 5F 13 3E 26 BA 75 DB 89
-01B0 | 9B E1 0D A6 CB DA A8 2D 7B AD B1 19 3F 39 6E EC
-01C0 | EA BD E3 EE 4D 4A C4 AE 91 86 BA B6 7C 68 78 50
-01D0 | FF 21 C6 C2 21 55 5D 16 96 E5 52 D1 82 6E 4D F2
-01E0 | EC 26 E5 D7 F6 97 4B 4F D7 DE 97 54 55 D2 81 01
-01F0 | E5 2A 34 6D 18 FF EE D5 18 35 3F AE 35 B2 F7 6B
-0200 | 5E CD 65 30 A2 3F 8D 27 57 48 DA 7F 7A 4B E4 5B
-0210 | 22 32 81 67 FD F9 60 B9 4B FF 35 E6 72 1E 9E 9F
-0220 | 87 D8 7D FE DF 83 D6 8E DA 07 09 86 63 8D F6 A1
-0230 | D6 F7 85 65
+0130 | 23 DC 8D F5 13 A8 FC 95 CA D3 AE B0 5C D8 26 F0
+0140 | 88 30 79 AF B9 E8 B3 8F DE 01 D8 27 32 50 4F 53
+0150 | 9E B8 93 57 3D 5F 24 E6 79 C5 28 98 3A 14 EC D2
+0160 | 97 AF 40 33 6A 84 7A 1C EC A6 77 B0 26 68 09 4D
+0170 | 99 45 E3 D4 95 8E DF B9 2B A5 16 46 08 25 E8 55
+0180 | 78 1E 82 DF 13 C3 9D 23 26 EC 81 F5 FD 90 7D 32
+0190 | 0B 53 2E CA B6 43 F7 06 1E 7A 7D 9B FC B3 A8 CB
+01A0 | 52 7B 90 7F 6C CD ED B5 F4 68 2D B7 24 8F 00 74
+01B0 | A4 B8 15 A5 81 4B 53 D7 A6 A6 2D B0 B4 16 4B 06
+01C0 | 8A F9 81 0A E3 DF 64 10 0B CE 4E A1 9F ED B4 56
+01D0 | EE 96 8F DC 7C 5A CE 5C 59 06 A2 68 C0 3D 2C 83
+01E0 | FF 2B D2 F2 C4 8B 28 86 FE 47 27 D8 BE BC DD AE
+01F0 | 48 99 EB 49 1C B5 F1 C1 78 90 19 56 27 65 40 DD
+0200 | CB 72 E4 8C 3F 9B 56 D8 4A A2 4F DF F4 A2 4F 6D
+0210 | 02 62 28 FA 18 79 2D 1F 33 3D 9B 18 8C CF 9E 92
+0220 | 1C EC 8E CA B9 F4 64 A7 BC B0 35 43 05 49 F7 DF
+0230 | 93 04 87 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 = BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC
nonce |
4, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC
g_a |
300, 260 |
-FE000100608BF52BD3E21BFC441F4749 A732F5A86A38F62EBFE2E3505F5AE976 B2707D4D4662D94A924892F1C267BCC6 2E2A6989480DA740E2C2152FB8F4D87D 157CFA24D8F810081AD3907B4E7A4B01 2DC8766A8AB93CA5160E3D9DCF5420C5 060630890994D7FC3CA1102BD08BCAF5 B43A014BC0E2828DF9EDCC655F133E26 BA75DB899BE10DA6CBDAA82D7BADB119 3F396EECEABDE3EE4D4AC4AE9186BAB6 7C687850FF21C6C221555D1696E552D1 826E4DF2EC26E5D7F6974B4FD7DE9754 55D28101E52A346D18FFEED518353FAE 35B2F76B5ECD6530A23F8D275748DA7F 7A4BE45B22328167FDF960B94BFF35E6 721E9E9F87D87DFEDF83D68EDA070986 638DF6A1 |
+FE00010023DC8DF513A8FC95CAD3AEB0 5CD826F0883079AFB9E8B38FDE01D827 32504F539EB893573D5F24E679C52898 3A14ECD297AF40336A847A1CECA677B0 2668094D9945E3D4958EDFB92BA51646 0825E855781E82DF13C39D2326EC81F5 FD907D320B532ECAB643F7061E7A7D9B FCB3A8CB527B907F6CCDEDB5F4682DB7 248F0074A4B815A5814B53D7A6A62DB0 B4164B068AF9810AE3DF64100BCE4EA1 9FEDB456EE968FDC7C5ACE5C5906A268 C03D2C83FF2BD2F2C48B2886FE4727D8 BEBCDDAE4899EB491CB5F1C178901956 276540DDCB72E48C3F9B56D84AA24FDF F4A24F6D026228FA18792D1F333D9B18 8CCF9E921CEC8ECAB9F464A7BCB03543 0549F7DF |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-D6F78565 (1703278550 in decimal) |
+93048765 (1703347347 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC
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 = 8B2BC15FD6534001F46FD1EB85CFC5D33CB492BE3A40B04DC83E193C6CC922F1D0C0351D04E6E1E8F8E253E39E38BE0D3D03DAAF1B640E67228E6B891C5F00CF35360C7B3B5DD5685EDD62A0994D220A459F17A5043AF62930078353C6F0F6213008FC5AF639E27AFE40EF4AD3DC52763C27805EF623B5CB2C29F5176746513B5E448AF01DF862C5692D77464D58789E51FEF300A95D4E8F2C2ECBA4AE6680170770B5C9BC56A50A64C96E56364504570EF355A73E134D241CEF52E0EE6FA616A7B3917BC0CE508967FDC21F079F04C3040C76A8EAE7CCE96196DD0FA4AC75F1366723B4A8A1081D743AEC267E1BAED984CF6F8FECFEBFF41D7827B63B1F9951
+b = 5A6E9FC81B5A8032C932C753A816D1FAF1E359836B3902D5BB10AC7CB367594718E116644745B5CBA386FAB387E2EC6B913417F185C83BE16AF2E9E216B27796E30895FC59BE1BF06B8D8D53DB2D79C14E8DC0575E08D386EB2785C487E7182D57631B7A3F1E3DB077658322C692CDAC0218D7862636C617B1757BAC7BE9376489AC4E5788982491993BE0A9648475F56E04B53AFF1CB0CCC13AF554F1226626032B30165B3D04332F9DA6B02146C6495821ACE8CFDF52AB38323F2DE3808C7B21147C369F5AD58BB9457C9BDB0E6510DF0E7BBBD2E0341D9A36C641C2D72507577DDD8AD291732772BF4CF9DF239D753F384D6696D21C82C13713D07F23D806
Then compute g_b = pow(g, b) mod dh_prime
-g_b = C345BCB613357FFEC162397048AF74E249AAC8A11209D92EF089A4D341D1B6A361943235F98BF48E7E996F3D90DDEC63F26EBB5740EF0C5F7E25FF1A6C79943E0918C49A5E48D4C9EC7A478F222F067DAC227310383CFA05401503EF8C5CA72CD999E4BF24E80554B265E89DBB6590E90B0B4282803681AAC5C6E71AB4A9C1AE582DB03EBB500633DBD8372D2B1D56923E43D8197070DA2C74AD1E0D245C495B353DFC5123BD5957BA5F69EAEA94994304C3487437FC833B9CBA41C2BBFDE2421D2A1693ADBFE65AE62686A5A7E250AF7B3EF69BA29F9EA1D8CB2B410AF106E31975536335A2F32ECC0DE4A83EEB3D7299551ACFF48D25407FF4C29E1645E173
+g_b = 8C378DF170A0BD59A6D81640CE292BA73136F79D8D00776C70DE5BA0DEFD09F1A42C18EA71D02A6E3079B294F43751426516E7B40A5B58AEED3AB8FA8B2DBC41A45CA33E37827F15D15AA44375120D243E2E5DB4FD352AC256F5EF096045B8BFEC4C322C5857F232F0BCFF6CAE2220E73BDE716B81E5D147256A409A9494DEB21B30AF3172EDC931DCD3766C58FC3F460191F56BFC62E09C1D23FFC50D3A024CC86BA8E7FAE9CAE8C91DBD4E536F54C4F8218CFB8ECAC2A71C81224267D88663377462F0635DDC03802C2D0F22FB75D99F32A3D911B33C03FD80CA1A5D13BBB3E082BFE67C1DD3D2FB68D2B8A30910ECF18D1BB9E11E4F1288087B97A3E87F83
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 F8 65 53 B8 A2 25 70 92 30 49 7E FC
-0010 | 0B CD 9A BC 6F EE C6 AF 0E 0E AC F6 AD DF BD 26
-0020 | CA 9A FC C4 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | C3 45 BC B6 13 35 7F FE C1 62 39 70 48 AF 74 E2
-0040 | 49 AA C8 A1 12 09 D9 2E F0 89 A4 D3 41 D1 B6 A3
-0050 | 61 94 32 35 F9 8B F4 8E 7E 99 6F 3D 90 DD EC 63
-0060 | F2 6E BB 57 40 EF 0C 5F 7E 25 FF 1A 6C 79 94 3E
-0070 | 09 18 C4 9A 5E 48 D4 C9 EC 7A 47 8F 22 2F 06 7D
-0080 | AC 22 73 10 38 3C FA 05 40 15 03 EF 8C 5C A7 2C
-0090 | D9 99 E4 BF 24 E8 05 54 B2 65 E8 9D BB 65 90 E9
-00A0 | 0B 0B 42 82 80 36 81 AA C5 C6 E7 1A B4 A9 C1 AE
-00B0 | 58 2D B0 3E BB 50 06 33 DB D8 37 2D 2B 1D 56 92
-00C0 | 3E 43 D8 19 70 70 DA 2C 74 AD 1E 0D 24 5C 49 5B
-00D0 | 35 3D FC 51 23 BD 59 57 BA 5F 69 EA EA 94 99 43
-00E0 | 04 C3 48 74 37 FC 83 3B 9C BA 41 C2 BB FD E2 42
-00F0 | 1D 2A 16 93 AD BF E6 5A E6 26 86 A5 A7 E2 50 AF
-0100 | 7B 3E F6 9B A2 9F 9E A1 D8 CB 2B 41 0A F1 06 E3
-0110 | 19 75 53 63 35 A2 F3 2E CC 0D E4 A8 3E EB 3D 72
-0120 | 99 55 1A CF F4 8D 25 40 7F F4 C2 9E 16 45 E1 73
+0000 | 54 B6 43 66 CA 3C B3 BE 46 BF BE 4B C4 8A 94 6A
+0010 | FB 97 21 54 51 13 E1 CE DD 81 B1 3A C0 EB 3D B2
+0020 | 61 FA E6 C2 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 8C 37 8D F1 70 A0 BD 59 A6 D8 16 40 CE 29 2B A7
+0040 | 31 36 F7 9D 8D 00 77 6C 70 DE 5B A0 DE FD 09 F1
+0050 | A4 2C 18 EA 71 D0 2A 6E 30 79 B2 94 F4 37 51 42
+0060 | 65 16 E7 B4 0A 5B 58 AE ED 3A B8 FA 8B 2D BC 41
+0070 | A4 5C A3 3E 37 82 7F 15 D1 5A A4 43 75 12 0D 24
+0080 | 3E 2E 5D B4 FD 35 2A C2 56 F5 EF 09 60 45 B8 BF
+0090 | EC 4C 32 2C 58 57 F2 32 F0 BC FF 6C AE 22 20 E7
+00A0 | 3B DE 71 6B 81 E5 D1 47 25 6A 40 9A 94 94 DE B2
+00B0 | 1B 30 AF 31 72 ED C9 31 DC D3 76 6C 58 FC 3F 46
+00C0 | 01 91 F5 6B FC 62 E0 9C 1D 23 FF C5 0D 3A 02 4C
+00D0 | C8 6B A8 E7 FA E9 CA E8 C9 1D BD 4E 53 6F 54 C4
+00E0 | F8 21 8C FB 8E CA C2 A7 1C 81 22 42 67 D8 86 63
+00F0 | 37 74 62 F0 63 5D DC 03 80 2C 2D 0F 22 FB 75 D9
+0100 | 9F 32 A3 D9 11 B3 3C 03 FD 80 CA 1A 5D 13 BB B3
+0110 | E0 82 BF E6 7C 1D D3 D2 FB 68 D2 B8 A3 09 10 EC
+0120 | F1 8D 1B B9 E1 1E 4F 12 88 08 7B 97 A3 E8 7F 83
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 = BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC
nonce |
4, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE000100C345BCB613357FFEC1623970 48AF74E249AAC8A11209D92EF089A4D3 41D1B6A361943235F98BF48E7E996F3D 90DDEC63F26EBB5740EF0C5F7E25FF1A 6C79943E0918C49A5E48D4C9EC7A478F 222F067DAC227310383CFA05401503EF 8C5CA72CD999E4BF24E80554B265E89D BB6590E90B0B4282803681AAC5C6E71A B4A9C1AE582DB03EBB500633DBD8372D 2B1D56923E43D8197070DA2C74AD1E0D 245C495B353DFC5123BD5957BA5F69EA EA94994304C3487437FC833B9CBA41C2 BBFDE2421D2A1693ADBFE65AE62686A5 A7E250AF7B3EF69BA29F9EA1D8CB2B41 0AF106E31975536335A2F32ECC0DE4A8 3EEB3D7299551ACFF48D25407FF4C29E 1645E173 |
+FE0001008C378DF170A0BD59A6D81640 CE292BA73136F79D8D00776C70DE5BA0 DEFD09F1A42C18EA71D02A6E3079B294 F43751426516E7B40A5B58AEED3AB8FA 8B2DBC41A45CA33E37827F15D15AA443 75120D243E2E5DB4FD352AC256F5EF09 6045B8BFEC4C322C5857F232F0BCFF6C AE2220E73BDE716B81E5D147256A409A 9494DEB21B30AF3172EDC931DCD3766C 58FC3F460191F56BFC62E09C1D23FFC5 0D3A024CC86BA8E7FAE9CAE8C91DBD4E 536F54C4F8218CFB8ECAC2A71C812242 67D88663377462F0635DDC03802C2D0F 22FB75D99F32A3D911B33C03FD80CA1A 5D13BBB3E082BFE67C1DD3D2FB68D2B8 A30910ECF18D1BB9E11E4F1288087B97 A3E87F83 |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B5F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC
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 = 54B64366F86553B8A225709230497EFC0BCD9ABC6FEEC6AF0E0EACF6ADDFBD26CA9AFCC40000000000000000FE000100C345BCB613357FFEC162397048AF74E249AAC8A11209D92EF089A4D341D1B6A361943235F98BF48E7E996F3D90DDEC63F26EBB5740EF0C5F7E25FF1A6C79943E0918C49A5E48D4C9EC7A478F222F067DAC227310383CFA05401503EF8C5CA72CD999E4BF24E80554B265E89DBB6590E90B0B4282803681AAC5C6E71AB4A9C1AE582DB03EBB500633DBD8372D2B1D56923E43D8197070DA2C74AD1E0D245C495B353DFC5123BD5957BA5F69EAEA94994304C3487437FC833B9CBA41C2BBFDE2421D2A1693ADBFE65AE62686A5A7E250AF7B3EF69BA29F9EA1D8CB2B410AF106E31975536335A2F32ECC0DE4A83EEB3D7299551ACFF48D25407FF4C29E1645E173
-padding = 5716BBE199B59207403CDBA3
-tmp_aes_key = 45C7AB984F1592CDDE5AF264AFE1C4870D8A34060F9EB956FC7EEDFC8B0E62D3
-tmp_aes_iv = D5BC4AF3EEED52FCD483055306E48EFDA96ABCD7B863C04EC5A6BDB6B0EFF870
+data = 54B64366CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C20000000000000000FE0001008C378DF170A0BD59A6D81640CE292BA73136F79D8D00776C70DE5BA0DEFD09F1A42C18EA71D02A6E3079B294F43751426516E7B40A5B58AEED3AB8FA8B2DBC41A45CA33E37827F15D15AA44375120D243E2E5DB4FD352AC256F5EF096045B8BFEC4C322C5857F232F0BCFF6CAE2220E73BDE716B81E5D147256A409A9494DEB21B30AF3172EDC931DCD3766C58FC3F460191F56BFC62E09C1D23FFC50D3A024CC86BA8E7FAE9CAE8C91DBD4E536F54C4F8218CFB8ECAC2A71C81224267D88663377462F0635DDC03802C2D0F22FB75D99F32A3D911B33C03FD80CA1A5D13BBB3E082BFE67C1DD3D2FB68D2B8A30910ECF18D1BB9E11E4F1288087B97A3E87F83
+padding = 76FBA780CBAD2F260CAE353C
+tmp_aes_key = B737C0FF1F5F66D10FC79BF85AF196E6CE551ED1F7C95F0820904BDD78399F05
+tmp_aes_iv = 9D521F3A9D1F9F59A7E832D00746A6DB30271078B445C4ACE53CD8F18EB5F840
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 = F872E0E5AADE91C4BD03457955C88610A80331C3ABA9C60C8FE526D0836088BA4F1DABAC99201FEB86A1860909D61E26885DA3D540A29E09FBA89B2E4DA63E1E1E9795691CFFAD59F9B775000CA77209660324F90B89186DB0632472135D2991953B611693956AC1FE4ED38A030F544F37201C043FF0D12B3A1DCBC8E5FC746E138D7347F430EC9C1288DBED5DFF77D41AF16C732E3C9719720325BC769D9D7B99E4470D9DC4CCF09B17E21231BF18ED0A156705D772760AF38B7B8B49AEBFE3986CF167E754342BF8430B317117229EF6565E9191E78EBCD936A9F96EB6D6ED84ABC76AA13E6BC3494D26C2FFB674603E1C62A4FA3B942C63CBE0D7CD0661081C49CEAC0951AA8E40339E1D87D4DE1908C8CB89E8F28E2AB87C2A082CF504E3F41FD63BF6CCBA2CE89000BF97673C71584A4C416BA2A12C8F781721C3A0271868D4C01495698C6FB62B53D7B02BFE00
+encrypted_data = B6BEC353AE06B2BCCC77E6ED00D458B0CE8BD00E48B67E24CBFECE273FABCCA3CDE69CE1CC0FCFCA426A3CB86F12238E36C585AE79DBBB4B08243A505F329B74F708211ADFE5E996DDEA37FD072338A2E69EC92EEF8D8EF358CCF24175F68B8DDEF02048FA8DF4A7A50E952C78FA6800CDB782DF680D75B5FB3657DE066349A836F45051DB4DD81E5F321F9668A14341B419F76E83F2F84BF2AEB3474136B4AD364C5B6227AC5FF1250C6B2145E024055D8AB53AFE668A406114F187DB5FE3C2AB1C3FAF0A0FA6F1E66033EAD6B387B1E0FB118E116C4FDEA18F81E51DA6DEBCCA70B59508B2EC13057EC08A7CB93A4DFC44A34B627184A6A4ACAEC9AEB62B4A0496716FE5C6CEAF3A2D442C23CDD4AB17BE6EEF09C2ACBAD404B0ABCA5709689D64AE76EF1571D138B1D795021F0D9B0FF6382C13C1E214373F4E8D167D4E707A98C5E6D7A7C9C094D82F9AB082C842
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 14 A4 05 00 D6 F7 85 65
-0010 | 78 01 00 00 1F 5F 04 F5 F8 65 53 B8 A2 25 70 92
-0020 | 30 49 7E FC 0B CD 9A BC 6F EE C6 AF 0E 0E AC F6
-0030 | AD DF BD 26 CA 9A FC C4 FE 50 01 00 F8 72 E0 E5
-0040 | AA DE 91 C4 BD 03 45 79 55 C8 86 10 A8 03 31 C3
-0050 | AB A9 C6 0C 8F E5 26 D0 83 60 88 BA 4F 1D AB AC
-0060 | 99 20 1F EB 86 A1 86 09 09 D6 1E 26 88 5D A3 D5
-0070 | 40 A2 9E 09 FB A8 9B 2E 4D A6 3E 1E 1E 97 95 69
-0080 | 1C FF AD 59 F9 B7 75 00 0C A7 72 09 66 03 24 F9
-0090 | 0B 89 18 6D B0 63 24 72 13 5D 29 91 95 3B 61 16
-00A0 | 93 95 6A C1 FE 4E D3 8A 03 0F 54 4F 37 20 1C 04
-00B0 | 3F F0 D1 2B 3A 1D CB C8 E5 FC 74 6E 13 8D 73 47
-00C0 | F4 30 EC 9C 12 88 DB ED 5D FF 77 D4 1A F1 6C 73
-00D0 | 2E 3C 97 19 72 03 25 BC 76 9D 9D 7B 99 E4 47 0D
-00E0 | 9D C4 CC F0 9B 17 E2 12 31 BF 18 ED 0A 15 67 05
-00F0 | D7 72 76 0A F3 8B 7B 8B 49 AE BF E3 98 6C F1 67
-0100 | E7 54 34 2B F8 43 0B 31 71 17 22 9E F6 56 5E 91
-0110 | 91 E7 8E BC D9 36 A9 F9 6E B6 D6 ED 84 AB C7 6A
-0120 | A1 3E 6B C3 49 4D 26 C2 FF B6 74 60 3E 1C 62 A4
-0130 | FA 3B 94 2C 63 CB E0 D7 CD 06 61 08 1C 49 CE AC
-0140 | 09 51 AA 8E 40 33 9E 1D 87 D4 DE 19 08 C8 CB 89
-0150 | E8 F2 8E 2A B8 7C 2A 08 2C F5 04 E3 F4 1F D6 3B
-0160 | F6 CC BA 2C E8 90 00 BF 97 67 3C 71 58 4A 4C 41
-0170 | 6B A2 A1 2C 8F 78 17 21 C3 A0 27 18 68 D4 C0 14
-0180 | 95 69 8C 6F B6 2B 53 D7 B0 2B FE 00
+0000 | 00 00 00 00 00 00 00 00 BC 01 03 00 93 04 87 65
+0010 | 78 01 00 00 1F 5F 04 F5 CA 3C B3 BE 46 BF BE 4B
+0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
+0030 | C0 EB 3D B2 61 FA E6 C2 FE 50 01 00 B6 BE C3 53
+0040 | AE 06 B2 BC CC 77 E6 ED 00 D4 58 B0 CE 8B D0 0E
+0050 | 48 B6 7E 24 CB FE CE 27 3F AB CC A3 CD E6 9C E1
+0060 | CC 0F CF CA 42 6A 3C B8 6F 12 23 8E 36 C5 85 AE
+0070 | 79 DB BB 4B 08 24 3A 50 5F 32 9B 74 F7 08 21 1A
+0080 | DF E5 E9 96 DD EA 37 FD 07 23 38 A2 E6 9E C9 2E
+0090 | EF 8D 8E F3 58 CC F2 41 75 F6 8B 8D DE F0 20 48
+00A0 | FA 8D F4 A7 A5 0E 95 2C 78 FA 68 00 CD B7 82 DF
+00B0 | 68 0D 75 B5 FB 36 57 DE 06 63 49 A8 36 F4 50 51
+00C0 | DB 4D D8 1E 5F 32 1F 96 68 A1 43 41 B4 19 F7 6E
+00D0 | 83 F2 F8 4B F2 AE B3 47 41 36 B4 AD 36 4C 5B 62
+00E0 | 27 AC 5F F1 25 0C 6B 21 45 E0 24 05 5D 8A B5 3A
+00F0 | FE 66 8A 40 61 14 F1 87 DB 5F E3 C2 AB 1C 3F AF
+0100 | 0A 0F A6 F1 E6 60 33 EA D6 B3 87 B1 E0 FB 11 8E
+0110 | 11 6C 4F DE A1 8F 81 E5 1D A6 DE BC CA 70 B5 95
+0120 | 08 B2 EC 13 05 7E C0 8A 7C B9 3A 4D FC 44 A3 4B
+0130 | 62 71 84 A6 A4 AC AE C9 AE B6 2B 4A 04 96 71 6F
+0140 | E5 C6 CE AF 3A 2D 44 2C 23 CD D4 AB 17 BE 6E EF
+0150 | 09 C2 AC BA D4 04 B0 AB CA 57 09 68 9D 64 AE 76
+0160 | EF 15 71 D1 38 B1 D7 95 02 1F 0D 9B 0F F6 38 2C
+0170 | 13 C1 E2 14 37 3F 4E 8D 16 7D 4E 70 7A 98 C5 E6
+0180 | D7 A7 C9 C0 94 D8 2F 9A B0 82 C8 42
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 |
-14A40500D6F78565 |
+BC01030093048765 |
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 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE500100F872E0E5AADE91C4BD034579 55C88610A80331C3ABA9C60C8FE526D0 836088BA4F1DABAC99201FEB86A18609 09D61E26885DA3D540A29E09FBA89B2E 4DA63E1E1E9795691CFFAD59F9B77500 0CA77209660324F90B89186DB0632472 135D2991953B611693956AC1FE4ED38A 030F544F37201C043FF0D12B3A1DCBC8 E5FC746E138D7347F430EC9C1288DBED 5DFF77D41AF16C732E3C9719720325BC 769D9D7B99E4470D9DC4CCF09B17E212 31BF18ED0A156705D772760AF38B7B8B 49AEBFE3986CF167E754342BF8430B31 7117229EF6565E9191E78EBCD936A9F9 6EB6D6ED84ABC76AA13E6BC3494D26C2 FFB674603E1C62A4FA3B942C63CBE0D7 CD0661081C49CEAC0951AA8E40339E1D 87D4DE1908C8CB89E8F28E2AB87C2A08 2CF504E3F41FD63BF6CCBA2CE89000BF 97673C71584A4C416BA2A12C8F781721 C3A0271868D4C01495698C6FB62B53D7 B02BFE00 |
+FE500100B6BEC353AE06B2BCCC77E6ED 00D458B0CE8BD00E48B67E24CBFECE27 3FABCCA3CDE69CE1CC0FCFCA426A3CB8 6F12238E36C585AE79DBBB4B08243A50 5F329B74F708211ADFE5E996DDEA37FD 072338A2E69EC92EEF8D8EF358CCF241 75F68B8DDEF02048FA8DF4A7A50E952C 78FA6800CDB782DF680D75B5FB3657DE 066349A836F45051DB4DD81E5F321F96 68A14341B419F76E83F2F84BF2AEB347 4136B4AD364C5B6227AC5FF1250C6B21 45E024055D8AB53AFE668A406114F187 DB5FE3C2AB1C3FAF0A0FA6F1E66033EA D6B387B1E0FB118E116C4FDEA18F81E5 1DA6DEBCCA70B59508B2EC13057EC08A 7CB93A4DFC44A34B627184A6A4ACAEC9 AEB62B4A0496716FE5C6CEAF3A2D442C 23CDD4AB17BE6EEF09C2ACBAD404B0AB CA5709689D64AE76EF1571D138B1D795 021F0D9B0FF6382C13C1E214373F4E8D 167D4E707A98C5E6D7A7C9C094D82F9A B082C842 |
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 = 58ABE6B4D20D52939B1A7D4A066FE9D94B893258701F5F2518EEBE068F33D13E89586194A33C7C6A9C4E17B0DEE95AED5F7B2C0EA20BA0034FAEDA104E17EC75D9FAF5B157E36C13949573AE2AD13A7A00D4087D046ABA8073836847F3B0C60BCA9563F1A630AB351AE48C44BB3147B0D0D09233B5BEDC3C534D7D40BCB16E296114D8C1EC56920CB986E61ECFC782BDD92DC2C0FDD51DFB6A5B4F19B110DF1B8AA21E467BC2C0573AEBD84AFC447618E2124F13A0B38409E8F2E42179196285F5CC50844AA6F2FA30F23914B036D629085CB65FADEA658C80333A3BAE61025A781817BA0015931698BCC04E03B157891966E69BAAAC013477286FBA0627B845
+auth_key = BAA343428ED11325DE9066B341F1ED2219D7BE6C0C4462603A14F6029FA105BE1A2F2A0DF743CF9AE78A8B18D335A96A11FEB1CF38D09E50C4F3FD97E0C64C5E39EF859CAEEC41C37C7CBE113FE94487D851D3CF7CA9F9AA07047D5EF077A7097F1DF5F87207B46315B1D5FE7EE5888B358EE9DCEE9D9E88CA30B2E744439EA9512DFF5BB28AA0BF2D0442A9D980D719A33A30529D9AF54876205DE12E89A3EF02577B0F6B3E3513E3D25FF995B5DDD1550E395A5CF15C35537CE94EF468369ED2D8B8CA061C6789FA39269AA234F59C6417085F2B6A9A24A99BAF876816A07FCD11F626131B94829330C78F388836E67E5D040A85F339727B789C3F740A04E7
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 FC 5B AA D6 F7 85 65
-0010 | AC 00 00 00 34 F7 CB 3B F8 65 53 B8 A2 25 70 92
-0020 | 30 49 7E FC 0B CD 9A BC 6F EE C6 AF 0E 0E AC F6
-0030 | AD DF BD 26 CA 9A FC C4 A1 08 F6 6E E0 B5 8C 3A
-0040 | E0 85 4D CA BA 23 BF 61
+0000 | 00 00 00 00 00 00 00 00 01 D8 29 DE 93 04 87 65
+0010 | AC 00 00 00 34 F7 CB 3B CA 3C B3 BE 46 BF BE 4B
+0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
+0030 | C0 EB 3D B2 61 FA E6 C2 25 46 18 89 55 6F 9A DB
+0040 | 74 A5 A2 EB AA 3A 27 53
Payload (de)serialization:
dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;
@@ -817,7 +817,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
message_id |
8, 8 |
-01FC5BAAD6F78565 |
+01D829DE93048765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce |
24, 16 |
-F86553B8A225709230497EFC0BCD9ABC |
+CA3CB3BE46BFBE4BC48A946AFB972154 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-6FEEC6AF0E0EACF6ADDFBD26CA9AFCC4 |
+5113E1CEDD81B13AC0EB3DB261FAE6C2 |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-A108F66EE0B58C3AE0854DCABA23BF61 |
+25461889556F9ADB74A5A2EBAA3A2753 |
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. |