Как создать файл CRL с .Net (без BouncyCastle)?
вы не можете, .NET, естественно, не поставляет API для работы с файлами CRL X.509. Вы должны использовать сторонние библиотеки.
Может ли он быть создан как любой текстовый файл и подписан после?
Нет, это не текстовый файл.
Если да, какой формат столбцов?
X.509 CRL использует абстрактную синтаксическую нотацию один (ASN.1) для внутреннего представления, а модуль ASN.1 определен в RFC 5280, Приложение A.1 (стр. 118) . К сожалению, .NET не предоставляет инструментов для работы с необработанными данными ASN.1 (только для хорошо известных и поддерживаемых высокоуровневых типов).
Если вы не можете использовать сторонние библиотеки, вам придется изучить ASN.1 (непростые вещи), написать собственный двоичный анализатор и создать декодер CRL X.509 в соответствии с определением модуля ASN.1. Вот пример двоичного парсера ASN.1: Asn1Reader.cs , поэтому вы можете представить себе сложность в написании собственного надежного парсера. И пример декодера CRL X.509: X509CRL2.cs . Я бы предложил получить что-то уже работающее и использовать это.
Как добавить сертификат в список отзыва сертификатов?
Вам нужно будет создать конструктор / генератор CRL X.509 с помощью кодера ASN.1. Тип записи CRL определяется следующим образом:
revokedCertificates SEQUENCE OF SEQUENCE {
userCertificate CertificateSerialNumber,
revocationDate Time,
crlEntryExtensions Extensions OPTIONAL
-- if present, version MUST be v2
} OPTIONAL,
Это едва ли имеет смысл, если вы не знакомы с ASN.1, но раскрывает некоторые полезные вещи. Например, запись CRL состоит из серийного номера сертификата (целого числа) и даты отзыва (UTCTime
или GeneralizedTime
). При желании могут быть расширения записи CRL, например, причина отзыва (ENUMERATED
).