Программно добавить ключ из X509Certificate2 через PKCS # 11 в хранилище ключей - PullRequest
0 голосов
/ 12 декабря 2018

У нас есть безопасное хранилище ключей с интерфейсом PKCS # 11.Мы обращаемся к нему с помощью PKCS # 11 Interop Library для .NET .Нам также необходимо импортировать ключи из сертификатов.Как импортировать PrivateKey X509Certificate2 через наш интерфейс PKCS # 11 в наше хранилище ключей?

var key = x509Certificate2.PrivateKey;

var attributes = new List<ObjectAttribute>();

// What to do here? How to fill in the key into those attributes?

pkcs11Session.CreateObject(attributes);

1 Ответ

0 голосов
/ 12 декабря 2018

Если ваш вопрос касается того, как на самом деле извлечь данные секретного ключа из X509Certificate2.PrivateKey, вот пример с файлом PFX:

var certificate = new X509Certificate2(@"self-signed.pfx", "password", X509KeyStorageFlags.Exportable);
var rsaPrivateKey = certificate.GetRSAPrivateKey();
var parameters = rsaPrivateKey.ExportParameters(true);

Однако точный код зависит от нескольких вещейа именно

  • как создается сертификат и действительно ли он содержит ссылку на закрытый ключ (в данном случае, да, импортируется из PFX),
  • является ли ключ экспортируемым (вв этом случае да) и
  • тип закрытого ключа (в данном случае RSA).

Я не могу помочь вам в том, как преобразовать это в требуемые атрибутытем не менее, может быть, кто-то другой может перезвонить сюда.

...