<div dir="auto"><div data-smartmail="gmail_signature" dir="auto"><br></div><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">пн, 13 ÑÐ½Ð². 2020 Ð³., 11:22 Vitaly Chikunov &lt;<a href="mailto:vt@altlinux.org">vt@altlinux.org</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Jan 13, 2020 at 09:51:18AM +0300, Dmitry Belyavsky wrote:<br>
&gt; On Mon, Jan 13, 2020 at 8:07 AM Vitaly Chikunov &lt;<a href="mailto:vt@altlinux.org" target="_blank" rel="noreferrer">vt@altlinux.org</a>&gt; wrote:<br>
&gt; <br>
&gt; &gt; (Ð’ ÐºÐ¾Ð¿Ð¸Ð»ÐºÑƒ Ð¾ÑˆÐ¸Ð±Ð¾Ñ‡Ð½Ñ‹Ñ… Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ð¹.)<br>
&gt; &gt;<br>
&gt; &gt; Ð’ Ð¾Ð´Ð½Ð¾Ð¼ Ñ€Ð¾ÑÑÐ¸Ð¹ÑÐºÐ¾Ð¼ Ð»Ð¸Ð½ÑƒÐºÑÐµ, Ñ…эш Ð´Ð»Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… Ñ Ð´Ð»Ð¸Ð½Ð½Ð¾Ð¹ ÐºÑ€Ð°Ñ‚ной 64<br>
&gt; &gt; ÑÑ‡Ð¸Ñ‚аются Ð¸Ð½Ð°Ñ‡Ðµ Ñ‡ÐµÐ¼ Ñƒ Ð²ÑÐµÑ… Ð¾ÑÑ‚альных:<br></blockquote></div><div dir="auto"><br></div><div dir="auto">Имя, Ð±Ñ€Ð°Ñ‚, Ð¸Ð¼Ñ!</div><div dir="auto"><br></div><div dir="auto"><br></div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&gt; &gt;<br>
&gt; &gt; ...<br>
&gt; <br>
&gt; &gt;<br>
&gt; &gt; Ð˜Ð½Ñ‚ересно Ñ‡Ñ‚о Ñ‚ам Ð¼Ð¾Ð³Ð»Ð¾ Ð¿Ð¾Ð¹Ñ‚и Ð½Ðµ Ñ‚ак.<br>
&gt; &gt;<br>
&gt; <br>
&gt; ÐÑƒ ÐºÐ°Ðº. Ð¤Ð¸Ð½Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð²ÐºÐ»ÑŽÑ‡Ð°ÐµÑ‚ Ð² ÑÐµÐ±Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ðµ Ð½ÐµÐ¿Ñ€Ð¾Ñ…ешированного Ð¾ÑÑ‚атка<br>
&gt; Ð´Ð¾ Ð¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ Ð±Ð»Ð¾ÐºÐ°.<br>
&gt; Ð’от ÐµÑÐ»Ð¸ Ð¾ÑÑ‚аток Ð½Ðµ Ð¾ÑÑ‚авить, Ð° Ð²ÑÑ‘ Ñ€Ð°Ð²Ð½Ð¾ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸Ñ‚ÑŒ - Ð±ÑƒÐ´ÐµÑ‚ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÑÑ‚о<br>
&gt; ÑÐºÐ¾Ñ€ÐµÐµ Ð²ÑÐµÐ³Ð¾.<br>
<br>
1. ÐŸÐ¾-моему Ð¼Ñ‹ Ñ‚ак Ð¸ Ð´ÐµÐ»Ð°ÐµÐ¼.<br>
<br>
А Ð²Ð¾Ñ‚ Ð¾Ð½Ð¸ Ð½Ðµ Ð´ÐµÐ»Ð°ÑŽÑ‚ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ðµ _пустого Ð±Ð»Ð¾ÐºÐ°_.<br>
<br>
Ð’ Ð“ОСТ (для Ð¿Ð¾Ð»Ð½Ñ‹Ñ… Ð±Ð»Ð¾ÐºÐ¾Ð²) Ð¾Ð½Ð¸ Ð¿Ñ€Ð¾Ð¿ÑƒÑÐºÐ°ÑŽÑ‚ ÑˆÐ°Ð³Ð¸ 3.1, 3.2, 3.3, 3.4.<br>
Ð’ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð°Ñ… ÑÐºÐ°Ð·Ð°Ð½Ð¾ &quot;длина ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð¼ÐµÐ½ÑŒÑˆÐµ 512, _поэтому_ Ð¿Ñ€Ð¾Ð¸ÑÑ…одит<br>
заполнение Ð½ÐµÐ¿Ð¾Ð»Ð½Ð¾Ð³Ð¾ Ð±Ð»Ð¾ÐºÐ°&quot;. Ð Ñ‡Ñ‚о Ð¶Ðµ Ð´ÐµÐ»Ð°Ñ‚ÑŒ ÐºÐ¾Ð³Ð´Ð° Ð±Ð»Ð¾Ðº Ð¿Ð¾Ð»Ð½Ñ‹Ð¹?<br>
<br>
Кто Ð¿Ñ€Ð°Ð²?<br></blockquote></div><div dir="auto"><br></div><div dir="auto">Пункт 2.1 Ð¿ÐµÑ€ÐµÑ…од Ðº Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸ÑŽ ÐµÑÐ»Ð¸ Ð´Ð»Ð¸Ð½Ð° Ð¾ÑÑ‚атка Ð¼ÐµÐ½ÑŒÑˆÐµ 512 Ð±Ð¸Ñ‚. Ð¢Ð°ÐºÐ¸Ð¼ Ð¾Ð±Ñ€Ð°Ð·Ð¾Ð¼ Ð¿Ð¾Ð»Ð½Ñ‹Ð¹ Ð±Ð»Ð¾Ðº Ð¾Ð±Ñ€Ð°Ð±Ð°Ñ‚ывается Ð½Ð° ÑÑ‚апе 2, Ð° Ð½Ð° ÑÑ‚апе Ñ‚ри Ð¸Ð´Ñ‘Ñ‚ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ðµ Ð¿ÑƒÑÑ‚ого Ð±Ð»Ð¾ÐºÐ°.</div><div dir="auto"><br></div><div dir="auto">Но ÑÐ¾Ð³Ð»Ð°ÑˆÑƒÑÑŒ Ñ Ð”митрием, Ñ‡Ñ‚о ÑÑ‚о Ð´Ð¾Ð»Ð¶Ð½Ð¾ Ð±Ñ‹ Ð¿Ð¾ÐºÑ€Ñ‹Ð²Ð°Ñ‚ься Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð¾Ð¼ Ð¸Ð· ÑÑ‚андарта</div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Вот Ð¿Ð°Ñ‚ч ÐºÐ¾Ñ‚орый Ð´Ð°ÐµÑ‚ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚аты &quot;как Ñƒ Ð½Ð¸Ñ…&quot;:<br>
<br>
diff --git a/gost3411-2012-core.c b/gost3411-2012-core.c<br>
index de582c6..55aad37 100644<br>
--- a/gost3411-2012-core.c<br>
+++ b/gost3411-2012-core.c<br>
@@ -163,13 +163,15 @@ stage3(GOST34112012Context *CTX)<br>
  Â  Â buf.QWORD[0] = BSWAP64(CTX-&gt;bufsize &lt;&lt; 3);<br>
 #endif<br>
