Update content of files

This commit is contained in:
GitHub Action 2023-12-23 17:00:38 +00:00
parent 59d07d2e07
commit 37f5486698
4 changed files with 214 additions and 211 deletions

View file

@ -89,7 +89,7 @@
<tr>
<td><strong>optional</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.6?<a href="/constructor/true">true</a></td>
<td> </td>
<td>If <strong>not</strong> set, a <code>WEBPAGE_NOT_FOUND</code> RPC error will be emitted if a webpage preview cannot be generated for the specified <code>url</code>; otherwise, no error will be emitted (unless the provided message is also empty, in which case a <code>MESSAGE_EMPTY</code> will be emitted, instead).</td>
</tr>
<tr>
<td><strong>message</strong></td>

View file

@ -84,7 +84,7 @@
<tr>
<td><strong>optional</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.2?<a href="/constructor/true">true</a></td>
<td> </td>
<td>If <strong>not</strong> set, a <code>WEBPAGE_NOT_FOUND</code> RPC error will be emitted if a webpage preview cannot be generated for the specified <code>url</code>; otherwise, no error will be emitted (unless the provided message is also empty, in which case a <code>MESSAGE_EMPTY</code> will be emitted, instead).</td>
</tr>
<tr>
<td><strong>url</strong></td>

View file

@ -84,12 +84,12 @@
<tr>
<td><strong>manual</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.3?<a href="/constructor/true">true</a></td>
<td> </td>
<td>If set, indicates that the URL used for the webpage preview was specified manually using <a href="/constructor/inputMediaWebPage">inputMediaWebPage</a>, and may not be related to any of the URLs specified in the message.</td>
</tr>
<tr>
<td><strong>safe</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.4?<a href="/constructor/true">true</a></td>
<td>If set, the webpage can be opened directly without user confirmation.</td>
<td>If set, the webpage can be opened directly without user confirmation; otherwise, user confirmation is required, showing the exact URL that will be opened.</td>
</tr>
<tr>
<td><strong>webpage</strong></td>
@ -99,7 +99,10 @@
</tbody>
</table>
<h3><a class="anchor" href="#type" id="type" name="type"><i class="anchor-icon"></i></a>Type</h3>
<p><a href="/type/MessageMedia">MessageMedia</a></p></div>
<p><a href="/type/MessageMedia">MessageMedia</a></p>
<h3><a class="anchor" href="#related-pages" id="related-pages" name="related-pages"><i class="anchor-icon"></i></a>Related pages</h3>
<h4><a class="anchor" href="#inputmediawebpage" id="inputmediawebpage" name="inputmediawebpage"><i class="anchor-icon"></i></a><a href="/constructor/inputMediaWebPage">inputMediaWebPage</a></h4>
<p>Specifies options that will be used to generate the link preview for the caption, or even a standalone link preview without an attached message.</p></div>
</div>

View file

