Função CertGetNameStringA (wincrypt.h)
A função CertGetNameString
Sintaxe
DWORD CertGetNameStringA(
[in] PCCERT_CONTEXT pCertContext,
[in] DWORD dwType,
[in] DWORD dwFlags,
[in] void *pvTypePara,
[out] LPSTR pszNameString,
[in] DWORD cchNameString
);
Parâmetros
[in] pCertContext
Um ponteiro para um contexto de certificado CERT_CONTEXT que inclui um assunto e um nome emissor a serem convertidos.
[in] dwType
DWORD indicando como o nome deve ser encontrado e como a saída deve ser formatada.
Valor | Significado |
---|---|
|
Se o certificado tiver uma extensão Nome Alternativo da Entidade ou Nome Alternativo do Emissor, usará a primeira opção rfc822Name. Se nenhuma opção rfc822Name for encontrada na extensão, usará o campo Nome da Entidade para o OID de Email. Se rfc822Name ou o Email OID for encontrado, use a cadeia de caracteres. Caso contrário, retorna uma cadeia de caracteres vazia (a contagem de caracteres retornada é 1). pvTypePara não é usado e é definido como NULL. |
|
Converte o BLOB de Nome da Entidade chamando CertNameToStr. |
|
pvTypePara aponta para um identificador de objeto (OID) especificando o atributo de nome a ser retornado. Por exemplo, se pvTypePara for szOID_COMMON_NAME, usará o membro Nome da Entidade. Se o membro Nome da Entidade estiver vazio e o certificado tiver uma extensão Nome Alternativo da Entidade, usará a primeira opção directoryName. |
|
Itera pela seguinte lista de atributos de nome e usa o Nome da Entidade ou a extensão Nome Alternativo da Entidade para a primeira ocorrência de: szOID_COMMON_NAME, szOID_ORGANIZATIONAL_UNIT_NAME, szOID_ORGANIZATION_NAME ou szOID_RSA_emailAddr.
Se um desses atributos não for encontrado, usará a extensão Nome Alternativo da Entidade para uma opção rfc822Name. Se ainda não houver correspondência, usará o primeiro atributo. pvTypePara não é usado e é definido como NULL. |
|
Verifica o certificado de uma propriedade CERT_FRIENDLY_NAME_PROP_ID. Se o certificado tiver essa propriedade, ele será retornado. Se o certificado não tiver a propriedade, o CERT_NAME_SIMPLE_DISPLAY_TYPE será retornado. |
|
Se o certificado tiver uma extensão Nome Alternativo da Entidade para o emissor, Nome Alternativo do Emissor, procure a primeira opção DNSName.
Se a opção DNSName não for encontrada na extensão, pesquise no campo Nome da Entidade para a OID CN, "2.5.4.3". Se o DNSName ou CN OID for encontrado, retorne a cadeia de caracteres. Caso contrário, retorne uma cadeia de caracteres vazia. |
|
Se o certificado tiver uma extensão Nome Alternativo da Entidade para o emissor, Nome Alternativo do Emissor, procure a primeira opção de URL. Se a opção de URL for encontrada, retorne a cadeia de caracteres. Caso contrário, retorne uma cadeia de caracteres vazia. |
|
Se o certificado tiver uma extensão Nome Alternativo da Entidade, pesquise as opções OtherName procurando um pszObjId == szOID_NT_PRINCIPAL_NAME ("1.3.6.1.4.1.311.20.2.3").
Se a OID UPN for encontrada, decodificará o BLOB como um X509_UNICODE_ANY_STRING e retornará a cadeia de caracteres decodificada. Caso contrário, retorne uma cadeia de caracteres vazia. |
[in] dwFlags
Indica o tipo de processamento necessário.
Valor | Significado |
---|---|
|
Adquire o nome do emissor. Se não estiver definido, adquira o nome do assunto. |
|
Ignora a tentativa inicial padrão de decodificar o valor como UTF8 e decodifica como caracteres de 8 bits. |
|
Se o parâmetro dwType for definido como CERT_NAME_DNS_TYPE, todos os nomes aplicáveis serão retornados para o valor DNS especificado. Se não houver nenhum nome DNS, mas houver um componente CN no assunto, o CN será retornado. Se houver um CN e um nome DNS, somente os nomes DNS serão retornados. Isso imita a política de construção da cadeia SSL. Se você definir esse sinalizador para um tipo de nome diferente de CERT_NAME_DNS_TYPE, essa função retornará uma cadeia de caracteres vazia terminada em nulo.
Windows 8 e Windows Server 2012: começa o suporte para esse sinalizador. |
|
Esse sinalizador permite a decodificação de cadeias de caracteres
|
[in] pvTypePara
Um ponteiro para um
[out] pszNameString
Um ponteiro para um buffer alocado para receber a cadeia de caracteres retornada. Se
Se
[in] cchNameString
Tamanho, em caracteres, alocado para a cadeia de caracteres retornada. O tamanho deve incluir o caractere de NULL
Valor de retorno
Retorna o número de caracteres convertidos, incluindo o caractere zero de terminação. Se pszNameString for NULL ou cchNameString for zero, retornará o tamanho necessário da cadeia de caracteres de destino (incluindo a terminação caractere de NULL). Se o tipo de nome especificado não for encontrado, retornará um cadeia de caracteres vaziaterminada em nulo com uma contagem de caracteres retornada de 1.
Observações
Nota
O cabeçalho wincrypt.h define CertGetNameString como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows XP [aplicativos da área de trabalho | Aplicativos UWP] |
servidor com suporte mínimo | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
da Plataforma de Destino |
Windows |
cabeçalho | wincrypt.h |
biblioteca | Crypt32.lib |
de DLL |
Crypt32.dll |