Статус: Участник
Группы: Участники
Зарегистрирован: 31.07.2012(UTC) Сообщений: 13
|
Уважаемые знатоки криптографии в Net, что в моем коде на C# не так, может что нужно дописать. Дело в том, что мне надо вывести в консоль ссылку на хранилище контейнера с ключами, например в таком виде:
REGISTRY\\ИМЯ КОНТЕЙНЕРА С КЛЮЧАМИ. Как получить это имя контейнера и то, какое хранилище используется для этого контейнера. Ничего не получается. При попытке реализации функции CertGetCertificateContextProperty через P/Invoke все равно эта ссылка на хранилище контейнера не отображается в окне консоли
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Permissions; using System.IO; using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; using System.Runtime.InteropServices;
namespace ConsoleApplication1 { class Crypto {
private static void Main(string[] args) {
var keyStore = new X509Store("MY", StoreLocation.CurrentUser);
keyStore.Open(OpenFlags.OpenExistingOnly | OpenFlags.ReadWrite);
var cert = keyStore.Certificates.Count;
{
Console.WriteLine("В хранилище текущего пользователя сертификатов: {0}", cert);
}
int kol = 0; List<X509Certificate> list = new List<X509Certificate>(); foreach (var c in keyStore.Certificates) {
kol += c.HasPrivateKey ? 1 : 0; // если свойство HasPrivateKey равно true, то к kol прибавляется единица, иначе прибавляется нуль
if (c.HasPrivateKey) { list.Add(c);
} } Console.WriteLine("Количество сертификатов с закрытым ключом: {0}", kol.ToString());
foreach (var item in list) { Console.WriteLine(item.ToString()); } Console.ReadKey();
} [DllImport("crypt32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static extern bool CertGetCertificateContextProperty( IntPtr pCertContext, uint dwPropId, IntPtr pvData, ref uint pcbData);
|
|
|
|
Статус: Сотрудник
Группы: Администраторы
Зарегистрирован: 12.12.2007(UTC) Сообщений: 6,405  Откуда: КРИПТО-ПРО Сказал «Спасибо»: 37 раз Поблагодарили: 720 раз в 624 постах
|
я не вижу вызова p/invoke. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.07.2012(UTC) Сообщений: 13
|
maxdm написал:я не вижу вызова p/invoke. а разве этого не достаточно? извините за нубство, я только учусь Код:using System.Runtime.InteropServices;
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,752   Сказал «Спасибо»: 577 раз Поблагодарили: 2307 раз в 1807 постах
|
losko написал:maxdm написал:я не вижу вызова p/invoke. а разве этого не достаточно? извините за нубство, я только учусь Код:using System.Runtime.InteropServices;
нужно написать вызов функции CertGetCertificateContextProperty |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 31.07.2012(UTC) Сообщений: 13
|
Андрей * написал:losko написал:maxdm написал:я не вижу вызова p/invoke. а разве этого не достаточно? извините за нубство, я только учусь Код:using System.Runtime.InteropServices;
нужно написать вызов функции CertGetCertificateContextProperty Подскажите пожалуйста как правильно написать вызов функции CertGetCertificateContextProperty?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,752   Сказал «Спасибо»: 577 раз Поблагодарили: 2307 раз в 1807 постах
|
losko написал:Андрей * написал:losko написал:maxdm написал:я не вижу вызова p/invoke. а разве этого не достаточно? извините за нубство, я только учусь Код:using System.Runtime.InteropServices;
нужно написать вызов функции CertGetCertificateContextProperty Подскажите пожалуйста как правильно написать вызов функции CertGetCertificateContextProperty? http://support.microsoft.com/kb/320602/ru pCryptKeyProvInfo pwszContainerName Отредактировано пользователем 1 августа 2012 г. 15:38:07(UTC)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close