@ -53,9 +53,9 @@
<h5><a class="anchor" href="#1-client-sends-query-to-server" id="1-client-sends-query-to-server" name="1-client-sends-query-to-server"><i class="anchor-icon"></i></a>1) Client sends query to server</h5>
<!-- start req_pq_multi -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 64 70 03 00 92 04 87 65
0010 | 14 00 00 00 F1 8E 7E BE CA 3C B3 BE 46 BF BE 4B
0020 | C4 8A 94 6A FB 97 21 54</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 94 E2 02 00 32 10 87 65
0010 | 14 00 00 00 F1 8E 7E BE 47 69 58 17 B5 42 7B 73
0020 | 4C DA 54 C6 41 2E 76 7F</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_pq_multi#be7e8ef1 nonce:int128 = ResPQ;</code></pre>
<table class="table">
@ -77,7 +77,7 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>6470030092048765</code></td>
<td><code>94E2020032108765</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -95,7 +95,7 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Random number</td>
</tr>
</tbody>
@ -104,11 +104,11 @@
<h5><a class="anchor" href="#2-server-sends-response-of-the-form" id="2-server-sends-response-of-the-form" name="2-server-sends-response-of-the-form"><i class="anchor-icon"></i></a>2) Server sends response of the form</h5>
<!-- start resPQ -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 1C E0 C7 92 04 87 65
0010 | 90 00 00 00 63 24 16 05 CA 3C B3 BE 46 BF BE 4B
0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
0030 | C0 EB 3D B2 61 FA E6 C2 08 13 69 3B F7 41 04 85
0040 | FB 00 00 00 15 C4 B5 1C 03 00 00 00 A5 B7 F7 09
<pre><code>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
0050 | 35 5F C3 0B 21 6B E8 6C 02 2B B4 C3 85 FD 64 DE
0060 | 85 1D 9D D0</code></pre>
<p>Payload (de)serialization:</p>
@ -132,13 +132,13 @@
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>011CE0C792048765</code></td>
<td><code>01C0F2BC32108765</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>90000000</code> (144 in decimal)</td>
<td><code>74000000</code> (116 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>0813693BF7410485FB000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1398715092409026043</td>
<td><code>0818B38C1124E99425000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1779920283003098149</td>
<td>Single-byte prefix denoting length, an 8-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -208,22 +208,22 @@
<h4><a class="anchor" href="#proof-of-work" id="proof-of-work" name="proof-of-work"><i class="anchor-icon"></i></a>Proof of work</h4>
<h5><a class="anchor" href="#3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" id="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q" name="3-client-decomposes-pq-into-prime-factors-such-that-p-lt-q"><i class="anchor-icon"></i></a>3) Client decomposes pq into prime factors such that p &lt; q.</h5>
<!-- start pq -->
<pre><code>pq = 1398715092409026043</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1398715092409026043 = 1115785997 * 1253569319</code></p>
<pre><code>p = 1115785997
q = 1253569319</code></pre>
<pre><code>pq = 1779920283003098149</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>1779920283003098149 = 1241013161 * 1434247709</code></p>
<pre><code>p = 1241013161
q = 1434247709</code></pre>
<!-- end pq -->
<h4><a class="anchor" href="#presenting-proof-of-work-server-authentication" id="presenting-proof-of-work-server-authentication" name="presenting-proof-of-work-server-authentication"><i class="anchor-icon"></i></a>Presenting proof of work; Server authentication</h4>
<h5><a class="anchor" href="#4-encrypted-data-payload-generation" id="4-encrypted-data-payload-generation" name="4-encrypted-data-payload-generation"><i class="anchor-icon"></i></a>4) <code>encrypted_data</code> payload generation</h5>
<p>First of all, generate an <code>encrypted_data</code> payload as follows:</p>
<!-- start p_q_inner_data_dc -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 95 5F F5 A9 08 13 69 3B F7 41 04 85 FB 00 00 00
0010 | 04 42 81 8B 0D 00 00 00 04 4A B7 F3 27 00 00 00
0020 | CA 3C B3 BE 46 BF BE 4B C4 8A 94 6A FB 97 21 54
0030 | 51 13 E1 CE DD 81 B1 3A C0 EB 3D B2 61 FA E6 C2
0040 | 8E B5 F8 40 10 A0 D7 CA B5 FD 63 EF 27 46 19 58
0050 | B7 97 E6 38 3C 0C CA 82 19 50 73 B5 EC 0B 5D 54
<pre><code>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
0060 | 02 00 00 00</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>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;</code></pre>
@ -246,37 +246,37 @@ q = 1253569319</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>0813693BF7410485FB000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1398715092409026043</td>
<td><code>0818B38C1124E99425000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1779920283003098149</td>
<td>Single-byte prefix denoting length, 8-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>p</td>
<td>16, 8</td>
<td><code>0442818B0D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1115785997</td>
<td><code>0449F85BA9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1241013161</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>24, 8</td>
<td><code>044AB7F327000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1253569319</td>
<td><code>04557CE21D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1434247709</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>nonce</td>
<td>32, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>8EB5F84010A0D7CAB5FD63EF27461958</code> <code>B797E6383C0CCA82195073B5EC0B5D54</code></td>
<td><code>02F08F130DB281B88C6EB1DC6DEB2596</code> <code>EF1CF11FAFA50D464BCC2BFC292E0756</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1253569319</code></pre>
<p>The serialization of <em>P_Q_inner_data</em> produces <strong>data</strong>, which is used to generate <strong>encrypted_data</strong> as specified in <a href="/mtproto/auth_key">step 4.1</a>.<br>
These are the inputs to the algorithm specified in <a href="/mtproto/auth_key">step 4.1</a>:</p>
<!-- start p_q_inner_data_input -->
<pre><code>data = 955FF5A90813693BF7410485FB0000000442818B0D000000044AB7F327000000CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C28EB5F84010A0D7CAB5FD63EF27461958B797E6383C0CCA82195073B5EC0B5D5402000000
random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E37841DFA26B084E8560E412483E60C49EB345A5D73011785D1C67A25B3DBD1AEE5F8AFADC8BA6C1F2AE2E60313F097F5C439CBC0FDF2157746435C97462C312</code></pre>
<pre><code>data = 955FF5A90818B38C1124E994250000000449F85BA900000004557CE21D00000047695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08302F08F130DB281B88C6EB1DC6DEB2596EF1CF11FAFA50D464BCC2BFC292E075602000000
random_padding_bytes = 4401F002BF6653C04A3399A454A8CFCF18DAB0EEC057420AC1642141C62422C66AFC954711532C545C49D522B470AE0838F155FA11E10E033AE5BB1ED0614AB081888902F855794EFBF9E799A2350AD289C8BD093F6869CE82CFA97D</code></pre>
<!-- end p_q_inner_data_input -->
<p>And this is the output:</p>
<!-- start p_q_inner_data_output -->
<pre><code>encrypted_data = 79DD77DB50E0ED4052964B50F551D069639EA1C25B28728D03CE8C723DAC707D6C377DE081CFA27CD75AEC34E90959F498CC061AA5BBD75E516344F1919EA60F2AA9C13827B4A5B27DED555815509D13CAF75DE3BC225A9913FEE0A2ED070348ADCE86AE87B5C4A87144AE76F16389436AE95E96FF14BB36534ED4B5BE7C7B9F7C32847C9282C0BC56669EE02F6EB7B385BD3DF6C7EF1F727A0308C3F57E2566512EB7D7C7A8C0B5EF64E26CAF6BF216500A3842463184071C40425A2EB35440FD4DD789FA08050788C53C9D63F037D980E70A8C05E2FD2DD39C6F2DBAED1B65D7496E850A7851A9B4A056C4091915DBDBD8858C12CA55836312867BAB67A4F7</code></pre>
<pre><code>encrypted_data = 991ABF8F3E61EAE77965DA04E48EA28523FFB2E94091DA3A4A78A3287F5ADB82CE3F39E92EC6EC45B556B0BE08F467D7E49E444A770661E8F3720805D9D06377C777CAE0B725FDB3E2FAB9A203B44B5E2AD34135208728CE3839876159D3C89BF82200E7089165F1B44A408474650E98C70F5F06C2F4FAF1BF1FECF576F514B8CCC84F807FD198DD3EEF20DEED0CB65D7FA61CBFDBC450FB1F21AF8F0CD266D3D5426AD0A12E21A6EA19D27818E5EDC169363551810C6D3987FA66E79E63A7912E46B4AE1F3924CF973223B18AF545F9BFB5B3A75A4E27BB02360C66803EC3C48FD39B080C3776C891E2564DC90FE7664D0C5F85CDB8A0302B5C0DEC7D0E34ED</code></pre>
<!-- end p_q_inner_data_output -->
<p>The length of the final string is 256 bytes.</p>
<h5><a class="anchor" href="#5-send-req-dh-params-query-with-generated-encrypted-data" id="5-send-req-dh-params-query-with-generated-encrypted-data" name="5-send-req-dh-params-query-with-generated-encrypted-data"><i class="anchor-icon"></i></a>5) Send req_DH_params query with generated <code>encrypted_data</code></h5>
<!-- start req_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 8C DE 09 00 92 04 87 65
0010 | 40 01 00 00 BE E4 12 D7 CA 3C B3 BE 46 BF BE 4B
0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
0030 | C0 EB 3D B2 61 FA E6 C2 04 42 81 8B 0D 00 00 00
0040 | 04 4A B7 F3 27 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 79 DD 77 DB 50 E0 ED 40 52 96 4B 50
0060 | F5 51 D0 69 63 9E A1 C2 5B 28 72 8D 03 CE 8C 72
0070 | 3D AC 70 7D 6C 37 7D E0 81 CF A2 7C D7 5A EC 34
0080 | E9 09 59 F4 98 CC 06 1A A5 BB D7 5E 51 63 44 F1
0090 | 91 9E A6 0F 2A A9 C1 38 27 B4 A5 B2 7D ED 55 58
00A0 | 15 50 9D 13 CA F7 5D E3 BC 22 5A 99 13 FE E0 A2
00B0 | ED 07 03 48 AD CE 86 AE 87 B5 C4 A8 71 44 AE 76
00C0 | F1 63 89 43 6A E9 5E 96 FF 14 BB 36 53 4E D4 B5
00D0 | BE 7C 7B 9F 7C 32 84 7C 92 82 C0 BC 56 66 9E E0
00E0 | 2F 6E B7 B3 85 BD 3D F6 C7 EF 1F 72 7A 03 08 C3
00F0 | F5 7E 25 66 51 2E B7 D7 C7 A8 C0 B5 EF 64 E2 6C
0100 | AF 6B F2 16 50 0A 38 42 46 31 84 07 1C 40 42 5A
0110 | 2E B3 54 40 FD 4D D7 89 FA 08 05 07 88 C5 3C 9D
0120 | 63 F0 37 D9 80 E7 0A 8C 05 E2 FD 2D D3 9C 6F 2D
0130 | BA ED 1B 65 D7 49 6E 85 0A 78 51 A9 B4 A0 56 C4
0140 | 09 19 15 DB DB D8 85 8C 12 CA 55 83 63 12 86 7B
0150 | AB 67 A4 F7</code></pre>
<pre><code>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</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>req_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;</code></pre>
<table class="table">
@ -345,7 +345,7 @@ random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>8CDE090092048765</code></td>
<td><code>48510A0032108765</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -363,25 +363,25 @@ random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>0442818B0D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1115785997</td>
<td><code>0449F85BA9000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1241013161</td>
<td>First prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
<td>q</td>
<td>64, 8</td>
<td><code>044AB7F327000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1253569319</td>
<td><code>04557CE21D000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1434247709</td>
<td>Second prime cofactor: single-byte prefix denoting length, 4-byte string, and three bytes of padding</td>
</tr>
<tr>
@ -393,7 +393,7 @@ random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE00010079DD77DB50E0ED4052964B50</code> <code>F551D069639EA1C25B28728D03CE8C72</code> <code>3DAC707D6C377DE081CFA27CD75AEC34</code> <code>E90959F498CC061AA5BBD75E516344F1</code> <code>919EA60F2AA9C13827B4A5B27DED5558</code> <code>15509D13CAF75DE3BC225A9913FEE0A2</code> <code>ED070348ADCE86AE87B5C4A87144AE76</code> <code>F16389436AE95E96FF14BB36534ED4B5</code> <code>BE7C7B9F7C32847C9282C0BC56669EE0</code> <code>2F6EB7B385BD3DF6C7EF1F727A0308C3</code> <code>F57E2566512EB7D7C7A8C0B5EF64E26C</code> <code>AF6BF216500A3842463184071C40425A</code> <code>2EB35440FD4DD789FA08050788C53C9D</code> <code>63F037D980E70A8C05E2FD2DD39C6F2D</code> <code>BAED1B65D7496E850A7851A9B4A056C4</code> <code>091915DBDBD8858C12CA55836312867B</code><br> <code>AB67A4F7</code></td>
<td><code>FE000100991ABF8F3E61EAE77965DA04</code> <code>E48EA28523FFB2E94091DA3A4A78A328</code> <code>7F5ADB82CE3F39E92EC6EC45B556B0BE</code> <code>08F467D7E49E444A770661E8F3720805</code> <code>D9D06377C777CAE0B725FDB3E2FAB9A2</code> <code>03B44B5E2AD34135208728CE38398761</code> <code>59D3C89BF82200E7089165F1B44A4084</code> <code>74650E98C70F5F06C2F4FAF1BF1FECF5</code> <code>76F514B8CCC84F807FD198DD3EEF20DE</code> <code>ED0CB65D7FA61CBFDBC450FB1F21AF8F</code> <code>0CD266D3D5426AD0A12E21A6EA19D278</code> <code>18E5EDC169363551810C6D3987FA66E7</code> <code>9E63A7912E46B4AE1F3924CF973223B1</code> <code>8AF545F9BFB5B3A75A4E27BB02360C66</code> <code>803EC3C48FD39B080C3776C891E2564D</code> <code>C90FE7664D0C5F85CDB8A0302B5C0DEC</code><br> <code>7D0E34ED</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E
<h5><a class="anchor" href="#6-server-responds-with" id="6-server-responds-with" name="6-server-responds-with"><i class="anchor-icon"></i></a>6) Server responds with:</h5>
<!-- start server_DH_params_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 F4 CC 88 93 04 87 65
0010 | D0 02 00 00 5C 07 E8 D0 CA 3C B3 BE 46 BF BE 4B
0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
0030 | C0 EB 3D B2 61 FA E6 C2 FE 50 02 00 43 3C C8 EE
0040 | C7 42 7A 92 B1 A1 69 07 07 75 A0 9A 7D F0 45 CC
0050 | 85 1C E6 F3 4D 34 4F E7 EE 5B B7 F6 E3 4D 8E 48
0060 | A4 34 21 5B 46 5D C2 E2 18 D5 EF 09 6F 24 A4 7C
0070 | 3A 00 A1 BD 1A 90 4E CC 20 80 8A 2C 6E C4 52 BB
0080 | 1F EC E6 98 6A 15 5A DA 13 29 33 72 9F 55 74 7F
0090 | 97 5B 2A 27 5B EC 43 82 F3 FE DC AC 18 F6 15 9C
00A0 | AD 4F 4D F5 EC D5 3B B8 F7 B5 19 DD 46 03 55 32
00B0 | 78 ED 44 08 BD EA 2E 11 89 4F 73 2F 0C 19 BB F3
00C0 | 85 E6 82 19 21 41 92 98 86 6D C1 37 01 42 2E 62
00D0 | D1 53 0E 66 AB 06 84 08 DC 0C BA 66 E7 BB B3 42
00E0 | 2C CA A0 EB 4B 80 DE EF B3 41 54 F2 D3 A4 FF 64
00F0 | 77 18 CA D6 86 46 59 F3 C8 97 42 27 3B 6E 3B 8A
0100 | B5 ED 26 89 3F CE EA 2B 0A DD 3E 9D 2F C3 31 31
0110 | 31 35 02 50 8E 3B 4A 5A 9D B4 C4 47 16 6B FB 59
0120 | 45 E0 DB 2A D7 5D AD A8 BF 30 CE CA A5 F8 F1 55
0130 | E6 A6 B2 2E C3 0B 71 4F 91 26 79 45 A6 6F A1 A8
0140 | EE 33 57 33 AD C5 C4 42 A6 BD 59 3A 74 DD DB 46
0150 | D7 33 27 9E 07 79 23 FF A1 3D B8 B3 B5 72 DF D1
0160 | C1 2B B6 AF FB F1 B5 F6 79 C2 C3 49 80 E4 FD F8
0170 | 6B EF F6 3F 79 4F 73 E5 2A DD E3 57 66 DC AB 85
0180 | BB 4D BB 44 11 73 BE 06 F6 3C 4B BB 06 E4 10 EC
0190 | 01 9C 11 2A 83 45 F9 CB 04 94 36 B9 CF B2 DF E3
01A0 | 8C CD F5 70 05 5E EF 61 F4 F6 0A 22 16 4C F9 F2
01B0 | CD A7 57 83 53 CF 20 0A 3A AD AE 5E 35 E3 0B 29
01C0 | 2F E5 50 65 75 37 51 86 42 79 C0 6F 0F 2D 35 4E
01D0 | 0F 78 6C 9F C0 80 67 23 5F C8 CA F3 A7 45 D0 7A
01E0 | D8 AC 02 92 7C 12 71 79 1D 3E 53 13 C9 10 30 44
01F0 | 28 43 43 9F 54 36 74 90 54 F0 9A E9 65 D3 40 EE
0200 | EB B6 35 5B B5 C2 73 B4 65 A4 F9 16 66 E0 C0 04
0210 | 3E ED A1 CA 20 58 F7 6B 88 BD C9 32 94 CC 37 0C
0220 | 8C 6B F6 1A 85 FF A4 60 23 DB 16 DA CF 92 3B B1
0230 | 25 DB A5 90 AD 80 8B D9 9C 40 4C 1B B6 59 71 B0
0240 | F1 40 30 E6 1D A5 DC 12 90 A8 61 8C 84 EC 67 F0
0250 | 83 76 12 B5 61 66 10 85 21 0F 90 78 A7 BB EB 4C
0260 | 14 EE 10 AC 6A 02 C5 9D AB 2F 12 48 FA 9E F0 5C
0270 | DD 37 C7 2C 40 7E A4 76 5A 8F EB 06 FB BD 48 D1
0280 | 32 B4 2B 0D E4 DB E0 71 8A 8A CA 2A</code></pre>
<pre><code>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</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>server_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;</code></pre>
<table class="table">
@ -464,13 +464,13 @@ random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01F4CC8893048765</code></td>
<td><code>0158406C33108765</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>D0020000</code> (720 in decimal)</td>
<td><code>E4020000</code> (740 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE500200433CC8EEC7427A92B1A16907</code> <code>0775A09A7DF045CC851CE6F34D344FE7</code> <code>EE5BB7F6E34D8E48A434215B465DC2E2</code> <code>18D5EF096F24A47C3A00A1BD1A904ECC</code> <code>20808A2C6EC452BB1FECE6986A155ADA</code> <code>132933729F55747F975B2A275BEC4382</code> <code>F3FEDCAC18F6159CAD4F4DF5ECD53BB8</code> <code>F7B519DD4603553278ED4408BDEA2E11</code> <code>894F732F0C19BBF385E6821921419298</code> <code>866DC13701422E62D1530E66AB068408</code> <code>DC0CBA66E7BBB3422CCAA0EB4B80DEEF</code> <code>B34154F2D3A4FF647718CAD6864659F3</code> <code>C89742273B6E3B8AB5ED26893FCEEA2B</code> <code>0ADD3E9D2FC33131313502508E3B4A5A</code> <code>9DB4C447166BFB5945E0DB2AD75DADA8</code> <code>BF30CECAA5F8F155E6A6B22EC30B714F</code> <code>91267945A66FA1A8EE335733ADC5C442</code> <code>A6BD593A74DDDB46D733279E077923FF</code> <code>A13DB8B3B572DFD1C12BB6AFFBF1B5F6</code> <code>79C2C34980E4FDF86BEFF63F794F73E5</code> <code>2ADDE35766DCAB85BB4DBB441173BE06</code> <code>F63C4BBB06E410EC019C112A8345F9CB</code> <code>049436B9CFB2DFE38CCDF570055EEF61</code> <code>F4F60A22164CF9F2CDA7578353CF200A</code> <code>3AADAE5E35E30B292FE5506575375186</code> <code>4279C06F0F2D354E0F786C9FC0806723</code> <code>5FC8CAF3A745D07AD8AC02927C127179</code> <code>1D3E5313C91030442843439F54367490</code> <code>54F09AE965D340EEEBB6355BB5C273B4</code> <code>65A4F91666E0C0043EEDA1CA2058F76B</code> <code>88BDC93294CC370C8C6BF61A85FFA460</code> <code>23DB16DACF923BB125DBA590AD808BD9</code> <code>9C404C1BB65971B0F14030E61DA5DC12</code> <code>90A8618C84EC67F0837612B561661085</code> <code>210F9078A7BBEB4C14EE10AC6A02C59D</code> <code>AB2F1248FA9EF05CDD37C72C407EA476</code> <code>5A8FEB06FBBD48D132B42B0DE4DBE071</code><br> <code>8A8ACA2A</code></td>
<td><code>FE500200570189B9EB358BDFC4B5A33C</code> <code>0072964055DF6912FB841B3F8597A749</code> <code>0E4744A172625AB3101B84BF224D3B65</code> <code>24652A707805D4A4D76A70FD31B92823</code> <code>E0CCDB1FB3B4CB00A53F12BC329AF8EF</code> <code>58AF68EAEA61FB842B2FA708A81C8F53</code> <code>F879D598C0C9D255EE720622502A1EE5</code> <code>5469677701D87D285E0039163D0AAF28</code> <code>2F8591890A236F77A099852BC42A68D5</code> <code>E7E28DF14D610AFC40CEDC565CBF6162</code> <code>1A6208220EA583B4A2CF2A3338C53362</code> <code>E5B1BCF21CB3FB7AABF723BFBAED9B6D</code> <code>FFA20BCB127924568A26AE2557D634C3</code> <code>9ACBE7194896C43E2A3A59E69566C08F</code> <code>75D5BE9FF332283DBE8544C30B2255E9</code> <code>31715C6DB4A4CB725C5743E1A9EC098F</code> <code>90C975E56BB9B3ACAC0BFBACEB3C7E0C</code> <code>AB59C970D293A697F75F532BBE8E32F2</code> <code>76E5F379E89572CC6832B96DB572D39A</code> <code>F714EEF4FB926D5D2BE1344D9E4F506F</code> <code>C5746CC3A1F87BE7213FEE0E9E32A494</code> <code>06BC48DB246D410E1472494F763194B9</code> <code>27C92F8ACFAC2108FF8482ACCB9DA4BE</code> <code>4FEF3CB35AD1EBB2B7806ACE2054604D</code> <code>82D06154F7CD97D820A97EE50AD37558</code> <code>BC369E7524F2C0B5D9709BD7D442653B</code> <code>0260EBF41C682ABD5199468AE70A32B1</code> <code>4B5303F152FB2F641A394F2D8211B495</code> <code>FE4B6F81B936B3565C7318B8A9E51E9F</code> <code>6C8E0A39156AA65795B51C4C2E129204</code> <code>86E4BEA46CE0A1744C47003FBADE95A3</code> <code>857A06CE104E83037F2B78880EB2BABF</code> <code>74A09BD68970D8788AF6FB67FDEE8D5D</code> <code>8F7BCED793728F89A6263E3013B3288A</code> <code>0EDE571F61CD3C2BBA2798E3DC93F3F4</code> <code>0B26212929604AFCC1A9CD84DB5E2B68</code> <code>A184C92846581F30BD2737D57B79AE40</code><br> <code>BC988A30</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 6A85E15225BF1E9E3125CAC038C6006178BD90B1A53DDE37E51F5AB7E
<!-- end server_DH_params_ok -->
<p>Decrypt <code>encrypted_answer</code> using the reverse of the process specified in <a href="/mtproto/auth_key#6-server-responds-with">step 6</a>:</p>
<!-- start server_DH_inner_data_input -->
<pre><code>encrypted_answer = 433CC8EEC7427A92B1A169070775A09A7DF045CC851CE6F34D344FE7EE5BB7F6E34D8E48A434215B465DC2E218D5EF096F24A47C3A00A1BD1A904ECC20808A2C6EC452BB1FECE6986A155ADA132933729F55747F975B2A275BEC4382F3FEDCAC18F6159CAD4F4DF5ECD53BB8F7B519DD4603553278ED4408BDEA2E11894F732F0C19BBF385E6821921419298866DC13701422E62D1530E66AB068408DC0CBA66E7BBB3422CCAA0EB4B80DEEFB34154F2D3A4FF647718CAD6864659F3C89742273B6E3B8AB5ED26893FCEEA2B0ADD3E9D2FC33131313502508E3B4A5A9DB4C447166BFB5945E0DB2AD75DADA8BF30CECAA5F8F155E6A6B22EC30B714F91267945A66FA1A8EE335733ADC5C442A6BD593A74DDDB46D733279E077923FFA13DB8B3B572DFD1C12BB6AFFBF1B5F679C2C34980E4FDF86BEFF63F794F73E52ADDE35766DCAB85BB4DBB441173BE06F63C4BBB06E410EC019C112A8345F9CB049436B9CFB2DFE38CCDF570055EEF61F4F60A22164CF9F2CDA7578353CF200A3AADAE5E35E30B292FE55065753751864279C06F0F2D354E0F786C9FC08067235FC8CAF3A745D07AD8AC02927C1271791D3E5313C91030442843439F5436749054F09AE965D340EEEBB6355BB5C273B465A4F91666E0C0043EEDA1CA2058F76B88BDC93294CC370C8C6BF61A85FFA46023DB16DACF923BB125DBA590AD808BD99C404C1BB65971B0F14030E61DA5DC1290A8618C84EC67F0837612B561661085210F9078A7BBEB4C14EE10AC6A02C59DAB2F1248FA9EF05CDD37C72C407EA4765A8FEB06FBBD48D132B42B0DE4DBE0718A8ACA2A
tmp_aes_key = B737C0FF1F5F66D10FC79BF85AF196E6CE551ED1F7C95F0820904BDD78399F05
tmp_aes_iv = 9D521F3A9D1F9F59A7E832D00746A6DB30271078B445C4ACE53CD8F18EB5F840</code></pre>
<pre><code>encrypted_answer = 570189B9EB358BDFC4B5A33C0072964055DF6912FB841B3F8597A7490E4744A172625AB3101B84BF224D3B6524652A707805D4A4D76A70FD31B92823E0CCDB1FB3B4CB00A53F12BC329AF8EF58AF68EAEA61FB842B2FA708A81C8F53F879D598C0C9D255EE720622502A1EE55469677701D87D285E0039163D0AAF282F8591890A236F77A099852BC42A68D5E7E28DF14D610AFC40CEDC565CBF61621A6208220EA583B4A2CF2A3338C53362E5B1BCF21CB3FB7AABF723BFBAED9B6DFFA20BCB127924568A26AE2557D634C39ACBE7194896C43E2A3A59E69566C08F75D5BE9FF332283DBE8544C30B2255E931715C6DB4A4CB725C5743E1A9EC098F90C975E56BB9B3ACAC0BFBACEB3C7E0CAB59C970D293A697F75F532BBE8E32F276E5F379E89572CC6832B96DB572D39AF714EEF4FB926D5D2BE1344D9E4F506FC5746CC3A1F87BE7213FEE0E9E32A49406BC48DB246D410E1472494F763194B927C92F8ACFAC2108FF8482ACCB9DA4BE4FEF3CB35AD1EBB2B7806ACE2054604D82D06154F7CD97D820A97EE50AD37558BC369E7524F2C0B5D9709BD7D442653B0260EBF41C682ABD5199468AE70A32B14B5303F152FB2F641A394F2D8211B495FE4B6F81B936B3565C7318B8A9E51E9F6C8E0A39156AA65795B51C4C2E12920486E4BEA46CE0A1744C47003FBADE95A3857A06CE104E83037F2B78880EB2BABF74A09BD68970D8788AF6FB67FDEE8D5D8F7BCED793728F89A6263E3013B3288A0EDE571F61CD3C2BBA2798E3DC93F3F40B26212929604AFCC1A9CD84DB5E2B68A184C92846581F30BD2737D57B79AE40BC988A30
tmp_aes_key = 05EE1D4D6ADC2782A7ACECACA3A6559E1784F016F92904133459FC8A893EB7AE
tmp_aes_iv = 048BD652499FBF9CDA0F2C1FA72119F1E64C3B9B4A764020165077B702F08F13</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = EB2CF1723BEA9B28122FFCFCDF9811145C88DBC4BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010023DC8DF513A8FC95CAD3AEB05CD826F0883079AFB9E8B38FDE01D82732504F539EB893573D5F24E679C528983A14ECD297AF40336A847A1CECA677B02668094D9945E3D4958EDFB92BA516460825E855781E82DF13C39D2326EC81F5FD907D320B532ECAB643F7061E7A7D9BFCB3A8CB527B907F6CCDEDB5F4682DB7248F0074A4B815A5814B53D7A6A62DB0B4164B068AF9810AE3DF64100BCE4EA19FEDB456EE968FDC7C5ACE5C5906A268C03D2C83FF2BD2F2C48B2886FE4727D8BEBCDDAE4899EB491CB5F1C178901956276540DDCB72E48C3F9B56D84AA24FDFF4A24F6D026228FA18792D1F333D9B188CCF9E921CEC8ECAB9F464A7BCB035430549F7DF930487653CB8702FC7B8DB1D
answer = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C203000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010023DC8DF513A8FC95CAD3AEB05CD826F0883079AFB9E8B38FDE01D82732504F539EB893573D5F24E679C528983A14ECD297AF40336A847A1CECA677B02668094D9945E3D4958EDFB92BA516460825E855781E82DF13C39D2326EC81F5FD907D320B532ECAB643F7061E7A7D9BFCB3A8CB527B907F6CCDEDB5F4682DB7248F0074A4B815A5814B53D7A6A62DB0B4164B068AF9810AE3DF64100BCE4EA19FEDB456EE968FDC7C5ACE5C5906A268C03D2C83FF2BD2F2C48B2886FE4727D8BEBCDDAE4899EB491CB5F1C178901956276540DDCB72E48C3F9B56D84AA24FDFF4A24F6D026228FA18792D1F333D9B188CCF9E921CEC8ECAB9F464A7BCB035430549F7DF930487653CB8702FC7B8DB1D</code></pre>
<pre><code>answer_with_hash = 9103528EB5C8775E57049EFE748C5200F6145C2DBA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010042EDEADD1E44E75004AF29E10CD8130FAF926023DC51CE79B3FD523715CBEE6218002D5F6F42E7C38F241326A49C89B2ABEE867A69459FC3520D68B5A6A313E967B6765C221B120FEE2891654DC43E03945AF26F0EC5A367C93A9837C551C2B4F219605E938708E3C2365E8F8517FDDA1D80B22EBA9905B84332593E8E0F4FA7D3E9F03FDAA1EE7271B87EA34CAB0AFF2B60788853A41907704B4328ABF5CF11BEC74DF0B29B1EE2C123430A36DE56B9261CD777B5951763A56136620CBE37988FA0C4E059844C787AD4BA1F0D2478FF1E5BBE8DC570B74742EC53AF06FA210BEC9B2B1A3FDC9B1FE765BA54C1F56CB7A8F7D86F040E51837E96F21DB91F5981331087655149ACCDB088F8EF
answer = BA0D89B547695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE08303000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010042EDEADD1E44E75004AF29E10CD8130FAF926023DC51CE79B3FD523715CBEE6218002D5F6F42E7C38F241326A49C89B2ABEE867A69459FC3520D68B5A6A313E967B6765C221B120FEE2891654DC43E03945AF26F0EC5A367C93A9837C551C2B4F219605E938708E3C2365E8F8517FDDA1D80B22EBA9905B84332593E8E0F4FA7D3E9F03FDAA1EE7271B87EA34CAB0AFF2B60788853A41907704B4328ABF5CF11BEC74DF0B29B1EE2C123430A36DE56B9261CD777B5951763A56136620CBE37988FA0C4E059844C787AD4BA1F0D2478FF1E5BBE8DC570B74742EC53AF06FA210BEC9B2B1A3FDC9B1FE765BA54C1F56CB7A8F7D86F040E51837E96F21DB91F5981331087655149ACCDB088F8EF</code></pre>
<!-- end server_DH_inner_data_output -->
<!-- start server_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | BA 0D 89 B5 CA 3C B3 BE 46 BF BE 4B C4 8A 94 6A
0010 | FB 97 21 54 51 13 E1 CE DD 81 B1 3A C0 EB 3D B2
0020 | 61 FA E6 C2 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>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
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 = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C
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 | 23 DC 8D F5 13 A8 FC 95 CA D3 AE B0 5C D8 26 F0
0140 | 88 30 79 AF B9 E8 B3 8F DE 01 D8 27 32 50 4F 53
0150 | 9E B8 93 57 3D 5F 24 E6 79 C5 28 98 3A 14 EC D2
0160 | 97 AF 40 33 6A 84 7A 1C EC A6 77 B0 26 68 09 4D
0170 | 99 45 E3 D4 95 8E DF B9 2B A5 16 46 08 25 E8 55
0180 | 78 1E 82 DF 13 C3 9D 23 26 EC 81 F5 FD 90 7D 32
0190 | 0B 53 2E CA B6 43 F7 06 1E 7A 7D 9B FC B3 A8 CB
01A0 | 52 7B 90 7F 6C CD ED B5 F4 68 2D B7 24 8F 00 74
01B0 | A4 B8 15 A5 81 4B 53 D7 A6 A6 2D B0 B4 16 4B 06
01C0 | 8A F9 81 0A E3 DF 64 10 0B CE 4E A1 9F ED B4 56
01D0 | EE 96 8F DC 7C 5A CE 5C 59 06 A2 68 C0 3D 2C 83
01E0 | FF 2B D2 F2 C4 8B 28 86 FE 47 27 D8 BE BC DD AE
01F0 | 48 99 EB 49 1C B5 F1 C1 78 90 19 56 27 65 40 DD
0200 | CB 72 E4 8C 3F 9B 56 D8 4A A2 4F DF F4 A2 4F 6D
0210 | 02 62 28 FA 18 79 2D 1F 33 3D 9B 18 8C CF 9E 92
0220 | 1C EC 8E CA B9 F4 64 A7 BC B0 35 43 05 49 F7 DF
0230 | 93 04 87 65</code></pre>
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</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>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;</code></pre>
<table class="table">
@ -570,13 +570,13 @@ answer = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE00010023DC8DF513A8FC95CAD3AEB0</code> <code>5CD826F0883079AFB9E8B38FDE01D827</code> <code>32504F539EB893573D5F24E679C52898</code> <code>3A14ECD297AF40336A847A1CECA677B0</code> <code>2668094D9945E3D4958EDFB92BA51646</code> <code>0825E855781E82DF13C39D2326EC81F5</code> <code>FD907D320B532ECAB643F7061E7A7D9B</code> <code>FCB3A8CB527B907F6CCDEDB5F4682DB7</code> <code>248F0074A4B815A5814B53D7A6A62DB0</code> <code>B4164B068AF9810AE3DF64100BCE4EA1</code> <code>9FEDB456EE968FDC7C5ACE5C5906A268</code> <code>C03D2C83FF2BD2F2C48B2886FE4727D8</code> <code>BEBCDDAE4899EB491CB5F1C178901956</code> <code>276540DDCB72E48C3F9B56D84AA24FDF</code> <code>F4A24F6D026228FA18792D1F333D9B18</code> <code>8CCF9E921CEC8ECAB9F464A7BCB03543</code><br> <code>0549F7DF</code></td>
<td><code>FE00010042EDEADD1E44E75004AF29E1</code> <code>0CD8130FAF926023DC51CE79B3FD5237</code> <code>15CBEE6218002D5F6F42E7C38F241326</code> <code>A49C89B2ABEE867A69459FC3520D68B5</code> <code>A6A313E967B6765C221B120FEE289165</code> <code>4DC43E03945AF26F0EC5A367C93A9837</code> <code>C551C2B4F219605E938708E3C2365E8F</code> <code>8517FDDA1D80B22EBA9905B84332593E</code> <code>8E0F4FA7D3E9F03FDAA1EE7271B87EA3</code> <code>4CAB0AFF2B60788853A41907704B4328</code> <code>ABF5CF11BEC74DF0B29B1EE2C123430A</code> <code>36DE56B9261CD777B5951763A5613662</code> <code>0CBE37988FA0C4E059844C787AD4BA1F</code> <code>0D2478FF1E5BBE8DC570B74742EC53AF</code> <code>06FA210BEC9B2B1A3FDC9B1FE765BA54</code> <code>C1F56CB7A8F7D86F040E51837E96F21D</code><br> <code>B91F5981</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>93048765</code> (1703347347 in decimal)</td>
<td><code>33108765</code> (1703350323 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C
<h5><a class="anchor" href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" id="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message" name="7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message"><i class="anchor-icon"></i></a>7) Client computes random 2048-bit number <em>b</em> (using a sufficient amount of entropy) and sends the server a message</h5>
<p>First, generate a secure random 2048-bit number b:</p>
<!-- start b -->
<pre><code>b = 5A6E9FC81B5A8032C932C753A816D1FAF1E359836B3902D5BB10AC7CB367594718E116644745B5CBA386FAB387E2EC6B913417F185C83BE16AF2E9E216B27796E30895FC59BE1BF06B8D8D53DB2D79C14E8DC0575E08D386EB2785C487E7182D57631B7A3F1E3DB077658322C692CDAC0218D7862636C617B1757BAC7BE9376489AC4E5788982491993BE0A9648475F56E04B53AFF1CB0CCC13AF554F1226626032B30165B3D04332F9DA6B02146C6495821ACE8CFDF52AB38323F2DE3808C7B21147C369F5AD58BB9457C9BDB0E6510DF0E7BBBD2E0341D9A36C641C2D72507577DDD8AD291732772BF4CF9DF239D753F384D6696D21C82C13713D07F23D806</code></pre>
<pre><code>b = 67D188F56A5AA505D237103E8999DCAFDE21A01A445E754AA3062300356F1F3045C4F01FA1A25888D4B161B7B49E3B64852F05FE62B44597DA775380EB5A9D5824632273AE824B62AEFF39E8F1E35BD57B6345689F784F701F05AFBF3D2DDF2C0E5B220D1C61A2AD57E0EE28DEB43C5BDAFBEF5A344A92F67FFEFBFA54AD061E9A6D9CD551F97D6D50037CCEEF39FC7922A0E88D303724E5399130874CD4B70AE22A542D76710A4039D4024500D23F4655F471FC253BECA197B7D591BC80EB9480DA265F87FD069C7369D59049FF50B85920F372CC652BE7F6684BE85AF944FE1C4349E129229299573F4D40CD2EDCEF48196E0AC839AEF92DC21DD71A43E148</code></pre>
<!-- end b -->
<p>Then compute <code>g_b = pow(g, b) mod dh_prime</code></p>
<!-- start g_b -->
<pre><code>g_b = 8C378DF170A0BD59A6D81640CE292BA73136F79D8D00776C70DE5BA0DEFD09F1A42C18EA71D02A6E3079B294F43751426516E7B40A5B58AEED3AB8FA8B2DBC41A45CA33E37827F15D15AA44375120D243E2E5DB4FD352AC256F5EF096045B8BFEC4C322C5857F232F0BCFF6CAE2220E73BDE716B81E5D147256A409A9494DEB21B30AF3172EDC931DCD3766C58FC3F460191F56BFC62E09C1D23FFC50D3A024CC86BA8E7FAE9CAE8C91DBD4E536F54C4F8218CFB8ECAC2A71C81224267D88663377462F0635DDC03802C2D0F22FB75D99F32A3D911B33C03FD80CA1A5D13BBB3E082BFE67C1DD3D2FB68D2B8A30910ECF18D1BB9E11E4F1288087B97A3E87F83</code></pre>
<pre><code>g_b = 5D4648B25436A0796DC974DBFBB042EA052B73223250909975CCA768D5F0AC614ECF05EFBD50DB9106251F056E81776D485D622C745CDB3DEE307FAFE8AC3B2FE7B9696FD8166C0846738191918D488D35B630BB6DE978D72F71ABFA1CF02F25F1B19A56FE646F0D10EC0FBA95F4B1746C67FCD642806012DC67911D64DAC64F06E0F947F257B67B4DB7E1C58BB408607EEAEC38B2597F36D2580A257336EB5808863DE448F826A02CDFCCA84A2731B29C03E9D6D4C3AF23C9D722A98FD35CB3D654CC5F1DDA90B91653B9B47E509F7CCBB3AFC93A9295C8FCA91CF6B96B2AC234FA4EA80F70309D0E6F42A1DA2C04A7D7ECC2613B99C399B489A29EDB8A5CF2</code></pre>
<!-- end g_b -->
<h6>7.1) generation of encrypted_data</h6>
<!-- start client_DH_inner_data -->
<p>Generated payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 54 B6 43 66 CA 3C B3 BE 46 BF BE 4B C4 8A 94 6A
0010 | FB 97 21 54 51 13 E1 CE DD 81 B1 3A C0 EB 3D B2
0020 | 61 FA E6 C2 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 8C 37 8D F1 70 A0 BD 59 A6 D8 16 40 CE 29 2B A7
0040 | 31 36 F7 9D 8D 00 77 6C 70 DE 5B A0 DE FD 09 F1
0050 | A4 2C 18 EA 71 D0 2A 6E 30 79 B2 94 F4 37 51 42
0060 | 65 16 E7 B4 0A 5B 58 AE ED 3A B8 FA 8B 2D BC 41
0070 | A4 5C A3 3E 37 82 7F 15 D1 5A A4 43 75 12 0D 24
0080 | 3E 2E 5D B4 FD 35 2A C2 56 F5 EF 09 60 45 B8 BF
0090 | EC 4C 32 2C 58 57 F2 32 F0 BC FF 6C AE 22 20 E7
00A0 | 3B DE 71 6B 81 E5 D1 47 25 6A 40 9A 94 94 DE B2
00B0 | 1B 30 AF 31 72 ED C9 31 DC D3 76 6C 58 FC 3F 46
00C0 | 01 91 F5 6B FC 62 E0 9C 1D 23 FF C5 0D 3A 02 4C
00D0 | C8 6B A8 E7 FA E9 CA E8 C9 1D BD 4E 53 6F 54 C4
00E0 | F8 21 8C FB 8E CA C2 A7 1C 81 22 42 67 D8 86 63
00F0 | 37 74 62 F0 63 5D DC 03 80 2C 2D 0F 22 FB 75 D9
0100 | 9F 32 A3 D9 11 B3 3C 03 FD 80 CA 1A 5D 13 BB B3
0110 | E0 82 BF E6 7C 1D D3 D2 FB 68 D2 B8 A3 09 10 EC
0120 | F1 8D 1B B9 E1 1E 4F 12 88 08 7B 97 A3 E8 7F 83</code></pre>
<pre><code>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</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>client_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;</code></pre>
<table class="table">
@ -658,19 +658,19 @@ answer = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FE0001008C378DF170A0BD59A6D81640</code> <code>CE292BA73136F79D8D00776C70DE5BA0</code> <code>DEFD09F1A42C18EA71D02A6E3079B294</code> <code>F43751426516E7B40A5B58AEED3AB8FA</code> <code>8B2DBC41A45CA33E37827F15D15AA443</code> <code>75120D243E2E5DB4FD352AC256F5EF09</code> <code>6045B8BFEC4C322C5857F232F0BCFF6C</code> <code>AE2220E73BDE716B81E5D147256A409A</code> <code>9494DEB21B30AF3172EDC931DCD3766C</code> <code>58FC3F460191F56BFC62E09C1D23FFC5</code> <code>0D3A024CC86BA8E7FAE9CAE8C91DBD4E</code> <code>536F54C4F8218CFB8ECAC2A71C812242</code> <code>67D88663377462F0635DDC03802C2D0F</code> <code>22FB75D99F32A3D911B33C03FD80CA1A</code> <code>5D13BBB3E082BFE67C1DD3D2FB68D2B8</code> <code>A30910ECF18D1BB9E11E4F1288087B97</code><br> <code>A3E87F83</code></td>
<td><code>FE0001005D4648B25436A0796DC974DB</code> <code>FBB042EA052B73223250909975CCA768</code> <code>D5F0AC614ECF05EFBD50DB9106251F05</code> <code>6E81776D485D622C745CDB3DEE307FAF</code> <code>E8AC3B2FE7B9696FD8166C0846738191</code> <code>918D488D35B630BB6DE978D72F71ABFA</code> <code>1CF02F25F1B19A56FE646F0D10EC0FBA</code> <code>95F4B1746C67FCD642806012DC67911D</code> <code>64DAC64F06E0F947F257B67B4DB7E1C5</code> <code>8BB408607EEAEC38B2597F36D2580A25</code> <code>7336EB5808863DE448F826A02CDFCCA8</code> <code>4A2731B29C03E9D6D4C3AF23C9D722A9</code> <code>8FD35CB3D654CC5F1DDA90B91653B9B4</code> <code>7E509F7CCBB3AFC93A9295C8FCA91CF6</code> <code>B96B2AC234FA4EA80F70309D0E6F42A1</code> <code>DA2C04A7D7ECC2613B99C399B489A29E</code><br> <code>DB8A5CF2</code></td>
<td>Single-byte prefix denoting length, a 256-byte (2048-bit) string, and zero bytes of padding</td>
</tr>
<tr>
@ -684,47 +684,47 @@ answer = BA0D89B5CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C
<!-- end client_DH_inner_data -->
<p>The serialization of <em>Client_DH_Inner_Data</em> produces a string <strong>data</strong>. This is used to generate <strong>encrypted_data</strong> as specified in <a href="#7-client-computes-random-2048-bit-number-b-using-a-sufficient-amount-of-entropy-and-sends-the-server-a-message">step 6</a>, using the following inputs:</p>
<!-- start client_DH_inner_data_input -->
<pre><code>data = 54B64366CA3CB3BE46BFBE4BC48A946AFB9721545113E1CEDD81B13AC0EB3DB261FAE6C20000000000000000FE0001008C378DF170A0BD59A6D81640CE292BA73136F79D8D00776C70DE5BA0DEFD09F1A42C18EA71D02A6E3079B294F43751426516E7B40A5B58AEED3AB8FA8B2DBC41A45CA33E37827F15D15AA44375120D243E2E5DB4FD352AC256F5EF096045B8BFEC4C322C5857F232F0BCFF6CAE2220E73BDE716B81E5D147256A409A9494DEB21B30AF3172EDC931DCD3766C58FC3F460191F56BFC62E09C1D23FFC50D3A024CC86BA8E7FAE9CAE8C91DBD4E536F54C4F8218CFB8ECAC2A71C81224267D88663377462F0635DDC03802C2D0F22FB75D99F32A3D911B33C03FD80CA1A5D13BBB3E082BFE67C1DD3D2FB68D2B8A30910ECF18D1BB9E11E4F1288087B97A3E87F83
padding = 76FBA780CBAD2F260CAE353C
tmp_aes_key = B737C0FF1F5F66D10FC79BF85AF196E6CE551ED1F7C95F0820904BDD78399F05
tmp_aes_iv = 9D521F3A9D1F9F59A7E832D00746A6DB30271078B445C4ACE53CD8F18EB5F840</code></pre>
<pre><code>data = 54B6436647695817B5427B734CDA54C6412E767F68856BA7DFA34BC395DBA831493BE0830000000000000000FE0001005D4648B25436A0796DC974DBFBB042EA052B73223250909975CCA768D5F0AC614ECF05EFBD50DB9106251F056E81776D485D622C745CDB3DEE307FAFE8AC3B2FE7B9696FD8166C0846738191918D488D35B630BB6DE978D72F71ABFA1CF02F25F1B19A56FE646F0D10EC0FBA95F4B1746C67FCD642806012DC67911D64DAC64F06E0F947F257B67B4DB7E1C58BB408607EEAEC38B2597F36D2580A257336EB5808863DE448F826A02CDFCCA84A2731B29C03E9D6D4C3AF23C9D722A98FD35CB3D654CC5F1DDA90B91653B9B47E509F7CCBB3AFC93A9295C8FCA91CF6B96B2AC234FA4EA80F70309D0E6F42A1DA2C04A7D7ECC2613B99C399B489A29EDB8A5CF2
padding = CBEB846A78C2813A879469B3
tmp_aes_key = 05EE1D4D6ADC2782A7ACECACA3A6559E1784F016F92904133459FC8A893EB7AE
tmp_aes_iv = 048BD652499FBF9CDA0F2C1FA72119F1E64C3B9B4A764020165077B702F08F13</code></pre>
<!-- end client_DH_inner_data_input -->
<p>Process:</p>
<pre><code>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);</code></pre>
<p>Output:</p>
<!-- start client_DH_inner_data_output -->
<pre><code>encrypted_data = B6BEC353AE06B2BCCC77E6ED00D458B0CE8BD00E48B67E24CBFECE273FABCCA3CDE69CE1CC0FCFCA426A3CB86F12238E36C585AE79DBBB4B08243A505F329B74F708211ADFE5E996DDEA37FD072338A2E69EC92EEF8D8EF358CCF24175F68B8DDEF02048FA8DF4A7A50E952C78FA6800CDB782DF680D75B5FB3657DE066349A836F45051DB4DD81E5F321F9668A14341B419F76E83F2F84BF2AEB3474136B4AD364C5B6227AC5FF1250C6B2145E024055D8AB53AFE668A406114F187DB5FE3C2AB1C3FAF0A0FA6F1E66033EAD6B387B1E0FB118E116C4FDEA18F81E51DA6DEBCCA70B59508B2EC13057EC08A7CB93A4DFC44A34B627184A6A4ACAEC9AEB62B4A0496716FE5C6CEAF3A2D442C23CDD4AB17BE6EEF09C2ACBAD404B0ABCA5709689D64AE76EF1571D138B1D795021F0D9B0FF6382C13C1E214373F4E8D167D4E707A98C5E6D7A7C9C094D82F9AB082C842</code></pre>
<pre><code>encrypted_data = 7C64F61A54D411891A8858216376D4AF6FF14AF29D44AD55F78464DE293838217B711789DA714A3F6B0C6BDFD319E0A513E04C02BB3ECB53E1F438C61007EF28CD4BE8C2CD308B368FD25CC25D9F58F9DA8CDF72D4855D179647F5A15AA3805FA6E241F0CD2437ED86632ABFE2B72E66B57624AABE0B8FC5458B7CFA0852EFFC1B130753B476CF48EE540F8FE6ECC4681A692FDBAC73EBA2B80A80A69ABBD6F893F7CC2B83F358E7ED87E2DD4907A80732888636AE1B5382FAE05E548498628E61D50C5765282B27F5A9ADC9101BF8C53152F6FB67D69B88C958ACC09DB3800F6FF5604882EF0328E0D785BDFBCFD13D58A8A8864007BD585AF7C7C10A84E6ABF28019C8F1489627225BCF39C188539FB9AC779BE9A299B496A7F5387ABE616C2237F050994694439DCDAF246F6508F516F1667B6AB74FB7EF24CF775B4C4B2F643F595E55B49D8F57FF32E10DB07AF3</code></pre>
<!-- end client_DH_inner_data_output -->
<p>The length of the final string is 336 bytes.</p>
<h6>7.2) set_client_DH_params query</h6>
<!-- start set_client_DH_params -->
<p>Sent payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 BC 01 03 00 93 04 87 65
0010 | 78 01 00 00 1F 5F 04 F5 CA 3C B3 BE 46 BF BE 4B
0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
0030 | C0 EB 3D B2 61 FA E6 C2 FE 50 01 00 B6 BE C3 53
0040 | AE 06 B2 BC CC 77 E6 ED 00 D4 58 B0 CE 8B D0 0E
0050 | 48 B6 7E 24 CB FE CE 27 3F AB CC A3 CD E6 9C E1
0060 | CC 0F CF CA 42 6A 3C B8 6F 12 23 8E 36 C5 85 AE
0070 | 79 DB BB 4B 08 24 3A 50 5F 32 9B 74 F7 08 21 1A
0080 | DF E5 E9 96 DD EA 37 FD 07 23 38 A2 E6 9E C9 2E
0090 | EF 8D 8E F3 58 CC F2 41 75 F6 8B 8D DE F0 20 48
00A0 | FA 8D F4 A7 A5 0E 95 2C 78 FA 68 00 CD B7 82 DF
00B0 | 68 0D 75 B5 FB 36 57 DE 06 63 49 A8 36 F4 50 51
00C0 | DB 4D D8 1E 5F 32 1F 96 68 A1 43 41 B4 19 F7 6E
00D0 | 83 F2 F8 4B F2 AE B3 47 41 36 B4 AD 36 4C 5B 62
00E0 | 27 AC 5F F1 25 0C 6B 21 45 E0 24 05 5D 8A B5 3A
00F0 | FE 66 8A 40 61 14 F1 87 DB 5F E3 C2 AB 1C 3F AF
0100 | 0A 0F A6 F1 E6 60 33 EA D6 B3 87 B1 E0 FB 11 8E
0110 | 11 6C 4F DE A1 8F 81 E5 1D A6 DE BC CA 70 B5 95
0120 | 08 B2 EC 13 05 7E C0 8A 7C B9 3A 4D FC 44 A3 4B
0130 | 62 71 84 A6 A4 AC AE C9 AE B6 2B 4A 04 96 71 6F
0140 | E5 C6 CE AF 3A 2D 44 2C 23 CD D4 AB 17 BE 6E EF
0150 | 09 C2 AC BA D4 04 B0 AB CA 57 09 68 9D 64 AE 76
0160 | EF 15 71 D1 38 B1 D7 95 02 1F 0D 9B 0F F6 38 2C
0170 | 13 C1 E2 14 37 3F 4E 8D 16 7D 4E 70 7A 98 C5 E6
0180 | D7 A7 C9 C0 94 D8 2F 9A B0 82 C8 42</code></pre>
<pre><code>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</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>set_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -746,7 +746,7 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>BC01030093048765</code></td>
<td><code>C8A10E0033108765</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
@ -764,19 +764,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE500100B6BEC353AE06B2BCCC77E6ED</code> <code>00D458B0CE8BD00E48B67E24CBFECE27</code> <code>3FABCCA3CDE69CE1CC0FCFCA426A3CB8</code> <code>6F12238E36C585AE79DBBB4B08243A50</code> <code>5F329B74F708211ADFE5E996DDEA37FD</code> <code>072338A2E69EC92EEF8D8EF358CCF241</code> <code>75F68B8DDEF02048FA8DF4A7A50E952C</code> <code>78FA6800CDB782DF680D75B5FB3657DE</code> <code>066349A836F45051DB4DD81E5F321F96</code> <code>68A14341B419F76E83F2F84BF2AEB347</code> <code>4136B4AD364C5B6227AC5FF1250C6B21</code> <code>45E024055D8AB53AFE668A406114F187</code> <code>DB5FE3C2AB1C3FAF0A0FA6F1E66033EA</code> <code>D6B387B1E0FB118E116C4FDEA18F81E5</code> <code>1DA6DEBCCA70B59508B2EC13057EC08A</code> <code>7CB93A4DFC44A34B627184A6A4ACAEC9</code> <code>AEB62B4A0496716FE5C6CEAF3A2D442C</code> <code>23CDD4AB17BE6EEF09C2ACBAD404B0AB</code> <code>CA5709689D64AE76EF1571D138B1D795</code> <code>021F0D9B0FF6382C13C1E214373F4E8D</code> <code>167D4E707A98C5E6D7A7C9C094D82F9A</code><br> <code>B082C842</code></td>
<td><code>FE5001007C64F61A54D411891A885821</code> <code>6376D4AF6FF14AF29D44AD55F78464DE</code> <code>293838217B711789DA714A3F6B0C6BDF</code> <code>D319E0A513E04C02BB3ECB53E1F438C6</code> <code>1007EF28CD4BE8C2CD308B368FD25CC2</code> <code>5D9F58F9DA8CDF72D4855D179647F5A1</code> <code>5AA3805FA6E241F0CD2437ED86632ABF</code> <code>E2B72E66B57624AABE0B8FC5458B7CFA</code> <code>0852EFFC1B130753B476CF48EE540F8F</code> <code>E6ECC4681A692FDBAC73EBA2B80A80A6</code> <code>9ABBD6F893F7CC2B83F358E7ED87E2DD</code> <code>4907A80732888636AE1B5382FAE05E54</code> <code>8498628E61D50C5765282B27F5A9ADC9</code> <code>101BF8C53152F6FB67D69B88C958ACC0</code> <code>9DB3800F6FF5604882EF0328E0D785BD</code> <code>FBCFD13D58A8A8864007BD585AF7C7C1</code> <code>0A84E6ABF28019C8F1489627225BCF39</code> <code>C188539FB9AC779BE9A299B496A7F538</code> <code>7ABE616C2237F050994694439DCDAF24</code> <code>6F6508F516F1667B6AB74FB7EF24CF77</code> <code>5B4C4B2F643F595E55B49D8F57FF32E1</code><br> <code>0DB07AF3</code></td>
<td>Encrypted client_DH_inner_data generated previously, serialized as a TL byte string</td>
</tr>
</tbody>
@ -785,17 +785,17 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<h5><a class="anchor" href="#8-auth-key-generation" id="8-auth-key-generation" name="8-auth-key-generation"><i class="anchor-icon"></i></a>8) Auth key generation</h5>
<p>The client computes the auth_key using formula <code>g_a^b mod dh_prime</code>:</p>
<!-- start auth_key -->
<pre><code>auth_key = BAA343428ED11325DE9066B341F1ED2219D7BE6C0C4462603A14F6029FA105BE1A2F2A0DF743CF9AE78A8B18D335A96A11FEB1CF38D09E50C4F3FD97E0C64C5E39EF859CAEEC41C37C7CBE113FE94487D851D3CF7CA9F9AA07047D5EF077A7097F1DF5F87207B46315B1D5FE7EE5888B358EE9DCEE9D9E88CA30B2E744439EA9512DFF5BB28AA0BF2D0442A9D980D719A33A30529D9AF54876205DE12E89A3EF02577B0F6B3E3513E3D25FF995B5DDD1550E395A5CF15C35537CE94EF468369ED2D8B8CA061C6789FA39269AA234F59C6417085F2B6A9A24A99BAF876816A07FCD11F626131B94829330C78F388836E67E5D040A85F339727B789C3F740A04E7</code></pre>
<pre><code>auth_key = 0950F3070E87DCC97997B269F3FD55D5A0F6EC3F0438BC49DD69451AC34662A031D35289521095FDC7DD4E5A93ADD24DBA551A3E7D4BEE6CF26B6544BE38B0F2FAF6351E8E0313FC1E2588B694783409B069D5E5D65B59A7FFBBF0B634B0CF66831A40B5FF50E63A3EBE26CAE622C9E20461163440CE87891FF44A972215A4CA3673C3998742EC689DD4AFE5657E27509F5740F765C37FCCD4D431404A12A2A78DE5C13698CED8C3D1AEDACB938771A3292EFA4F1971ADB1C5A3FC1B9524399A9621A9BC4BD044DC0328F006CD843802FA8C6B249418EF931E5FCEA1249E659C2B8437F78D6E60F715CB91329F219103551FDFE72555ADCD6C5E02E2677DBC69</code></pre>
<!-- end auth_key -->
<h5><a class="anchor" href="#9-final-server-reply" id="9-final-server-reply" name="9-final-server-reply"><i class="anchor-icon"></i></a>9) Final server reply</h5>
<p>The server verifies and confirms that auth_key_hash is unique: since it's unique, it replies with the following:</p>
<!-- start dh_gen_ok -->
<p>Received payload (excluding transport headers/trailers):</p>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 D8 29 DE 93 04 87 65
0010 | AC 00 00 00 34 F7 CB 3B CA 3C B3 BE 46 BF BE 4B
0020 | C4 8A 94 6A FB 97 21 54 51 13 E1 CE DD 81 B1 3A
0030 | C0 EB 3D B2 61 FA E6 C2 25 46 18 89 55 6F 9A DB
0040 | 74 A5 A2 EB AA 3A 27 53</code></pre>
<pre><code>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</code></pre>
<p>Payload (de)serialization:</p>
<pre><code>dh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;</code></pre>
<table class="table">
@ -817,13 +817,13 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01D829DE93048765</code></td>
<td><code>016869C133108765</code></td>
<td>Message ID generated as specified <a href="/mtproto/description#message-identifier-msg-id">here »</a> (unixtime() &lt;&lt; 32) + (N*4)</td>
</tr>
<tr>
<td>message_length</td>
<td>16, 4</td>
<td><code>AC000000</code> (172 in decimal)</td>
<td><code>44000000</code> (68 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -835,19 +835,19 @@ encrypted_data := AES256_ige_encrypt (data_with_hash, tmp_aes_key, tmp_aes_iv);<
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>CA3CB3BE46BFBE4BC48A946AFB972154</code></td>
<td><code>47695817B5427B734CDA54C6412E767F</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>5113E1CEDD81B13AC0EB3DB261FAE6C2</code></td>
<td><code>68856BA7DFA34BC395DBA831493BE083</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>25461889556F9ADB74A5A2EBAA3A2753</code></td>
<td><code>33BE432914D910F2DC8BD87AD13DF5DF</code></td>
<td>The 128 lower-order bits of SHA1 of the byte string derived from the <code>new_nonce</code> string by adding a single byte with the value of 1, 2, or 3, and followed by another 8 bytes with <code>auth_key_aux_hash</code>. Different values are required to prevent an intruder from changing server response dh_gen_ok into dh_gen_retry.</td>
</tr>
</tbody>