<br>
-  Â  pad(CTX);<br>
+  Â  if (CTX-&gt;bufsize) {<br>
+  Â  Â  Â pad(CTX);<br>
<br>
-  Â  g(&amp;(CTX-&gt;h), &amp;(CTX-&gt;N), (const unsigned char *) &amp;(CTX-&gt;buffer));<br>
+  Â  Â  Â g(&amp;(CTX-&gt;h), &amp;(CTX-&gt;N), (const unsigned char *) &amp;(CTX-&gt;buffer));<br>
<br>
-  Â  add512(&amp;(CTX-&gt;N), &amp;buf, &amp;(CTX-&gt;N));<br>
-  Â  add512(&amp;(CTX-&gt;Sigma), (const union uint512_u *) &amp;CTX-&gt;buffer[0],<br>
-  Â  Â  Â  Â  Â &amp;(CTX-&gt;Sigma));<br>
+  Â  Â  Â add512(&amp;(CTX-&gt;N), &amp;buf, &amp;(CTX-&gt;N));<br>
+  Â  Â  Â add512(&amp;(CTX-&gt;Sigma), (const union uint512_u *) &amp;CTX-&gt;buffer[0],<br>
+  Â  Â  Â  Â  Â &amp;(CTX-&gt;Sigma));<br>
+  Â  }<br>
<br>
  Â  Â g(&amp;(CTX-&gt;h), &amp;buffer0, (const unsigned char *) &amp;(CTX-&gt;N));<br>
<br>
<br>
2. ÐšÑ€Ð¾Ð¼Ðµ Ñ‚ого, Ð² Ð½Ð°ÑˆÐµÐ¼ ÐºÐ¾Ð´Ðµ ÐµÑÑ‚ÑŒ ÑÑ‚ранность:<br>
<br>
| static inline void<br>
| pad(GOST34112012Context *CTX)<br>
| {<br>
|  Â  Â if (CTX-&gt;bufsize &gt; 63)<br>
|  Â  Â  Â  Â return;<br>
|<br>
|  Â  Â memset(CTX-&gt;buffer + CTX-&gt;bufsize,<br>
|  Â  Â  Â  Â 0x00, sizeof(CTX-&gt;buffer) - CTX-&gt;bufsize);<br>
|<br>
|  Â  Â CTX-&gt;buffer[CTX-&gt;bufsize] = 0x01;<br>
| }<br>
<br>
<br>
`CTX-&gt;bufsize` Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ‚ Ð±Ñ‹Ñ‚ÑŒ Ð±Ð¾Ð»ÑŒÑˆÐµ 63.<br></blockquote></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">Для ÑƒÐ²ÐµÑ€ÐµÐ½Ð½Ð¾ÑÑ‚и, Ð´ÑƒÐ¼Ð°ÑŽ.</div><div dir="auto"><br></div><div dir="auto">-- </div><div dir="auto">With best wishes</div><div dir="auto">Dmitry</div></div>