Функция CryptGetObjectUrl (wincrypt.h)

Функция CryptGetObjectUrl получает URL-адрес удаленного объекта из сертификата, списка доверия сертификатов (CTL) или списка отзыва сертификатов (CRL).

Функция принимает объект , декодирует его и предоставляет указатель на массив URL-адресов из объекта . Например, из сертификата список рассылки списка отзыва сертификатов будет находиться в массиве.

Синтаксис

BOOL CryptGetObjectUrl(
  [in]      LPCSTR           pszUrlOid,
  [in]      LPVOID           pvPara,
  [in]      DWORD            dwFlags,
  [out]     PCRYPT_URL_ARRAY pUrlArray,
  [in, out] DWORD            *pcbUrlArray,
  [out]     PCRYPT_URL_INFO  pUrlInfo,
  [in, out] DWORD            *pcbUrlInfo,
            LPVOID           pvReserved
);

Параметры

[in] pszUrlOid

Указатель на идентификатор объекта (OID), который идентифицирует запрашиваемый URL-адрес. Если значение HIWORD параметра pszUrlOid равно нулю, loWORD задает целочисленный идентификатор для типа указанной структуры.

Этот параметр может принимать одно из указанных ниже значений. Сведения о том, как эти значения влияют на параметр pvPara , см. в заголовке "Для параметра pvPara " в столбце Значение .

Значение Значение
URL_OID_CERTIFICATE_ISSUER
Предоставляет URL-адрес издателя сертификата, полученного из расширения доступа к данным центра или свойства сертификата.

Для параметра pvPara : указатель на структуру CERT_CONTEXT , выданную издателем, URL-адрес которого запрашивается.

URL_OID_CERTIFICATE_CRL_DIST_POINT
Предоставляет список URL-адресов точек распространения списка отзыва сертификатов, полученных из расширения или свойства точки распространения списка отзыва сертификатов.

Для параметра pvPara : указатель на CERT_CONTEXT структуру, для которой запрашивается точка распространения списка отзыва сертификатов.

URL_OID_CERTIFICATE_CRL_DIST_POINT_AND_OCSP
Предоставляет список URL-адресов точек распространения OCSP и CRL из расширений или свойств сертификатов для доступа к данным центра (AIA) и CRL. Функция сначала возвращает URL-адреса точек распространения списка отзыва сертификатов. Перед использованием URL-адресов OCSP необходимо удалить префикс L"ocsp:".

Для параметра pvPara : указатель на структуру CERT_CONTEXT , для которой запрашиваются URL-адреса точек распространения OCSP и CRL.

URL_OID_CERTIFICATE_OCSP
Предоставляет URL-адрес OCSP из расширения доступа к данным центра (AIA) или свойства сертификата.

Для параметра pvPara : указатель на структуру CERT_CONTEXT , для которой запрашивается URL-адрес OCSP.

URL_OID_CERTIFICATE_OCSP_AND_CRL_DIST_POINT
Предоставляет список URL-адресов точек распространения OCSP и CRL из расширений или свойств сертификатов для доступа к данным центра (AIA) и CRL. Функция сначала возвращает все URL-адреса OCSP. Перед использованием URL-адресов OCSP необходимо удалить префикс L"ocsp:".

Для параметра pvPara : указатель на структуру CERT_CONTEXT , для которой запрашиваются URL-адреса точек распространения OCSP и CRL.

URL_OID_CERTIFICATE_ONLY_OCSP
Предоставляет список URL-адресов OCSP из расширения доступа к данным центра (AIA) или свойства сертификата. Перед использованием URL-адресов OCSP необходимо удалить префикс L"ocsp:".

Для параметра pvPara : указатель на структуру CERT_CONTEXT , для которой запрашиваются URL-адреса OCSP.

URL_OID_CTL_ISSUER
Предоставляет URL-адрес издателя CTL, полученного из метода атрибута доступа к информации центра, закодированного в каждой информации о подписывшем в списке CTL PKCS #7.

Для параметра pvPara : указатель на индекс подписывания CTL_CONTEXT структуру, выданную издателем, чей URL-адрес, определенный индексом подписывателя, запрашивается.

URL_OID_CTL_NEXT_UPDATE
Предоставляет URL-адрес следующего обновления этого списка CTL, полученного из расширения, свойства или метода атрибута сведений о подписывшем элементе управления доступом к данным центра.

