Я хочу считать содержание CSR в C#. Однако я не нашел способа сделать это в C#. То, что я нашел, было пространством имен System.Security.Cryptography.X509Certificates
, но это только обрабатывает существующие сертификаты, не запросы сертификата.
Кто-либо может дать мне подсказку об этом?Заранее спасибо.
Мне кажется, что лучшим способом для вас будет использование неуправляемого CryptoAPI или P/Invoke. CryptoAPI имеет CERT_REQUEST_INFO
data struct и CryptSignAndEncodeCertificate
функцию, которая может быть использована с X509_CERT_REQUEST_TO_BE_SIGNED
параметром. Конечно, теоретически можно кодировать запрос вручную с помощью AsnEncodedData
, так как CSR не сложен (см. http://en.wikipedia.org/wiki/Certificate_signing_request и http://www.rfc-editor.org/rfc/rfc2311.txt), но я не думаю, что это имеет смысл, если реализация уже существует в CryptoAPI.
Хорошие примеры создания CSR применительно к CryptoAPI вы найдете в http://msdn.microsoft.com/en-us/library/aa382364(VS.85).aspx и http://msdn.microsoft.com/en-us/library/ms867026.aspx.