Я не уверен, как получить смарт-карту 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
?