2010-06-29 3 views
0

Класс .NET System.Security.Cryptography.X509Certificates.X509Extension не поддерживает некоторые расширения X.509. Я хочу проанализировать (указать альтернативное имя, ограничения имен). На странице MSDN для этого класса говорится: «Пользовательские расширения могут быть зарегистрированы в файле CryptoConfig» (ссылка), но в описании класса CryptoConfig обсуждается только настройка пользовательских реализаций криптографических алгоритмов - неясно, как зарегистрировать пользовательский X. 509.Пользовательские расширения в System.Security.Cryptography.X509Certificates

Кто-нибудь знает, как это сделать?

ответ

0

Если вы не нашли решение со встроенным классом, ознакомьтесь с нашими PKI components of SecureBlackbox. Они позволяют легко управлять пользовательскими расширениями.

+1

Спасибо. Я не нашел чистого решения, но оказалось, что поле X509Certificate2.Extensions будет перечислять нераспознанные расширения как голые экземпляры X509Extension - они выставляют данные ASN.1, закодированные DER, в поле RawData (которые могут быть проанализированы вручную .) – KaiEkkrin

0
X509Certificate2 cert = new System.Security.Cryptography.X509Certificates.X509Certificate2(certByte); 
string fn = cert.Extensions[0].Oid.FriendlyName; 
string oid = cert.Extensions[0].Oid.Value; 
string val = cert.Extensions[0].Format(true); 
+0

Можете ли вы разработать больше? – Robin

+0

Что значит «больше»? Было указано, что класс .net перечисляет данные ASN.1, закодированные DER, и нет «чистого» способа декодирования в строку. На самом деле вы можете создать объект X509Certificate2 из байтового массива, файла и т. Д. И извлечь декодированную строку с помощью метода Format (bool) в элементе массива Extensions. Вы должны проверить, есть ли в массиве Extensions все элементы и т. Д. – Mazhas

Смежные вопросы