<?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/2263/" />
	<updated>2015-05-20T11:11:09Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.rutoken.ru/topic/2263/</id>
		<entry>
			<title type="html"><![CDATA[Re: Сохранить сертификат в контейнере]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8354/#p8354" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>ed06 пишет:</cite><blockquote><p>Сертификат не соответствует паре, экспортирован из контейнера, затем контейнер (по ошибке ) удален и создана ключевая пара обмена ключей в контейнере с тем же именем.</p></blockquote></div><p>Здравствуйте!</p><p>Правильно ли я понял, что Вы удалили контейнер с ключами, пересоздали его с тем же именем, сгенерировали новую ключевую пару и хотите поместить в контейнер старый сертификат, от уничтоженного открытого ключа? Ключ новый, а сертификат старый, ему не соответствующий?</p>]]></content>
			<author>
				<name><![CDATA[Vladimir Ivanov]]></name>
				<uri>https://forum.rutoken.ru/user/179/</uri>
			</author>
			<updated>2015-05-20T11:11:09Z</updated>
			<id>https://forum.rutoken.ru/post/8354/#p8354</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Сохранить сертификат в контейнере]]></title>
			<link rel="alternate" href="https://forum.rutoken.ru/post/8352/#p8352" />
			<content type="html"><![CDATA[<p>Рутокен L 64K080Z<br />Мне необходимо положить в контейнер с ключами обмена сертификат.<br />Сертификат не соответствует паре, экспортирован из контейнера, затем контейнер (по ошибке ) удален и создана ключевая пара обмена ключей в контейнере с тем же именем.</p><p>все процедуры генерации, экспорта, подписи, верификации работают.</p><p>помогите кто может</p><p>CryptSetKeyParam<br />возвращает<br />System Error. Code: -2146893819.<br />Плохие данные<br />0000047E</p><br /><br /><p>function ImportCert(cont, path: string): Boolean;<br />var<br />hProv: HCRYPTPROV;<br />SignKey: HCRYPTKEY;<br />cert: TMemoryStream;<br />db: TStringList;<br />l: Cardinal;<br />begin<br />cert := TMemoryStream.Create;<br />cert.LoadFromFile(path);//загружаю сохраненный сертификат *.cer<br />Result := False;<br />try</p><p>if not CryptAcquireContext(@hProv, PChar(cont), prov, PROV_GOST_2001_DH, 0)<br />then<br />Exit;</p><p>if not CryptGetUserKey(hProv, AT_KEYEXCHANGE, @SignKey) then<br />Exit;</p><p>if not CryptSetKeyParam(SignKey, KP_CERTIFICATE, cert.Memory, 0) then<br />Exit;</p><p>Result := true;</p><p>finally<br />// уничтожаем ключ<br />CryptDestroyKey(SignKey);<br />// освобождает дескриптор криптопровайдера<br />CryptReleaseContext(hProv, 0);<br />cert.Free;<br />end;<br />end;</p>]]></content>
			<author>
				<name><![CDATA[ed06]]></name>
				<uri>https://forum.rutoken.ru/user/9773/</uri>
			</author>
			<updated>2015-05-20T08:01:22Z</updated>
			<id>https://forum.rutoken.ru/post/8352/#p8352</id>
		</entry>
</feed>
