@@ -77,7 +77,7 @@
message_id |
8, 8 |
-04460300289B6C65 |
+98370B0007EB6C65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
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 1F 0C 29 9B 6C 65
-0010 | 8C 00 00 00 63 24 16 05 B0 69 7A FD F7 E5 50 64
-0020 | 0E A2 6A DB 92 59 0D E2 FE AC 66 0A F9 82 4B 19
-0030 | 0F 2A B1 7D A0 85 CE 8B 08 1D 6A 19 CB 72 22 7D
-0040 | 65 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 48 CB 4A 07 EB 6C 65
+0010 | C4 00 00 00 63 24 16 05 2B 61 E8 CE 46 92 30 D3
+0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
+0030 | B1 CF FB 2E 5A 4C 90 B1 08 1B 02 0A 05 F2 85 48
+0040 | 2D 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 |
-01E41F0C299B6C65 |
+0148CB4A07EB6C65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-8C000000 (140 in decimal) |
+C4000000 (196 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Server-generated random number |
pq |
56, 12 |
-081D6A19CB72227D65000000 TL byte deserialization => bigendian conversion to decimal => 2119534936215158117 |
+081B020A05F285482D000000 TL byte deserialization => bigendian conversion to decimal => 1946129009637410861 |
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 = 2119534936215158117
-Decompose into 2 prime cofactors p < q
: 2119534936215158117 = 1270235411 * 1668615847
-p = 1270235411
-q = 1668615847
+pq = 1946129009637410861
+Decompose into 2 prime cofactors p < q
: 1946129009637410861 = 1037997977 * 1874887093
+p = 1037997977
+q = 1874887093
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 1D 6A 19 CB 72 22 7D 65 00 00 00
-0010 | 04 4B B6 41 13 00 00 00 04 63 75 0E A7 00 00 00
-0020 | B0 69 7A FD F7 E5 50 64 0E A2 6A DB 92 59 0D E2
-0030 | FE AC 66 0A F9 82 4B 19 0F 2A B1 7D A0 85 CE 8B
-0040 | C9 6C B7 3B 8E B7 D5 00 DF 50 C1 FB F6 11 A5 46
-0050 | 0F 4B D9 A6 4C E6 91 8E 37 FC 77 0C 7F D4 B1 D3
+0000 | 95 5F F5 A9 08 1B 02 0A 05 F2 85 48 2D 00 00 00
+0010 | 04 3D DE 97 99 00 00 00 04 6F C0 81 B5 00 00 00
+0020 | 2B 61 E8 CE 46 92 30 D3 F0 2E B0 DD 8B 34 7C 7A
+0030 | 0B 13 97 9C AF 03 8B 9C B1 CF FB 2E 5A 4C 90 B1
+0040 | 16 40 1E E2 AC E9 2F A4 AE 0E E0 BC EE EF FB 29
+0050 | 69 3D CD 74 E7 07 FE 6F 97 33 4E 2C A1 6F 15 64
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 = 1668615847
pq |
4, 12 |
-081D6A19CB72227D65000000 TL byte deserialization => bigendian conversion to decimal => 2119534936215158117 |
+081B020A05F285482D000000 TL byte deserialization => bigendian conversion to decimal => 1946129009637410861 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-044BB64113000000 TL byte deserialization => bigendian conversion to decimal => 1270235411 |
+043DDE9799000000 TL byte deserialization => bigendian conversion to decimal => 1037997977 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-0463750EA7000000 TL byte deserialization => bigendian conversion to decimal => 1668615847 |
+046FC081B5000000 TL byte deserialization => bigendian conversion to decimal => 1874887093 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-C96CB73B8EB7D500DF50C1FBF611A546 0F4BD9A64CE6918E37FC770C7FD4B1D3 |
+16401EE2ACE92FA4AE0EE0BCEEEFFB29 693DCD74E707FE6F97334E2CA16F1564 |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1668615847
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 = 955FF5A9081D6A19CB72227D65000000044BB641130000000463750EA7000000B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8BC96CB73B8EB7D500DF50C1FBF611A5460F4BD9A64CE6918E37FC770C7FD4B1D302000000
-random_padding_bytes = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E244397C3568C4E5958747D7F88A32EE625B17E6C469D8BCB5485D5FBCC871AA9BE9CF77A613960B7940BF9F6C823EBF4D3569CF243F3C445E1C2CC27B75DD6063
+data = 955FF5A9081B020A05F285482D000000043DDE9799000000046FC081B50000002B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B116401EE2ACE92FA4AE0EE0BCEEEFFB29693DCD74E707FE6F97334E2CA16F156402000000
+random_padding_bytes = 038B6B72765B208DFB7DD5D30A19AC5B73DBBA1920AA200A4B1987D2248993E1A8DCABFF33C447069EA746881CC901111E6C8DDF5E102C734C35F3D9A7E512D98CB7BF509C07DBA2DF796C8554D58513AFF799E58260D6D47334B6C7
And this is the output:
-encrypted_data = E860B93D4388D29FEE6F4A6A3FD9C40FF5D1AEE7A7C6F34FFDAAC5074CB2C40DF66A4EAADBE7A5F9507092103285799B5DB0D22DC49CEF81573E06AB5C3A22C6512A55C6451426643C2CA784B3B1F5F54DEB82A908B76C7B69C7CFC685EC9806F2B74FC0A8EBE2BF6134A3000BE438AADB7E8AF0222C164FE10777475A536D1DBFFB1F442765D860FDFEA1DF48FB3707FA1D49DADFDBCDC1FE2CC4024DE0CA09F6A0F72B85E658A2471B551B53ECE9A844AB2933397E331033B90FF8DBB808D53977F29785D855CEF4A53EE6DE4ED8C87255E3D46E2E7865555B9DCDC025DC35CFF85B91189AFF56150E53A4F5EB4C640C10B0CC5625163E07F89B4E78FCC704
+encrypted_data = 7C7116856E39AEE23DA81918C4964BFEDB3446BB7225CB18068BCAEFFB302AE8D231A4AED8E27893126979F9A667AABB485D5BCFFA4EB8A4DB98E623F513E88AD39FD7A10C5317BB73F43C12926A7B7589B076BBC3BB6EEC22622C68C2DBDA42806A7CB1295DACD847F50D455C417FD37298907D8805AFA4961347ADD77A6B1A118E78C6A721B2BC15EEABB498EB44838FE64839E075CFB822C597F6DB17B82967AAB3379906AB78BEC7B0BDA340479186E3BB6516E781E216954CF4B856247256DA25B6EF332D86C682A841694B05FAB3DFB8DFB766AE7A06D996BBB7DCB56659D13F67D22221EA37502ECC98AF03AF55D20530D2DB5BBB3476CBA3FD0F3C8E
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 3A 0A 00 29 9B 6C 65
-0010 | 40 01 00 00 BE E4 12 D7 B0 69 7A FD F7 E5 50 64
-0020 | 0E A2 6A DB 92 59 0D E2 FE AC 66 0A F9 82 4B 19
-0030 | 0F 2A B1 7D A0 85 CE 8B 04 4B B6 41 13 00 00 00
-0040 | 04 63 75 0E A7 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 E8 60 B9 3D 43 88 D2 9F EE 6F 4A 6A
-0060 | 3F D9 C4 0F F5 D1 AE E7 A7 C6 F3 4F FD AA C5 07
-0070 | 4C B2 C4 0D F6 6A 4E AA DB E7 A5 F9 50 70 92 10
-0080 | 32 85 79 9B 5D B0 D2 2D C4 9C EF 81 57 3E 06 AB
-0090 | 5C 3A 22 C6 51 2A 55 C6 45 14 26 64 3C 2C A7 84
-00A0 | B3 B1 F5 F5 4D EB 82 A9 08 B7 6C 7B 69 C7 CF C6
-00B0 | 85 EC 98 06 F2 B7 4F C0 A8 EB E2 BF 61 34 A3 00
-00C0 | 0B E4 38 AA DB 7E 8A F0 22 2C 16 4F E1 07 77 47
-00D0 | 5A 53 6D 1D BF FB 1F 44 27 65 D8 60 FD FE A1 DF
-00E0 | 48 FB 37 07 FA 1D 49 DA DF DB CD C1 FE 2C C4 02
-00F0 | 4D E0 CA 09 F6 A0 F7 2B 85 E6 58 A2 47 1B 55 1B
-0100 | 53 EC E9 A8 44 AB 29 33 39 7E 33 10 33 B9 0F F8
-0110 | DB B8 08 D5 39 77 F2 97 85 D8 55 CE F4 A5 3E E6
-0120 | DE 4E D8 C8 72 55 E3 D4 6E 2E 78 65 55 5B 9D CD
-0130 | C0 25 DC 35 CF F8 5B 91 18 9A FF 56 15 0E 53 A4
-0140 | F5 EB 4C 64 0C 10 B0 CC 56 25 16 3E 07 F8 9B 4E
-0150 | 78 FC C7 04
+0000 | 00 00 00 00 00 00 00 00 9C EB 0D 00 07 EB 6C 65
+0010 | 40 01 00 00 BE E4 12 D7 2B 61 E8 CE 46 92 30 D3
+0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
+0030 | B1 CF FB 2E 5A 4C 90 B1 04 3D DE 97 99 00 00 00
+0040 | 04 6F C0 81 B5 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 7C 71 16 85 6E 39 AE E2 3D A8 19 18
+0060 | C4 96 4B FE DB 34 46 BB 72 25 CB 18 06 8B CA EF
+0070 | FB 30 2A E8 D2 31 A4 AE D8 E2 78 93 12 69 79 F9
+0080 | A6 67 AA BB 48 5D 5B CF FA 4E B8 A4 DB 98 E6 23
+0090 | F5 13 E8 8A D3 9F D7 A1 0C 53 17 BB 73 F4 3C 12
+00A0 | 92 6A 7B 75 89 B0 76 BB C3 BB 6E EC 22 62 2C 68
+00B0 | C2 DB DA 42 80 6A 7C B1 29 5D AC D8 47 F5 0D 45
+00C0 | 5C 41 7F D3 72 98 90 7D 88 05 AF A4 96 13 47 AD
+00D0 | D7 7A 6B 1A 11 8E 78 C6 A7 21 B2 BC 15 EE AB B4
+00E0 | 98 EB 44 83 8F E6 48 39 E0 75 CF B8 22 C5 97 F6
+00F0 | DB 17 B8 29 67 AA B3 37 99 06 AB 78 BE C7 B0 BD
+0100 | A3 40 47 91 86 E3 BB 65 16 E7 81 E2 16 95 4C F4
+0110 | B8 56 24 72 56 DA 25 B6 EF 33 2D 86 C6 82 A8 41
+0120 | 69 4B 05 FA B3 DF B8 DF B7 66 AE 7A 06 D9 96 BB
+0130 | B7 DC B5 66 59 D1 3F 67 D2 22 21 EA 37 50 2E CC
+0140 | 98 AF 03 AF 55 D2 05 30 D2 DB 5B BB 34 76 CB A3
+0150 | FD 0F 3C 8E
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 = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E24
message_id |
8, 8 |
-B03A0A00299B6C65 |
+9CEB0D0007EB6C65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E24
nonce |
24, 16 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Value received from server in Step 2 |
p |
56, 8 |
-044BB64113000000 TL byte deserialization => bigendian conversion to decimal => 1270235411 |
+043DDE9799000000 TL byte deserialization => bigendian conversion to decimal => 1037997977 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-0463750EA7000000 TL byte deserialization => bigendian conversion to decimal => 1668615847 |
+046FC081B5000000 TL byte deserialization => bigendian conversion to decimal => 1874887093 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E24
encrypted_data |
80, 260 |
-FE000100E860B93D4388D29FEE6F4A6A 3FD9C40FF5D1AEE7A7C6F34FFDAAC507 4CB2C40DF66A4EAADBE7A5F950709210 3285799B5DB0D22DC49CEF81573E06AB 5C3A22C6512A55C6451426643C2CA784 B3B1F5F54DEB82A908B76C7B69C7CFC6 85EC9806F2B74FC0A8EBE2BF6134A300 0BE438AADB7E8AF0222C164FE1077747 5A536D1DBFFB1F442765D860FDFEA1DF 48FB3707FA1D49DADFDBCDC1FE2CC402 4DE0CA09F6A0F72B85E658A2471B551B 53ECE9A844AB2933397E331033B90FF8 DBB808D53977F29785D855CEF4A53EE6 DE4ED8C87255E3D46E2E7865555B9DCD C025DC35CFF85B91189AFF56150E53A4 F5EB4C640C10B0CC5625163E07F89B4E 78FCC704 |
+FE0001007C7116856E39AEE23DA81918 C4964BFEDB3446BB7225CB18068BCAEF FB302AE8D231A4AED8E27893126979F9 A667AABB485D5BCFFA4EB8A4DB98E623 F513E88AD39FD7A10C5317BB73F43C12 926A7B7589B076BBC3BB6EEC22622C68 C2DBDA42806A7CB1295DACD847F50D45 5C417FD37298907D8805AFA4961347AD D77A6B1A118E78C6A721B2BC15EEABB4 98EB44838FE64839E075CFB822C597F6 DB17B82967AAB3379906AB78BEC7B0BD A340479186E3BB6516E781E216954CF4 B856247256DA25B6EF332D86C682A841 694B05FAB3DFB8DFB766AE7A06D996BB B7DCB56659D13F67D22221EA37502ECC 98AF03AF55D20530D2DB5BBB3476CBA3 FD0F3C8E |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E24
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 94 D1 CA 29 9B 6C 65
-0010 | EC 02 00 00 5C 07 E8 D0 B0 69 7A FD F7 E5 50 64
-0020 | 0E A2 6A DB 92 59 0D E2 FE AC 66 0A F9 82 4B 19
-0030 | 0F 2A B1 7D A0 85 CE 8B FE 50 02 00 C3 9E E2 09
-0040 | EC 80 96 71 0D 35 2E 3B BE 1D 4B 26 12 41 CA 3F
-0050 | 83 F6 C5 ED 1E 42 72 13 DB C9 30 C4 15 0E 73 A1
-0060 | 18 5D F1 A2 5B 99 88 1C 8A 3C 2A 5E 12 0A B1 4E
-0070 | 51 05 C4 C2 41 4F D6 BD 25 79 89 25 D0 A4 62 18
-0080 | 67 6F B6 0A 19 89 CF F8 9C AC 9B 20 61 BE 4B 68
-0090 | CD E5 9B 0B CA 81 B4 47 75 B3 DE 66 A3 E3 05 AA
-00A0 | B9 06 AF 0E 5D 4D C0 06 F1 60 97 6E 21 45 43 E4
-00B0 | 78 EF A9 E9 1D 19 C3 AF FC FB 96 B1 DA E5 FE 18
-00C0 | AA ED 6F A3 96 E3 CE 63 63 42 83 EB 6E 61 90 66
-00D0 | A3 36 F3 F0 5D 4A 4F 95 37 01 53 31 4F F1 CC 0D
-00E0 | 5C 8E 7C FC 25 A9 22 F1 17 50 BD FA 60 50 1A B7
-00F0 | 0C 74 D0 C7 3D 13 10 33 74 2E 85 E8 9C EF 90 93
-0100 | 76 08 52 84 47 A8 A4 07 33 B9 3C D6 7C B3 FF A7
-0110 | C2 EE 74 29 6A 07 83 5E 16 07 27 80 AA E5 D3 E2
-0120 | 71 86 63 7C 7B 34 EB 97 43 2A A2 C8 98 0F 79 8C
-0130 | 1B C6 E5 BB B6 D6 F6 E0 CB A7 35 E7 7A 56 55 A3
-0140 | E4 55 22 A0 2B BC 29 F1 89 3C 53 7D B1 FC 3E E8
-0150 | A0 FD 9B 89 F6 F7 96 ED 6B B8 90 BE 2E E4 00 CB
-0160 | 02 86 69 90 B9 E4 3B AB 90 18 F9 B1 5C F3 AF BC
-0170 | 06 FD FB 82 3E 9A AD 0C B4 9C F4 E1 D0 C6 DD 39
-0180 | DE 93 25 A4 2B 5B D0 6E 7C 76 BC 16 F6 52 53 D1
-0190 | F7 24 6C E7 BE 1B D4 62 AD B2 7B A8 B0 2B 35 8C
-01A0 | 22 6C 84 DA 56 2A E0 56 13 92 02 61 F3 7C 77 1B
-01B0 | 89 F1 A1 B0 37 8C 4D 6D CE 71 A5 7E 25 80 39 43
-01C0 | 6F AF D7 FD 88 78 69 C7 37 D0 5E 9B FC 8D 95 A0
-01D0 | A8 63 3E 48 A6 39 08 A6 BD F4 E5 FC 12 B4 07 75
-01E0 | C8 40 CD CF 26 EE 68 44 AF 13 A4 E3 4C 53 9E F3
-01F0 | A6 15 D0 A7 38 1C 40 B0 03 E2 B1 8C 6D 27 DD 4F
-0200 | A5 87 64 27 4C DF 2F D5 26 FF 51 92 F7 0B D8 4D
-0210 | E9 B5 21 4C 07 31 06 30 EE 10 0B 5A 77 F2 6B F1
-0220 | B3 EA 3C 01 A5 11 33 79 91 B6 05 E6 71 7D A5 AB
-0230 | 0F E6 60 35 C1 18 D4 E1 05 46 F6 0E 30 17 B0 28
-0240 | 11 62 C8 95 88 E3 7A 69 15 9E E2 13 47 E9 C0 70
-0250 | 7E AB C9 DF 97 03 EE BC 88 78 45 97 E6 B9 3E D6
-0260 | 46 ED FE D5 D9 D3 7E 1C D0 88 FD 13 52 84 5B FB
-0270 | 6B 66 22 F8 02 BD 53 F3 AA 5A EC 62 F8 A5 69 8F
-0280 | 80 75 26 84 A0 9F 8C DA 95 90 F1 46
+0000 | 00 00 00 00 00 00 00 00 01 B4 EA F2 07 EB 6C 65
+0010 | BC 02 00 00 5C 07 E8 D0 2B 61 E8 CE 46 92 30 D3
+0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
+0030 | B1 CF FB 2E 5A 4C 90 B1 FE 50 02 00 F5 31 B3 DD
+0040 | 83 6C AE 3B E2 8E 2C 1B 46 86 CA F7 70 06 58 FF
+0050 | DE 89 1B 3B 49 DD 4C E5 B7 3D 9F FA 6C 86 62 90
+0060 | 18 57 39 93 9A F0 D6 AE CA B0 A0 B7 85 F5 3B 62
+0070 | C4 C3 C4 F8 F5 97 27 86 CC ED 85 3D 2C FE C7 C6
+0080 | F0 1A 38 36 ED 3C 67 B7 98 AB 8A 7A 5D 40 FF 09
+0090 | A5 A1 89 F0 4C EB AD CC 7F D8 A2 25 86 B7 EF 6A
+00A0 | 39 F3 98 82 FF 5C A4 85 5A B6 95 36 83 B6 7D F8
+00B0 | DE 80 3D 15 75 30 01 F7 51 10 E8 B9 7D 48 49 49
+00C0 | 7A 11 0D 0A 8C 8B 21 98 3B 0E CF 8D 43 AB 9F 14
+00D0 | 95 8A 48 12 C5 FF 13 DA 1C 32 B9 59 66 B5 39 2C
+00E0 | 93 16 39 F6 21 56 77 2D A2 06 A4 91 39 89 56 A1
+00F0 | 28 7E 70 02 17 4F 71 FA 22 12 BC EE C1 A3 DA AE
+0100 | 61 79 89 D9 43 92 6C 3B 1B AE 39 FE 9E F2 77 ED
+0110 | 39 EF D4 22 62 E1 CD FD 1D C9 EF 3D 9E 89 ED A6
+0120 | 86 64 57 FC 7E 5F FB C5 CB C6 CC 89 86 EF 9B F6
+0130 | 56 E2 50 CD BF 1D 00 BF F9 B9 9C C8 7B EC B3 86
+0140 | 38 FD 67 36 6E 61 6B 79 9B B4 BF 6F 09 0A 61 87
+0150 | 68 EC 3A E6 26 53 AD 5A 0B 8D 15 95 0A 40 A7 A0
+0160 | B3 3A 3B 35 5B A1 0E 0B 04 26 9F F0 42 C4 91 6E
+0170 | DA 6D 53 2E 0C DE CC F3 CE 11 6D 65 E4 17 4A BA
+0180 | 90 51 ED B8 0F 12 45 95 A2 92 8B 8E A8 E2 8C 2D
+0190 | D9 B9 93 C4 5B A1 6E 26 51 E3 0E 9B 63 B4 00 EA
+01A0 | 65 89 96 2D CC 05 F4 EE 32 2D AA FB 47 5E 97 C3
+01B0 | 37 C2 FF 2B 07 55 E9 6B 9D E4 02 E9 EE BB C0 D4
+01C0 | 20 D5 E4 46 8A 3D 00 9A A5 1C 32 7B 54 C2 EA F4
+01D0 | 63 90 DE 0C EA D4 51 C7 B6 06 DD 13 24 B8 AB D5
+01E0 | 82 4D FF 7A 59 5B 4E FD 37 90 F1 CF F4 0E 58 F3
+01F0 | D2 DA 00 00 D9 BD 1C CC F4 54 75 E5 E9 60 26 AC
+0200 | 34 DD 5E 72 E1 90 88 AC 41 43 2F 39 8F F0 42 0F
+0210 | 40 BF 9F 63 BF B3 2C 92 4A 40 C4 14 83 02 60 33
+0220 | 12 D3 55 B7 21 8A CB 70 CA DB 13 1A 9D 16 D7 4E
+0230 | 9F 17 73 C0 BF 03 F3 BB 88 7F 22 A8 A4 EA 40 F6
+0240 | 1F 33 51 DD 9A 84 4C 8E AE 16 70 83 B4 C7 2B 39
+0250 | 58 E8 E2 D7 20 92 EE F3 49 18 FD 25 6C 8E 9B B4
+0260 | FE 12 C6 77 74 D1 F4 7E BA EE 20 67 48 81 3F 5A
+0270 | AC 44 36 A6 7E A7 B2 FC 08 EA FF E6 BB 22 31 8C
+0280 | 83 E3 A7 5B 0F 3F 47 EE E9 BF 7C 70
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 = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E24
message_id |
8, 8 |
-0194D1CA299B6C65 |
+01B4EAF207EB6C65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-EC020000 (748 in decimal) |
+BC020000 (700 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E24
nonce |
24, 16 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-FE500200C39EE209EC8096710D352E3B BE1D4B261241CA3F83F6C5ED1E427213 DBC930C4150E73A1185DF1A25B99881C 8A3C2A5E120AB14E5105C4C2414FD6BD 25798925D0A46218676FB60A1989CFF8 9CAC9B2061BE4B68CDE59B0BCA81B447 75B3DE66A3E305AAB906AF0E5D4DC006 F160976E214543E478EFA9E91D19C3AF FCFB96B1DAE5FE18AAED6FA396E3CE63 634283EB6E619066A336F3F05D4A4F95 370153314FF1CC0D5C8E7CFC25A922F1 1750BDFA60501AB70C74D0C73D131033 742E85E89CEF90937608528447A8A407 33B93CD67CB3FFA7C2EE74296A07835E 16072780AAE5D3E27186637C7B34EB97 432AA2C8980F798C1BC6E5BBB6D6F6E0 CBA735E77A5655A3E45522A02BBC29F1 893C537DB1FC3EE8A0FD9B89F6F796ED 6BB890BE2EE400CB02866990B9E43BAB 9018F9B15CF3AFBC06FDFB823E9AAD0C B49CF4E1D0C6DD39DE9325A42B5BD06E 7C76BC16F65253D1F7246CE7BE1BD462 ADB27BA8B02B358C226C84DA562AE056 13920261F37C771B89F1A1B0378C4D6D CE71A57E258039436FAFD7FD887869C7 37D05E9BFC8D95A0A8633E48A63908A6 BDF4E5FC12B40775C840CDCF26EE6844 AF13A4E34C539EF3A615D0A7381C40B0 03E2B18C6D27DD4FA58764274CDF2FD5 26FF5192F70BD84DE9B5214C07310630 EE100B5A77F26BF1B3EA3C01A5113379 91B605E6717DA5AB0FE66035C118D4E1 0546F60E3017B0281162C89588E37A69 159EE21347E9C0707EABC9DF9703EEBC 88784597E6B93ED646EDFED5D9D37E1C D088FD1352845BFB6B6622F802BD53F3 AA5AEC62F8A5698F80752684A09F8CDA 9590F146 |
+FE500200F531B3DD836CAE3BE28E2C1B 4686CAF7700658FFDE891B3B49DD4CE5 B73D9FFA6C866290185739939AF0D6AE CAB0A0B785F53B62C4C3C4F8F5972786 CCED853D2CFEC7C6F01A3836ED3C67B7 98AB8A7A5D40FF09A5A189F04CEBADCC 7FD8A22586B7EF6A39F39882FF5CA485 5AB6953683B67DF8DE803D15753001F7 5110E8B97D4849497A110D0A8C8B2198 3B0ECF8D43AB9F14958A4812C5FF13DA 1C32B95966B5392C931639F62156772D A206A491398956A1287E7002174F71FA 2212BCEEC1A3DAAE617989D943926C3B 1BAE39FE9EF277ED39EFD42262E1CDFD 1DC9EF3D9E89EDA6866457FC7E5FFBC5 CBC6CC8986EF9BF656E250CDBF1D00BF F9B99CC87BECB38638FD67366E616B79 9BB4BF6F090A618768EC3AE62653AD5A 0B8D15950A40A7A0B33A3B355BA10E0B 04269FF042C4916EDA6D532E0CDECCF3 CE116D65E4174ABA9051EDB80F124595 A2928B8EA8E28C2DD9B993C45BA16E26 51E30E9B63B400EA6589962DCC05F4EE 322DAAFB475E97C337C2FF2B0755E96B 9DE402E9EEBBC0D420D5E4468A3D009A A51C327B54C2EAF46390DE0CEAD451C7 B606DD1324B8ABD5824DFF7A595B4EFD 3790F1CFF40E58F3D2DA0000D9BD1CCC F45475E5E96026AC34DD5E72E19088AC 41432F398FF0420F40BF9F63BFB32C92 4A40C4148302603312D355B7218ACB70 CADB131A9D16D74E9F1773C0BF03F3BB 887F22A8A4EA40F61F3351DD9A844C8E AE167083B4C72B3958E8E2D72092EEF3 4918FD256C8E9BB4FE12C67774D1F47E BAEE206748813F5AAC4436A67EA7B2FC 08EAFFE6BB22318C83E3A75B0F3F47EE E9BF7C70 |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = B8F5B0C105FF2BF073B6C18AC3401F4F4576029E2DB1738EB5D5C5E24
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = C39EE209EC8096710D352E3BBE1D4B261241CA3F83F6C5ED1E427213DBC930C4150E73A1185DF1A25B99881C8A3C2A5E120AB14E5105C4C2414FD6BD25798925D0A46218676FB60A1989CFF89CAC9B2061BE4B68CDE59B0BCA81B44775B3DE66A3E305AAB906AF0E5D4DC006F160976E214543E478EFA9E91D19C3AFFCFB96B1DAE5FE18AAED6FA396E3CE63634283EB6E619066A336F3F05D4A4F95370153314FF1CC0D5C8E7CFC25A922F11750BDFA60501AB70C74D0C73D131033742E85E89CEF90937608528447A8A40733B93CD67CB3FFA7C2EE74296A07835E16072780AAE5D3E27186637C7B34EB97432AA2C8980F798C1BC6E5BBB6D6F6E0CBA735E77A5655A3E45522A02BBC29F1893C537DB1FC3EE8A0FD9B89F6F796ED6BB890BE2EE400CB02866990B9E43BAB9018F9B15CF3AFBC06FDFB823E9AAD0CB49CF4E1D0C6DD39DE9325A42B5BD06E7C76BC16F65253D1F7246CE7BE1BD462ADB27BA8B02B358C226C84DA562AE05613920261F37C771B89F1A1B0378C4D6DCE71A57E258039436FAFD7FD887869C737D05E9BFC8D95A0A8633E48A63908A6BDF4E5FC12B40775C840CDCF26EE6844AF13A4E34C539EF3A615D0A7381C40B003E2B18C6D27DD4FA58764274CDF2FD526FF5192F70BD84DE9B5214C07310630EE100B5A77F26BF1B3EA3C01A511337991B605E6717DA5AB0FE66035C118D4E10546F60E3017B0281162C89588E37A69159EE21347E9C0707EABC9DF9703EEBC88784597E6B93ED646EDFED5D9D37E1CD088FD1352845BFB6B6622F802BD53F3AA5AEC62F8A5698F80752684A09F8CDA9590F146
-tmp_aes_key = 668610D763D3448CD0105B192110D48F48A44E8F8881873208DAB2E4C0909447
-tmp_aes_iv = A922BBD641DBFA4F93367A356DC3477420A3D1E970DFECEAF029345EC96CB73B
+encrypted_answer = F531B3DD836CAE3BE28E2C1B4686CAF7700658FFDE891B3B49DD4CE5B73D9FFA6C866290185739939AF0D6AECAB0A0B785F53B62C4C3C4F8F5972786CCED853D2CFEC7C6F01A3836ED3C67B798AB8A7A5D40FF09A5A189F04CEBADCC7FD8A22586B7EF6A39F39882FF5CA4855AB6953683B67DF8DE803D15753001F75110E8B97D4849497A110D0A8C8B21983B0ECF8D43AB9F14958A4812C5FF13DA1C32B95966B5392C931639F62156772DA206A491398956A1287E7002174F71FA2212BCEEC1A3DAAE617989D943926C3B1BAE39FE9EF277ED39EFD42262E1CDFD1DC9EF3D9E89EDA6866457FC7E5FFBC5CBC6CC8986EF9BF656E250CDBF1D00BFF9B99CC87BECB38638FD67366E616B799BB4BF6F090A618768EC3AE62653AD5A0B8D15950A40A7A0B33A3B355BA10E0B04269FF042C4916EDA6D532E0CDECCF3CE116D65E4174ABA9051EDB80F124595A2928B8EA8E28C2DD9B993C45BA16E2651E30E9B63B400EA6589962DCC05F4EE322DAAFB475E97C337C2FF2B0755E96B9DE402E9EEBBC0D420D5E4468A3D009AA51C327B54C2EAF46390DE0CEAD451C7B606DD1324B8ABD5824DFF7A595B4EFD3790F1CFF40E58F3D2DA0000D9BD1CCCF45475E5E96026AC34DD5E72E19088AC41432F398FF0420F40BF9F63BFB32C924A40C4148302603312D355B7218ACB70CADB131A9D16D74E9F1773C0BF03F3BB887F22A8A4EA40F61F3351DD9A844C8EAE167083B4C72B3958E8E2D72092EEF34918FD256C8E9BB4FE12C67774D1F47EBAEE206748813F5AAC4436A67EA7B2FC08EAFFE6BB22318C83E3A75B0F3F47EEE9BF7C70
+tmp_aes_key = 0EC4F0C14F035104D377C5113F23FFDF8E92F502C8482FACE4396EE318ACBEA1
+tmp_aes_iv = FC4DDAFCB1351D8B0E53DB5B10E1B7F5EFA5AB0F2B8188414A4BC90C16401EE2
Yielding:
-answer_with_hash = F64B0014BE61E1AA96FCAA18C13FCCAB03858EBDBA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100065039438661DCE2B8224967E92227644F6D61438224ECEAA11CD6B63A0CBB4D2845541292732A09720806035A6D3AC2DA0A4C49D15BDBC4B51663304FA8E0BAE80899FBAA3CD646D6A11701CF0F35F6E5678183C05B490507675F06434CEB2AAE2C9270A02FC0567D48211477A0767431E8E7E643B2527EF560ABB35CDB2C14C68B5ED55A11DF0EDF590E8D71FD9958C287112914B9E28B1382EDFF40362DD10ECBE73511C99BF6890BB126BA8D5F7F8B36436D2778A2101505D0909679C84D46A6887A8933FF36EAB1DC626D9A252F51AD6226734ED439CDE480F1D06A07E9E56E195675389FB017C8B2B3114CE1D4E2D16743EAD3176E00714BD9E1817FCC299B6C6570C651999F693459
-answer = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8B03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100065039438661DCE2B8224967E92227644F6D61438224ECEAA11CD6B63A0CBB4D2845541292732A09720806035A6D3AC2DA0A4C49D15BDBC4B51663304FA8E0BAE80899FBAA3CD646D6A11701CF0F35F6E5678183C05B490507675F06434CEB2AAE2C9270A02FC0567D48211477A0767431E8E7E643B2527EF560ABB35CDB2C14C68B5ED55A11DF0EDF590E8D71FD9958C287112914B9E28B1382EDFF40362DD10ECBE73511C99BF6890BB126BA8D5F7F8B36436D2778A2101505D0909679C84D46A6887A8933FF36EAB1DC626D9A252F51AD6226734ED439CDE480F1D06A07E9E56E195675389FB017C8B2B3114CE1D4E2D16743EAD3176E00714BD9E1817FCC299B6C6570C651999F693459
+answer_with_hash = 4025DC61AA8D3AD9FCF7D215C8FB2808285ACBD8BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B103000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002DDF0E0962C4FF122336959E5F1EF9ECDE0D5133DDA3F5226BF41BAAAFF1E406040D53EA007E1F860A6C492FDBC9081F5C961331348B8F53BB48EAA9F0CBD48FB8B8BD70DB1158296F0BF749D70DD32DBA7D83C5C4CE6B59B433030AE2C262BC0E39928A8120A262EF2B6BE8C1EADB73F39B77C85432B8230223774AF46ABBD790D4833CA1C169E0DA63F98CB9471AE9C9E12BCA8131C93B299E1A2EEA8FA3D452F80C72AC032AF5691560E84D2C4E7F89216C33B9ECE8D7C886DBC704C906DA70C459DADDBD31A891968A0876E66E634D635653A80985D5D9B19FB3A2E0C35415613F272CE291166B4D7C354BEA323B11930D99E2E405EF8B3CCEDCE1B4B2CB07EB6C6513675A1B626B5E92
+answer = BA0D89B52B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B103000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE0001002DDF0E0962C4FF122336959E5F1EF9ECDE0D5133DDA3F5226BF41BAAAFF1E406040D53EA007E1F860A6C492FDBC9081F5C961331348B8F53BB48EAA9F0CBD48FB8B8BD70DB1158296F0BF749D70DD32DBA7D83C5C4CE6B59B433030AE2C262BC0E39928A8120A262EF2B6BE8C1EADB73F39B77C85432B8230223774AF46ABBD790D4833CA1C169E0DA63F98CB9471AE9C9E12BCA8131C93B299E1A2EEA8FA3D452F80C72AC032AF5691560E84D2C4E7F89216C33B9ECE8D7C886DBC704C906DA70C459DADDBD31A891968A0876E66E634D635653A80985D5D9B19FB3A2E0C35415613F272CE291166B4D7C354BEA323B11930D99E2E405EF8B3CCEDCE1B4B2CB07EB6C6513675A1B626B5E92
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 B0 69 7A FD F7 E5 50 64 0E A2 6A DB
-0010 | 92 59 0D E2 FE AC 66 0A F9 82 4B 19 0F 2A B1 7D
-0020 | A0 85 CE 8B 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 2B 61 E8 CE 46 92 30 D3 F0 2E B0 DD
+0010 | 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C B1 CF FB 2E
+0020 | 5A 4C 90 B1 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 = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8
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 | 06 50 39 43 86 61 DC E2 B8 22 49 67 E9 22 27 64
-0140 | 4F 6D 61 43 82 24 EC EA A1 1C D6 B6 3A 0C BB 4D
-0150 | 28 45 54 12 92 73 2A 09 72 08 06 03 5A 6D 3A C2
-0160 | DA 0A 4C 49 D1 5B DB C4 B5 16 63 30 4F A8 E0 BA
-0170 | E8 08 99 FB AA 3C D6 46 D6 A1 17 01 CF 0F 35 F6
-0180 | E5 67 81 83 C0 5B 49 05 07 67 5F 06 43 4C EB 2A
-0190 | AE 2C 92 70 A0 2F C0 56 7D 48 21 14 77 A0 76 74
-01A0 | 31 E8 E7 E6 43 B2 52 7E F5 60 AB B3 5C DB 2C 14
-01B0 | C6 8B 5E D5 5A 11 DF 0E DF 59 0E 8D 71 FD 99 58
-01C0 | C2 87 11 29 14 B9 E2 8B 13 82 ED FF 40 36 2D D1
-01D0 | 0E CB E7 35 11 C9 9B F6 89 0B B1 26 BA 8D 5F 7F
-01E0 | 8B 36 43 6D 27 78 A2 10 15 05 D0 90 96 79 C8 4D
-01F0 | 46 A6 88 7A 89 33 FF 36 EA B1 DC 62 6D 9A 25 2F
-0200 | 51 AD 62 26 73 4E D4 39 CD E4 80 F1 D0 6A 07 E9
-0210 | E5 6E 19 56 75 38 9F B0 17 C8 B2 B3 11 4C E1 D4
-0220 | E2 D1 67 43 EA D3 17 6E 00 71 4B D9 E1 81 7F CC
-0230 | 29 9B 6C 65
+0130 | 2D DF 0E 09 62 C4 FF 12 23 36 95 9E 5F 1E F9 EC
+0140 | DE 0D 51 33 DD A3 F5 22 6B F4 1B AA AF F1 E4 06
+0150 | 04 0D 53 EA 00 7E 1F 86 0A 6C 49 2F DB C9 08 1F
+0160 | 5C 96 13 31 34 8B 8F 53 BB 48 EA A9 F0 CB D4 8F
+0170 | B8 B8 BD 70 DB 11 58 29 6F 0B F7 49 D7 0D D3 2D
+0180 | BA 7D 83 C5 C4 CE 6B 59 B4 33 03 0A E2 C2 62 BC
+0190 | 0E 39 92 8A 81 20 A2 62 EF 2B 6B E8 C1 EA DB 73
+01A0 | F3 9B 77 C8 54 32 B8 23 02 23 77 4A F4 6A BB D7
+01B0 | 90 D4 83 3C A1 C1 69 E0 DA 63 F9 8C B9 47 1A E9
+01C0 | C9 E1 2B CA 81 31 C9 3B 29 9E 1A 2E EA 8F A3 D4
+01D0 | 52 F8 0C 72 AC 03 2A F5 69 15 60 E8 4D 2C 4E 7F
+01E0 | 89 21 6C 33 B9 EC E8 D7 C8 86 DB C7 04 C9 06 DA
+01F0 | 70 C4 59 DA DD BD 31 A8 91 96 8A 08 76 E6 6E 63
+0200 | 4D 63 56 53 A8 09 85 D5 D9 B1 9F B3 A2 E0 C3 54
+0210 | 15 61 3F 27 2C E2 91 16 6B 4D 7C 35 4B EA 32 3B
+0220 | 11 93 0D 99 E2 E4 05 EF 8B 3C CE DC E1 B4 B2 CB
+0230 | 07 EB 6C 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 = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8
nonce |
4, 16 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8
g_a |
300, 260 |
-FE000100065039438661DCE2B8224967 E92227644F6D61438224ECEAA11CD6B6 3A0CBB4D2845541292732A0972080603 5A6D3AC2DA0A4C49D15BDBC4B5166330 4FA8E0BAE80899FBAA3CD646D6A11701 CF0F35F6E5678183C05B490507675F06 434CEB2AAE2C9270A02FC0567D482114 77A0767431E8E7E643B2527EF560ABB3 5CDB2C14C68B5ED55A11DF0EDF590E8D 71FD9958C287112914B9E28B1382EDFF 40362DD10ECBE73511C99BF6890BB126 BA8D5F7F8B36436D2778A2101505D090 9679C84D46A6887A8933FF36EAB1DC62 6D9A252F51AD6226734ED439CDE480F1 D06A07E9E56E195675389FB017C8B2B3 114CE1D4E2D16743EAD3176E00714BD9 E1817FCC |
+FE0001002DDF0E0962C4FF122336959E 5F1EF9ECDE0D5133DDA3F5226BF41BAA AFF1E406040D53EA007E1F860A6C492F DBC9081F5C961331348B8F53BB48EAA9 F0CBD48FB8B8BD70DB1158296F0BF749 D70DD32DBA7D83C5C4CE6B59B433030A E2C262BC0E39928A8120A262EF2B6BE8 C1EADB73F39B77C85432B8230223774A F46ABBD790D4833CA1C169E0DA63F98C B9471AE9C9E12BCA8131C93B299E1A2E EA8FA3D452F80C72AC032AF5691560E8 4D2C4E7F89216C33B9ECE8D7C886DBC7 04C906DA70C459DADDBD31A891968A08 76E66E634D635653A80985D5D9B19FB3 A2E0C35415613F272CE291166B4D7C35 4BEA323B11930D99E2E405EF8B3CCEDC E1B4B2CB |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-299B6C65 (1701616425 in decimal) |
+07EB6C65 (1701636871 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8
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 = A6B98A45AB89CF2E759A556982AF732D1E78F44276DB83C371FD474ECBE1020CD825CE8DCC077B8CC8404514449BB66C2DD075E3C050CA0C2176948F033197912A1C32783A1C807ED82E76EE4203654D76A57601CDA8E4F45F03F4BD4418015380CBF778ED9ED702CB1954D9EE019A1530D635BA6A13F0D31CF7E1ECFC3C1482A159F1F7C6F801619D5D3C783D84EABA01D2B0A2BF926E4307EA5C8B0A2AAFBAE6A41F2E70E28D0B92BBA7D6F77CC724D297C6296AB3CAFB49CF6C82514FE075D86FA4DD20B4BBFAA91CDD5543325F6C700C3C560BF0CD3049066D01D3B9E2925273B32FF49710E5B24C5A3109490799F87E9026917147A47A820EC6A119A016
+b = 7CAC5DD30984C50AA842F48F90D80FBB1B7C7E480D5094E366EF8CD9A3B9A653AA5AF5EAA939787618D5A4AB2D7BE565CB706BF7AD36F0BC9C9D518E25FBCC0404E9C815647B604A08CC827286D898058C7B4582B27956543D102CFD3D74F7874DCE8BA87E543A79FD89155B066119373A8D71B7A10D6774C21E5C8A9CDDFF75FDD6A5A38F5CD0FAB8206DAC93E6AE19004F7DE83A1542657ABD407E388F1AE26A789D0B136B64A20954914404A2E9605E71578D1B8B2F6D60CE51A26A39DA4ABFC1186FA3753F1A335F0FA2EAD84C00A2A1DA24E1E066569FADFD43FD1A1C21582600FD42352831965A3410FD163065CEAADE55EF6727EB613BD709543171C0
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 593D04663CDA5975735282EE4A67E7A1BCA672A2E44E1CECAEE63110734C101E8D1504CA33F98A94CD5DC904A4DE45C4117CE07E6D30AF3370E5AFCA20D0BCCE86B97B74A613DF0841A981CA8C6E2768D5041A371DF571EAD4BDD6645EB15742F4FEF19BEE1F317A400279D095CDB54B8A73998A7A46B50DAC02177537040412C72E1E103AE8E7D4E49C7D193DB043821EF06EA6EE4667F05B643B6C47C4AB13F3B1BE81DF776E2FC0A1C9969A8451833800E25537070E4FF6F78D017654B3C58168152D8959DA48DB34BBA1937D327A4891B2CB935D1CD9F624F599E5734D9D6CE4C8BDA382D331BCBE126E0598C86E55BF2BF98AF1BEDC695A1009F78AD0B1
+g_b = 5DE63467EDB3BFAA85242250ED73AD59FFB6421128FC16D29B5863532214029F0A553DA6AFE4C6C9B0B8471156308B17DBC829B8DDA7D48A762AE917726E80380AE83915F29A76D44964F6EFE3171CAC12EB3293FF42F2430793219478BABD6575F30BD1FCA2D1386421ABFA37D064D15F95E3B20F12171485150EFAA6F4EAF7F6B7CC3F8BA663322962005380A9BE9E3D7C1F4C3C080862DD7420488B072EC81873F872B62A7FCD3798E7E92C5F53DD730E92AB882406C4A10644A9B71A86F3C96229F5A11C1B1EDB40817556F15075A3CB9B5CCA73BA1CE7B3EF3EB4D0661D01F5EC8A2AF64928C902DDE03BCAF13AA51417A81116817CA753EF924020F12A
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 B0 69 7A FD F7 E5 50 64 0E A2 6A DB
-0010 | 92 59 0D E2 FE AC 66 0A F9 82 4B 19 0F 2A B1 7D
-0020 | A0 85 CE 8B 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 59 3D 04 66 3C DA 59 75 73 52 82 EE 4A 67 E7 A1
-0040 | BC A6 72 A2 E4 4E 1C EC AE E6 31 10 73 4C 10 1E
-0050 | 8D 15 04 CA 33 F9 8A 94 CD 5D C9 04 A4 DE 45 C4
-0060 | 11 7C E0 7E 6D 30 AF 33 70 E5 AF CA 20 D0 BC CE
-0070 | 86 B9 7B 74 A6 13 DF 08 41 A9 81 CA 8C 6E 27 68
-0080 | D5 04 1A 37 1D F5 71 EA D4 BD D6 64 5E B1 57 42
-0090 | F4 FE F1 9B EE 1F 31 7A 40 02 79 D0 95 CD B5 4B
-00A0 | 8A 73 99 8A 7A 46 B5 0D AC 02 17 75 37 04 04 12
-00B0 | C7 2E 1E 10 3A E8 E7 D4 E4 9C 7D 19 3D B0 43 82
-00C0 | 1E F0 6E A6 EE 46 67 F0 5B 64 3B 6C 47 C4 AB 13
-00D0 | F3 B1 BE 81 DF 77 6E 2F C0 A1 C9 96 9A 84 51 83
-00E0 | 38 00 E2 55 37 07 0E 4F F6 F7 8D 01 76 54 B3 C5
-00F0 | 81 68 15 2D 89 59 DA 48 DB 34 BB A1 93 7D 32 7A
-0100 | 48 91 B2 CB 93 5D 1C D9 F6 24 F5 99 E5 73 4D 9D
-0110 | 6C E4 C8 BD A3 82 D3 31 BC BE 12 6E 05 98 C8 6E
-0120 | 55 BF 2B F9 8A F1 BE DC 69 5A 10 09 F7 8A D0 B1
+0000 | 54 B6 43 66 2B 61 E8 CE 46 92 30 D3 F0 2E B0 DD
+0010 | 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C B1 CF FB 2E
+0020 | 5A 4C 90 B1 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 5D E6 34 67 ED B3 BF AA 85 24 22 50 ED 73 AD 59
+0040 | FF B6 42 11 28 FC 16 D2 9B 58 63 53 22 14 02 9F
+0050 | 0A 55 3D A6 AF E4 C6 C9 B0 B8 47 11 56 30 8B 17
+0060 | DB C8 29 B8 DD A7 D4 8A 76 2A E9 17 72 6E 80 38
+0070 | 0A E8 39 15 F2 9A 76 D4 49 64 F6 EF E3 17 1C AC
+0080 | 12 EB 32 93 FF 42 F2 43 07 93 21 94 78 BA BD 65
+0090 | 75 F3 0B D1 FC A2 D1 38 64 21 AB FA 37 D0 64 D1
+00A0 | 5F 95 E3 B2 0F 12 17 14 85 15 0E FA A6 F4 EA F7
+00B0 | F6 B7 CC 3F 8B A6 63 32 29 62 00 53 80 A9 BE 9E
+00C0 | 3D 7C 1F 4C 3C 08 08 62 DD 74 20 48 8B 07 2E C8
+00D0 | 18 73 F8 72 B6 2A 7F CD 37 98 E7 E9 2C 5F 53 DD
+00E0 | 73 0E 92 AB 88 24 06 C4 A1 06 44 A9 B7 1A 86 F3
+00F0 | C9 62 29 F5 A1 1C 1B 1E DB 40 81 75 56 F1 50 75
+0100 | A3 CB 9B 5C CA 73 BA 1C E7 B3 EF 3E B4 D0 66 1D
+0110 | 01 F5 EC 8A 2A F6 49 28 C9 02 DD E0 3B CA F1 3A
+0120 | A5 14 17 A8 11 16 81 7C A7 53 EF 92 40 20 F1 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 = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8
nonce |
4, 16 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE000100593D04663CDA5975735282EE 4A67E7A1BCA672A2E44E1CECAEE63110 734C101E8D1504CA33F98A94CD5DC904 A4DE45C4117CE07E6D30AF3370E5AFCA 20D0BCCE86B97B74A613DF0841A981CA 8C6E2768D5041A371DF571EAD4BDD664 5EB15742F4FEF19BEE1F317A400279D0 95CDB54B8A73998A7A46B50DAC021775 37040412C72E1E103AE8E7D4E49C7D19 3DB043821EF06EA6EE4667F05B643B6C 47C4AB13F3B1BE81DF776E2FC0A1C996 9A8451833800E25537070E4FF6F78D01 7654B3C58168152D8959DA48DB34BBA1 937D327A4891B2CB935D1CD9F624F599 E5734D9D6CE4C8BDA382D331BCBE126E 0598C86E55BF2BF98AF1BEDC695A1009 F78AD0B1 |
+FE0001005DE63467EDB3BFAA85242250 ED73AD59FFB6421128FC16D29B586353 2214029F0A553DA6AFE4C6C9B0B84711 56308B17DBC829B8DDA7D48A762AE917 726E80380AE83915F29A76D44964F6EF E3171CAC12EB3293FF42F24307932194 78BABD6575F30BD1FCA2D1386421ABFA 37D064D15F95E3B20F12171485150EFA A6F4EAF7F6B7CC3F8BA6633229620053 80A9BE9E3D7C1F4C3C080862DD742048 8B072EC81873F872B62A7FCD3798E7E9 2C5F53DD730E92AB882406C4A10644A9 B71A86F3C96229F5A11C1B1EDB408175 56F15075A3CB9B5CCA73BA1CE7B3EF3E B4D0661D01F5EC8A2AF64928C902DDE0 3BCAF13AA51417A81116817CA753EF92 4020F12A |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B5B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8
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 = 54B64366B0697AFDF7E550640EA26ADB92590DE2FEAC660AF9824B190F2AB17DA085CE8B0000000000000000FE000100593D04663CDA5975735282EE4A67E7A1BCA672A2E44E1CECAEE63110734C101E8D1504CA33F98A94CD5DC904A4DE45C4117CE07E6D30AF3370E5AFCA20D0BCCE86B97B74A613DF0841A981CA8C6E2768D5041A371DF571EAD4BDD6645EB15742F4FEF19BEE1F317A400279D095CDB54B8A73998A7A46B50DAC02177537040412C72E1E103AE8E7D4E49C7D193DB043821EF06EA6EE4667F05B643B6C47C4AB13F3B1BE81DF776E2FC0A1C9969A8451833800E25537070E4FF6F78D017654B3C58168152D8959DA48DB34BBA1937D327A4891B2CB935D1CD9F624F599E5734D9D6CE4C8BDA382D331BCBE126E0598C86E55BF2BF98AF1BEDC695A1009F78AD0B1
-padding = 3873AFAE5B7795F8342CB49B
-tmp_aes_key = 668610D763D3448CD0105B192110D48F48A44E8F8881873208DAB2E4C0909447
-tmp_aes_iv = A922BBD641DBFA4F93367A356DC3477420A3D1E970DFECEAF029345EC96CB73B
+data = 54B643662B61E8CE469230D3F02EB0DD8B347C7A0B13979CAF038B9CB1CFFB2E5A4C90B10000000000000000FE0001005DE63467EDB3BFAA85242250ED73AD59FFB6421128FC16D29B5863532214029F0A553DA6AFE4C6C9B0B8471156308B17DBC829B8DDA7D48A762AE917726E80380AE83915F29A76D44964F6EFE3171CAC12EB3293FF42F2430793219478BABD6575F30BD1FCA2D1386421ABFA37D064D15F95E3B20F12171485150EFAA6F4EAF7F6B7CC3F8BA663322962005380A9BE9E3D7C1F4C3C080862DD7420488B072EC81873F872B62A7FCD3798E7E92C5F53DD730E92AB882406C4A10644A9B71A86F3C96229F5A11C1B1EDB40817556F15075A3CB9B5CCA73BA1CE7B3EF3EB4D0661D01F5EC8A2AF64928C902DDE03BCAF13AA51417A81116817CA753EF924020F12A
+padding = 31258D84C9988CCA58689670
+tmp_aes_key = 0EC4F0C14F035104D377C5113F23FFDF8E92F502C8482FACE4396EE318ACBEA1
+tmp_aes_iv = FC4DDAFCB1351D8B0E53DB5B10E1B7F5EFA5AB0F2B8188414A4BC90C16401EE2
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 = EE7E78B01E5C903C68FD369A20E2D31A5CB0CB4432972ACEFCA6C070AB87655B43B7564834D9E2BFBF790113A20E36789236A264E29E086BBCE67D3284A0BACD1928C088D01091C494068365E22733C7FCE094332BFD5B621030808B96871B57122C4C338BDB5F03F7EA2B3D820A55E35285BC0A86135AEA53A49CF309CF4ADF083A64FD0E604044FDD2E2A1DF386C5A3B12DA3BCEB7F26AA8E49B358D1BC0B246F530E5BB834D24B62442EC257790F3DBBB1856F178511A0A7B8F6D531599F738C684D8AEC684BF9BE886FC5AA588D1C7045FCF542D8AC850C668DF948D739C425E3FBC2382E3EEFDBA4D1524CBE57934FC7DC6CDE2B69A581D1A6F1C4BA10FEB3E4DD8211DAF073143B8A916AA043C00587B9B1AB75843D63720A96BA9A6E9E06480F3A56451176C4AC5B4B99267423A93907A5E0F97BF080D924072A303D520B337904B2DBA47517CD7D2ECFCE551
+encrypted_data = 03B6A54797F1485038D9AE309CA59FDA675B09F363EC6A9728D282D71AEC467BC5451C0C80A8E87AC073591ED197E3DDE2E026B4C375B60089C5AF1899FBB86CFBD763F5E295BB8B256E40027C536B6835265FA270708ECE9BE46388706839EC90C9EA697B69985277F1AD4C96C939E6A4C5E0245BF4C4BFA36E7083EFD5701F72845137C88FFAEEEB15546DE8DD405120755D022C68888A55546C28A4982B2E06030297A18C720AE560E7C86764D3B239469E07BEE02D804104163C5176D6FF881724C279614AC53DDCBE47DDA625F5D2BFCF249904AABC474DCDA70298178F4D5EFB295E6ECB97742939B335163B204145B0A4ABEE779B14FB956FEDD6DB6C4960E029F16E14CD45A14BB8612F4814933541D4E9BBC32489E120604DF76FA043B9131A83CA20C3BF129C5846DF6E802259401E482BA5314901DB1ED9713A8ACCBAEC6E74AE2F18DB566EB2ED354768
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 64 2C 0E 00 29 9B 6C 65
-0010 | 78 01 00 00 1F 5F 04 F5 B0 69 7A FD F7 E5 50 64
-0020 | 0E A2 6A DB 92 59 0D E2 FE AC 66 0A F9 82 4B 19
-0030 | 0F 2A B1 7D A0 85 CE 8B FE 50 01 00 EE 7E 78 B0
-0040 | 1E 5C 90 3C 68 FD 36 9A 20 E2 D3 1A 5C B0 CB 44
-0050 | 32 97 2A CE FC A6 C0 70 AB 87 65 5B 43 B7 56 48
-0060 | 34 D9 E2 BF BF 79 01 13 A2 0E 36 78 92 36 A2 64
-0070 | E2 9E 08 6B BC E6 7D 32 84 A0 BA CD 19 28 C0 88
-0080 | D0 10 91 C4 94 06 83 65 E2 27 33 C7 FC E0 94 33
-0090 | 2B FD 5B 62 10 30 80 8B 96 87 1B 57 12 2C 4C 33
-00A0 | 8B DB 5F 03 F7 EA 2B 3D 82 0A 55 E3 52 85 BC 0A
-00B0 | 86 13 5A EA 53 A4 9C F3 09 CF 4A DF 08 3A 64 FD
-00C0 | 0E 60 40 44 FD D2 E2 A1 DF 38 6C 5A 3B 12 DA 3B
-00D0 | CE B7 F2 6A A8 E4 9B 35 8D 1B C0 B2 46 F5 30 E5
-00E0 | BB 83 4D 24 B6 24 42 EC 25 77 90 F3 DB BB 18 56
-00F0 | F1 78 51 1A 0A 7B 8F 6D 53 15 99 F7 38 C6 84 D8
-0100 | AE C6 84 BF 9B E8 86 FC 5A A5 88 D1 C7 04 5F CF
-0110 | 54 2D 8A C8 50 C6 68 DF 94 8D 73 9C 42 5E 3F BC
-0120 | 23 82 E3 EE FD BA 4D 15 24 CB E5 79 34 FC 7D C6
-0130 | CD E2 B6 9A 58 1D 1A 6F 1C 4B A1 0F EB 3E 4D D8
-0140 | 21 1D AF 07 31 43 B8 A9 16 AA 04 3C 00 58 7B 9B
-0150 | 1A B7 58 43 D6 37 20 A9 6B A9 A6 E9 E0 64 80 F3
-0160 | A5 64 51 17 6C 4A C5 B4 B9 92 67 42 3A 93 90 7A
-0170 | 5E 0F 97 BF 08 0D 92 40 72 A3 03 D5 20 B3 37 90
-0180 | 4B 2D BA 47 51 7C D7 D2 EC FC E5 51
+0000 | 00 00 00 00 00 00 00 00 A0 EB 0D 00 07 EB 6C 65
+0010 | 78 01 00 00 1F 5F 04 F5 2B 61 E8 CE 46 92 30 D3
+0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
+0030 | B1 CF FB 2E 5A 4C 90 B1 FE 50 01 00 03 B6 A5 47
+0040 | 97 F1 48 50 38 D9 AE 30 9C A5 9F DA 67 5B 09 F3
+0050 | 63 EC 6A 97 28 D2 82 D7 1A EC 46 7B C5 45 1C 0C
+0060 | 80 A8 E8 7A C0 73 59 1E D1 97 E3 DD E2 E0 26 B4
+0070 | C3 75 B6 00 89 C5 AF 18 99 FB B8 6C FB D7 63 F5
+0080 | E2 95 BB 8B 25 6E 40 02 7C 53 6B 68 35 26 5F A2
+0090 | 70 70 8E CE 9B E4 63 88 70 68 39 EC 90 C9 EA 69
+00A0 | 7B 69 98 52 77 F1 AD 4C 96 C9 39 E6 A4 C5 E0 24
+00B0 | 5B F4 C4 BF A3 6E 70 83 EF D5 70 1F 72 84 51 37
+00C0 | C8 8F FA EE EB 15 54 6D E8 DD 40 51 20 75 5D 02
+00D0 | 2C 68 88 8A 55 54 6C 28 A4 98 2B 2E 06 03 02 97
+00E0 | A1 8C 72 0A E5 60 E7 C8 67 64 D3 B2 39 46 9E 07
+00F0 | BE E0 2D 80 41 04 16 3C 51 76 D6 FF 88 17 24 C2
+0100 | 79 61 4A C5 3D DC BE 47 DD A6 25 F5 D2 BF CF 24
+0110 | 99 04 AA BC 47 4D CD A7 02 98 17 8F 4D 5E FB 29
+0120 | 5E 6E CB 97 74 29 39 B3 35 16 3B 20 41 45 B0 A4
+0130 | AB EE 77 9B 14 FB 95 6F ED D6 DB 6C 49 60 E0 29
+0140 | F1 6E 14 CD 45 A1 4B B8 61 2F 48 14 93 35 41 D4
+0150 | E9 BB C3 24 89 E1 20 60 4D F7 6F A0 43 B9 13 1A
+0160 | 83 CA 20 C3 BF 12 9C 58 46 DF 6E 80 22 59 40 1E
+0170 | 48 2B A5 31 49 01 DB 1E D9 71 3A 8A CC BA EC 6E
+0180 | 74 AE 2F 18 DB 56 6E B2 ED 35 47 68
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 |
-642C0E00299B6C65 |
+A0EB0D0007EB6C65 |
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 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE500100EE7E78B01E5C903C68FD369A 20E2D31A5CB0CB4432972ACEFCA6C070 AB87655B43B7564834D9E2BFBF790113 A20E36789236A264E29E086BBCE67D32 84A0BACD1928C088D01091C494068365 E22733C7FCE094332BFD5B621030808B 96871B57122C4C338BDB5F03F7EA2B3D 820A55E35285BC0A86135AEA53A49CF3 09CF4ADF083A64FD0E604044FDD2E2A1 DF386C5A3B12DA3BCEB7F26AA8E49B35 8D1BC0B246F530E5BB834D24B62442EC 257790F3DBBB1856F178511A0A7B8F6D 531599F738C684D8AEC684BF9BE886FC 5AA588D1C7045FCF542D8AC850C668DF 948D739C425E3FBC2382E3EEFDBA4D15 24CBE57934FC7DC6CDE2B69A581D1A6F 1C4BA10FEB3E4DD8211DAF073143B8A9 16AA043C00587B9B1AB75843D63720A9 6BA9A6E9E06480F3A56451176C4AC5B4 B99267423A93907A5E0F97BF080D9240 72A303D520B337904B2DBA47517CD7D2 ECFCE551 |
+FE50010003B6A54797F1485038D9AE30 9CA59FDA675B09F363EC6A9728D282D7 1AEC467BC5451C0C80A8E87AC073591E D197E3DDE2E026B4C375B60089C5AF18 99FBB86CFBD763F5E295BB8B256E4002 7C536B6835265FA270708ECE9BE46388 706839EC90C9EA697B69985277F1AD4C 96C939E6A4C5E0245BF4C4BFA36E7083 EFD5701F72845137C88FFAEEEB15546D E8DD405120755D022C68888A55546C28 A4982B2E06030297A18C720AE560E7C8 6764D3B239469E07BEE02D804104163C 5176D6FF881724C279614AC53DDCBE47 DDA625F5D2BFCF249904AABC474DCDA7 0298178F4D5EFB295E6ECB97742939B3 35163B204145B0A4ABEE779B14FB956F EDD6DB6C4960E029F16E14CD45A14BB8 612F4814933541D4E9BBC32489E12060 4DF76FA043B9131A83CA20C3BF129C58 46DF6E802259401E482BA5314901DB1E D9713A8ACCBAEC6E74AE2F18DB566EB2 ED354768 |
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 = 4376473535A11FC78F947EA41F4CA6B3851B063824F7E6DA8D6E3643887D2865AAD3A0448CF0641170409ACE280B325AC0CF3802CA8E73F64675D59C90B750ADF2013A273D7AE5BD1D06BF9B59FA7FA62E9C3980E3A21E33B52FDA1CB10549CF6DB2945F7F295CD4EE605F81F7F9CCF819455B331DC860C5158733E4A6B3EF21EC93E4E7E3D7410EAAC498BDD40400FAE56941E59B514DF52B1201FA9489AFB7AC7FE222C71159E3BEAC0526E4207B80F0B37F2906B9C9BD6EBDF8959368758C26431EE83CAE372CA6BC8D3F0DFB349C72433A0A16E8ADF4161F362EF31F66E0A5FDF69A0547D8E5198BA128206E7A93EA4FAFCBA0A48C68279A0CA89536B2EA
+auth_key = 10A41ACBEB34EDFDA504136358684DEE79845B3F59EA5ABEEC92302CABE37EA27DAEE8FA3B166A7C2CB36BA2259D8CF672BCE6DAFF76AB911B20752C48528E4319C5B88CA7DF1D97939BB5284B397A774EC894333C3528D39A976B94A60D065319CCE1D1B4D650F2ED5DE99232DB3C98D0D308586BEB91BA320A0B9871A81B2907767D27FE7A471B36DC0DCA1BBB50EE2602164C15AF164789481AEFE05C26BD78C2AFDA9B8E59239D29657EA48CE1BB7AFBDF725385BF274B47F81DA572D2B605AD0D204010A2CBC24615CA00891A7EA1894BE20C5B1417AC679DD701E4AE748AB72609AD05FEE7A10C29419A452E5EC329D98F7BE8BD9EA581BFE96876F1CE
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 B0 E6 10 2A 9B 6C 65
-0010 | 74 00 00 00 34 F7 CB 3B B0 69 7A FD F7 E5 50 64
-0020 | 0E A2 6A DB 92 59 0D E2 FE AC 66 0A F9 82 4B 19
-0030 | 0F 2A B1 7D A0 85 CE 8B E8 E4 7E DE 0C 39 66 FA
-0040 | 4F 82 5E D6 F5 4B 76 C5
+0000 | 00 00 00 00 00 00 00 00 01 24 37 6D 08 EB 6C 65
+0010 | 70 00 00 00 34 F7 CB 3B 2B 61 E8 CE 46 92 30 D3
+0020 | F0 2E B0 DD 8B 34 7C 7A 0B 13 97 9C AF 03 8B 9C
+0030 | B1 CF FB 2E 5A 4C 90 B1 F3 20 D2 E3 91 44 F6 0F
+0040 | 39 72 C9 BD 33 79 36 E1
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 |
-01B0E6102A9B6C65 |
+0124376D08EB6C65 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-74000000 (116 in decimal) |
+70000000 (112 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 |
-B0697AFDF7E550640EA26ADB92590DE2 |
+2B61E8CE469230D3F02EB0DD8B347C7A |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-FEAC660AF9824B190F2AB17DA085CE8B |
+0B13979CAF038B9CB1CFFB2E5A4C90B1 |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-E8E47EDE0C3966FA4F825ED6F54B76C5 |
+F320D2E39144F60F3972C9BD337936E1 |
The 128 lower-order bits of SHA1 of the byte string derived from the new_nonce string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with auth_key_aux_hash . Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry. |
diff --git a/data/web/corefork.telegram.org/type/MessageEntity.html b/data/web/corefork.telegram.org/type/MessageEntity.html
index bc7a8d3b90..2f19a3c4e5 100644
--- a/data/web/corefork.telegram.org/type/MessageEntity.html
+++ b/data/web/corefork.telegram.org/type/MessageEntity.html
@@ -153,6 +153,10 @@
Message entity representing strikethrough text. |
+messageEntityBlockquote |
+Message entity representing a block quote. |
+
+
messageEntityBankCard |
Indicates a credit card number |