Извлечение открытого ключа из сертификата

#c# #cryptography #crt

#c# #криптография #crt

Вопрос:

Есть ли способ извлечь открытый ключ из сертификата с помощью C #? У меня есть файл сертификата с расширением .crt.

Ответ №1:

Использовать:

 certificate = new X509Certificate2("server.crt", "secret_password");
byte[] publicKey = certificate.PublicKey.EncodedKeyValue.RawData;
  

теперь массив байтов ‘publicKey’ представляет собой значение открытого ключа в кодировке ASN.1.

Комментарии:

1. byte[] publicKey = certificate.GetPublicKey.EncodedKeyValue.RawData; у меня не сработало, пришлось использовать просто byte[] publicKey = certificate.GetPublicKey();

2. ну да, это больше подходит, если вы собираетесь использовать открытый ключ напрямую.

3. И как получить открытый ключ из байтов? например, у меня есть открытый ключ (сгенерированный с помощью алгоритма EC, кривая «secp256r1») и его закодированные байты на java, как я могу создать открытый ключ из этих байтов в c #?