@@ -77,7 +77,7 @@
message_id |
8, 8 |
-94E2020032108765 |
+60200B0069288765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -95,7 +95,7 @@
nonce |
24, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
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 C0 F2 BC 32 10 87 65
-0010 | 74 00 00 00 63 24 16 05 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 08 18 B3 8C 11 24 E9 94
-0040 | 25 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 18 77 ED 69 28 87 65
+0010 | 64 00 00 00 63 24 16 05 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D 08 1A 5F FA 29 ED E0 ED
+0040 | 4F 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 |
-01C0F2BC32108765 |
+011877ED69288765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-74000000 (116 in decimal) |
+64000000 (100 in decimal) |
Message body length |
@@ -150,19 +150,19 @@
nonce |
24, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Server-generated random number |
pq |
56, 12 |
-0818B38C1124E99425000000 TL byte deserialization => bigendian conversion to decimal => 1779920283003098149 |
+081A5FFA29EDE0ED4F000000 TL byte deserialization => bigendian conversion to decimal => 1900512625765182799 |
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 = 1779920283003098149
-Decompose into 2 prime cofactors p < q
: 1779920283003098149 = 1241013161 * 1434247709
-p = 1241013161
-q = 1434247709
+pq = 1900512625765182799
+Decompose into 2 prime cofactors p < q
: 1900512625765182799 = 1286953519 * 1476753121
+p = 1286953519
+q = 1476753121
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 18 B3 8C 11 24 E9 94 25 00 00 00
-0010 | 04 49 F8 5B A9 00 00 00 04 55 7C E2 1D 00 00 00
-0020 | 47 69 58 17 B5 42 7B 73 4C DA 54 C6 41 2E 76 7F
-0030 | 68 85 6B A7 DF A3 4B C3 95 DB A8 31 49 3B E0 83
-0040 | 02 F0 8F 13 0D B2 81 B8 8C 6E B1 DC 6D EB 25 96
-0050 | EF 1C F1 1F AF A5 0D 46 4B CC 2B FC 29 2E 07 56
+0000 | 95 5F F5 A9 08 1A 5F FA 29 ED E0 ED 4F 00 00 00
+0010 | 04 4C B5 5A 2F 00 00 00 04 58 05 76 E1 00 00 00
+0020 | AE E3 68 33 0D 08 E5 0D 8A DF C5 39 8A FB C2 A3
+0030 | B8 AB F0 5D E7 C6 35 F6 D8 4D 0B BE 3A A0 17 2D
+0040 | 47 43 75 83 F4 0F AB AB 65 89 C5 FF 27 AF 57 9B
+0050 | DA 75 10 97 A2 93 BC F8 9F CC 35 AB D5 F1 A9 BD
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 = 1434247709
pq |
4, 12 |
-0818B38C1124E99425000000 TL byte deserialization => bigendian conversion to decimal => 1779920283003098149 |
+081A5FFA29EDE0ED4F000000 TL byte deserialization => bigendian conversion to decimal => 1900512625765182799 |
Single-byte prefix denoting length, 8-byte string, and three bytes of padding |
p |
16, 8 |
-0449F85BA9000000 TL byte deserialization => bigendian conversion to decimal => 1241013161 |
+044CB55A2F000000 TL byte deserialization => bigendian conversion to decimal => 1286953519 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
24, 8 |
-04557CE21D000000 TL byte deserialization => bigendian conversion to decimal => 1434247709 |
+04580576E1000000 TL byte deserialization => bigendian conversion to decimal => 1476753121 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
nonce |
32, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
48, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Value received from server in Step 2 |
new_nonce |
64, 32 |
-02F08F130DB281B88C6EB1DC6DEB2596 EF1CF11FAFA50D464BCC2BFC292E0756 |
+47437583F40FABAB6589C5FF27AF579B DA751097A293BCF89FCC35ABD5F1A9BD |
Client-generated random number |
@@ -291,39 +291,39 @@ q = 1434247709
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 = 955FF5A90818B38C1124E994250000000449F85BA900000004557CE21D00000047695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08302F08F130DB281B88C6EB1DC6DEB2596EF1CF11FAFA50D464BCC2BFC292E075602000000
-random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C62422C66AFC954711532C545C49D522B470AE0838F155FA11E10E033AE5BB1ED0614AB081888902F855794EFBF9E799A2350AD289C8BD093F6869CE82CFA97D
+data = 955FF5A9081A5FFA29EDE0ED4F000000044CB55A2F00000004580576E1000000AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D47437583F40FABAB6589C5FF27AF579BDA751097A293BCF89FCC35ABD5F1A9BD02000000
+random_padding_bytes = 2908A6605A3DB526D5984C4221B6B5675DCEA7B249B29CA437471CB5E3EAA11DC61C4AE6E8A8EE2F7035B41B7BA44C1735A2A7408364138CE44ED5827BEEF0D55BB44CDC01A8FA8B8BE476A6F50D9F4412DF71655F2190D768267C4B
And this is the output:
-encrypted_data = 991ABF8F3E61EAE77965DA04E48EA28523FFB2E94091DA3A4A78A3287F5ADB82CE3F39E92EC6EC45B556B0BE08F467D7E49E444A770661E8F3720805D9D06377C777CAE0B725FDB3E2FAB9A203B44B5E2AD34135208728CE3839876159D3C89BF82200E7089165F1B44A408474650E98C70F5F06C2F4FAF1BF1FECF576F514B8CCC84F807FD198DD3EEF20DEED0CB65D7FA61CBFDBC450FB1F21AF8F0CD266D3D5426AD0A12E21A6EA19D27818E5EDC169363551810C6D3987FA66E79E63A7912E46B4AE1F3924CF973223B18AF545F9BFB5B3A75A4E27BB02360C66803EC3C48FD39B080C3776C891E2564DC90FE7664D0C5F85CDB8A0302B5C0DEC7D0E34ED
+encrypted_data = 14CE18567E07E7B0A2221FC69B4CA3ABEA9FD4C64D3C112B52422F02A04372C4BE10BF2734BFFA5E1D8AE2712B9C2D07085AEF79F5E878CFDFD6187DE7276D375C501A738982DA2778880AAAF6D32912D6AFF1AA160EBDF37DF3E8D3BF244C51CF9464B3A2EEFEA79C41622DA8E044633D5617BC5B0AE18398E427F8BC24E31356D8F4CC839C4BA2FA09D098A8A8D605602F68181BD1F2666B32D4239AAD17A6340FF236C400BB378814F4FC1E3B92CD24C353B911D0B2ECAE55A91CB4C9ACF5DEE2A14D0255B9A0C0DDAE82C3005E803FE9905253F881ACD830A0D2926E9D970793657F9B5CE0344F596D14967557488CA3CDF8B4EFF6C817513B9BAFB73A72
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 48 51 0A 00 32 10 87 65
-0010 | 40 01 00 00 BE E4 12 D7 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 04 49 F8 5B A9 00 00 00
-0040 | 04 55 7C E2 1D 00 00 00 85 FD 64 DE 85 1D 9D D0
-0050 | FE 00 01 00 99 1A BF 8F 3E 61 EA E7 79 65 DA 04
-0060 | E4 8E A2 85 23 FF B2 E9 40 91 DA 3A 4A 78 A3 28
-0070 | 7F 5A DB 82 CE 3F 39 E9 2E C6 EC 45 B5 56 B0 BE
-0080 | 08 F4 67 D7 E4 9E 44 4A 77 06 61 E8 F3 72 08 05
-0090 | D9 D0 63 77 C7 77 CA E0 B7 25 FD B3 E2 FA B9 A2
-00A0 | 03 B4 4B 5E 2A D3 41 35 20 87 28 CE 38 39 87 61
-00B0 | 59 D3 C8 9B F8 22 00 E7 08 91 65 F1 B4 4A 40 84
-00C0 | 74 65 0E 98 C7 0F 5F 06 C2 F4 FA F1 BF 1F EC F5
-00D0 | 76 F5 14 B8 CC C8 4F 80 7F D1 98 DD 3E EF 20 DE
-00E0 | ED 0C B6 5D 7F A6 1C BF DB C4 50 FB 1F 21 AF 8F
-00F0 | 0C D2 66 D3 D5 42 6A D0 A1 2E 21 A6 EA 19 D2 78
-0100 | 18 E5 ED C1 69 36 35 51 81 0C 6D 39 87 FA 66 E7
-0110 | 9E 63 A7 91 2E 46 B4 AE 1F 39 24 CF 97 32 23 B1
-0120 | 8A F5 45 F9 BF B5 B3 A7 5A 4E 27 BB 02 36 0C 66
-0130 | 80 3E C3 C4 8F D3 9B 08 0C 37 76 C8 91 E2 56 4D
-0140 | C9 0F E7 66 4D 0C 5F 85 CD B8 A0 30 2B 5C 0D EC
-0150 | 7D 0E 34 ED
+0000 | 00 00 00 00 00 00 00 00 78 5B 09 00 6A 28 87 65
+0010 | 40 01 00 00 BE E4 12 D7 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D 04 4C B5 5A 2F 00 00 00
+0040 | 04 58 05 76 E1 00 00 00 85 FD 64 DE 85 1D 9D D0
+0050 | FE 00 01 00 14 CE 18 56 7E 07 E7 B0 A2 22 1F C6
+0060 | 9B 4C A3 AB EA 9F D4 C6 4D 3C 11 2B 52 42 2F 02
+0070 | A0 43 72 C4 BE 10 BF 27 34 BF FA 5E 1D 8A E2 71
+0080 | 2B 9C 2D 07 08 5A EF 79 F5 E8 78 CF DF D6 18 7D
+0090 | E7 27 6D 37 5C 50 1A 73 89 82 DA 27 78 88 0A AA
+00A0 | F6 D3 29 12 D6 AF F1 AA 16 0E BD F3 7D F3 E8 D3
+00B0 | BF 24 4C 51 CF 94 64 B3 A2 EE FE A7 9C 41 62 2D
+00C0 | A8 E0 44 63 3D 56 17 BC 5B 0A E1 83 98 E4 27 F8
+00D0 | BC 24 E3 13 56 D8 F4 CC 83 9C 4B A2 FA 09 D0 98
+00E0 | A8 A8 D6 05 60 2F 68 18 1B D1 F2 66 6B 32 D4 23
+00F0 | 9A AD 17 A6 34 0F F2 36 C4 00 BB 37 88 14 F4 FC
+0100 | 1E 3B 92 CD 24 C3 53 B9 11 D0 B2 EC AE 55 A9 1C
+0110 | B4 C9 AC F5 DE E2 A1 4D 02 55 B9 A0 C0 DD AE 82
+0120 | C3 00 5E 80 3F E9 90 52 53 F8 81 AC D8 30 A0 D2
+0130 | 92 6E 9D 97 07 93 65 7F 9B 5C E0 34 4F 59 6D 14
+0140 | 96 75 57 48 8C A3 CD F8 B4 EF F6 C8 17 51 3B 9B
+0150 | AF B7 3A 72
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 = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
message_id |
8, 8 |
-48510A0032108765 |
+785B09006A288765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
@@ -363,25 +363,25 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
nonce |
24, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Value received from server in Step 2 |
p |
56, 8 |
-0449F85BA9000000 TL byte deserialization => bigendian conversion to decimal => 1241013161 |
+044CB55A2F000000 TL byte deserialization => bigendian conversion to decimal => 1286953519 |
First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
q |
64, 8 |
-04557CE21D000000 TL byte deserialization => bigendian conversion to decimal => 1434247709 |
+04580576E1000000 TL byte deserialization => bigendian conversion to decimal => 1476753121 |
Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding |
@@ -393,7 +393,7 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
encrypted_data |
80, 260 |
-FE000100991ABF8F3E61EAE77965DA04 E48EA28523FFB2E94091DA3A4A78A328 7F5ADB82CE3F39E92EC6EC45B556B0BE 08F467D7E49E444A770661E8F3720805 D9D06377C777CAE0B725FDB3E2FAB9A2 03B44B5E2AD34135208728CE38398761 59D3C89BF82200E7089165F1B44A4084 74650E98C70F5F06C2F4FAF1BF1FECF5 76F514B8CCC84F807FD198DD3EEF20DE ED0CB65D7FA61CBFDBC450FB1F21AF8F 0CD266D3D5426AD0A12E21A6EA19D278 18E5EDC169363551810C6D3987FA66E7 9E63A7912E46B4AE1F3924CF973223B1 8AF545F9BFB5B3A75A4E27BB02360C66 803EC3C48FD39B080C3776C891E2564D C90FE7664D0C5F85CDB8A0302B5C0DEC 7D0E34ED |
+FE00010014CE18567E07E7B0A2221FC6 9B4CA3ABEA9FD4C64D3C112B52422F02 A04372C4BE10BF2734BFFA5E1D8AE271 2B9C2D07085AEF79F5E878CFDFD6187D E7276D375C501A738982DA2778880AAA F6D32912D6AFF1AA160EBDF37DF3E8D3 BF244C51CF9464B3A2EEFEA79C41622D A8E044633D5617BC5B0AE18398E427F8 BC24E31356D8F4CC839C4BA2FA09D098 A8A8D605602F68181BD1F2666B32D423 9AAD17A6340FF236C400BB378814F4FC 1E3B92CD24C353B911D0B2ECAE55A91C B4C9ACF5DEE2A14D0255B9A0C0DDAE82 C3005E803FE9905253F881ACD830A0D2 926E9D970793657F9B5CE0344F596D14 967557488CA3CDF8B4EFF6C817513B9B AFB73A72 |
Value generated above |
@@ -402,47 +402,47 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
6) Server responds with:
Received payload (excluding transport headers/trailers):
-0000 | 00 00 00 00 00 00 00 00 01 58 40 6C 33 10 87 65
-0010 | E4 02 00 00 5C 07 E8 D0 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 FE 50 02 00 57 01 89 B9
-0040 | EB 35 8B DF C4 B5 A3 3C 00 72 96 40 55 DF 69 12
-0050 | FB 84 1B 3F 85 97 A7 49 0E 47 44 A1 72 62 5A B3
-0060 | 10 1B 84 BF 22 4D 3B 65 24 65 2A 70 78 05 D4 A4
-0070 | D7 6A 70 FD 31 B9 28 23 E0 CC DB 1F B3 B4 CB 00
-0080 | A5 3F 12 BC 32 9A F8 EF 58 AF 68 EA EA 61 FB 84
-0090 | 2B 2F A7 08 A8 1C 8F 53 F8 79 D5 98 C0 C9 D2 55
-00A0 | EE 72 06 22 50 2A 1E E5 54 69 67 77 01 D8 7D 28
-00B0 | 5E 00 39 16 3D 0A AF 28 2F 85 91 89 0A 23 6F 77
-00C0 | A0 99 85 2B C4 2A 68 D5 E7 E2 8D F1 4D 61 0A FC
-00D0 | 40 CE DC 56 5C BF 61 62 1A 62 08 22 0E A5 83 B4
-00E0 | A2 CF 2A 33 38 C5 33 62 E5 B1 BC F2 1C B3 FB 7A
-00F0 | AB F7 23 BF BA ED 9B 6D FF A2 0B CB 12 79 24 56
-0100 | 8A 26 AE 25 57 D6 34 C3 9A CB E7 19 48 96 C4 3E
-0110 | 2A 3A 59 E6 95 66 C0 8F 75 D5 BE 9F F3 32 28 3D
-0120 | BE 85 44 C3 0B 22 55 E9 31 71 5C 6D B4 A4 CB 72
-0130 | 5C 57 43 E1 A9 EC 09 8F 90 C9 75 E5 6B B9 B3 AC
-0140 | AC 0B FB AC EB 3C 7E 0C AB 59 C9 70 D2 93 A6 97
-0150 | F7 5F 53 2B BE 8E 32 F2 76 E5 F3 79 E8 95 72 CC
-0160 | 68 32 B9 6D B5 72 D3 9A F7 14 EE F4 FB 92 6D 5D
-0170 | 2B E1 34 4D 9E 4F 50 6F C5 74 6C C3 A1 F8 7B E7
-0180 | 21 3F EE 0E 9E 32 A4 94 06 BC 48 DB 24 6D 41 0E
-0190 | 14 72 49 4F 76 31 94 B9 27 C9 2F 8A CF AC 21 08
-01A0 | FF 84 82 AC CB 9D A4 BE 4F EF 3C B3 5A D1 EB B2
-01B0 | B7 80 6A CE 20 54 60 4D 82 D0 61 54 F7 CD 97 D8
-01C0 | 20 A9 7E E5 0A D3 75 58 BC 36 9E 75 24 F2 C0 B5
-01D0 | D9 70 9B D7 D4 42 65 3B 02 60 EB F4 1C 68 2A BD
-01E0 | 51 99 46 8A E7 0A 32 B1 4B 53 03 F1 52 FB 2F 64
-01F0 | 1A 39 4F 2D 82 11 B4 95 FE 4B 6F 81 B9 36 B3 56
-0200 | 5C 73 18 B8 A9 E5 1E 9F 6C 8E 0A 39 15 6A A6 57
-0210 | 95 B5 1C 4C 2E 12 92 04 86 E4 BE A4 6C E0 A1 74
-0220 | 4C 47 00 3F BA DE 95 A3 85 7A 06 CE 10 4E 83 03
-0230 | 7F 2B 78 88 0E B2 BA BF 74 A0 9B D6 89 70 D8 78
-0240 | 8A F6 FB 67 FD EE 8D 5D 8F 7B CE D7 93 72 8F 89
-0250 | A6 26 3E 30 13 B3 28 8A 0E DE 57 1F 61 CD 3C 2B
-0260 | BA 27 98 E3 DC 93 F3 F4 0B 26 21 29 29 60 4A FC
-0270 | C1 A9 CD 84 DB 5E 2B 68 A1 84 C9 28 46 58 1F 30
-0280 | BD 27 37 D5 7B 79 AE 40 BC 98 8A 30
+0000 | 00 00 00 00 00 00 00 00 01 44 FB A7 6A 28 87 65
+0010 | A8 02 00 00 5C 07 E8 D0 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D FE 50 02 00 DC 6E 86 DB
+0040 | 59 1C C0 85 6A 72 3D 94 7E EF 1F 71 5B 12 26 6B
+0050 | 01 9D 50 17 0A 0C F0 57 2C 15 C5 FE 74 55 E4 1E
+0060 | 84 C8 AE A3 13 24 6E 77 8D 72 0E 35 A4 B0 22 54
+0070 | E3 E0 4A 28 9D D7 5A 07 E4 B4 61 41 B1 F0 19 0A
+0080 | C1 BC 85 FC 92 32 60 52 65 F1 E3 4E EE 1B D8 6E
+0090 | 5D 43 40 B0 36 1F B4 09 0E 40 1A 63 46 46 3A 25
+00A0 | 52 58 8E 68 5C C1 26 55 B6 A6 5F 79 77 8A 07 43
+00B0 | 2A 5A 90 46 7E 8C EF E6 25 EA A5 02 B1 59 23 A7
+00C0 | 09 26 06 C8 04 11 9B C2 34 F7 07 32 57 A5 B5 61
+00D0 | F4 C6 98 BD E5 5A 43 6E 39 ED B2 9B 6C B8 2B 2A
+00E0 | 7C 60 CE 41 6B C1 59 D5 BF C2 C7 85 4A D3 16 48
+00F0 | A5 44 99 88 3B 4C 3E 9A D2 BE 56 96 B6 A7 F0 BD
+0100 | D8 EC 6F 66 40 B4 42 B0 C6 2A C1 B3 96 8E 47 43
+0110 | 6A 21 63 77 C5 64 9D E0 C7 2C 78 AE 3B 84 54 80
+0120 | 32 9A 78 68 F6 D0 26 0B 90 67 04 DB 42 54 74 E0
+0130 | B8 B1 E7 32 74 DE F5 36 15 C7 49 55 10 F2 DB 4A
+0140 | 60 61 24 D0 B1 92 A8 28 2F 85 03 65 92 58 6A DC
+0150 | BF CD CF B1 D8 DE D9 7C 5D 4A A1 B6 8F C2 D7 8B
+0160 | 32 EE 70 77 9C 96 A0 4C 68 BF 70 BD 83 76 03 00
+0170 | 92 C3 48 17 B3 37 37 D7 59 76 5E 05 82 7C A2 D4
+0180 | F4 77 44 6B 5A E9 5A FF CE 02 FA 77 17 B9 5F CD
+0190 | 50 6D F8 EE 8A 31 72 25 6B 5D 21 2F 88 79 9C C6
+01A0 | 77 3F A9 B7 08 4D FD DB B6 3D 3D 94 73 41 61 D8
+01B0 | 6D 0A AB 75 DE 83 8E 68 C5 DB 31 B0 E5 4D D9 6D
+01C0 | 98 D5 4B 3B CF FE 32 37 AD 8C 1C E9 A0 06 9A 26
+01D0 | C6 60 88 64 CA ED 67 6F CD 92 27 8A F7 53 F3 C5
+01E0 | F1 21 EA 87 37 6C 63 F6 0C CE D5 42 95 DA 28 A1
+01F0 | 36 FC AC C5 3C 32 91 1C A8 61 5B 93 1A 7C 97 3C
+0200 | 97 6E 39 93 81 15 7F 12 03 C2 77 F7 01 03 58 E5
+0210 | 4E EA 91 78 E0 A7 1A AC F9 9D 74 89 51 85 C7 F8
+0220 | B6 06 B3 15 20 F1 9E 27 AD D1 CA 2C 33 63 4D 9B
+0230 | 5A FA 02 F3 11 60 0A 0D F4 A7 5D C9 87 84 B9 0C
+0240 | 73 FC 93 EE 54 F5 34 8B EA 2D 06 27 CB 7A FA 15
+0250 | D7 22 08 EB 89 3C 60 49 02 A4 81 5C 10 22 C5 F6
+0260 | 3C 5F 0B C9 41 9A 58 11 41 41 A2 69 87 7D F0 0E
+0270 | 03 90 37 BB 18 06 16 5E 19 67 56 F7 F4 12 A8 40
+0280 | 85 23 7A AA 8D 90 A7 D5 D2 5A 6A 14
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 = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
message_id |
8, 8 |
-0158406C33108765 |
+0144FBA76A288765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-E4020000 (740 in decimal) |
+A8020000 (680 in decimal) |
Message body length |
@@ -482,19 +482,19 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
nonce |
24, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Value received from server in Step 2 |
encrypted_answer |
56, 596 |
-FE500200570189B9EB358BDFC4B5A33C 0072964055DF6912FB841B3F8597A749 0E4744A172625AB3101B84BF224D3B65 24652A707805D4A4D76A70FD31B92823 E0CCDB1FB3B4CB00A53F12BC329AF8EF 58AF68EAEA61FB842B2FA708A81C8F53 F879D598C0C9D255EE720622502A1EE5 5469677701D87D285E0039163D0AAF28 2F8591890A236F77A099852BC42A68D5 E7E28DF14D610AFC40CEDC565CBF6162 1A6208220EA583B4A2CF2A3338C53362 E5B1BCF21CB3FB7AABF723BFBAED9B6D FFA20BCB127924568A26AE2557D634C3 9ACBE7194896C43E2A3A59E69566C08F 75D5BE9FF332283DBE8544C30B2255E9 31715C6DB4A4CB725C5743E1A9EC098F 90C975E56BB9B3ACAC0BFBACEB3C7E0C AB59C970D293A697F75F532BBE8E32F2 76E5F379E89572CC6832B96DB572D39A F714EEF4FB926D5D2BE1344D9E4F506F C5746CC3A1F87BE7213FEE0E9E32A494 06BC48DB246D410E1472494F763194B9 27C92F8ACFAC2108FF8482ACCB9DA4BE 4FEF3CB35AD1EBB2B7806ACE2054604D 82D06154F7CD97D820A97EE50AD37558 BC369E7524F2C0B5D9709BD7D442653B 0260EBF41C682ABD5199468AE70A32B1 4B5303F152FB2F641A394F2D8211B495 FE4B6F81B936B3565C7318B8A9E51E9F 6C8E0A39156AA65795B51C4C2E129204 86E4BEA46CE0A1744C47003FBADE95A3 857A06CE104E83037F2B78880EB2BABF 74A09BD68970D8788AF6FB67FDEE8D5D 8F7BCED793728F89A6263E3013B3288A 0EDE571F61CD3C2BBA2798E3DC93F3F4 0B26212929604AFCC1A9CD84DB5E2B68 A184C92846581F30BD2737D57B79AE40 BC988A30 |
+FE500200DC6E86DB591CC0856A723D94 7EEF1F715B12266B019D50170A0CF057 2C15C5FE7455E41E84C8AEA313246E77 8D720E35A4B02254E3E04A289DD75A07 E4B46141B1F0190AC1BC85FC92326052 65F1E34EEE1BD86E5D4340B0361FB409 0E401A6346463A2552588E685CC12655 B6A65F79778A07432A5A90467E8CEFE6 25EAA502B15923A7092606C804119BC2 34F7073257A5B561F4C698BDE55A436E 39EDB29B6CB82B2A7C60CE416BC159D5 BFC2C7854AD31648A54499883B4C3E9A D2BE5696B6A7F0BDD8EC6F6640B442B0 C62AC1B3968E47436A216377C5649DE0 C72C78AE3B845480329A7868F6D0260B 906704DB425474E0B8B1E73274DEF536 15C7495510F2DB4A606124D0B192A828 2F85036592586ADCBFCDCFB1D8DED97C 5D4AA1B68FC2D78B32EE70779C96A04C 68BF70BD8376030092C34817B33737D7 59765E05827CA2D4F477446B5AE95AFF CE02FA7717B95FCD506DF8EE8A317225 6B5D212F88799CC6773FA9B7084DFDDB B63D3D94734161D86D0AAB75DE838E68 C5DB31B0E54DD96D98D54B3BCFFE3237 AD8C1CE9A0069A26C6608864CAED676F CD92278AF753F3C5F121EA87376C63F6 0CCED54295DA28A136FCACC53C32911C A8615B931A7C973C976E399381157F12 03C277F7010358E54EEA9178E0A71AAC F99D74895185C7F8B606B31520F19E27 ADD1CA2C33634D9B5AFA02F311600A0D F4A75DC98784B90C73FC93EE54F5348B EA2D0627CB7AFA15D72208EB893C6049 02A4815C1022C5F63C5F0BC9419A5811 4141A269877DF00E039037BB1806165E 196756F7F412A84085237AAA8D90A7D5 D25A6A14 |
See below |
@@ -502,20 +502,20 @@ random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C
Decrypt encrypted_answer
using the reverse of the process specified in step 6:
-encrypted_answer = 570189B9EB358BDFC4B5A33C0072964055DF6912FB841B3F8597A7490E4744A172625AB3101B84BF224D3B6524652A707805D4A4D76A70FD31B92823E0CCDB1FB3B4CB00A53F12BC329AF8EF58AF68EAEA61FB842B2FA708A81C8F53F879D598C0C9D255EE720622502A1EE55469677701D87D285E0039163D0AAF282F8591890A236F77A099852BC42A68D5E7E28DF14D610AFC40CEDC565CBF61621A6208220EA583B4A2CF2A3338C53362E5B1BCF21CB3FB7AABF723BFBAED9B6DFFA20BCB127924568A26AE2557D634C39ACBE7194896C43E2A3A59E69566C08F75D5BE9FF332283DBE8544C30B2255E931715C6DB4A4CB725C5743E1A9EC098F90C975E56BB9B3ACAC0BFBACEB3C7E0CAB59C970D293A697F75F532BBE8E32F276E5F379E89572CC6832B96DB572D39AF714EEF4FB926D5D2BE1344D9E4F506FC5746CC3A1F87BE7213FEE0E9E32A49406BC48DB246D410E1472494F763194B927C92F8ACFAC2108FF8482ACCB9DA4BE4FEF3CB35AD1EBB2B7806ACE2054604D82D06154F7CD97D820A97EE50AD37558BC369E7524F2C0B5D9709BD7D442653B0260EBF41C682ABD5199468AE70A32B14B5303F152FB2F641A394F2D8211B495FE4B6F81B936B3565C7318B8A9E51E9F6C8E0A39156AA65795B51C4C2E12920486E4BEA46CE0A1744C47003FBADE95A3857A06CE104E83037F2B78880EB2BABF74A09BD68970D8788AF6FB67FDEE8D5D8F7BCED793728F89A6263E3013B3288A0EDE571F61CD3C2BBA2798E3DC93F3F40B26212929604AFCC1A9CD84DB5E2B68A184C92846581F30BD2737D57B79AE40BC988A30
-tmp_aes_key = 05EE1D4D6ADC2782A7ACECACA3A6559E1784F016F92904133459FC8A893EB7AE
-tmp_aes_iv = 048BD652499FBF9CDA0F2C1FA72119F1E64C3B9B4A764020165077B702F08F13
+encrypted_answer = DC6E86DB591CC0856A723D947EEF1F715B12266B019D50170A0CF0572C15C5FE7455E41E84C8AEA313246E778D720E35A4B02254E3E04A289DD75A07E4B46141B1F0190AC1BC85FC9232605265F1E34EEE1BD86E5D4340B0361FB4090E401A6346463A2552588E685CC12655B6A65F79778A07432A5A90467E8CEFE625EAA502B15923A7092606C804119BC234F7073257A5B561F4C698BDE55A436E39EDB29B6CB82B2A7C60CE416BC159D5BFC2C7854AD31648A54499883B4C3E9AD2BE5696B6A7F0BDD8EC6F6640B442B0C62AC1B3968E47436A216377C5649DE0C72C78AE3B845480329A7868F6D0260B906704DB425474E0B8B1E73274DEF53615C7495510F2DB4A606124D0B192A8282F85036592586ADCBFCDCFB1D8DED97C5D4AA1B68FC2D78B32EE70779C96A04C68BF70BD8376030092C34817B33737D759765E05827CA2D4F477446B5AE95AFFCE02FA7717B95FCD506DF8EE8A3172256B5D212F88799CC6773FA9B7084DFDDBB63D3D94734161D86D0AAB75DE838E68C5DB31B0E54DD96D98D54B3BCFFE3237AD8C1CE9A0069A26C6608864CAED676FCD92278AF753F3C5F121EA87376C63F60CCED54295DA28A136FCACC53C32911CA8615B931A7C973C976E399381157F1203C277F7010358E54EEA9178E0A71AACF99D74895185C7F8B606B31520F19E27ADD1CA2C33634D9B5AFA02F311600A0DF4A75DC98784B90C73FC93EE54F5348BEA2D0627CB7AFA15D72208EB893C604902A4815C1022C5F63C5F0BC9419A58114141A269877DF00E039037BB1806165E196756F7F412A84085237AAA8D90A7D5D25A6A14
+tmp_aes_key = E22B38C451C5CAAD463303B485C7E600941F2C9CC4707A08024C1CEF4A830DCA
+tmp_aes_iv = 527793E83B9AB7FB8C8F70BD977F382287996678B1CA4491600094AF47437583
Yielding:
-answer_with_hash = 9103528EB5C8775E57049EFE748C5200F6145C2DBA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010042EDEADD1E44E75004AF29E10CD8130FAF926023DC51CE79B3FD523715CBEE6218002D5F6F42E7C38F241326A49C89B2ABEE867A69459FC3520D68B5A6A313E967B6765C221B120FEE2891654DC43E03945AF26F0EC5A367C93A9837C551C2B4F219605E938708E3C2365E8F8517FDDA1D80B22EBA9905B84332593E8E0F4FA7D3E9F03FDAA1EE7271B87EA34CAB0AFF2B60788853A41907704B4328ABF5CF11BEC74DF0B29B1EE2C123430A36DE56B9261CD777B5951763A56136620CBE37988FA0C4E059844C787AD4BA1F0D2478FF1E5BBE8DC570B74742EC53AF06FA210BEC9B2B1A3FDC9B1FE765BA54C1F56CB7A8F7D86F040E51837E96F21DB91F5981331087655149ACCDB088F8EF
-answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010042EDEADD1E44E75004AF29E10CD8130FAF926023DC51CE79B3FD523715CBEE6218002D5F6F42E7C38F241326A49C89B2ABEE867A69459FC3520D68B5A6A313E967B6765C221B120FEE2891654DC43E03945AF26F0EC5A367C93A9837C551C2B4F219605E938708E3C2365E8F8517FDDA1D80B22EBA9905B84332593E8E0F4FA7D3E9F03FDAA1EE7271B87EA34CAB0AFF2B60788853A41907704B4328ABF5CF11BEC74DF0B29B1EE2C123430A36DE56B9261CD777B5951763A56136620CBE37988FA0C4E059844C787AD4BA1F0D2478FF1E5BBE8DC570B74742EC53AF06FA210BEC9B2B1A3FDC9B1FE765BA54C1F56CB7A8F7D86F040E51837E96F21DB91F5981331087655149ACCDB088F8EF
+answer_with_hash = 58B93B7E6389D04EB04F9A364F84B1827A7D91E7BA0D89B5AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010097B45C13074C36BD49796FFDE5830CBA658EBB755A31FEDB1FCC8E57B2EADF64A41EA6B9FA9769D12AFEC403CF043FA1BA747164B609802E9429F81A76C89B1CCD77E753298A41AF787D71111865636F1168285A7321678DBFA99F775C760F215F0917F11975271232BB201DD6FAB340D199E71F56EDF5943FED916B73A87EB7AE77AA062E07D10A270D2EF808494546CE863765E311BEA5D7F8E45D163910963E051B501D5D73496A373D08B9528D0461E28CF753326683F898BAC91AF8D78042BBD01D0D49BF98468CF3BCA895B87885C6FBF852ADD8069D93C6ACB74B192EAEAC689059074B5201B1E42AC505DDD765C5DB8FBD7B6D918EBCE67A17BE23016A288765F0C5EEB395B10347
+answer = BA0D89B5AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D03000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010097B45C13074C36BD49796FFDE5830CBA658EBB755A31FEDB1FCC8E57B2EADF64A41EA6B9FA9769D12AFEC403CF043FA1BA747164B609802E9429F81A76C89B1CCD77E753298A41AF787D71111865636F1168285A7321678DBFA99F775C760F215F0917F11975271232BB201DD6FAB340D199E71F56EDF5943FED916B73A87EB7AE77AA062E07D10A270D2EF808494546CE863765E311BEA5D7F8E45D163910963E051B501D5D73496A373D08B9528D0461E28CF753326683F898BAC91AF8D78042BBD01D0D49BF98468CF3BCA895B87885C6FBF852ADD8069D93C6ACB74B192EAEAC689059074B5201B1E42AC505DDD765C5DB8FBD7B6D918EBCE67A17BE23016A288765F0C5EEB395B10347
Generated payload (excluding transport headers/trailers):
-0000 | BA 0D 89 B5 47 69 58 17 B5 42 7B 73 4C DA 54 C6
-0010 | 41 2E 76 7F 68 85 6B A7 DF A3 4B C3 95 DB A8 31
-0020 | 49 3B E0 83 03 00 00 00 FE 00 01 00 C7 1C AE B9
+0000 | BA 0D 89 B5 AE E3 68 33 0D 08 E5 0D 8A DF C5 39
+0010 | 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6 D8 4D 0B BE
+0020 | 3A A0 17 2D 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 = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
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 | 42 ED EA DD 1E 44 E7 50 04 AF 29 E1 0C D8 13 0F
-0140 | AF 92 60 23 DC 51 CE 79 B3 FD 52 37 15 CB EE 62
-0150 | 18 00 2D 5F 6F 42 E7 C3 8F 24 13 26 A4 9C 89 B2
-0160 | AB EE 86 7A 69 45 9F C3 52 0D 68 B5 A6 A3 13 E9
-0170 | 67 B6 76 5C 22 1B 12 0F EE 28 91 65 4D C4 3E 03
-0180 | 94 5A F2 6F 0E C5 A3 67 C9 3A 98 37 C5 51 C2 B4
-0190 | F2 19 60 5E 93 87 08 E3 C2 36 5E 8F 85 17 FD DA
-01A0 | 1D 80 B2 2E BA 99 05 B8 43 32 59 3E 8E 0F 4F A7
-01B0 | D3 E9 F0 3F DA A1 EE 72 71 B8 7E A3 4C AB 0A FF
-01C0 | 2B 60 78 88 53 A4 19 07 70 4B 43 28 AB F5 CF 11
-01D0 | BE C7 4D F0 B2 9B 1E E2 C1 23 43 0A 36 DE 56 B9
-01E0 | 26 1C D7 77 B5 95 17 63 A5 61 36 62 0C BE 37 98
-01F0 | 8F A0 C4 E0 59 84 4C 78 7A D4 BA 1F 0D 24 78 FF
-0200 | 1E 5B BE 8D C5 70 B7 47 42 EC 53 AF 06 FA 21 0B
-0210 | EC 9B 2B 1A 3F DC 9B 1F E7 65 BA 54 C1 F5 6C B7
-0220 | A8 F7 D8 6F 04 0E 51 83 7E 96 F2 1D B9 1F 59 81
-0230 | 33 10 87 65
+0130 | 97 B4 5C 13 07 4C 36 BD 49 79 6F FD E5 83 0C BA
+0140 | 65 8E BB 75 5A 31 FE DB 1F CC 8E 57 B2 EA DF 64
+0150 | A4 1E A6 B9 FA 97 69 D1 2A FE C4 03 CF 04 3F A1
+0160 | BA 74 71 64 B6 09 80 2E 94 29 F8 1A 76 C8 9B 1C
+0170 | CD 77 E7 53 29 8A 41 AF 78 7D 71 11 18 65 63 6F
+0180 | 11 68 28 5A 73 21 67 8D BF A9 9F 77 5C 76 0F 21
+0190 | 5F 09 17 F1 19 75 27 12 32 BB 20 1D D6 FA B3 40
+01A0 | D1 99 E7 1F 56 ED F5 94 3F ED 91 6B 73 A8 7E B7
+01B0 | AE 77 AA 06 2E 07 D1 0A 27 0D 2E F8 08 49 45 46
+01C0 | CE 86 37 65 E3 11 BE A5 D7 F8 E4 5D 16 39 10 96
+01D0 | 3E 05 1B 50 1D 5D 73 49 6A 37 3D 08 B9 52 8D 04
+01E0 | 61 E2 8C F7 53 32 66 83 F8 98 BA C9 1A F8 D7 80
+01F0 | 42 BB D0 1D 0D 49 BF 98 46 8C F3 BC A8 95 B8 78
+0200 | 85 C6 FB F8 52 AD D8 06 9D 93 C6 AC B7 4B 19 2E
+0210 | AE AC 68 90 59 07 4B 52 01 B1 E4 2A C5 05 DD D7
+0220 | 65 C5 DB 8F BD 7B 6D 91 8E BC E6 7A 17 BE 23 01
+0230 | 6A 28 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 = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
nonce |
4, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Value received from server in Step 2 |
@@ -594,13 +594,13 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
g_a |
300, 260 |
-FE00010042EDEADD1E44E75004AF29E1 0CD8130FAF926023DC51CE79B3FD5237 15CBEE6218002D5F6F42E7C38F241326 A49C89B2ABEE867A69459FC3520D68B5 A6A313E967B6765C221B120FEE289165 4DC43E03945AF26F0EC5A367C93A9837 C551C2B4F219605E938708E3C2365E8F 8517FDDA1D80B22EBA9905B84332593E 8E0F4FA7D3E9F03FDAA1EE7271B87EA3 4CAB0AFF2B60788853A41907704B4328 ABF5CF11BEC74DF0B29B1EE2C123430A 36DE56B9261CD777B5951763A5613662 0CBE37988FA0C4E059844C787AD4BA1F 0D2478FF1E5BBE8DC570B74742EC53AF 06FA210BEC9B2B1A3FDC9B1FE765BA54 C1F56CB7A8F7D86F040E51837E96F21D B91F5981 |
+FE00010097B45C13074C36BD49796FFD E5830CBA658EBB755A31FEDB1FCC8E57 B2EADF64A41EA6B9FA9769D12AFEC403 CF043FA1BA747164B609802E9429F81A 76C89B1CCD77E753298A41AF787D7111 1865636F1168285A7321678DBFA99F77 5C760F215F0917F11975271232BB201D D6FAB340D199E71F56EDF5943FED916B 73A87EB7AE77AA062E07D10A270D2EF8 08494546CE863765E311BEA5D7F8E45D 163910963E051B501D5D73496A373D08 B9528D0461E28CF753326683F898BAC9 1AF8D78042BBD01D0D49BF98468CF3BC A895B87885C6FBF852ADD8069D93C6AC B74B192EAEAC689059074B5201B1E42A C505DDD765C5DB8FBD7B6D918EBCE67A 17BE2301 |
g_a diffie-hellman parameter |
server_time |
560, 4 |
-33108765 (1703350323 in decimal) |
+6A288765 (1703356522 in decimal) |
Server time |
@@ -609,34 +609,34 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
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 = 67D188F56A5AA505D237103E8999DCAFDE21A01A445E754AA3062300356F1F3045C4F01FA1A25888D4B161B7B49E3B64852F05FE62B44597DA775380EB5A9D5824632273AE824B62AEFF39E8F1E35BD57B6345689F784F701F05AFBF3D2DDF2C0E5B220D1C61A2AD57E0EE28DEB43C5BDAFBEF5A344A92F67FFEFBFA54AD061E9A6D9CD551F97D6D50037CCEEF39FC7922A0E88D303724E5399130874CD4B70AE22A542D76710A4039D4024500D23F4655F471FC253BECA197B7D591BC80EB9480DA265F87FD069C7369D59049FF50B85920F372CC652BE7F6684BE85AF944FE1C4349E129229299573F4D40CD2EDCEF48196E0AC839AEF92DC21DD71A43E148
+b = CD1D19B18C3F7C89246A9086F56C4321CF136B5D4ABE202952EE25BFEB0B718CEEB87C94BE2E4FB392ED6857BCCEAB4DFAB49E099BEDC809AE21E541E75700DD1225D0BD1E50792AF42D48752E8EB673FFC35DF8B55FA51E87ED8ACDBDF72B9EB0F624D484BE4585EA5AEB8C01DC49453029861B738D8D52383478C5A24D9E3CC1E8CD93AFC86C4C2D08624B9EFC8D1DCB9619032D489FC6F98A0AC75428C96ED3C3177BCD5002FEA409F81DDE313A43868A9D41E0E81779C40100957DA88EC7BE73ABF8FFA8EA85FDF15E2A3C58E088A0D279CACC8590FC596DAA3933F7AC63B5557387998B42C41EF34522A394DE886D7D7D1F8AD3A3A03C1C7827D5A66D9E
Then compute g_b = pow(g, b) mod dh_prime
-g_b = 5D4648B25436A0796DC974DBFBB042EA052B73223250909975CCA768D5F0AC614ECF05EFBD50DB9106251F056E81776D485D622C745CDB3DEE307FAFE8AC3B2FE7B9696FD8166C0846738191918D488D35B630BB6DE978D72F71ABFA1CF02F25F1B19A56FE646F0D10EC0FBA95F4B1746C67FCD642806012DC67911D64DAC64F06E0F947F257B67B4DB7E1C58BB408607EEAEC38B2597F36D2580A257336EB5808863DE448F826A02CDFCCA84A2731B29C03E9D6D4C3AF23C9D722A98FD35CB3D654CC5F1DDA90B91653B9B47E509F7CCBB3AFC93A9295C8FCA91CF6B96B2AC234FA4EA80F70309D0E6F42A1DA2C04A7D7ECC2613B99C399B489A29EDB8A5CF2
+g_b = 9B04F50FDBA9644330F26411B11045029F7DA63F7B06163F841745BD88170643C8444F81E7E3B35B2B31E5F78D4ABC4FAEBB9942F2D785BD98D5EF8F806D92A949E7C2E533192059CEEBE23AEC3334CB517580CA026B5245704D15139E2CF96F83BFFB40A6FE1934BE0B74438D9326B317ACCAF520B4B2F695650A12E5C56FDE4F1CFFA9172E7991E6F6E100D90AB29004E9AB4CC00399A922AFFA842373EA54D2C8888737C3EF8CA5F123A9291BAE01999DA91BC98E6656C11EA5DA88C3B01222C1CA8EF114613F44966A73214102F9D0880CC3466101D6E0EC6AA27E3BD081BE0690A39F1D0407E77F1AE6C4C9342D65D6A3AAA6D7274D01D8CA455C8A4B15
7.1) generation of encrypted_data
Generated payload (excluding transport headers/trailers):
-0000 | 54 B6 43 66 47 69 58 17 B5 42 7B 73 4C DA 54 C6
-0010 | 41 2E 76 7F 68 85 6B A7 DF A3 4B C3 95 DB A8 31
-0020 | 49 3B E0 83 00 00 00 00 00 00 00 00 FE 00 01 00
-0030 | 5D 46 48 B2 54 36 A0 79 6D C9 74 DB FB B0 42 EA
-0040 | 05 2B 73 22 32 50 90 99 75 CC A7 68 D5 F0 AC 61
-0050 | 4E CF 05 EF BD 50 DB 91 06 25 1F 05 6E 81 77 6D
-0060 | 48 5D 62 2C 74 5C DB 3D EE 30 7F AF E8 AC 3B 2F
-0070 | E7 B9 69 6F D8 16 6C 08 46 73 81 91 91 8D 48 8D
-0080 | 35 B6 30 BB 6D E9 78 D7 2F 71 AB FA 1C F0 2F 25
-0090 | F1 B1 9A 56 FE 64 6F 0D 10 EC 0F BA 95 F4 B1 74
-00A0 | 6C 67 FC D6 42 80 60 12 DC 67 91 1D 64 DA C6 4F
-00B0 | 06 E0 F9 47 F2 57 B6 7B 4D B7 E1 C5 8B B4 08 60
-00C0 | 7E EA EC 38 B2 59 7F 36 D2 58 0A 25 73 36 EB 58
-00D0 | 08 86 3D E4 48 F8 26 A0 2C DF CC A8 4A 27 31 B2
-00E0 | 9C 03 E9 D6 D4 C3 AF 23 C9 D7 22 A9 8F D3 5C B3
-00F0 | D6 54 CC 5F 1D DA 90 B9 16 53 B9 B4 7E 50 9F 7C
-0100 | CB B3 AF C9 3A 92 95 C8 FC A9 1C F6 B9 6B 2A C2
-0110 | 34 FA 4E A8 0F 70 30 9D 0E 6F 42 A1 DA 2C 04 A7
-0120 | D7 EC C2 61 3B 99 C3 99 B4 89 A2 9E DB 8A 5C F2
+0000 | 54 B6 43 66 AE E3 68 33 0D 08 E5 0D 8A DF C5 39
+0010 | 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6 D8 4D 0B BE
+0020 | 3A A0 17 2D 00 00 00 00 00 00 00 00 FE 00 01 00
+0030 | 9B 04 F5 0F DB A9 64 43 30 F2 64 11 B1 10 45 02
+0040 | 9F 7D A6 3F 7B 06 16 3F 84 17 45 BD 88 17 06 43
+0050 | C8 44 4F 81 E7 E3 B3 5B 2B 31 E5 F7 8D 4A BC 4F
+0060 | AE BB 99 42 F2 D7 85 BD 98 D5 EF 8F 80 6D 92 A9
+0070 | 49 E7 C2 E5 33 19 20 59 CE EB E2 3A EC 33 34 CB
+0080 | 51 75 80 CA 02 6B 52 45 70 4D 15 13 9E 2C F9 6F
+0090 | 83 BF FB 40 A6 FE 19 34 BE 0B 74 43 8D 93 26 B3
+00A0 | 17 AC CA F5 20 B4 B2 F6 95 65 0A 12 E5 C5 6F DE
+00B0 | 4F 1C FF A9 17 2E 79 91 E6 F6 E1 00 D9 0A B2 90
+00C0 | 04 E9 AB 4C C0 03 99 A9 22 AF FA 84 23 73 EA 54
+00D0 | D2 C8 88 87 37 C3 EF 8C A5 F1 23 A9 29 1B AE 01
+00E0 | 99 9D A9 1B C9 8E 66 56 C1 1E A5 DA 88 C3 B0 12
+00F0 | 22 C1 CA 8E F1 14 61 3F 44 96 6A 73 21 41 02 F9
+0100 | D0 88 0C C3 46 61 01 D6 E0 EC 6A A2 7E 3B D0 81
+0110 | BE 06 90 A3 9F 1D 04 07 E7 7F 1A E6 C4 C9 34 2D
+0120 | 65 D6 A3 AA A6 D7 27 4D 01 D8 CA 45 5C 8A 4B 15
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 = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
nonce |
4, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
20, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Value received from server in Step 2 |
g_b |
36, 260 |
-FE0001005D4648B25436A0796DC974DB FBB042EA052B73223250909975CCA768 D5F0AC614ECF05EFBD50DB9106251F05 6E81776D485D622C745CDB3DEE307FAF E8AC3B2FE7B9696FD8166C0846738191 918D488D35B630BB6DE978D72F71ABFA 1CF02F25F1B19A56FE646F0D10EC0FBA 95F4B1746C67FCD642806012DC67911D 64DAC64F06E0F947F257B67B4DB7E1C5 8BB408607EEAEC38B2597F36D2580A25 7336EB5808863DE448F826A02CDFCCA8 4A2731B29C03E9D6D4C3AF23C9D722A9 8FD35CB3D654CC5F1DDA90B91653B9B4 7E509F7CCBB3AFC93A9295C8FCA91CF6 B96B2AC234FA4EA80F70309D0E6F42A1 DA2C04A7D7ECC2613B99C399B489A29E DB8A5CF2 |
+FE0001009B04F50FDBA9644330F26411 B11045029F7DA63F7B06163F841745BD 88170643C8444F81E7E3B35B2B31E5F7 8D4ABC4FAEBB9942F2D785BD98D5EF8F 806D92A949E7C2E533192059CEEBE23A EC3334CB517580CA026B5245704D1513 9E2CF96F83BFFB40A6FE1934BE0B7443 8D9326B317ACCAF520B4B2F695650A12 E5C56FDE4F1CFFA9172E7991E6F6E100 D90AB29004E9AB4CC00399A922AFFA84 2373EA54D2C8888737C3EF8CA5F123A9 291BAE01999DA91BC98E6656C11EA5DA 88C3B01222C1CA8EF114613F44966A73 214102F9D0880CC3466101D6E0EC6AA2 7E3BD081BE0690A39F1D0407E77F1AE6 C4C9342D65D6A3AAA6D7274D01D8CA45 5C8A4B15 |
Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding |
@@ -684,47 +684,47 @@ answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08
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 = 54B6436647695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE0830000000000000000FE0001005D4648B25436A0796DC974DBFBB042EA052B73223250909975CCA768D5F0AC614ECF05EFBD50DB9106251F056E81776D485D622C745CDB3DEE307FAFE8AC3B2FE7B9696FD8166C0846738191918D488D35B630BB6DE978D72F71ABFA1CF02F25F1B19A56FE646F0D10EC0FBA95F4B1746C67FCD642806012DC67911D64DAC64F06E0F947F257B67B4DB7E1C58BB408607EEAEC38B2597F36D2580A257336EB5808863DE448F826A02CDFCCA84A2731B29C03E9D6D4C3AF23C9D722A98FD35CB3D654CC5F1DDA90B91653B9B47E509F7CCBB3AFC93A9295C8FCA91CF6B96B2AC234FA4EA80F70309D0E6F42A1DA2C04A7D7ECC2613B99C399B489A29EDB8A5CF2
-padding = CBEB846A78C2813A879469B3
-tmp_aes_key = 05EE1D4D6ADC2782A7ACECACA3A6559E1784F016F92904133459FC8A893EB7AE
-tmp_aes_iv = 048BD652499FBF9CDA0F2C1FA72119F1E64C3B9B4A764020165077B702F08F13
+data = 54B64366AEE368330D08E50D8ADFC5398AFBC2A3B8ABF05DE7C635F6D84D0BBE3AA0172D0000000000000000FE0001009B04F50FDBA9644330F26411B11045029F7DA63F7B06163F841745BD88170643C8444F81E7E3B35B2B31E5F78D4ABC4FAEBB9942F2D785BD98D5EF8F806D92A949E7C2E533192059CEEBE23AEC3334CB517580CA026B5245704D15139E2CF96F83BFFB40A6FE1934BE0B74438D9326B317ACCAF520B4B2F695650A12E5C56FDE4F1CFFA9172E7991E6F6E100D90AB29004E9AB4CC00399A922AFFA842373EA54D2C8888737C3EF8CA5F123A9291BAE01999DA91BC98E6656C11EA5DA88C3B01222C1CA8EF114613F44966A73214102F9D0880CC3466101D6E0EC6AA27E3BD081BE0690A39F1D0407E77F1AE6C4C9342D65D6A3AAA6D7274D01D8CA455C8A4B15
+padding = A86DBE9E5537F60097E490DF
+tmp_aes_key = E22B38C451C5CAAD463303B485C7E600941F2C9CC4707A08024C1CEF4A830DCA
+tmp_aes_iv = 527793E83B9AB7FB8C8F70BD977F382287996678B1CA4491600094AF47437583
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 = 7C64F61A54D411891A8858216376D4AF6FF14AF29D44AD55F78464DE293838217B711789DA714A3F6B0C6BDFD319E0A513E04C02BB3ECB53E1F438C61007EF28CD4BE8C2CD308B368FD25CC25D9F58F9DA8CDF72D4855D179647F5A15AA3805FA6E241F0CD2437ED86632ABFE2B72E66B57624AABE0B8FC5458B7CFA0852EFFC1B130753B476CF48EE540F8FE6ECC4681A692FDBAC73EBA2B80A80A69ABBD6F893F7CC2B83F358E7ED87E2DD4907A80732888636AE1B5382FAE05E548498628E61D50C5765282B27F5A9ADC9101BF8C53152F6FB67D69B88C958ACC09DB3800F6FF5604882EF0328E0D785BDFBCFD13D58A8A8864007BD585AF7C7C10A84E6ABF28019C8F1489627225BCF39C188539FB9AC779BE9A299B496A7F5387ABE616C2237F050994694439DCDAF246F6508F516F1667B6AB74FB7EF24CF775B4C4B2F643F595E55B49D8F57FF32E10DB07AF3
+encrypted_data = 2F876FE34BFA63A85077F6A6385EDC8F6A329B7154F86593B466F41EBF6571E4F3BE1564651BB0B9F2755A8C44D8E682730F0AED528BA703F0800B788E656AD901DDD5D587C325B601320E6878A158D4877699D3A41F50F3A237FE5AA3551B1B28A5002C37D5E3AF0BDAE3EADD93A8167E2C98F2228A32233E47639CFFCD64C50653C8B3FF59F5E0736E4E5BE407DF6C716D672E0DB3487EA8CFA2A835013587B39CF7979DD07823841D19EBC43FEF8A994952D710DFA5EE5129BE13FE451A55E487661AF90D396CF38A574FDDC3A4BEA38D13054147ADD7119DBCD5A6B6048EBEB57ADE7E2D70EEBE1758BCF11F62440469B7BE80594BBB95AFA90496587577A2FE26B891A2D231B4D9D3A945E4DBE01CC6024B0F5FCED00304355515A9F3567C723A2164F31E4EDCB0DBE52F76F4A93D649543DFAE9349A1F65108E8DB09AF5BE8EE042771816B9A148694BCD6997D
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 C8 A1 0E 00 33 10 87 65
-0010 | 78 01 00 00 1F 5F 04 F5 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 FE 50 01 00 7C 64 F6 1A
-0040 | 54 D4 11 89 1A 88 58 21 63 76 D4 AF 6F F1 4A F2
-0050 | 9D 44 AD 55 F7 84 64 DE 29 38 38 21 7B 71 17 89
-0060 | DA 71 4A 3F 6B 0C 6B DF D3 19 E0 A5 13 E0 4C 02
-0070 | BB 3E CB 53 E1 F4 38 C6 10 07 EF 28 CD 4B E8 C2
-0080 | CD 30 8B 36 8F D2 5C C2 5D 9F 58 F9 DA 8C DF 72
-0090 | D4 85 5D 17 96 47 F5 A1 5A A3 80 5F A6 E2 41 F0
-00A0 | CD 24 37 ED 86 63 2A BF E2 B7 2E 66 B5 76 24 AA
-00B0 | BE 0B 8F C5 45 8B 7C FA 08 52 EF FC 1B 13 07 53
-00C0 | B4 76 CF 48 EE 54 0F 8F E6 EC C4 68 1A 69 2F DB
-00D0 | AC 73 EB A2 B8 0A 80 A6 9A BB D6 F8 93 F7 CC 2B
-00E0 | 83 F3 58 E7 ED 87 E2 DD 49 07 A8 07 32 88 86 36
-00F0 | AE 1B 53 82 FA E0 5E 54 84 98 62 8E 61 D5 0C 57
-0100 | 65 28 2B 27 F5 A9 AD C9 10 1B F8 C5 31 52 F6 FB
-0110 | 67 D6 9B 88 C9 58 AC C0 9D B3 80 0F 6F F5 60 48
-0120 | 82 EF 03 28 E0 D7 85 BD FB CF D1 3D 58 A8 A8 86
-0130 | 40 07 BD 58 5A F7 C7 C1 0A 84 E6 AB F2 80 19 C8
-0140 | F1 48 96 27 22 5B CF 39 C1 88 53 9F B9 AC 77 9B
-0150 | E9 A2 99 B4 96 A7 F5 38 7A BE 61 6C 22 37 F0 50
-0160 | 99 46 94 43 9D CD AF 24 6F 65 08 F5 16 F1 66 7B
-0170 | 6A B7 4F B7 EF 24 CF 77 5B 4C 4B 2F 64 3F 59 5E
-0180 | 55 B4 9D 8F 57 FF 32 E1 0D B0 7A F3
+0000 | 00 00 00 00 00 00 00 00 7C 5B 09 00 6A 28 87 65
+0010 | 78 01 00 00 1F 5F 04 F5 AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D FE 50 01 00 2F 87 6F E3
+0040 | 4B FA 63 A8 50 77 F6 A6 38 5E DC 8F 6A 32 9B 71
+0050 | 54 F8 65 93 B4 66 F4 1E BF 65 71 E4 F3 BE 15 64
+0060 | 65 1B B0 B9 F2 75 5A 8C 44 D8 E6 82 73 0F 0A ED
+0070 | 52 8B A7 03 F0 80 0B 78 8E 65 6A D9 01 DD D5 D5
+0080 | 87 C3 25 B6 01 32 0E 68 78 A1 58 D4 87 76 99 D3
+0090 | A4 1F 50 F3 A2 37 FE 5A A3 55 1B 1B 28 A5 00 2C
+00A0 | 37 D5 E3 AF 0B DA E3 EA DD 93 A8 16 7E 2C 98 F2
+00B0 | 22 8A 32 23 3E 47 63 9C FF CD 64 C5 06 53 C8 B3
+00C0 | FF 59 F5 E0 73 6E 4E 5B E4 07 DF 6C 71 6D 67 2E
+00D0 | 0D B3 48 7E A8 CF A2 A8 35 01 35 87 B3 9C F7 97
+00E0 | 9D D0 78 23 84 1D 19 EB C4 3F EF 8A 99 49 52 D7
+00F0 | 10 DF A5 EE 51 29 BE 13 FE 45 1A 55 E4 87 66 1A
+0100 | F9 0D 39 6C F3 8A 57 4F DD C3 A4 BE A3 8D 13 05
+0110 | 41 47 AD D7 11 9D BC D5 A6 B6 04 8E BE B5 7A DE
+0120 | 7E 2D 70 EE BE 17 58 BC F1 1F 62 44 04 69 B7 BE
+0130 | 80 59 4B BB 95 AF A9 04 96 58 75 77 A2 FE 26 B8
+0140 | 91 A2 D2 31 B4 D9 D3 A9 45 E4 DB E0 1C C6 02 4B
+0150 | 0F 5F CE D0 03 04 35 55 15 A9 F3 56 7C 72 3A 21
+0160 | 64 F3 1E 4E DC B0 DB E5 2F 76 F4 A9 3D 64 95 43
+0170 | DF AE 93 49 A1 F6 51 08 E8 DB 09 AF 5B E8 EE 04
+0180 | 27 71 81 6B 9A 14 86 94 BC D6 99 7D
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 |
-C8A10E0033108765 |
+7C5B09006A288765 |
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 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Value received from server in Step 2 |
encrypted_data |
56, 340 |
-FE5001007C64F61A54D411891A885821 6376D4AF6FF14AF29D44AD55F78464DE 293838217B711789DA714A3F6B0C6BDF D319E0A513E04C02BB3ECB53E1F438C6 1007EF28CD4BE8C2CD308B368FD25CC2 5D9F58F9DA8CDF72D4855D179647F5A1 5AA3805FA6E241F0CD2437ED86632ABF E2B72E66B57624AABE0B8FC5458B7CFA 0852EFFC1B130753B476CF48EE540F8F E6ECC4681A692FDBAC73EBA2B80A80A6 9ABBD6F893F7CC2B83F358E7ED87E2DD 4907A80732888636AE1B5382FAE05E54 8498628E61D50C5765282B27F5A9ADC9 101BF8C53152F6FB67D69B88C958ACC0 9DB3800F6FF5604882EF0328E0D785BD FBCFD13D58A8A8864007BD585AF7C7C1 0A84E6ABF28019C8F1489627225BCF39 C188539FB9AC779BE9A299B496A7F538 7ABE616C2237F050994694439DCDAF24 6F6508F516F1667B6AB74FB7EF24CF77 5B4C4B2F643F595E55B49D8F57FF32E1 0DB07AF3 |
+FE5001002F876FE34BFA63A85077F6A6 385EDC8F6A329B7154F86593B466F41E BF6571E4F3BE1564651BB0B9F2755A8C 44D8E682730F0AED528BA703F0800B78 8E656AD901DDD5D587C325B601320E68 78A158D4877699D3A41F50F3A237FE5A A3551B1B28A5002C37D5E3AF0BDAE3EA DD93A8167E2C98F2228A32233E47639C FFCD64C50653C8B3FF59F5E0736E4E5B E407DF6C716D672E0DB3487EA8CFA2A8 35013587B39CF7979DD07823841D19EB C43FEF8A994952D710DFA5EE5129BE13 FE451A55E487661AF90D396CF38A574F DDC3A4BEA38D13054147ADD7119DBCD5 A6B6048EBEB57ADE7E2D70EEBE1758BC F11F62440469B7BE80594BBB95AFA904 96587577A2FE26B891A2D231B4D9D3A9 45E4DBE01CC6024B0F5FCED003043555 15A9F3567C723A2164F31E4EDCB0DBE5 2F76F4A93D649543DFAE9349A1F65108 E8DB09AF5BE8EE042771816B9A148694 BCD6997D |
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 = 0950F3070E87DCC97997B269F3FD55D5A0F6EC3F0438BC49DD69451AC34662A031D35289521095FDC7DD4E5A93ADD24DBA551A3E7D4BEE6CF26B6544BE38B0F2FAF6351E8E0313FC1E2588B694783409B069D5E5D65B59A7FFBBF0B634B0CF66831A40B5FF50E63A3EBE26CAE622C9E20461163440CE87891FF44A972215A4CA3673C3998742EC689DD4AFE5657E27509F5740F765C37FCCD4D431404A12A2A78DE5C13698CED8C3D1AEDACB938771A3292EFA4F1971ADB1C5A3FC1B9524399A9621A9BC4BD044DC0328F006CD843802FA8C6B249418EF931E5FCEA1249E659C2B8437F78D6E60F715CB91329F219103551FDFE72555ADCD6C5E02E2677DBC69
+auth_key = A48179538AE9C4E366097F7632DCD3F62A295013E858BCAA18846662A67C2F9551B0E45E226ACE6CE7FBE2998B5C53CFA57F498E0609844F120EABD838FA3D468836F77C59AE10DEFEC9CA7105A80E574FDB14255659782B4A29654DC76FFBB29939FDC68F22402A2A98464E6F36909514B58F024964AFBE19235CCF10EC30D2DD387F82786DE4BAF48A055DF934A60AF3CB406FCCE6E2933B8BBC2E7C212716B8A86D05FCC136110FB5C95199505B248235D534A8D65EA6017CB7399A7C2A138D3571FBB31C05D5C911E2F851342FC763E2D22F375EB716EFA7BFC8AE4DD257B90E08F19376BC598E5C9CF5DA60A368234621E307F5C543811F2988FD8CAB54
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 68 69 C1 33 10 87 65
-0010 | 44 00 00 00 34 F7 CB 3B 47 69 58 17 B5 42 7B 73
-0020 | 4C DA 54 C6 41 2E 76 7F 68 85 6B A7 DF A3 4B C3
-0030 | 95 DB A8 31 49 3B E0 83 33 BE 43 29 14 D9 10 F2
-0040 | DC 8B D8 7A D1 3D F5 DF
+0000 | 00 00 00 00 00 00 00 00 01 D4 31 F9 6A 28 87 65
+0010 | A8 00 00 00 34 F7 CB 3B AE E3 68 33 0D 08 E5 0D
+0020 | 8A DF C5 39 8A FB C2 A3 B8 AB F0 5D E7 C6 35 F6
+0030 | D8 4D 0B BE 3A A0 17 2D 19 EB 72 6C 93 38 C8 0C
+0040 | BB 45 F8 31 03 2A F8 E5
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 |
-016869C133108765 |
+01D431F96A288765 |
Message ID generated as specified here » (unixtime() << 32) + (N*4) |
message_length |
16, 4 |
-44000000 (68 in decimal) |
+A8000000 (168 in decimal) |
Message body length |
@@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
nonce |
24, 16 |
-47695817B5427B734CDA54C6412E767F |
+AEE368330D08E50D8ADFC5398AFBC2A3 |
Value generated by client in Step 1 |
server_nonce |
40, 16 |
-68856BA7DFA34BC395DBA831493BE083 |
+B8ABF05DE7C635F6D84D0BBE3AA0172D |
Value received from server in Step 2 |
new_nonce_hash1 |
56, 16 |
-33BE432914D910F2DC8BD87AD13DF5DF |
+19EB726C9338C80CBB45F831032AF8E5 |
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/fragment.com/js/auction.js b/data/web/fragment.com/js/auction.js
index a5cb43cd86..0fdf6e5dfc 100644
--- a/data/web/fragment.com/js/auction.js
+++ b/data/web/fragment.com/js/auction.js
@@ -1048,7 +1048,9 @@ var Assets = {
username: username,
auction: true
}, function(result) {
- if (result.confirm_message) {
+ if (result.error) {
+ return showAlert(result.error);
+ } else if (result.confirm_message) {
showConfirm(result.confirm_message, function() {
doPutToAuction();
}, result.confirm_button);
@@ -1148,7 +1150,9 @@ var Assets = {
username: username,
auction: false
}, function(result) {
- if (result.confirm_message) {
+ if (result.error) {
+ return showAlert(result.error);
+ } else if (result.confirm_message) {
showConfirm(result.confirm_message, function() {
doSellUsername();
}, result.confirm_button);