Функция 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.
В следующей таблице перечислены некоторые возможные коды ошибок.
Код возврата | Описание |
---|---|
|
Не все атрибуты были найдены и сопоставлены. |
|
Недопустимый тип кодирования сертификата. В настоящее время поддерживается только X509_ASN_ENCODING. |
В случае сбоя функции GetLastError может вернуть ошибку кодирования и декодирования абстрактного синтаксиса (ASN.1). Сведения об этих ошибках см. в разделе Кодирование и декодирование возвращаемых значений ASN.1.
Комментарии
В настоящее время поддерживается только точное совпадение с учетом регистра.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | wincrypt.h |
Библиотека | Crypt32.lib |
DLL | Crypt32.dll |