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

Функция CertIsRDNAttrsInCertificateName сравнивает атрибуты в имени сертификата с указанным CERT_RDN , чтобы определить, включены ли в нее все атрибуты. Сравнение выполняет итерацию по CERT_RDN и ищет соответствие атрибута в любом из CERT_RDNимени сертификата.

Синтаксис

BOOL CertIsRDNAttrsInCertificateName(
  [in] DWORD           dwCertEncodingType,
  [in] DWORD           dwFlags,
  [in] PCERT_NAME_BLOB pCertName,
  [in] PCERT_RDN       pRDN
);

Параметры

[in] dwCertEncodingType

Указывает используемый тип кодирования. Всегда допустимо указывать типы кодирования сертификатов и сообщений, объединяя их с побитовой операцией ИЛИ , как показано в следующем примере:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

В настоящее время определены следующие типы кодирования:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] dwFlags

CERT_UNICODE_IS_RDN_ATTRS_FLAG необходимо задать, если pRDN было инициализировано с помощью строк Юникода, как в CryptEncodeObject с параметром lpszStructType , для X509_UNICODE_NAME.

CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG настроено на совпадение без учета регистра. В противном случае выполняется точное совпадение с учетом регистра.

[in] pCertName

Указатель на CRYPT_INTEGER_BLOB , содержащий закодированное имя субъекта или издателя.

[in] pRDN

Массив CERT_RDN структур, содержащих атрибуты, которые можно найти в имени. Член CERT_RDN_ATTRструктуры CERT_RDN ведет себя в соответствии со следующими правилами.

  • Если pszObjId имеет значение NULL, идентификатор объекта атрибута (OID) игнорируется.
  • Если параметр dwValueType имеет значение CERT_RDN_ANY_TYPE, тип значения игнорируется.
  • Если элемент pbDataзначения Value имеет значение NULL, любое значение может быть совпадением.

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

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

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

В следующей таблице перечислены некоторые возможные коды ошибок.

Код возврата Описание
CRYPT_E_NO_MATCH
Не все атрибуты были найдены и сопоставлены.
ERROR_FILE_NOT_FOUND
Недопустимый тип кодирования сертификата. В настоящее время поддерживается только X509_ASN_ENCODING.
 

В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.

Комментарии

В настоящее время поддерживается только точное совпадение с учетом регистра.

Требования

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

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

CertFindCertificateInStore

Функции Управление данными