Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline mikelneo  
#11 Оставлено : 16 января 2012 г. 18:18:37(UTC)
mikelneo

Статус: Активный участник

Группы: Участники
Зарегистрирован: 24.10.2011(UTC)
Сообщений: 40
Откуда: Moscow

Что-то не получается, вот код:

private static bool CheckCertificateSilent(X509Certificate2 cert)
{
try
{
IntPtr phCryptProv = IntPtr.Zero;
uint keySpec = 0;
bool callerFreeProv = false;
var res = Crypto.CryptAcquireCertificatePrivateKey(cert.Handle, Crypto.CRYPT_ACQUIRE_SILENT_FLAG,
IntPtr.Zero, ref phCryptProv,
ref keySpec, ref callerFreeProv);

IntPtr phProv = IntPtr.Zero;
var key = (Gost3410CryptoServiceProvider) cert.PrivateKey;
res = Crypto.CryptAcquireContext(ref phProv, key.CspKeyContainerInfo.KeyContainerName,
key.CspKeyContainerInfo.ProviderName,
key.CspKeyContainerInfo.ProviderType,
Crypto.CRYPT_SILENT);

return res;
}
catch (Exception)
{
return false;
}
}

...

[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern bool CryptAcquireContext(
ref IntPtr hProv,
String pszContainer,
String pszProvider,
Int32 dwProvType,
Int32 dwFlags
);

[DllImport("Crypt32.dll", CharSet = CharSet.Auto, SetLastError = true)]
internal static extern bool CryptAcquireCertificatePrivateKey([In] IntPtr pCert, [In] uint dwFlags,
[In] IntPtr pvReserved,
[In, Out] ref IntPtr phCryptProv,
[In, Out] ref uint pdwKeySpec,
[In, Out] ref bool pfCallerFreeProv);

// #define CRYPT_ACQUIRE_SILENT_FLAG 0x00000040
public const int CRYPT_ACQUIRE_SILENT_FLAG = 0x00000040;

// #define CRYPT_SILENT 0x40
public const int CRYPT_SILENT = 0x40;


Обе функции CryptAcquireCertificatePrivateKey и CryptAcquireContext отрабатывают без ошибок и возвращают true.
А при подписании вылезает всплывающее сообщение про то что ключ считан. Я что-то не так делаю?
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest (2)
2 Страницы<12
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.