17.02.2001 2:58:52CRL Ответов: 3
Ivan
Кто знает, как добавить в сертификат CRL Distribution Points со следующим значением или что-то подобное:
[1]CRL Distribution Point
Distribution Point Name:
Full Name:
URL=http://www.domain.com/main.crl
????
И вообще, кто знает как добавить в сертификат свое поле ???
 
Ответы:
19.02.2001 11:51:19Игорь Курепкин
Для того чтобы добавить в сертификат свое поле нужно:

1. Если на Микрософтовом Центре Сертификации, то дописать модуль policy, который позволит обрабатывать выпускаемые сертификаты. Пример его есть в PlatformSDK

2. Если это делается только через CryptoAPI, то с использованием функции CryptEncodeObject, где одним из параметров передается структура

lpszStructType
[in] Pointer to an OID defining the structure type. If the high-order word of the lpszStructType parameter is zero, the low-order word specifies the integer identifier for the type of the specified structure. Otherwise, this parameter is a long pointer to a NULL terminated string.
For more details about object identifier strings, their predefined constants and corresponding structures, see Constants for CryptEncodeObject and CryptDecodeObject.

Для CRLDistributionPoint это тип X509_CRL_DIST_POINTS

Пример создания сертификата также лежит в PlatformSDK в директории CreateCert.
В общем случае: необходимо преобразовать в ASN требуемую структуру дополнения (extension) и добавить в сертификат. Например:

CertExtension[CertInfo.cExtension].pszObjId = szOID_SUBJECT_KEY_IDENTIFIER;
CertExtension[CertInfo.cExtension].fCritical = FALSE;
CertExtension[CertInfo.cExtension].Value.cbData = dwSize;
CertExtension[CertInfo.cExtension].Value.pbData = SubjectKeyIdentifier;

Но через CryptEncodeObject можно добавить только типы, которые поддерживаются. Для остальных типов нужен свой кодировщик ASN.
05.02.2002 12:40:45Иван
А у кого-нибудь есть программа способная корректировать , добавлять , удалять или как-то менять поля (дополнительный поля)в сертификате 3 версии. Либо полезные доки как и что для этого сделать.Буду очень признателен за помощь в это нелегком деле.
05.02.2002 13:09:29kure
Есть два варианта (из за неточной формулировки вопроса).
1. Если это не относится к Microsoft CA, то это пример создания сертификатов через CryptoAPI (makecert).
2. Если это функциональность CA, то это разработка своего Policy Modul для CA, примеры которого есть в Platform SDK.