Função CertIsRDNAttrsInCertificateName (wincrypt.h)

A função CertIsRDNAttrsInCertificateName compara os atributos no nome do certificado com o CERT_RDN especificado para determinar se todos os atributos estão incluídos lá. A comparação itera pela CERT_RDN e procura uma correspondência de atributo em qualquer um dos CERT_RDNs do nome do certificado.

Sintaxe

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

Parâmetros

[in] dwCertEncodingType

Especifica o tipo de codificação usado. É sempre aceitável especificar os tipos de codificação de certificado e mensagem combinando-os com uma operação OR bit a bit, conforme mostrado no exemplo a seguir:

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Os tipos de codificação definidos no momento são:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] dwFlags

CERT_UNICODE_IS_RDN_ATTRS_FLAG deve ser definido se o pRDN foi inicializado com cadeias de caracteres Unicode como em CryptEncodeObject com lpszStructType definido como X509_UNICODE_NAME.

CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG está definido para fazer uma correspondência que não diferencia maiúsculas de minúsculas. Caso contrário, uma correspondência exata, que diferencia maiúsculas de minúsculas, será feita.

[in] pCertName

Um ponteiro para um CRYPT_INTEGER_BLOB que contém o assunto codificado ou o nome do emissor.

[in] pRDN

Matriz de estruturas CERT_RDN que contêm os atributos a serem encontrados no nome. O membro CERT_RDN_ATTR da estrutura CERT_RDN se comporta de acordo com as regras a seguir.

  • Se pszObjId for NULL, o OID ( identificador de objeto de atributo) será ignorado.
  • Se dwValueType for CERT_RDN_ANY_TYPE, o tipo de valor será ignorado.
  • Se o membro pbData de Value for NULL, qualquer valor poderá ser uma correspondência.

Valor retornado

Se a função for bem-sucedida e todos os valores rdn no CERT_RDN especificado estiverem no nome do certificado, o valor retornado será diferente de zero (TRUE).

Se a função falhar ou se houver valores RDN no CERT_RDN especificado que não estejam no nome do certificado, o valor retornado será zero (FALSE). Para obter informações de erro estendidas, chame GetLastError.

A tabela a seguir lista alguns códigos de erro possíveis.

Código de retorno Descrição
CRYPT_E_NO_MATCH
Nem todos os atributos foram encontrados e correspondidos.
ERROR_FILE_NOT_FOUND
Tipo de codificação de certificado inválido. Atualmente, há suporte apenas para X509_ASN_ENCODING.
 

Se a função falhar, GetLastError poderá retornar um erro de codificação/decodificação ASN.1 ( Abstract Syntax Notation One ). Para obter informações sobre esses erros, consulte Valores retornados de codificação/decodificação asn.1.

Comentários

Atualmente, há suporte apenas para uma correspondência exata que diferencia maiúsculas de minúsculas.

Requisitos

   
Cliente mínimo com suporte Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wincrypt.h
Biblioteca Crypt32.lib
DLL Crypt32.dll

Confira também

CertFindCertificateInStore

Funções Gerenciamento de Dados