Есть ли способ получить смарт-карту ATR с помощью сертификата от X509Store - PullRequest
0 голосов
/ 11 мая 2018

Я не уверен, как получить смарт-карту ATR при доступе к сертификату через X509Store

var store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var sc = store.Certificates.OfType<X509Certificate2>().Where(x => 
    x.HasPrivateKey && 
    x.Extensions.OfType<X509KeyUsageExtension>()
        .Any(y => 
            y.KeyUsages.HasFlag(X509KeyUsageFlags.DigitalSignature) && 
            y.KeyUsages.HasFlag(X509KeyUsageFlags.NonRepudiation))
    ).ToList();
store.Close();          
foreach (var x509Certificate2 in sc)
{
    var csp = (RSACryptoServiceProvider)x509Certificate2.PrivateKey;
    if (csp.CspKeyContainerInfo.HardwareDevice)
    {
        Console.WriteLine("ATR: ???");
    }
}

Может быть, я могу что-то сделать с csp.CspKeyContainerInfo.UniqueKeyContainerName?

...