Update content of files

This commit is contained in:
GitHub Action 2023-11-23 18:21:00 +00:00
parent 7244ee6fc0
commit b37d87fca5
3 changed files with 209 additions and 208 deletions

View file

@ -223,6 +223,7 @@
<a href="/method/stories.canApplyBoost">stories.canApplyBoost</a>#db05c1bd peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/stories.CanApplyBoostResult">stories.CanApplyBoostResult</a>;
<a href="/method/stories.applyBoost">stories.applyBoost</a>#f29d7c2b peer:<a href="/type/InputPeer">InputPeer</a> = <a href="/type/Bool">Bool</a>;<br></code></pre></div>
<h3><a class="anchor" href="#layer-160" id="layer-160" name="layer-160"><i class="anchor-icon"></i></a><a href="/schema?layer=160">Layer 160</a></h3>
<p>Introducing <a href="/api/stories">stories</a>.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>
<ul>
@ -361,7 +362,7 @@
<a href="/method/stories.report">stories.report</a>#c95be06a user_id:<a href="/type/InputUser">InputUser</a> id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt; reason:<a href="/type/ReportReason">ReportReason</a> message:<a href="/type/string">string</a> = <a href="/type/Bool">Bool</a>;<br>
<a href="/method/users.getStoriesMaxIDs">users.getStoriesMaxIDs</a>#ca1cb9ab id:<a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/InputUser">InputUser</a>&gt; = <a href="/type/Vector%20t">Vector</a>&lt;<a href="/type/int">int</a>&gt;;<br></code></pre></div>
<h3><a class="anchor" href="#layer-159" id="layer-159" name="layer-159"><i class="anchor-icon"></i></a><a href="/schema?layer=159">Layer 159</a></h3>
<p>Introducing privacy settings for user bios, <a href="/api/auth#invalidating-login-codes">improved login code invalidation</a>, improved chat invites, improved <a href="/api/updates">update handling</a> and <a href="/api/sponsored-messages">sponsored websites</a>. </p>
<p>Introducing privacy settings for user bios, <a href="/api/auth#invalidating-login-codes">improved login code invalidation</a>, improved chat invites, improved <a href="/api/updates">update handling</a> and <a href="/api/sponsored-messages">sponsored websites</a>.</p>
<p>Also, anonymous channel admins can now vote in polls.</p>
<h4><a class="anchor" href="#schema-changes" id="schema-changes" name="schema-changes"><i class="anchor-icon"></i></a>Schema changes</h4>
<h5><a class="anchor" href="#new-methods" id="new-methods" name="new-methods"><i class="anchor-icon"></i></a>New Methods</h5>

View file

