<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Рутокен &mdash; Скорость работы плагина для браузера]]></title>
	<link rel="self" href="https://forum.rutoken.ru/feed/atom/topic/3723/" />
	<updated>2022-11-02T08:27:46Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/3723/</id>
		<entry>
			<title type="html"><![CDATA[Re: Скорость работы плагина для браузера]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/18726/#p18726" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Павел Анфимов пишет:</cite><blockquote><p>Сам по себе, Рутокен Плагин работает быстрее. Посмотреть его возможности без программирования и оценить время работы можно на:<br /><a href="https://aktivco.github.io/rutoken-plugin-demo/">https://aktivco.github.io/rutoken-plugin-demo/</a></p></blockquote></div><p>Спасибо за ссылку. Очень помогло разобраться.</p>]]></content>
			<author>
				<name><![CDATA[Виктор Павлович]]></name>
				<uri>https://forum.rutoken.ru/user/12786/</uri>
			</author>
			<updated>2022-11-02T08:27:46Z</updated>
			<id>https://forum.rutoken.ru/post/18726/#p18726</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скорость работы плагина для браузера]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/18681/#p18681" />
			<content type="html"><![CDATA[<p><strong>Виктор Павлович</strong>, все зависит от того, как спроектирована веб-площадка.</p><p>Сам по себе, Рутокен Плагин работает быстрее. Посмотреть его возможности без программирования и оценить время работы можно на:<br /><a href="https://aktivco.github.io/rutoken-plugin-demo/">https://aktivco.github.io/rutoken-plugin-demo/</a></p>]]></content>
			<author>
				<name><![CDATA[Павел Анфимов]]></name>
				<uri>https://forum.rutoken.ru/user/7338/</uri>
			</author>
			<updated>2022-10-26T10:42:36Z</updated>
			<id>https://forum.rutoken.ru/post/18681/#p18681</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скорость работы плагина для браузера]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/18680/#p18680" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Павел Анфимов пишет:</cite><blockquote><p>Короткий способ подписания описан в примере из Рутокен SDK, по пути внутри архива: &lt;sdk&gt;\pkcs11\samples\Standard\SignGOST34.10-2012-256WithHash.</p><p>Проверку на наличие механизмов (GetMechanismList) можно также исключить.</p></blockquote></div><p>На основе этих примеров я и создал тестовую программу для подписи 32 байтового хеша подписываемого файла. Время выполнения программы - 325 мс хеш + 500 мс инициализация. Меня это устраивает.</p><p>Меня не устраивает скорость работы плагина для браузера. Я хочу понять, почему при использовании плагина для браузера для абсолютно той же задачи (подписать хеш) - я получаю 6 секунд выполнения и 69 вызовов API PKCS#11.</p>]]></content>
			<author>
				<name><![CDATA[Виктор Павлович]]></name>
				<uri>https://forum.rutoken.ru/user/12786/</uri>
			</author>
			<updated>2022-10-26T09:16:56Z</updated>
			<id>https://forum.rutoken.ru/post/18680/#p18680</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Скорость работы плагина для браузера]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/18678/#p18678" />
			<content type="html"><![CDATA[<p><strong>Виктор Павлович</strong>, добрый день!</p><p>Короткий способ подписания описан в примере из Рутокен SDK, по пути внутри архива: &lt;sdk&gt;\pkcs11\samples\Standard\SignGOST34.10-2012-256WithHash.</p><p>Проверку на наличие механизмов (GetMechanismList) можно также исключить.</p><p>Кроме того, можно использовать программное хеширование данных, для этого надо раскомментировать соответствующие механизмы в sdk\pkcs11\samples\include\Common.h. См. строку 182 примера SignGOST34.10-2012-256WithHash.c</p>]]></content>
			<author>
				<name><![CDATA[Павел Анфимов]]></name>
				<uri>https://forum.rutoken.ru/user/7338/</uri>
			</author>
			<updated>2022-10-26T07:38:54Z</updated>
			<id>https://forum.rutoken.ru/post/18678/#p18678</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Скорость работы плагина для браузера]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/18673/#p18673" />
			<content type="html"><![CDATA[<p>Добрый день. Я занимался тестированием скорости работы РуТокен 2.0 ЭЦП и в своей программе получил следующие результаты:<br /></p><div class="codebox"><pre><code>Инициализация библиотеки: 2 ms
C_GetSlotList: 0 ms
C_OpenSession: 305 ms
C_Login: 38 ms
C_GetTokenInfo: 64 ms
C_GetMechanismList: 26 ms
C_FindObjects: 160 ms (CKO_PRIVATE_KEY)
C_Digest: 685 ms (length = 63)
C_Sign: 323 ms
C_Digest: 907 ms (length = 126)
C_Sign: 325 ms
C_Digest: 1124 ms (length = 189)
C_Sign: 327 ms</code></pre></div><p>После этого я использовал библиотеку для анализа librtpkcs11-spy.so.2.0.0 (отдельное спасибо за неё). И в процессе подписи документа на одном из проектов я получил следующий набор запросов к токену:</p><div class="codebox"><pre><code>{0x16B1,0x16B1}:      0: C_GetFunctionList
{0x16B1,0x16B1}:      1: C_Initialize
{0x16B1,0x16B1}:      2: C_EX_GetFunctionListExtended
{0x16B1,0x16B1}:      3: C_GetSlotList
{0x16B1,0x16B1}:      4: C_GetSlotList
{0x16B1,0x16B1}:      5: C_GetSlotInfo
{0x16B1,0x16B1}:      6: C_GetSlotList
{0x16B1,0x16B1}:      7: C_GetSlotList
{0x16B1,0x16B1}:      8: C_GetSlotInfo
{0x16B1,0x16B1}:      9: C_EX_SlotManage
{0x16B1,0x16B1}:      10: C_OpenSession
{0x16B1,0x16B1}:      11: C_GetTokenInfo
{0x16B1,0x16B1}:      12: C_EX_GetTokenInfoExtended
{0x16B1,0x16B1}:      13: C_GetMechanismList
{0x16B1,0x16B1}:      14: C_GetMechanismList
{0x16B1,0x16B1}:      15: C_GetTokenInfo
{0x16B1,0x16B1}:      16: C_EX_GetTokenInfoExtended
{0x16B1,0x16B1}:      17: C_FindObjectsInit                
{0x16B1,0x16B1}:      18: C_FindObjects
{0x16B1,0x16B1}:      19: C_FindObjectsFinal
{0x16B1,0x16B1}:      20: C_GetAttributeValue
{0x16B1,0x16B1}:      21: C_GetAttributeValue
{0x16B1,0x16B1}:      22: C_FindObjectsInit
{0x16B1,0x16B1}:      23: C_FindObjects
{0x16B1,0x16B1}:      24: C_FindObjectsFinal
{0x16B1,0x16B1}:      25: C_GetAttributeValue
{0x16B1,0x16B1}:      26: C_GetAttributeValue
{0x16B1,0x16B1}:      27: C_GetAttributeValue
{0x16B1,0x16B1}:      28: C_GetAttributeValue
{0x16B1,0x16B1}:      29: C_GetSessionInfo
{0x16B1,0x16B1}:      30: C_GetTokenInfo
{0x16B1,0x16B1}:      31: C_EX_GetTokenInfoExtended
{0x16B1,0x16B1}:      32: C_GetSessionInfo
{0x16B1,0x16B1}:      33: C_GetTokenInfo
{0x16B1,0x16B1}:      34: C_EX_GetTokenInfoExtended
{0x16B1,0x16B1}:      35: C_GetSessionInfo
{0x16B1,0x16B1}:      36: C_GetTokenInfo
{0x16B1,0x16B1}:      37: C_EX_GetTokenInfoExtended
{0x16B1,0x16B1}:      38: C_FindObjectsInit             
{0x16B1,0x16B1}:      39: C_FindObjects
{0x16B1,0x16B1}:      40: C_FindObjectsFinal
{0x16B1,0x16B1}:      41: C_GetAttributeValue
{0x16B1,0x16B1}:      42: C_GetAttributeValue
{0x16B1,0x16B1}:      43: C_FindObjectsInit
{0x16B1,0x16B1}:      44: C_FindObjects
{0x16B1,0x16B1}:      45: C_FindObjectsFinal
{0x16B1,0x16B1}:      46: C_GetAttributeValue
{0x16B1,0x16B1}:      47: C_GetAttributeValue
{0x16B1,0x16B1}:      48: C_GetAttributeValue
{0x16B1,0x16B1}:      49: C_GetAttributeValue
{0x16B1,0x16B1}:      50: C_FindObjectsInit
{0x16B1,0x16B1}:      51: C_FindObjects
{0x16B1,0x16B1}:      52: C_FindObjectsFinal
{0x16B1,0x16B1}:      53: C_FindObjectsInit
{0x16B1,0x16B1}:      54: C_FindObjects
{0x16B1,0x16B1}:      55: C_FindObjectsFinal
{0x16B1,0x16B1}:      56: C_GetAttributeValue
{0x16B1,0x16B1}:      57: C_GetAttributeValue
{0x16B1,0x16B1}:      58: C_GetSessionInfo
{0x16B1,0x16B1}:      59: C_GetTokenInfo
{0x16B1,0x16B1}:      60: C_EX_GetTokenInfoExtended
{0x16B1,0x16B1}:      61: C_Logout
{0x16B1,0x16B1}:      62: C_Login
{0x16B1,0x16B1}:      63: C_FindObjectsInit
{0x16B1,0x16B1}:      64: C_FindObjects
{0x16B1,0x16B1}:      65: C_FindObjectsFinal
{0x16B1,0x16B1}:      66: C_SignInit
{0x16B1,0x16B1}:      67: C_Sign
{0x16B1,0x16B1}:      68: C_Sign
{0x16B1,0x16B1}:      69: C_CloseSession</code></pre></div><p>Моя цель была определить с какой максимальной скоростью можно осуществлять подписи документов. Моя программа показала около 500 мс инициализации и 325 мс подписи хеша. Итого 825 мс.</p><p>Реальная же картина работы плагина в браузере показывает большое количество повторяющихся запросов, по итогу дающих вот такой печальный результат - 6 секунд времени на 1 подпись хеша:</p><div class="codebox"><pre><code>0: C_GetFunctionList: 15:02:32.590
&lt;много-премного всего&gt;
69: C_CloseSession: 15:02:38.398</code></pre></div><p>Хотелось бы узнать, это нормально для плагина? Можно ли как-нибудь ускорить работу плагина без вызова лишних запросов?<br /><em>Открыл сессию - Залогинился - Нашел ключ - Подписал</em></p>]]></content>
			<author>
				<name><![CDATA[Виктор Павлович]]></name>
				<uri>https://forum.rutoken.ru/user/12786/</uri>
			</author>
			<updated>2022-10-25T14:20:16Z</updated>
			<id>https://forum.rutoken.ru/post/18673/#p18673</id>
		</entry>
</feed>