Для параметра pvPara: указатель на индекс подписывателя CTL_CONTEXT структуру, url-адрес которой запрашивается для следующего обновления, и необязательный индекс подписывателя, если необходимо проверка атрибуты сведений о подписывшем.

URL_OID_CRL_ISSUER
Предоставляет URL-адрес издателя списка отзыва сертификатов, полученный из свойства списка отзыва сертификатов, унаследованного от сертификата субъекта (от издателя сертификата субъекта или расширения точки распространения сертификата субъекта). Он закодирован как метод расширения доступа к информации о авторизации.

Для параметра pvPara : указатель на структуру CRL_CONTEXT , выданную издателем, URL-адрес которого запрашивается.

URL_OID_CERTIFICATE_FRESHEST_CRL
Извлекает последнее расширение списка отзыва сертификатов или свойство сертификата.

Для параметра pvPara : PCCERT_CONTEXT сертификата, у которого запрашивается последняя точка распространения списка отзыва сертификатов.

URL_OID_CRL_FRESHEST_CRL
Извлекает последнее расширение списка отзыва сертификатов или свойство списка отзыва сертификатов.

Для параметра pvPara : указатель на структуру CERT_CRL_CONTEXT_PAIR , содержащую базовый список отзыва сертификатов сертификата, у которого запрашивается последняя точка распространения списка отзыва сертификатов.

URL_OID_CROSS_CERT_DIST_POINT
Извлекает расширение или свойство точки распространения между сертификатами сертификата.

Для параметра pvPara : PCCERT_CONTEXT сертификата, для которого запрашивается точка распространения между сертификатами.

URL_OID_CROSS_CERT_SUBJECT_INFO_ACCESS
Извлекает расширение или свойство для доступа к информации субъекта сертификата.

Для параметра pvPara : PCCERT_CONTEXT сертификата, для которого запрашивается доступ к информации субъекта.

[in] pvPara

Структура, определяемая значением pszUrlOid. Дополнительные сведения см. в описании параметра pszUrlOid .

[in] dwFlags

Набор флагов, используемых для получения указателя URL-адресов для объекта. Это может быть ноль или сочетание одного или нескольких из следующих значений.

Значение Значение
CRYPT_GET_URL_FROM_PROPERTY
Находит URL-адрес из свойства объекта (расположение данных).
CRYPT_GET_URL_FROM_EXTENSION
Находит URL-адрес из расширения объекта .
CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE
Находит URL-адрес из атрибута без проверки подлинности из данных подписавшем.
CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE
Находит URL-адрес из атрибута, прошедшего проверку подлинности, из данных о подписывшем.

[out] pUrlArray

Указатель на буфер для получения данных для записи значения. Этот параметр может иметь значение NULL , чтобы найти длину буфера, необходимую для хранения данных.

Дополнительные сведения см. в разделе Извлечение данных неизвестной длины.

[in, out] pcbUrlArray

Указатель на DWORD , указывающий размер (в байтах) буфера, на который указывает параметр pUrlArray . При возврате функции DWORD содержит количество байтов, хранящихся в буфере. Этот параметр может иметь значение NULL , только если pUrlArray имеет значение NULL.

[out] pUrlInfo

Необязательный указатель на структуру CRYPT_URL_INFO , которая получает данные для записи значения.

[in, out] pcbUrlInfo

Указатель на DWORD , указывающий размер (в байтах) буфера, на который указывает параметр pUrlArray . При возврате функции DWORD содержит количество байтов, хранящихся в буфере.

Примечание При обработке данных, возвращаемых в буфере, приложения должны использовать фактический размер возвращаемых данных. Фактический размер может быть немного меньше размера буфера, указанного на входных данных. На входных данных размеры буфера обычно указываются достаточно большими, чтобы гарантировать, что в буфере помещаются самые большие выходные данные. В выходных данных переменная, на которую указывает этот параметр, обновляется с учетом фактического размера данных, скопированных в буфер.
 

pvReserved

Зарезервировано для использования в будущем и должно иметь значение NULL.

Возвращаемое значение

Если функция выполняется успешно, функция возвращает ненулевое значение (TRUE).

Если функция завершается сбоем, она возвращает ноль (FALSE). Для получения дополнительных сведений об ошибке вызовите Метод GetLastError.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header wincrypt.h
Библиотека Cryptnet.lib
DLL Cryptnet.dll

См. также раздел

Функции удаленного извлечения объектов