@ -89,7 +89,7 @@
<tr>
<td><strong>alt_document</strong></td>
<td style="text-align: center;"><a href="/mtproto/TL-combinators#conditional-fields">flags</a>.5?<a href="/type/Document">Document</a></td>
<td> </td>
<td>Currently only used for story videos, may contain an alternative version of the story video, explicitly encoded using H.264 (in MPEG4 transport).</td>
</tr>
<tr>
<td><strong>ttl_seconds</strong></td>

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 54 37 03 00 E8 8D 5F 65
0010 | 14 00 00 00 F1 8E 7E BE 42 15 54 56 11 32 BA CA
0020 | F3 AF 34 0A 8B 83 39 C7</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 CC D8 0D 00 0C 97 5F 65
0010 | 14 00 00 00 F1 8E 7E BE FE CF AF C7 1E D1 E8 36
0020 | B5 B3 D2 B7 40 AD 28 99</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>54370300E88D5F65</code></td>
<td><code>CCD80D000C975F65</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>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</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 48 43 B9 E8 8D 5F 65
0010 | A8 00 00 00 63 24 16 05 42 15 54 56 11 32 BA CA
0020 | F3 AF 34 0A 8B 83 39 C7 B3 5F 24 C3 B6 55 D7 72
0030 | 16 DF 03 C6 A7 69 1B 17 08 1D 80 70 F5 A6 BF 12
0040 | AF 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 95 6F 0C 97 5F 65
0010 | A0 00 00 00 63 24 16 05 FE CF AF C7 1E D1 E8 36
0020 | B5 B3 D2 B7 40 AD 28 99 5C 66 80 D5 0D 08 F9 29
0030 | 6D 31 D9 0F D2 54 EF 34 08 20 9D 09 AF 53 FE 2B
0040 | B5 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>014843B9E88D5F65</code></td>
<td><code>01C0956F0C975F65</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>A8000000</code> (168 in decimal)</td>
<td><code>A0000000</code> (160 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -150,19 +150,19 @@
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Server-generated random number</td>
</tr>
<tr>
<td>pq</td>
<td>56, 12</td>
<td><code>081D8070F5A6BF12AF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2125823224485712559</td>
<td><code>08209D09AF53FE2BB5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2350045229190359989</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 = 2125823224485712559</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2125823224485712559 = 1183354919 * 1796437561</code></p>
<pre><code>p = 1183354919
q = 1796437561</code></pre>
<pre><code>pq = 2350045229190359989</code></pre>
<p>Decompose into 2 prime cofactors <code>p &lt; q</code>: <code>2350045229190359989 = 1404945239 * 1672695251</code></p>
<pre><code>p = 1404945239
q = 1672695251</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 1D 80 70 F5 A6 BF 12 AF 00 00 00
0010 | 04 46 88 90 27 00 00 00 04 6B 13 76 39 00 00 00
0020 | 42 15 54 56 11 32 BA CA F3 AF 34 0A 8B 83 39 C7
0030 | B3 5F 24 C3 B6 55 D7 72 16 DF 03 C6 A7 69 1B 17
0040 | 9F 28 86 38 6C 28 AD 10 5F C0 98 D8 20 DB A2 95
0050 | 33 67 BA ED A6 08 A4 19 D9 03 AC D4 22 7A 1A C4
<pre><code>0000 | 95 5F F5 A9 08 20 9D 09 AF 53 FE 2B B5 00 00 00
0010 | 04 53 BD C3 57 00 00 00 04 63 B3 4D D3 00 00 00
0020 | FE CF AF C7 1E D1 E8 36 B5 B3 D2 B7 40 AD 28 99
0030 | 5C 66 80 D5 0D 08 F9 29 6D 31 D9 0F D2 54 EF 34
0040 | 73 BF 1F 9D 04 9C EF AF 79 8B 07 75 5C 4B 8F 5D
0050 | 39 D5 3F 0A 27 80 5F E9 29 15 F0 AF 07 65 06 BD
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 = 1796437561</code></pre>
<tr>
<td>pq</td>
<td>4, 12</td>
<td><code>081D8070F5A6BF12AF000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2125823224485712559</td>
<td><code>08209D09AF53FE2BB5000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 2350045229190359989</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>0446889027000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1183354919</td>
<td><code>0453BDC357000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1404945239</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>046B137639000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1796437561</td>
<td><code>0463B34DD3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1672695251</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>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>48, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce</td>
<td>64, 32</td>
<td><code>9F2886386C28AD105FC098D820DBA295</code> <code>3367BAEDA608A419D903ACD4227A1AC4</code></td>
<td><code>73BF1F9D049CEFAF798B07755C4B8F5D</code> <code>39D53F0A27805FE92915F0AF076506BD</code></td>
<td>Client-generated random number</td>
</tr>
<tr>
@ -291,39 +291,39 @@ q = 1796437561</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 = 955FF5A9081D8070F5A6BF12AF0000000446889027000000046B137639000000421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B179F2886386C28AD105FC098D820DBA2953367BAEDA608A419D903ACD4227A1AC402000000
random_padding_bytes = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FEE5D9C85D6ABF807D6C4B2C9CA6170F7A91D1357502C7612E137A1D1FB8805B3089676531FA1A9F2D0CF500AE0553CB1BDE4FA8F45497374DA62FE80AC527C32</code></pre>
<pre><code>data = 955FF5A908209D09AF53FE2BB50000000453BDC3570000000463B34DD3000000FECFAFC71ED1E836B5B3D2B740AD28995C6680D50D08F9296D31D90FD254EF3473BF1F9D049CEFAF798B07755C4B8F5D39D53F0A27805FE92915F0AF076506BD02000000
random_padding_bytes = 55BACCCEED34076313515571FD9E5D27FC04FD51D6152B4DD5F0A69A7D238D8B7D72F5D742B840BAB2CEC5E737349D070947A71B80BC8625B3FBB495F698E89F30049708257128E862149581463675330BB6D170CBCF8220BE5DDE23</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 = 3556F16DAED5EC360C17FBE90CD044BBA07A3153A031EA7CC6048E45060C07EDBE4DA11B48A94A00B4C99FBF91E7776C9371BB88D6C16B4B8E853853564C2AA475D6472856BFD0E1B8AB8A670524E01E1311F985318FDAAA54BE7B4A3715268E6C5C1BB5C3939EE1066F32C6417D413D7CF026E492BB26BF460A13E757BFF8560C6E1AAB4F99BBBAD8E00B62885417B400552B8AE28635A100614D6C89ECE97BCA021348B09D6FB96C10E03D35F52A7780A36E77C04EC06F45A9146BE739B4CF418FA32AEE778F5E69A8C26F0B1ADB78E597A01A67801DCF6821D6DCDF722A1E86BC026EE0BBEB3F1C9BAF98B232ABF96F7BD55A542A7A7A5CDD9B7516E91FC0</code></pre>
<pre><code>encrypted_data = 8F8AB2FB044B9289C686D4B83E478BF4D04F897842BA19FB797261075E233A74BCFE60C3BD15536C51625209D57BCF92ED5AACC2C6C30C3ACD2A2AFD23DCA779DCB8EEF2BA5B9424D922D5BBB3F113C3DC6C40FEB6178E11F44B08333EC7EC164BD4CD9F0A064957A8335DD075C3344ECC20CCBC97DF9D20CC31DA3CDC2E06A5F26DD881452F9AC3F5D405D6845203E623669AA21B98794587E6181497D47B6F16B02A0B6E9F8BA8DE13BD3E800E6F74A38B4B23156039D0D46AFBD16E921F6743C08CEE19593C0C0F69F8323C4D9F82532161488E79F53C0FD8413C63DB199C9A0BB7153914C29F36E832498E84E15E7B0A154D1424B6BA3D7E73E0119C5113</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 E0 0E 05 00 E8 8D 5F 65
0010 | 40 01 00 00 BE E4 12 D7 42 15 54 56 11 32 BA CA
0020 | F3 AF 34 0A 8B 83 39 C7 B3 5F 24 C3 B6 55 D7 72
0030 | 16 DF 03 C6 A7 69 1B 17 04 46 88 90 27 00 00 00
0040 | 04 6B 13 76 39 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 35 56 F1 6D AE D5 EC 36 0C 17 FB E9
0060 | 0C D0 44 BB A0 7A 31 53 A0 31 EA 7C C6 04 8E 45
0070 | 06 0C 07 ED BE 4D A1 1B 48 A9 4A 00 B4 C9 9F BF
0080 | 91 E7 77 6C 93 71 BB 88 D6 C1 6B 4B 8E 85 38 53
0090 | 56 4C 2A A4 75 D6 47 28 56 BF D0 E1 B8 AB 8A 67
00A0 | 05 24 E0 1E 13 11 F9 85 31 8F DA AA 54 BE 7B 4A
00B0 | 37 15 26 8E 6C 5C 1B B5 C3 93 9E E1 06 6F 32 C6
00C0 | 41 7D 41 3D 7C F0 26 E4 92 BB 26 BF 46 0A 13 E7
00D0 | 57 BF F8 56 0C 6E 1A AB 4F 99 BB BA D8 E0 0B 62
00E0 | 88 54 17 B4 00 55 2B 8A E2 86 35 A1 00 61 4D 6C
00F0 | 89 EC E9 7B CA 02 13 48 B0 9D 6F B9 6C 10 E0 3D
0100 | 35 F5 2A 77 80 A3 6E 77 C0 4E C0 6F 45 A9 14 6B
0110 | E7 39 B4 CF 41 8F A3 2A EE 77 8F 5E 69 A8 C2 6F
0120 | 0B 1A DB 78 E5 97 A0 1A 67 80 1D CF 68 21 D6 DC
0130 | DF 72 2A 1E 86 BC 02 6E E0 BB EB 3F 1C 9B AF 98
0140 | B2 32 AB F9 6F 7B D5 5A 54 2A 7A 7A 5C DD 9B 75
0150 | 16 E9 1F C0</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 D0 D8 0D 00 0C 97 5F 65
0010 | 40 01 00 00 BE E4 12 D7 FE CF AF C7 1E D1 E8 36
0020 | B5 B3 D2 B7 40 AD 28 99 5C 66 80 D5 0D 08 F9 29
0030 | 6D 31 D9 0F D2 54 EF 34 04 53 BD C3 57 00 00 00
0040 | 04 63 B3 4D D3 00 00 00 85 FD 64 DE 85 1D 9D D0
0050 | FE 00 01 00 8F 8A B2 FB 04 4B 92 89 C6 86 D4 B8
0060 | 3E 47 8B F4 D0 4F 89 78 42 BA 19 FB 79 72 61 07
0070 | 5E 23 3A 74 BC FE 60 C3 BD 15 53 6C 51 62 52 09
0080 | D5 7B CF 92 ED 5A AC C2 C6 C3 0C 3A CD 2A 2A FD
0090 | 23 DC A7 79 DC B8 EE F2 BA 5B 94 24 D9 22 D5 BB
00A0 | B3 F1 13 C3 DC 6C 40 FE B6 17 8E 11 F4 4B 08 33
00B0 | 3E C7 EC 16 4B D4 CD 9F 0A 06 49 57 A8 33 5D D0
00C0 | 75 C3 34 4E CC 20 CC BC 97 DF 9D 20 CC 31 DA 3C
00D0 | DC 2E 06 A5 F2 6D D8 81 45 2F 9A C3 F5 D4 05 D6
00E0 | 84 52 03 E6 23 66 9A A2 1B 98 79 45 87 E6 18 14
00F0 | 97 D4 7B 6F 16 B0 2A 0B 6E 9F 8B A8 DE 13 BD 3E
0100 | 80 0E 6F 74 A3 8B 4B 23 15 60 39 D0 D4 6A FB D1
0110 | 6E 92 1F 67 43 C0 8C EE 19 59 3C 0C 0F 69 F8 32
0120 | 3C 4D 9F 82 53 21 61 48 8E 79 F5 3C 0F D8 41 3C
0130 | 63 DB 19 9C 9A 0B B7 15 39 14 C2 9F 36 E8 32 49
0140 | 8E 84 E1 5E 7B 0A 15 4D 14 24 B6 BA 3D 7E 73 E0
0150 | 11 9C 51 13</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 = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FE
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>E00E0500E88D5F65</code></td>
<td><code>D0D80D000C975F65</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 = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FE
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>p</td>
<td>56, 8</td>
<td><code>0446889027000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1183354919</td>
<td><code>0453BDC357000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1404945239</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>046B137639000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1796437561</td>
<td><code>0463B34DD3000000</code><br>TL byte deserialization <br>=&gt; bigendian conversion to decimal<br>=&gt; 1672695251</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 = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FE
<tr>
<td>encrypted_data</td>
<td>80, 260</td>
<td><code>FE0001003556F16DAED5EC360C17FBE9</code> <code>0CD044BBA07A3153A031EA7CC6048E45</code> <code>060C07EDBE4DA11B48A94A00B4C99FBF</code> <code>91E7776C9371BB88D6C16B4B8E853853</code> <code>564C2AA475D6472856BFD0E1B8AB8A67</code> <code>0524E01E1311F985318FDAAA54BE7B4A</code> <code>3715268E6C5C1BB5C3939EE1066F32C6</code> <code>417D413D7CF026E492BB26BF460A13E7</code> <code>57BFF8560C6E1AAB4F99BBBAD8E00B62</code> <code>885417B400552B8AE28635A100614D6C</code> <code>89ECE97BCA021348B09D6FB96C10E03D</code> <code>35F52A7780A36E77C04EC06F45A9146B</code> <code>E739B4CF418FA32AEE778F5E69A8C26F</code> <code>0B1ADB78E597A01A67801DCF6821D6DC</code> <code>DF722A1E86BC026EE0BBEB3F1C9BAF98</code> <code>B232ABF96F7BD55A542A7A7A5CDD9B75</code><br> <code>16E91FC0</code></td>
<td><code>FE0001008F8AB2FB044B9289C686D4B8</code> <code>3E478BF4D04F897842BA19FB79726107</code> <code>5E233A74BCFE60C3BD15536C51625209</code> <code>D57BCF92ED5AACC2C6C30C3ACD2A2AFD</code> <code>23DCA779DCB8EEF2BA5B9424D922D5BB</code> <code>B3F113C3DC6C40FEB6178E11F44B0833</code> <code>3EC7EC164BD4CD9F0A064957A8335DD0</code> <code>75C3344ECC20CCBC97DF9D20CC31DA3C</code> <code>DC2E06A5F26DD881452F9AC3F5D405D6</code> <code>845203E623669AA21B98794587E61814</code> <code>97D47B6F16B02A0B6E9F8BA8DE13BD3E</code> <code>800E6F74A38B4B23156039D0D46AFBD1</code> <code>6E921F6743C08CEE19593C0C0F69F832</code> <code>3C4D9F82532161488E79F53C0FD8413C</code> <code>63DB199C9A0BB7153914C29F36E83249</code> <code>8E84E15E7B0A154D1424B6BA3D7E73E0</code><br> <code>119C5113</code></td>
<td>Value generated above</td>
</tr>
</tbody>
@ -402,47 +402,47 @@ random_padding_bytes = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FE
<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 A8 D8 53 E9 8D 5F 65
0010 | EC 02 00 00 5C 07 E8 D0 42 15 54 56 11 32 BA CA
0020 | F3 AF 34 0A 8B 83 39 C7 B3 5F 24 C3 B6 55 D7 72
0030 | 16 DF 03 C6 A7 69 1B 17 FE 50 02 00 D8 92 96 CA
0040 | 11 F3 06 4D F5 00 9B 34 6D A8 A8 BD E4 87 13 6C
0050 | 55 71 7C BE CB 56 19 F8 B4 20 22 21 EA 0A A9 E9
0060 | 4A A6 CF AB 38 CF 64 77 67 6D AF 68 C2 5C B6 DA
0070 | BD B7 37 1B E5 BD F0 EF 79 D1 0E D9 DD AB C8 3C
0080 | D7 D4 DC 92 F0 3C F7 1F 2B C9 46 A0 E0 13 0A 6A
0090 | B6 E2 DC DA 02 95 52 B5 E3 DE 3F 73 39 59 FB A5
00A0 | 5E 0B 96 1D 69 9E 7A 36 86 95 65 30 15 17 EF 89
00B0 | AF 39 4E D8 88 73 A0 20 4C E3 D3 E6 EA AD BE C1
00C0 | 8F B2 B7 A8 E3 89 5D D6 04 8C E3 EE E1 A4 A6 1E
00D0 | FD E1 6F 11 D0 19 72 A4 60 CE 8B 0E 11 21 24 DC
00E0 | 06 3D 8B 9B 7A 2F 96 70 55 B7 37 F2 39 D9 07 19
00F0 | B9 BF 13 E3 87 FD 76 92 64 B8 8F E4 A7 08 CE FD
0100 | E4 E0 FE C9 4C B7 24 2E E0 D3 DC EA FD 4D 5B 0C
0110 | A1 BD C1 73 E3 D1 31 2F B6 61 6C E1 5E 92 07 29
0120 | 3A 42 5F 95 58 1A E0 67 58 EF 7F 3D 29 B2 DC 44
0130 | 7F C1 2B 44 10 8E D5 20 09 C8 58 92 D7 FC FE 12
0140 | 23 3C D8 46 07 3B 9C FE 1E E3 D7 86 D2 EB B5 57
0150 | 3D 0F 01 27 0D 82 8C 6A 5B E8 99 07 AF 91 44 6D
0160 | 6D 22 C2 E5 0C 5B 8A 51 6B E2 90 05 2C 6F AC 9B
0170 | 41 1F D7 A1 8D A3 3B 36 DB 16 A4 86 33 B7 03 CC
0180 | 0C 6E 14 9A 56 5B EF 63 56 51 F8 2E 8A 61 19 BE
0190 | 7E 97 60 0B 40 AA 35 F7 2A 5E 34 B6 79 E6 2F 79
01A0 | 25 56 B3 89 C8 AC 3C B5 B8 CE 8A 49 52 88 69 10
01B0 | 0B 85 C1 70 F0 BF 8E 3A EE 64 4D 71 58 83 FA 08
01C0 | C2 13 36 AF 7F DC 79 22 85 81 9F 81 77 E1 78 90
01D0 | 1D 7C 58 83 87 8B 22 B1 A3 FD FE AD C8 37 7D 82
01E0 | F5 4C 21 30 3D A4 72 E0 C9 F4 44 9E 07 D7 A3 A2
01F0 | AE F4 6C 9F D0 12 91 88 0C C7 16 25 04 AA 8F A4
0200 | 21 B9 33 E0 36 35 71 B7 0B D7 62 86 33 F7 2B F8
0210 | 73 55 FF 44 45 CE 55 5D 85 2B C2 7C 3E 02 EB A5
0220 | EC BF 2A 2E 6E D6 C6 2C 71 DB 89 7C BD 42 29 90
0230 | 01 2A 30 4F 20 A6 A6 D1 69 6F 96 0E 31 A8 0B A8
0240 | 3F 34 1A FF B1 15 C9 E1 E2 25 48 F2 DC EC C4 2D
0250 | 18 7A 76 4E 43 0C AC 9F FE CB 95 47 3E 20 66 8B
0260 | 1B 22 E2 4D C2 7B 25 01 38 6B BD 1A 7F 8F 50 F7
0270 | 73 5D 66 AB 78 01 E0 F3 5C BD 8B F0 23 B2 87 99
0280 | 59 5A 17 8A 64 6B D1 7C 75 7F E4 6D</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 5C 42 25 0D 97 5F 65
0010 | F4 02 00 00 5C 07 E8 D0 FE CF AF C7 1E D1 E8 36
0020 | B5 B3 D2 B7 40 AD 28 99 5C 66 80 D5 0D 08 F9 29
0030 | 6D 31 D9 0F D2 54 EF 34 FE 50 02 00 2F 4B 9E 6B
0040 | 92 89 CD BC 7A 27 25 02 AF B5 A5 77 79 8E 62 BD
0050 | FD 06 B4 0E 78 0C C6 F6 D4 E5 20 F4 79 F5 80 3C
0060 | 88 5B 2D EA 72 62 4F 77 33 45 71 C3 99 2F BB 59
0070 | 98 E6 54 6B 68 1D 05 F6 F9 5A 7D 5E 5C 31 54 EF
0080 | 6B 39 BD B7 F2 72 6C A9 4E 9A 5F 1C BA 92 DA 3B
0090 | 48 16 37 9F 3C 42 4E D6 A3 EB CB D7 87 4A C9 DC
00A0 | 15 CD 1F A2 D4 D5 26 B3 CE 86 35 05 34 BA 85 51
00B0 | D2 CD 65 AA A4 E3 A5 2E 3D C8 88 45 D5 22 3D 9A
00C0 | B0 20 62 D1 46 29 CD FB 95 AE 3F 9A 60 B0 27 54
00D0 | E9 AA 1B C7 E0 E3 A1 0D C8 F5 34 F0 11 C0 82 78
00E0 | 6F D9 E8 F2 6D 01 52 1B A0 99 7D F5 DD BE E1 F6
00F0 | 9B 20 12 3D 7D 46 EF B1 BF F6 8D B9 92 5D 19 B0
0100 | CC 6E 30 1B 7D D1 81 39 93 CC E7 0B 60 BF 1E 2E
0110 | AB 84 9B 6C 87 EE F5 51 5C B0 6A 46 7D 11 F1 28
0120 | 3E CB 00 FF 3B 16 76 F3 16 F4 97 C1 92 8C 68 75
0130 | E9 4D 0D 2B DC 89 57 96 4F 70 44 E7 3D E9 BD C5
0140 | 8A E6 3C FE 7A B7 82 8A ED 80 B2 3E DA 16 37 D9
0150 | 14 2B 00 44 F8 99 EB 9E 4B B3 B1 EB CD A2 F4 DF
0160 | 12 7F 51 50 5F 5D 2C 06 6B 9B 85 12 00 C6 B4 B8
0170 | 43 67 E8 E6 F4 78 CA 34 C6 A5 F6 99 BC C6 3E 1F
0180 | D9 C8 90 3A 42 2E 4E 8F 66 2F A9 2C 0B 45 5B CA
0190 | 29 90 42 6F 1E 36 80 DC E9 01 77 76 BD 0F D3 0B
01A0 | B6 CD 08 DD B3 A4 AD 51 F4 B5 1B 98 1E B9 F7 8C
01B0 | AC 8A 4C 72 D8 91 60 E9 72 ED F9 A5 1B 89 7E 9C
01C0 | F7 A8 2D EB 65 8E 57 DB B8 CA CF 95 21 1E 0B 60
01D0 | 1B 67 C3 AB 5E D9 1A BF 1E CD 27 C3 71 E5 8B 2F
01E0 | 7D ED 9E 2C F4 F4 6F CF FB 11 14 58 97 A0 C7 36
01F0 | A6 F0 8E 45 2F F4 ED F1 94 22 B5 17 4B 48 5F 59
0200 | 54 FC D7 DA E0 C2 EB 2F 62 4D 98 90 D5 0D 11 43
0210 | 0B C7 98 19 74 EF FC F5 A7 1B 1F F0 FF 1A E4 7C
0220 | 49 5C E6 16 4E 25 65 EF 73 55 1F 03 8F E1 F6 27
0230 | C9 0E 2D 75 50 08 5F 00 80 D6 09 F8 4A 2F 97 B6
0240 | 22 5B 24 6F A3 B6 62 D9 56 98 EF AB EE 2A D8 DE
0250 | A6 86 A6 F9 43 BB E4 6C 39 07 94 A9 B7 AB B6 F7
0260 | B3 6C 01 CD 17 07 B9 24 26 B4 2E 5C 54 A1 F1 E9
0270 | 75 D4 BD 09 0C 5C 23 E9 B8 0D 24 C6 08 D8 5F BC
0280 | 73 8D 7D 76 12 41 C8 F1 46 82 F3 19</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 = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FE
<tr>
<td>message_id</td>
<td>8, 8</td>
<td><code>01A8D853E98D5F65</code></td>
<td><code>015C42250D975F65</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>EC020000</code> (748 in decimal)</td>
<td><code>F4020000</code> (756 in decimal)</td>
<td>Message body length</td>
</tr>
<tr>
@ -482,19 +482,19 @@ random_padding_bytes = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FE
<tr>
<td>nonce</td>
<td>24, 16</td>
<td><code>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_answer</td>
<td>56, 596</td>
<td><code>FE500200D89296CA11F3064DF5009B34</code> <code>6DA8A8BDE487136C55717CBECB5619F8</code> <code>B4202221EA0AA9E94AA6CFAB38CF6477</code> <code>676DAF68C25CB6DABDB7371BE5BDF0EF</code> <code>79D10ED9DDABC83CD7D4DC92F03CF71F</code> <code>2BC946A0E0130A6AB6E2DCDA029552B5</code> <code>E3DE3F733959FBA55E0B961D699E7A36</code> <code>869565301517EF89AF394ED88873A020</code> <code>4CE3D3E6EAADBEC18FB2B7A8E3895DD6</code> <code>048CE3EEE1A4A61EFDE16F11D01972A4</code> <code>60CE8B0E112124DC063D8B9B7A2F9670</code> <code>55B737F239D90719B9BF13E387FD7692</code> <code>64B88FE4A708CEFDE4E0FEC94CB7242E</code> <code>E0D3DCEAFD4D5B0CA1BDC173E3D1312F</code> <code>B6616CE15E9207293A425F95581AE067</code> <code>58EF7F3D29B2DC447FC12B44108ED520</code> <code>09C85892D7FCFE12233CD846073B9CFE</code> <code>1EE3D786D2EBB5573D0F01270D828C6A</code> <code>5BE89907AF91446D6D22C2E50C5B8A51</code> <code>6BE290052C6FAC9B411FD7A18DA33B36</code> <code>DB16A48633B703CC0C6E149A565BEF63</code> <code>5651F82E8A6119BE7E97600B40AA35F7</code> <code>2A5E34B679E62F792556B389C8AC3CB5</code> <code>B8CE8A49528869100B85C170F0BF8E3A</code> <code>EE644D715883FA08C21336AF7FDC7922</code> <code>85819F8177E178901D7C5883878B22B1</code> <code>A3FDFEADC8377D82F54C21303DA472E0</code> <code>C9F4449E07D7A3A2AEF46C9FD0129188</code> <code>0CC7162504AA8FA421B933E0363571B7</code> <code>0BD7628633F72BF87355FF4445CE555D</code> <code>852BC27C3E02EBA5ECBF2A2E6ED6C62C</code> <code>71DB897CBD422990012A304F20A6A6D1</code> <code>696F960E31A80BA83F341AFFB115C9E1</code> <code>E22548F2DCECC42D187A764E430CAC9F</code> <code>FECB95473E20668B1B22E24DC27B2501</code> <code>386BBD1A7F8F50F7735D66AB7801E0F3</code> <code>5CBD8BF023B28799595A178A646BD17C</code><br> <code>757FE46D</code></td>
<td><code>FE5002002F4B9E6B9289CDBC7A272502</code> <code>AFB5A577798E62BDFD06B40E780CC6F6</code> <code>D4E520F479F5803C885B2DEA72624F77</code> <code>334571C3992FBB5998E6546B681D05F6</code> <code>F95A7D5E5C3154EF6B39BDB7F2726CA9</code> <code>4E9A5F1CBA92DA3B4816379F3C424ED6</code> <code>A3EBCBD7874AC9DC15CD1FA2D4D526B3</code> <code>CE86350534BA8551D2CD65AAA4E3A52E</code> <code>3DC88845D5223D9AB02062D14629CDFB</code> <code>95AE3F9A60B02754E9AA1BC7E0E3A10D</code> <code>C8F534F011C082786FD9E8F26D01521B</code> <code>A0997DF5DDBEE1F69B20123D7D46EFB1</code> <code>BFF68DB9925D19B0CC6E301B7DD18139</code> <code>93CCE70B60BF1E2EAB849B6C87EEF551</code> <code>5CB06A467D11F1283ECB00FF3B1676F3</code> <code>16F497C1928C6875E94D0D2BDC895796</code> <code>4F7044E73DE9BDC58AE63CFE7AB7828A</code> <code>ED80B23EDA1637D9142B0044F899EB9E</code> <code>4BB3B1EBCDA2F4DF127F51505F5D2C06</code> <code>6B9B851200C6B4B84367E8E6F478CA34</code> <code>C6A5F699BCC63E1FD9C8903A422E4E8F</code> <code>662FA92C0B455BCA2990426F1E3680DC</code> <code>E9017776BD0FD30BB6CD08DDB3A4AD51</code> <code>F4B51B981EB9F78CAC8A4C72D89160E9</code> <code>72EDF9A51B897E9CF7A82DEB658E57DB</code> <code>B8CACF95211E0B601B67C3AB5ED91ABF</code> <code>1ECD27C371E58B2F7DED9E2CF4F46FCF</code> <code>FB11145897A0C736A6F08E452FF4EDF1</code> <code>9422B5174B485F5954FCD7DAE0C2EB2F</code> <code>624D9890D50D11430BC7981974EFFCF5</code> <code>A71B1FF0FF1AE47C495CE6164E2565EF</code> <code>73551F038FE1F627C90E2D7550085F00</code> <code>80D609F84A2F97B6225B246FA3B662D9</code> <code>5698EFABEE2AD8DEA686A6F943BBE46C</code> <code>390794A9B7ABB6F7B36C01CD1707B924</code> <code>26B42E5C54A1F1E975D4BD090C5C23E9</code> <code>B80D24C608D85FBC738D7D761241C8F1</code><br> <code>4682F319</code></td>
<td>See below</td>
</tr>
</tbody>
@ -502,20 +502,20 @@ random_padding_bytes = 85E9DE2656389BB200E36DDE721493952C5FCE2A82A1E693D886428FE
<!-- 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 = D89296CA11F3064DF5009B346DA8A8BDE487136C55717CBECB5619F8B4202221EA0AA9E94AA6CFAB38CF6477676DAF68C25CB6DABDB7371BE5BDF0EF79D10ED9DDABC83CD7D4DC92F03CF71F2BC946A0E0130A6AB6E2DCDA029552B5E3DE3F733959FBA55E0B961D699E7A36869565301517EF89AF394ED88873A0204CE3D3E6EAADBEC18FB2B7A8E3895DD6048CE3EEE1A4A61EFDE16F11D01972A460CE8B0E112124DC063D8B9B7A2F967055B737F239D90719B9BF13E387FD769264B88FE4A708CEFDE4E0FEC94CB7242EE0D3DCEAFD4D5B0CA1BDC173E3D1312FB6616CE15E9207293A425F95581AE06758EF7F3D29B2DC447FC12B44108ED52009C85892D7FCFE12233CD846073B9CFE1EE3D786D2EBB5573D0F01270D828C6A5BE89907AF91446D6D22C2E50C5B8A516BE290052C6FAC9B411FD7A18DA33B36DB16A48633B703CC0C6E149A565BEF635651F82E8A6119BE7E97600B40AA35F72A5E34B679E62F792556B389C8AC3CB5B8CE8A49528869100B85C170F0BF8E3AEE644D715883FA08C21336AF7FDC792285819F8177E178901D7C5883878B22B1A3FDFEADC8377D82F54C21303DA472E0C9F4449E07D7A3A2AEF46C9FD01291880CC7162504AA8FA421B933E0363571B70BD7628633F72BF87355FF4445CE555D852BC27C3E02EBA5ECBF2A2E6ED6C62C71DB897CBD422990012A304F20A6A6D1696F960E31A80BA83F341AFFB115C9E1E22548F2DCECC42D187A764E430CAC9FFECB95473E20668B1B22E24DC27B2501386BBD1A7F8F50F7735D66AB7801E0F35CBD8BF023B28799595A178A646BD17C757FE46D
tmp_aes_key = 162FB726AB8FEF45B1DCA7DCC00ACECCDEFB62C0B6210E15D8063ED42B80FD4A
tmp_aes_iv = 32132DB36A6E6398FF5B583EFD3FB86A009030F6DEF4E181DD9E8F779F288638</code></pre>
<pre><code>encrypted_answer = 2F4B9E6B9289CDBC7A272502AFB5A577798E62BDFD06B40E780CC6F6D4E520F479F5803C885B2DEA72624F77334571C3992FBB5998E6546B681D05F6F95A7D5E5C3154EF6B39BDB7F2726CA94E9A5F1CBA92DA3B4816379F3C424ED6A3EBCBD7874AC9DC15CD1FA2D4D526B3CE86350534BA8551D2CD65AAA4E3A52E3DC88845D5223D9AB02062D14629CDFB95AE3F9A60B02754E9AA1BC7E0E3A10DC8F534F011C082786FD9E8F26D01521BA0997DF5DDBEE1F69B20123D7D46EFB1BFF68DB9925D19B0CC6E301B7DD1813993CCE70B60BF1E2EAB849B6C87EEF5515CB06A467D11F1283ECB00FF3B1676F316F497C1928C6875E94D0D2BDC8957964F7044E73DE9BDC58AE63CFE7AB7828AED80B23EDA1637D9142B0044F899EB9E4BB3B1EBCDA2F4DF127F51505F5D2C066B9B851200C6B4B84367E8E6F478CA34C6A5F699BCC63E1FD9C8903A422E4E8F662FA92C0B455BCA2990426F1E3680DCE9017776BD0FD30BB6CD08DDB3A4AD51F4B51B981EB9F78CAC8A4C72D89160E972EDF9A51B897E9CF7A82DEB658E57DBB8CACF95211E0B601B67C3AB5ED91ABF1ECD27C371E58B2F7DED9E2CF4F46FCFFB11145897A0C736A6F08E452FF4EDF19422B5174B485F5954FCD7DAE0C2EB2F624D9890D50D11430BC7981974EFFCF5A71B1FF0FF1AE47C495CE6164E2565EF73551F038FE1F627C90E2D7550085F0080D609F84A2F97B6225B246FA3B662D95698EFABEE2AD8DEA686A6F943BBE46C390794A9B7ABB6F7B36C01CD1707B92426B42E5C54A1F1E975D4BD090C5C23E9B80D24C608D85FBC738D7D761241C8F14682F319
tmp_aes_key = 78042BB79FF94CA039702A70F572B40EA8C26481F1E8B92FFEC986C9F2504B8F
tmp_aes_iv = E19A6A6DBC669E581E0719B1B73A515176656A86275C8A760DD2278E73BF1F9D</code></pre>
<!-- end server_DH_inner_data_input -->
<p>Yielding:</p>
<!-- start server_DH_inner_data_output -->
<pre><code>answer_with_hash = 7489F46549FB4CFDF65B327005742029FECA9692BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100180BC02AC43F20B237E4444C04BE32842390E3F7D52AFC906C03363531DF09592E77912D66DFD76D3D59565923ED77339CBBD3AFB28D2B91891148C5A1CD5A70B9979B7F0AC842633CBF2C2CFAE70DC8008B0FB120014495137CC6FD5C9C66C1175ED43F60586F1EE0AF4E5CFB00E527CE614A81081CCE842416BDBE408AC097BB0B7F8DDBDC047BA0D6F65CAAB64BA3F30FB389965482BA168C2094BF434A7F3E1113E44569C571A02C5B0A0552505C71374584295F4751161AFED6659F410EC80FB5228A2237390D92B8EA89FD63E8D50904FEA75D2A2BC3B0AA58F9C0D3496CA17D2FA90F145F2B9E321F09D1D1B4AD578371D22CA0B5C7D8B6D56543E460E98D5F65816661CB7FEEB14B
answer = BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1703000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE000100180BC02AC43F20B237E4444C04BE32842390E3F7D52AFC906C03363531DF09592E77912D66DFD76D3D59565923ED77339CBBD3AFB28D2B91891148C5A1CD5A70B9979B7F0AC842633CBF2C2CFAE70DC8008B0FB120014495137CC6FD5C9C66C1175ED43F60586F1EE0AF4E5CFB00E527CE614A81081CCE842416BDBE408AC097BB0B7F8DDBDC047BA0D6F65CAAB64BA3F30FB389965482BA168C2094BF434A7F3E1113E44569C571A02C5B0A0552505C71374584295F4751161AFED6659F410EC80FB5228A2237390D92B8EA89FD63E8D50904FEA75D2A2BC3B0AA58F9C0D3496CA17D2FA90F145F2B9E321F09D1D1B4AD578371D22CA0B5C7D8B6D56543E460E98D5F65816661CB7FEEB14B</code></pre>
<pre><code>answer_with_hash = 72A6211AFB558CD7CF0F96EE538AB8F0C2553319BA0D89B5FECFAFC71ED1E836B5B3D2B740AD28995C6680D50D08F9296D31D90FD254EF3403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010022A6640FF8305EF05EA6FD25001A11C7659E1949BCF4583491F62B60A402C7E1F7A33EFEF4ADE0482006CC89EEB95605BAE5CB11BE79F1CEEA1206821CCFCC96FAE48ADA17093D7A0605EA561DDD03820FE03BED2CF1C05C2742C6E492ACE30065C71135CA0B24238F37EF36EC8C82E888B97465DFA892437391370233C30D3B7BE0B1377A6A69CDF2E354702410C0D63FC33D763308AC12E0CBDA79B521F522F35C72CC41E5D573431A7740D3C39D08D6613FBCA7277B243B4DCD181283F3D4B4D3BACBDFD68FE6171F7DA5147D372616C70C3ADDC4E798D8F0CFDE8FE84E6F1998061BADD6D935D2D4E0FB1E7941DEBC47553099981A62482AF983488AA5520D975F65FEF5340A158C513D
answer = BA0D89B5FECFAFC71ED1E836B5B3D2B740AD28995C6680D50D08F9296D31D90FD254EF3403000000FE000100C71CAEB9C6B1C9048E6C522F70F13F73980D40238E3E21C14934D037563D930F48198A0AA7C14058229493D22530F4DBFA336F6E0AC925139543AED44CCE7C3720FD51F69458705AC68CD4FE6B6B13ABDC9746512969328454F18FAF8C595F642477FE96BB2A941D5BCD1D4AC8CC49880708FA9B378E3C4F3A9060BEE67CF9A4A4A695811051907E162753B56B0F6B410DBA74D8A84B2A14B3144E0EF1284754FD17ED950D5965B4B9DD46582DB1178D169C6BC465B0D6FF9CA3928FEF5B9AE4E418FC15E83EBEA0F87FA9FF5EED70050DED2849F47BF959D956850CE929851F0D8115F635B105EE2E4E15D04B2454BF6F4FADF034B10403119CD8E3B92FCC5BFE00010022A6640FF8305EF05EA6FD25001A11C7659E1949BCF4583491F62B60A402C7E1F7A33EFEF4ADE0482006CC89EEB95605BAE5CB11BE79F1CEEA1206821CCFCC96FAE48ADA17093D7A0605EA561DDD03820FE03BED2CF1C05C2742C6E492ACE30065C71135CA0B24238F37EF36EC8C82E888B97465DFA892437391370233C30D3B7BE0B1377A6A69CDF2E354702410C0D63FC33D763308AC12E0CBDA79B521F522F35C72CC41E5D573431A7740D3C39D08D6613FBCA7277B243B4DCD181283F3D4B4D3BACBDFD68FE6171F7DA5147D372616C70C3ADDC4E798D8F0CFDE8FE84E6F1998061BADD6D935D2D4E0FB1E7941DEBC47553099981A62482AF983488AA5520D975F65FEF5340A158C513D</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 42 15 54 56 11 32 BA CA F3 AF 34 0A
0010 | 8B 83 39 C7 B3 5F 24 C3 B6 55 D7 72 16 DF 03 C6
0020 | A7 69 1B 17 03 00 00 00 FE 00 01 00 C7 1C AE B9
<pre><code>0000 | BA 0D 89 B5 FE CF AF C7 1E D1 E8 36 B5 B3 D2 B7
0010 | 40 AD 28 99 5C 66 80 D5 0D 08 F9 29 6D 31 D9 0F
0020 | D2 54 EF 34 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 = BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1
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 | 18 0B C0 2A C4 3F 20 B2 37 E4 44 4C 04 BE 32 84
0140 | 23 90 E3 F7 D5 2A FC 90 6C 03 36 35 31 DF 09 59
0150 | 2E 77 91 2D 66 DF D7 6D 3D 59 56 59 23 ED 77 33
0160 | 9C BB D3 AF B2 8D 2B 91 89 11 48 C5 A1 CD 5A 70
0170 | B9 97 9B 7F 0A C8 42 63 3C BF 2C 2C FA E7 0D C8
0180 | 00 8B 0F B1 20 01 44 95 13 7C C6 FD 5C 9C 66 C1
0190 | 17 5E D4 3F 60 58 6F 1E E0 AF 4E 5C FB 00 E5 27
01A0 | CE 61 4A 81 08 1C CE 84 24 16 BD BE 40 8A C0 97
01B0 | BB 0B 7F 8D DB DC 04 7B A0 D6 F6 5C AA B6 4B A3
01C0 | F3 0F B3 89 96 54 82 BA 16 8C 20 94 BF 43 4A 7F
01D0 | 3E 11 13 E4 45 69 C5 71 A0 2C 5B 0A 05 52 50 5C
01E0 | 71 37 45 84 29 5F 47 51 16 1A FE D6 65 9F 41 0E
01F0 | C8 0F B5 22 8A 22 37 39 0D 92 B8 EA 89 FD 63 E8
0200 | D5 09 04 FE A7 5D 2A 2B C3 B0 AA 58 F9 C0 D3 49
0210 | 6C A1 7D 2F A9 0F 14 5F 2B 9E 32 1F 09 D1 D1 B4
0220 | AD 57 83 71 D2 2C A0 B5 C7 D8 B6 D5 65 43 E4 60
0230 | E9 8D 5F 65</code></pre>
0130 | 22 A6 64 0F F8 30 5E F0 5E A6 FD 25 00 1A 11 C7
0140 | 65 9E 19 49 BC F4 58 34 91 F6 2B 60 A4 02 C7 E1
0150 | F7 A3 3E FE F4 AD E0 48 20 06 CC 89 EE B9 56 05
0160 | BA E5 CB 11 BE 79 F1 CE EA 12 06 82 1C CF CC 96
0170 | FA E4 8A DA 17 09 3D 7A 06 05 EA 56 1D DD 03 82
0180 | 0F E0 3B ED 2C F1 C0 5C 27 42 C6 E4 92 AC E3 00
0190 | 65 C7 11 35 CA 0B 24 23 8F 37 EF 36 EC 8C 82 E8
01A0 | 88 B9 74 65 DF A8 92 43 73 91 37 02 33 C3 0D 3B
01B0 | 7B E0 B1 37 7A 6A 69 CD F2 E3 54 70 24 10 C0 D6
01C0 | 3F C3 3D 76 33 08 AC 12 E0 CB DA 79 B5 21 F5 22
01D0 | F3 5C 72 CC 41 E5 D5 73 43 1A 77 40 D3 C3 9D 08
01E0 | D6 61 3F BC A7 27 7B 24 3B 4D CD 18 12 83 F3 D4
01F0 | B4 D3 BA CB DF D6 8F E6 17 1F 7D A5 14 7D 37 26
0200 | 16 C7 0C 3A DD C4 E7 98 D8 F0 CF DE 8F E8 4E 6F
0210 | 19 98 06 1B AD D6 D9 35 D2 D4 E0 FB 1E 79 41 DE
0220 | BC 47 55 30 99 98 1A 62 48 2A F9 83 48 8A A5 52
0230 | 0D 97 5F 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 = BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
@ -594,13 +594,13 @@ answer = BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1
<tr>
<td>g_a</td>
<td>300, 260</td>
<td><code>FE000100180BC02AC43F20B237E4444C</code> <code>04BE32842390E3F7D52AFC906C033635</code> <code>31DF09592E77912D66DFD76D3D595659</code> <code>23ED77339CBBD3AFB28D2B91891148C5</code> <code>A1CD5A70B9979B7F0AC842633CBF2C2C</code> <code>FAE70DC8008B0FB120014495137CC6FD</code> <code>5C9C66C1175ED43F60586F1EE0AF4E5C</code> <code>FB00E527CE614A81081CCE842416BDBE</code> <code>408AC097BB0B7F8DDBDC047BA0D6F65C</code> <code>AAB64BA3F30FB389965482BA168C2094</code> <code>BF434A7F3E1113E44569C571A02C5B0A</code> <code>0552505C71374584295F4751161AFED6</code> <code>659F410EC80FB5228A2237390D92B8EA</code> <code>89FD63E8D50904FEA75D2A2BC3B0AA58</code> <code>F9C0D3496CA17D2FA90F145F2B9E321F</code> <code>09D1D1B4AD578371D22CA0B5C7D8B6D5</code><br> <code>6543E460</code></td>
<td><code>FE00010022A6640FF8305EF05EA6FD25</code> <code>001A11C7659E1949BCF4583491F62B60</code> <code>A402C7E1F7A33EFEF4ADE0482006CC89</code> <code>EEB95605BAE5CB11BE79F1CEEA120682</code> <code>1CCFCC96FAE48ADA17093D7A0605EA56</code> <code>1DDD03820FE03BED2CF1C05C2742C6E4</code> <code>92ACE30065C71135CA0B24238F37EF36</code> <code>EC8C82E888B97465DFA8924373913702</code> <code>33C30D3B7BE0B1377A6A69CDF2E35470</code> <code>2410C0D63FC33D763308AC12E0CBDA79</code> <code>B521F522F35C72CC41E5D573431A7740</code> <code>D3C39D08D6613FBCA7277B243B4DCD18</code> <code>1283F3D4B4D3BACBDFD68FE6171F7DA5</code> <code>147D372616C70C3ADDC4E798D8F0CFDE</code> <code>8FE84E6F1998061BADD6D935D2D4E0FB</code> <code>1E7941DEBC47553099981A62482AF983</code><br> <code>488AA552</code></td>
<td><code>g_a</code> diffie-hellman parameter</td>
</tr>
<tr>
<td>server_time</td>
<td>560, 4</td>
<td><code>E98D5F65</code> (1700761065 in decimal)</td>
<td><code>0D975F65</code> (1700763405 in decimal)</td>
<td>Server time</td>
</tr>
</tbody>
@ -609,34 +609,34 @@ answer = BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1
<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 = AA1D92BAD27603BE7565F8366ECBE6C30C40DC0D155B4EAA221F2E7E4A062FEB423A460C35977B51F3CFED6E9F9967EAAFE87834ED0FC5E578AD919F11FE5A4059C8768F4D5270C046B2403059E77FE50B837D06B987923C69A39DFB176D9140A5EB5F417D2DCCA98B5DE3225DD875A451CE0B1138FB3785E21B3C980C75D0615F42A732E2CF9D6ED5633D70ECAD89A15DE8EE1FFB1D9E68D098CA72482CD7B51EBFAC07E100CC3A601121AB669BDF47FF56332D4A8557D14EE5A4A7F1F2CE7B51584F96C85682039524F747F862DE8A419595B51E7119E59E1431782315457AEBFE8BD5013952FDEB65D18391F9B40E644C376760E2FAE7BBA9EADF9E32575F</code></pre>
<pre><code>b = 3279D36C8A1D56AC230D918CFDE958079961FAB4638E5099D1949F9DC3F4B757F88FCA5F174B561EE6496E2A0C82466367EB5B552931F7656EB24EA00E8BB62CDD5E8487322B237CA6DB72AC5806C72D627F7614C0DDF1C0410D447B35BAE64F74D880E72E41A7C0038C44BD643D7E87AFBA94E640538084692280AA1DADB4A0EFFF6A111061EA7D3C6DAC44AEA74BFA71DD5E416502182F47EA428F006023FC2876C45DBA50190F234762BB503916AF6EFCF9DCCB7559B31D5ABEF0019BD6BA4518F096B57100D62FF1EFCFF2B9BD68753A6E19C7AF426E9940602A7FE4468B3FE3E70B9B7E7599FC0D435F04C00E70B0C1E7ADE33CAA660AEDBC7B26DA64BD</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 = C0C2779D7F456486DD6EC4DEE52DECC9B7E165FF077239AD757881405F7DCB9E8583F768D3886D2033B6279A7EBC2DF1AF55705D5A1F9B9B07B1221E4FFDFD0CD2DA5FCB6314C9CE223E4472036FF4006A8FF6F82D4656F9C65E48385B7D72265B0D41EFC5C7FF7DFE27C506CF3C6C94479E0B97573DCD6A1EF77ED339EC6E251EC4DDDC933161118B40FA55B37CCF2E8D14C6CF10BC7D62B512FBED1FABBF3D247186C533D400543A52496CC0498B677A489D6E41FEC12C69D3E0CC2D3DDBB4FA52E41F920780595CCC574E2076C2B209F79A549FB2671B6260D728140440B3A7F1939C33FCD62C287C0810165AC3DF971CDDB6928F86B20C7CA57EDB578A</code></pre>
<pre><code>g_b = 96902699CC27003803510B24CC9F178CA238F49D0200C686606043090C844B79D9B273FF4CF70EC2859696D4F44201172590BF43BE5ED5C85458FD2839EB807A2B06DF62B00B25B2EBF0E82D43DE058E7C577756FE6970071811188F6E9B142DE42F65EAA4B8000A9026E980C078FBC1FFB77D4AE0FDBCBC45476C612FF033137A62EAAE0671DEEAC0DA11016B2DA887B0F407A23635AF78373432B380359EEBBDF92F642B5C72FA28690227CBB88E9669A2D50D63F021A8E0E444170DE6B34B84527F35488AF779E0A0D5DAAB8829DA977B16F0679BBC31071CA675A47F65DD6EFB2C45FBDDFB781331533C29024B8E3EEDFAC5C7A4AEE4A0885F3517071D37</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 42 15 54 56 11 32 BA CA F3 AF 34 0A
0010 | 8B 83 39 C7 B3 5F 24 C3 B6 55 D7 72 16 DF 03 C6
0020 | A7 69 1B 17 00 00 00 00 00 00 00 00 FE FF 00 00
0030 | C0 C2 77 9D 7F 45 64 86 DD 6E C4 DE E5 2D EC C9
0040 | B7 E1 65 FF 07 72 39 AD 75 78 81 40 5F 7D CB 9E
0050 | 85 83 F7 68 D3 88 6D 20 33 B6 27 9A 7E BC 2D F1
0060 | AF 55 70 5D 5A 1F 9B 9B 07 B1 22 1E 4F FD FD 0C
0070 | D2 DA 5F CB 63 14 C9 CE 22 3E 44 72 03 6F F4 00
0080 | 6A 8F F6 F8 2D 46 56 F9 C6 5E 48 38 5B 7D 72 26
0090 | 5B 0D 41 EF C5 C7 FF 7D FE 27 C5 06 CF 3C 6C 94
00A0 | 47 9E 0B 97 57 3D CD 6A 1E F7 7E D3 39 EC 6E 25
00B0 | 1E C4 DD DC 93 31 61 11 8B 40 FA 55 B3 7C CF 2E
00C0 | 8D 14 C6 CF 10 BC 7D 62 B5 12 FB ED 1F AB BF 3D
00D0 | 24 71 86 C5 33 D4 00 54 3A 52 49 6C C0 49 8B 67
00E0 | 7A 48 9D 6E 41 FE C1 2C 69 D3 E0 CC 2D 3D DB B4
00F0 | FA 52 E4 1F 92 07 80 59 5C CC 57 4E 20 76 C2 B2
0100 | 09 F7 9A 54 9F B2 67 1B 62 60 D7 28 14 04 40 B3
0110 | A7 F1 93 9C 33 FC D6 2C 28 7C 08 10 16 5A C3 DF
0120 | 97 1C DD B6 92 8F 86 B2 0C 7C A5 7E DB 57 8A 00</code></pre>
<pre><code>0000 | 54 B6 43 66 FE CF AF C7 1E D1 E8 36 B5 B3 D2 B7
0010 | 40 AD 28 99 5C 66 80 D5 0D 08 F9 29 6D 31 D9 0F
0020 | D2 54 EF 34 00 00 00 00 00 00 00 00 FE 00 01 00
0030 | 96 90 26 99 CC 27 00 38 03 51 0B 24 CC 9F 17 8C
0040 | A2 38 F4 9D 02 00 C6 86 60 60 43 09 0C 84 4B 79
0050 | D9 B2 73 FF 4C F7 0E C2 85 96 96 D4 F4 42 01 17
0060 | 25 90 BF 43 BE 5E D5 C8 54 58 FD 28 39 EB 80 7A
0070 | 2B 06 DF 62 B0 0B 25 B2 EB F0 E8 2D 43 DE 05 8E
0080 | 7C 57 77 56 FE 69 70 07 18 11 18 8F 6E 9B 14 2D
0090 | E4 2F 65 EA A4 B8 00 0A 90 26 E9 80 C0 78 FB C1
00A0 | FF B7 7D 4A E0 FD BC BC 45 47 6C 61 2F F0 33 13
00B0 | 7A 62 EA AE 06 71 DE EA C0 DA 11 01 6B 2D A8 87
00C0 | B0 F4 07 A2 36 35 AF 78 37 34 32 B3 80 35 9E EB
00D0 | BD F9 2F 64 2B 5C 72 FA 28 69 02 27 CB B8 8E 96
00E0 | 69 A2 D5 0D 63 F0 21 A8 E0 E4 44 17 0D E6 B3 4B
00F0 | 84 52 7F 35 48 8A F7 79 E0 A0 D5 DA AB 88 29 DA
0100 | 97 7B 16 F0 67 9B BC 31 07 1C A6 75 A4 7F 65 DD
0110 | 6E FB 2C 45 FB DD FB 78 13 31 53 3C 29 02 4B 8E
0120 | 3E ED FA C5 C7 A4 AE E4 A0 88 5F 35 17 07 1D 37</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 = BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1
<tr>
<td>nonce</td>
<td>4, 16</td>
<td><code>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>20, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>g_b</td>
<td>36, 260</td>
<td><code>FEFF0000C0C2779D7F456486DD6EC4DE</code> <code>E52DECC9B7E165FF077239AD75788140</code> <code>5F7DCB9E8583F768D3886D2033B6279A</code> <code>7EBC2DF1AF55705D5A1F9B9B07B1221E</code> <code>4FFDFD0CD2DA5FCB6314C9CE223E4472</code> <code>036FF4006A8FF6F82D4656F9C65E4838</code> <code>5B7D72265B0D41EFC5C7FF7DFE27C506</code> <code>CF3C6C94479E0B97573DCD6A1EF77ED3</code> <code>39EC6E251EC4DDDC933161118B40FA55</code> <code>B37CCF2E8D14C6CF10BC7D62B512FBED</code> <code>1FABBF3D247186C533D400543A52496C</code> <code>C0498B677A489D6E41FEC12C69D3E0CC</code> <code>2D3DDBB4FA52E41F920780595CCC574E</code> <code>2076C2B209F79A549FB2671B6260D728</code> <code>140440B3A7F1939C33FCD62C287C0810</code> <code>165AC3DF971CDDB6928F86B20C7CA57E</code><br> <code>DB578A00</code></td>
<td><code>FE00010096902699CC27003803510B24</code> <code>CC9F178CA238F49D0200C68660604309</code> <code>0C844B79D9B273FF4CF70EC2859696D4</code> <code>F44201172590BF43BE5ED5C85458FD28</code> <code>39EB807A2B06DF62B00B25B2EBF0E82D</code> <code>43DE058E7C577756FE6970071811188F</code> <code>6E9B142DE42F65EAA4B8000A9026E980</code> <code>C078FBC1FFB77D4AE0FDBCBC45476C61</code> <code>2FF033137A62EAAE0671DEEAC0DA1101</code> <code>6B2DA887B0F407A23635AF78373432B3</code> <code>80359EEBBDF92F642B5C72FA28690227</code> <code>CBB88E9669A2D50D63F021A8E0E44417</code> <code>0DE6B34B84527F35488AF779E0A0D5DA</code> <code>AB8829DA977B16F0679BBC31071CA675</code> <code>A47F65DD6EFB2C45FBDDFB781331533C</code> <code>29024B8E3EEDFAC5C7A4AEE4A0885F35</code><br> <code>17071D37</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 = BA0D89B5421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B1
<!-- 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 = 54B64366421554561132BACAF3AF340A8B8339C7B35F24C3B655D77216DF03C6A7691B170000000000000000FEFF0000C0C2779D7F456486DD6EC4DEE52DECC9B7E165FF077239AD757881405F7DCB9E8583F768D3886D2033B6279A7EBC2DF1AF55705D5A1F9B9B07B1221E4FFDFD0CD2DA5FCB6314C9CE223E4472036FF4006A8FF6F82D4656F9C65E48385B7D72265B0D41EFC5C7FF7DFE27C506CF3C6C94479E0B97573DCD6A1EF77ED339EC6E251EC4DDDC933161118B40FA55B37CCF2E8D14C6CF10BC7D62B512FBED1FABBF3D247186C533D400543A52496CC0498B677A489D6E41FEC12C69D3E0CC2D3DDBB4FA52E41F920780595CCC574E2076C2B209F79A549FB2671B6260D728140440B3A7F1939C33FCD62C287C0810165AC3DF971CDDB6928F86B20C7CA57EDB578A00
padding = FB7A77388CCA857E52B79D7E
tmp_aes_key = 162FB726AB8FEF45B1DCA7DCC00ACECCDEFB62C0B6210E15D8063ED42B80FD4A
tmp_aes_iv = 32132DB36A6E6398FF5B583EFD3FB86A009030F6DEF4E181DD9E8F779F288638</code></pre>
<pre><code>data = 54B64366FECFAFC71ED1E836B5B3D2B740AD28995C6680D50D08F9296D31D90FD254EF340000000000000000FE00010096902699CC27003803510B24CC9F178CA238F49D0200C686606043090C844B79D9B273FF4CF70EC2859696D4F44201172590BF43BE5ED5C85458FD2839EB807A2B06DF62B00B25B2EBF0E82D43DE058E7C577756FE6970071811188F6E9B142DE42F65EAA4B8000A9026E980C078FBC1FFB77D4AE0FDBCBC45476C612FF033137A62EAAE0671DEEAC0DA11016B2DA887B0F407A23635AF78373432B380359EEBBDF92F642B5C72FA28690227CBB88E9669A2D50D63F021A8E0E444170DE6B34B84527F35488AF779E0A0D5DAAB8829DA977B16F0679BBC31071CA675A47F65DD6EFB2C45FBDDFB781331533C29024B8E3EEDFAC5C7A4AEE4A0885F3517071D37
padding = C3F4DA891DDE75923E86D403
tmp_aes_key = 78042BB79FF94CA039702A70F572B40EA8C26481F1E8B92FFEC986C9F2504B8F
tmp_aes_iv = E19A6A6DBC669E581E0719B1B73A515176656A86275C8A760DD2278E73BF1F9D</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 = 934BE6E9DB7F6551DA393AB34278EF60CB8779450221882921966F76355D75E64D26C1F88703BAD19FACAFB84B5C26DEFE4DB0E1B61CA0F2DF76D02A591F73A51175DC8F7191A0CFD55C2F0E24AEA62278668EC5EFA0BABB0DBE42693AACD96F4F24461962B0F1CD1F885AACAA6FCF29DD0F22B77D137C6349D8AC8FBEAA3671CE64D2D27D76B25BD4C15EE2AFFA60443F6DDD38BB2134332BEAABD09BB1206F30EE14ACA8489AA0CB7A8BC2AE3391A63048912A9E04C653F9B28CEB8FD70381D6C10650CD19EC5C8E5893A7A7FA8E136AFD031747D2E6B74121744C9F7CA65568E527B66D2BAE30CD1C92368DEC7D9C911A3E797B83157DA2645518EF2810015A11D5406758909613B75B1E94E1A2DA677BDFC3373B871AB6988B6BCBD56D21037CEE5C0E1D356FB5655F288576D962A5F7BFBD242B994B8E5277EC735B6D6BB8BF2598447F17A07E33990CE1E3D1A1</code></pre>
<pre><code>encrypted_data = 56C6A2EAAA030AECC70CEB882F2BDE2B54704B0B77C280BFE3EEA15AC50C9660A775B61849700613AF786419C98097292D497673CA9750E53DA7CE2A777C34C1484D7B6BE34F14994E1C05FB577215A643BD6075326956B1CE354A2C4D59E990203EF74BF35C18ABC9409DDB57F09529F568449C8D15ED912BAA1C1691DD8B2166CA77172897CFEFA1F2652C3CA9DCDD1E4A769FE83D4C85214A4A97891061A0B8F397C496B57512227F86BB7542C4DB0FE048836EA6CF9C28035F9B80AADB56B7B33870A6DB350BE052C36482DB1073151516C73DA076FAEAE26A61D9D4C353D99BCD4F589A128EE60FA49CFC6E0849CC88181AFA424A9DBA541A9C7EC27C75B8CC12DA41475BBA1458576FA38CF7DAA6FBDAE2F62DA6407F0EBF30BBF64C83D3F2E268DEA92A1517E4483A544B0DDDD78CBF4290241DC691DC889464F72BA78A12377802D7AFF565E2021EDA27E9B7</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 A8 BD 05 00 E9 8D 5F 65
0010 | 78 01 00 00 1F 5F 04 F5 42 15 54 56 11 32 BA CA
0020 | F3 AF 34 0A 8B 83 39 C7 B3 5F 24 C3 B6 55 D7 72
0030 | 16 DF 03 C6 A7 69 1B 17 FE 50 01 00 93 4B E6 E9
0040 | DB 7F 65 51 DA 39 3A B3 42 78 EF 60 CB 87 79 45
0050 | 02 21 88 29 21 96 6F 76 35 5D 75 E6 4D 26 C1 F8
0060 | 87 03 BA D1 9F AC AF B8 4B 5C 26 DE FE 4D B0 E1
0070 | B6 1C A0 F2 DF 76 D0 2A 59 1F 73 A5 11 75 DC 8F
0080 | 71 91 A0 CF D5 5C 2F 0E 24 AE A6 22 78 66 8E C5
0090 | EF A0 BA BB 0D BE 42 69 3A AC D9 6F 4F 24 46 19
00A0 | 62 B0 F1 CD 1F 88 5A AC AA 6F CF 29 DD 0F 22 B7
00B0 | 7D 13 7C 63 49 D8 AC 8F BE AA 36 71 CE 64 D2 D2
00C0 | 7D 76 B2 5B D4 C1 5E E2 AF FA 60 44 3F 6D DD 38
00D0 | BB 21 34 33 2B EA AB D0 9B B1 20 6F 30 EE 14 AC
00E0 | A8 48 9A A0 CB 7A 8B C2 AE 33 91 A6 30 48 91 2A
00F0 | 9E 04 C6 53 F9 B2 8C EB 8F D7 03 81 D6 C1 06 50
0100 | CD 19 EC 5C 8E 58 93 A7 A7 FA 8E 13 6A FD 03 17
0110 | 47 D2 E6 B7 41 21 74 4C 9F 7C A6 55 68 E5 27 B6
0120 | 6D 2B AE 30 CD 1C 92 36 8D EC 7D 9C 91 1A 3E 79
0130 | 7B 83 15 7D A2 64 55 18 EF 28 10 01 5A 11 D5 40
0140 | 67 58 90 96 13 B7 5B 1E 94 E1 A2 DA 67 7B DF C3
0150 | 37 3B 87 1A B6 98 8B 6B CB D5 6D 21 03 7C EE 5C
0160 | 0E 1D 35 6F B5 65 5F 28 85 76 D9 62 A5 F7 BF BD
0170 | 24 2B 99 4B 8E 52 77 EC 73 5B 6D 6B B8 BF 25 98
0180 | 44 7F 17 A0 7E 33 99 0C E1 E3 D1 A1</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 44 2C 0C 00 0D 97 5F 65
0010 | 78 01 00 00 1F 5F 04 F5 FE CF AF C7 1E D1 E8 36
0020 | B5 B3 D2 B7 40 AD 28 99 5C 66 80 D5 0D 08 F9 29
0030 | 6D 31 D9 0F D2 54 EF 34 FE 50 01 00 56 C6 A2 EA
0040 | AA 03 0A EC C7 0C EB 88 2F 2B DE 2B 54 70 4B 0B
0050 | 77 C2 80 BF E3 EE A1 5A C5 0C 96 60 A7 75 B6 18
0060 | 49 70 06 13 AF 78 64 19 C9 80 97 29 2D 49 76 73
0070 | CA 97 50 E5 3D A7 CE 2A 77 7C 34 C1 48 4D 7B 6B
0080 | E3 4F 14 99 4E 1C 05 FB 57 72 15 A6 43 BD 60 75
0090 | 32 69 56 B1 CE 35 4A 2C 4D 59 E9 90 20 3E F7 4B
00A0 | F3 5C 18 AB C9 40 9D DB 57 F0 95 29 F5 68 44 9C
00B0 | 8D 15 ED 91 2B AA 1C 16 91 DD 8B 21 66 CA 77 17
00C0 | 28 97 CF EF A1 F2 65 2C 3C A9 DC DD 1E 4A 76 9F
00D0 | E8 3D 4C 85 21 4A 4A 97 89 10 61 A0 B8 F3 97 C4
00E0 | 96 B5 75 12 22 7F 86 BB 75 42 C4 DB 0F E0 48 83
00F0 | 6E A6 CF 9C 28 03 5F 9B 80 AA DB 56 B7 B3 38 70
0100 | A6 DB 35 0B E0 52 C3 64 82 DB 10 73 15 15 16 C7
0110 | 3D A0 76 FA EA E2 6A 61 D9 D4 C3 53 D9 9B CD 4F
0120 | 58 9A 12 8E E6 0F A4 9C FC 6E 08 49 CC 88 18 1A
0130 | FA 42 4A 9D BA 54 1A 9C 7E C2 7C 75 B8 CC 12 DA
0140 | 41 47 5B BA 14 58 57 6F A3 8C F7 DA A6 FB DA E2
0150 | F6 2D A6 40 7F 0E BF 30 BB F6 4C 83 D3 F2 E2 68
0160 | DE A9 2A 15 17 E4 48 3A 54 4B 0D DD D7 8C BF 42
0170 | 90 24 1D C6 91 DC 88 94 64 F7 2B A7 8A 12 37 78
0180 | 02 D7 AF F5 65 E2 02 1E DA 27 E9 B7</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>A8BD0500E98D5F65</code></td>
<td><code>442C0C000D975F65</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>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>encrypted_data</td>
<td>56, 340</td>
<td><code>FE500100934BE6E9DB7F6551DA393AB3</code> <code>4278EF60CB8779450221882921966F76</code> <code>355D75E64D26C1F88703BAD19FACAFB8</code> <code>4B5C26DEFE4DB0E1B61CA0F2DF76D02A</code> <code>591F73A51175DC8F7191A0CFD55C2F0E</code> <code>24AEA62278668EC5EFA0BABB0DBE4269</code> <code>3AACD96F4F24461962B0F1CD1F885AAC</code> <code>AA6FCF29DD0F22B77D137C6349D8AC8F</code> <code>BEAA3671CE64D2D27D76B25BD4C15EE2</code> <code>AFFA60443F6DDD38BB2134332BEAABD0</code> <code>9BB1206F30EE14ACA8489AA0CB7A8BC2</code> <code>AE3391A63048912A9E04C653F9B28CEB</code> <code>8FD70381D6C10650CD19EC5C8E5893A7</code> <code>A7FA8E136AFD031747D2E6B74121744C</code> <code>9F7CA65568E527B66D2BAE30CD1C9236</code> <code>8DEC7D9C911A3E797B83157DA2645518</code> <code>EF2810015A11D5406758909613B75B1E</code> <code>94E1A2DA677BDFC3373B871AB6988B6B</code> <code>CBD56D21037CEE5C0E1D356FB5655F28</code> <code>8576D962A5F7BFBD242B994B8E5277EC</code> <code>735B6D6BB8BF2598447F17A07E33990C</code><br> <code>E1E3D1A1</code></td>
<td><code>FE50010056C6A2EAAA030AECC70CEB88</code> <code>2F2BDE2B54704B0B77C280BFE3EEA15A</code> <code>C50C9660A775B61849700613AF786419</code> <code>C98097292D497673CA9750E53DA7CE2A</code> <code>777C34C1484D7B6BE34F14994E1C05FB</code> <code>577215A643BD6075326956B1CE354A2C</code> <code>4D59E990203EF74BF35C18ABC9409DDB</code> <code>57F09529F568449C8D15ED912BAA1C16</code> <code>91DD8B2166CA77172897CFEFA1F2652C</code> <code>3CA9DCDD1E4A769FE83D4C85214A4A97</code> <code>891061A0B8F397C496B57512227F86BB</code> <code>7542C4DB0FE048836EA6CF9C28035F9B</code> <code>80AADB56B7B33870A6DB350BE052C364</code> <code>82DB1073151516C73DA076FAEAE26A61</code> <code>D9D4C353D99BCD4F589A128EE60FA49C</code> <code>FC6E0849CC88181AFA424A9DBA541A9C</code> <code>7EC27C75B8CC12DA41475BBA1458576F</code> <code>A38CF7DAA6FBDAE2F62DA6407F0EBF30</code> <code>BBF64C83D3F2E268DEA92A1517E4483A</code> <code>544B0DDDD78CBF4290241DC691DC8894</code> <code>64F72BA78A12377802D7AFF565E2021E</code><br> <code>DA27E9B7</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 = A0D00939EF00E4D93E94F572C2266C4693646EC1A0FADE668C6A6C2BE26ECD4445700D4A32EE3C727EF5CC2E25B43A84A75342960801816C70EE797C62B205828D56FC2DB2DAF3BAD0397D064D8189523034FF2D905741C6C5EC2F029F9107F1CCEE5B0DCD25BC8F943F9C41252777ABA39BFD74294474FF42D19C42000380F2876707B1C8D6E856247B05EAA0F34028FECD59EE6B2F93A2381E2715454F0DB83EB6B4D71973A25924FECD2D4120342922F8AFD842CB1DB7D0424ECB20CB0DDE23AB4931F89BA2C4612E4B6780810EE05821635F9E2302A5C504DB38448D9B4A4259A0D7E47606B9C575687A59A0795FB8EA3C8976FC83E706EEA58CE7B51C63</code></pre>
<pre><code>auth_key = 9BCB32B6277D8A9E003FB2852D8B71EC068B7D102A9BF10B9CD9145E1493EF316DB0CF699BB8D80EE04B3414A3C0FE0B89DE08D0DF8EC7B31E66CA451BD2ACD81346E5C78928C155AA9F3696E87972D8C10F08FB09D50678575E9E80D5012F56A7D7EA5C28A0D326D693E5F08F2BC315043FF5363BE3507362B30301037A5518CC9D42C0DADF7424ACE74EF3C4C8640E52FEC4326901796B5C0B721253E2081852B32D5BA0F918D5C55E8EFBCBF6AF04C60A5C4C3036BFD580B0B85FCE56638AAB8B557BED2C1AA2AF3079BCBB822679E7D8DFD52E396AAE401803E3D712A0FE798D77165A4AAD290B984D6CBCF1F6796E2DEC6EC385EF5D702EE459E866415C</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 B4 B8 A9 E9 8D 5F 65
0010 | 50 00 00 00 34 F7 CB 3B 42 15 54 56 11 32 BA CA
0020 | F3 AF 34 0A 8B 83 39 C7 B3 5F 24 C3 B6 55 D7 72
0030 | 16 DF 03 C6 A7 69 1B 17 3C F1 5F DD 06 8D 80 26
0040 | 1F 7D 98 5A 09 BC 4F 48</code></pre>
<pre><code>0000 | 00 00 00 00 00 00 00 00 01 BC 96 A7 0D 97 5F 65
0010 | 40 00 00 00 34 F7 CB 3B FE CF AF C7 1E D1 E8 36
0020 | B5 B3 D2 B7 40 AD 28 99 5C 66 80 D5 0D 08 F9 29
0030 | 6D 31 D9 0F D2 54 EF 34 90 80 E4 4D 95 8C F0 53
0040 | 85 90 F2 61 76 6A 3D 24</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>01B4B8A9E98D5F65</code></td>
<td><code>01BC96A70D975F65</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>50000000</code> (80 in decimal)</td>
<td><code>40000000</code> (64 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>421554561132BACAF3AF340A8B8339C7</code></td>
<td><code>FECFAFC71ED1E836B5B3D2B740AD2899</code></td>
<td>Value generated by client in Step 1</td>
</tr>
<tr>
<td>server_nonce</td>
<td>40, 16</td>
<td><code>B35F24C3B655D77216DF03C6A7691B17</code></td>
<td><code>5C6680D50D08F9296D31D90FD254EF34</code></td>
<td>Value received from server in Step 2</td>
</tr>
<tr>
<td>new_nonce_hash1</td>
<td>56, 16</td>
<td><code>3CF15FDD068D80261F7D985A09BC4F48</code></td>
<td><code>9080E44D958CF0538590F261766A3D24</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>