<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум Guardant &mdash; Работа с функций GrdCryptEx.]]></title>
	<link rel="self" href="https://forum.guardant.ru/feed/atom/topic/344/" />
	<updated>2013-10-11T13:58:54Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.guardant.ru/topic/344/</id>
		<entry>
			<title type="html"><![CDATA[Re: Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1695/#p1695" />
			<content type="html"><![CDATA[<p>Реализация алгоритма симметричного шифрования AES128 в наших ключах действительно может производить обработку (шифрование\дешифрация) данных, до некоторой степени, отлично от иных, софтверных, реализаций данного алгоритма. Это связанно со спецификой его исполнения для наших электронных ключей и рядом дополнительных возможностей (режимов) его работы (например, флаг зависимости вида преобразований от ID электронного ключа). Подробное описание режимов работы наших алгоритмов и остальные опции утилит и ключей содержится с нашей документации. Вся документация находится в одной папке с установленным комплектом разработчика Guardant, директория по умолчанию: &quot;%Program Files%\Guardant\Guardant 5\%Public Code%\Doc&quot; и доступна для скачивания с нашего сайта.</p><p>Для решения же описанной Вами задачи надежнее всего будет использовать наши софтверные ключи Guardant SP при дешифрации данных, обработанных аппаратным ключом. Это позволит корректно обрабатывать такие данные без аппаратного ключа, т.к. софтверные ключи точно также используют аппаратный алгоритм AES128.</p><p>При первой регистрации на сервере активации Guardant SP, Вам бесплатно будет предоставлено 25 серийных номеров для создания и тестирования полнофункциональных SP-ключей.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2013-10-11T13:58:54Z</updated>
			<id>https://forum.guardant.ru/post/1695/#p1695</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1693/#p1693" />
			<content type="html"><![CDATA[<p>Антон спасибо, уменьшил тестовую строку до 16 символов и ошибка не выводится. Буду внимательней читать документацию.<br />И еще вопрос про шифрование алгоритмом AES128 блоками CBC.<br />Скажите пожалуйста код который прошивается в ключ вместе с алгоритмом при шифровании как то еще меняется при шифровании? Просто мне бы хотелось сделать шифрование с помощью ключа а расшифровку сделать без использования ключа программными средствами. Такое возможно? Сейчас при шифровании ключом &quot;1111111111111111&quot;, строки &quot;1234567890123456&quot; с вектором инициализации 1234567890123456 ключ выдает мне значение: After encryption base64: D3MngKi/n1hjC1xSP35uTQ==. При этом при тех же данных шифрование без ключа программными алгоритмами дает результат: After encryption base64: EN/BtfZs/WodxG1mkHvusUG5mSOAsDra1823TDt+zgU=.</p>]]></content>
			<author>
				<name><![CDATA[tim96]]></name>
				<uri>https://forum.guardant.ru/user/686/</uri>
			</author>
			<updated>2013-10-09T14:54:30Z</updated>
			<id>https://forum.guardant.ru/post/1693/#p1693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1692/#p1692" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tim96 пишет:</cite><blockquote><p>byte[] res = Encoding.ASCII.GetBytes(&quot;12345678901234567890&quot;);<br />Int64 lnitvector = 1234567890123456;<br />UInt32 number = 05;</p></blockquote></div><p>В данном случае в первую очередь следует обратить внимание на то, что при использовании режима шифрования CBC, длинна шифруемого блока данных должна быть кратна минимальной длине блока - для аппаратного алгоритма AES128 это 16 байт. Вектор инициализации так же должен быть 16-байтовый.</p><p>Подробное описание всех режимов шифрования и аппаратных алгоритмов есть в &quot;<a href="https://www.guardant.ru/support/download/manual/">Справочной системе по Guardant API</a>&quot;.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2013-10-09T13:52:32Z</updated>
			<id>https://forum.guardant.ru/post/1692/#p1692</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1691/#p1691" />
			<content type="html"><![CDATA[<p>Сделано. Скриншот утилиты диагностики <a href="http://screenshot.ru/image/8uC">http://screenshot.ru/image/8uC</a></p>]]></content>
			<author>
				<name><![CDATA[tim96]]></name>
				<uri>https://forum.guardant.ru/user/686/</uri>
			</author>
			<updated>2013-10-09T11:53:54Z</updated>
			<id>https://forum.guardant.ru/post/1691/#p1691</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1690/#p1690" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>tim96 пишет:</cite><blockquote><p>Скриншот рамером 176 Kb загрузить не дает, хотя написано что можно загружать до 2000 Kb. Выводится сообщение: undefined (undefined) - Файл превышает допустимый размер и не будет загружен (2000000).</p></blockquote></div><p>Загрузите скриншот на открытый хостинг изображений (например, screenshot.ru и т.п.) и укажите ссылку на него.</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2013-10-09T11:49:27Z</updated>
			<id>https://forum.guardant.ru/post/1690/#p1690</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1689/#p1689" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>byte[] res = Encoding.ASCII.GetBytes(&quot;12345678901234567890&quot;);
Int64 lnitvector = 1234567890123456;
UInt32 number = 05;</code></pre></div><p>Ключ для симметричного шифрования.<br />Скриншот рамером 176 Kb загрузить не дает, хотя написано что можно загружать до 2000 Kb. Выводится сообщение: undefined (undefined) - Файл превышает допустимый размер и не будет загружен (2000000).</p>]]></content>
			<author>
				<name><![CDATA[tim96]]></name>
				<uri>https://forum.guardant.ru/user/686/</uri>
			</author>
			<updated>2013-10-09T11:43:08Z</updated>
			<id>https://forum.guardant.ru/post/1689/#p1689</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1688/#p1688" />
			<content type="html"><![CDATA[<p>Добрый день, tim96.</p><p>Приложите, пожалуйста, код, где объявляется и инициализируется некоторым значением, переменная <span class="bbu">lnitvector</span>, где указан размер массива с преобразуемыми данными (res) и скриншот отчета утилиты диагностики Guardant (Пуск/Панель управления/Драйверы Guardant/Кнопка &quot;Диагностика&quot;/Подробная информация) для используемого ключа.</p><p>Также уточните, какой именно тип аппаратного алгоритма AES128 используется (прошит в ключе): для симметричного шифрования, только для кодирования или только для декодирования?</p>]]></content>
			<author>
				<name><![CDATA[Антон Тихиенко]]></name>
				<uri>https://forum.guardant.ru/user/31/</uri>
			</author>
			<updated>2013-10-09T11:14:38Z</updated>
			<id>https://forum.guardant.ru/post/1688/#p1688</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Работа с функций GrdCryptEx.]]></title>
			<link rel="alternate" href="https://forum.guardant.ru/post/1686/#p1686" />
			<content type="html"><![CDATA[<p>Добрый день.<br />Пытаюсь зашифровать текст алгоритмом AES 128 используя функцию GrdCryptEx, так как сказано в документации что нужно использовать ее.&nbsp; Комплект разработчика 6.2, C#, windows 7. К сожалению не нашел в документации и в примерах которые прилагаются к документации, вариантов использования функции GrdCryptEx. Буду очень благодарен за пару примеров работы с данной функцией. Сейчас использую такой вариант.<br /></p><div class="codebox"><pre><code>RetCode = GrdApi.GrdCryptEx(
                                  GrdHandle,    // Хэндл контейнера Guardant
                                  number, // Номер аппаратного алгоритма
                                  res,                 // Массив с данными
                                  (UInt32)GrdAM.CBC + (UInt32)GrdAM.Encode,   // Методы кодирования
                                  sizeof(Int64),
                                  lnitvector);</code></pre></div><p>При использовании возникает ошибка: GrdCryptEx: One or more function argument are Invalid.<br />Если же использую GrdCrypt то тоже получается ошибка.<br /></p><div class="codebox"><pre><code>GrdApi.GrdCrypt(
                        GrdHandle,    // Хэндл контейнера Guardant
                        number,                         // Номер аппаратного алгоритма
                        res,                 // Массив с данными
                        (UInt32)GrdAM.CBC + (UInt32)GrdAM.Decode,   // Методы кодирования
                        // sizeof(Int64),
                        lnitvector);</code></pre></div><p>Думал что возможно есть ограничение на использование блочных режимов. Но в документации нашел только &quot;Однонаправленные алгоритмы AES128 можно использовать только в блочных режимах ECB и CBC. Поточные режимы CFB и OFB использовать нельзя&quot;.</p>]]></content>
			<author>
				<name><![CDATA[tim96]]></name>
				<uri>https://forum.guardant.ru/user/686/</uri>
			</author>
			<updated>2013-10-09T09:04:26Z</updated>
			<id>https://forum.guardant.ru/post/1686/#p1686</id>
		</entry>
</feed>
