Статус: Активный участник
Группы: Участники
Зарегистрирован: 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. А при подписании вылезает всплывающее сообщение про то что ключ считан. Я что-то не так делаю?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close