Função CertStrToNameA (wincrypt.h)
A função CertStrToName
Sintaxe
BOOL CertStrToNameA(
[in] DWORD dwCertEncodingType,
[in] LPCSTR pszX500,
[in] DWORD dwStrType,
[in, optional] void *pvReserved,
[out] BYTE *pbEncoded,
[in, out] DWORD *pcbEncoded,
[out, optional] LPCSTR *ppszError
);
Parâmetros
[in] dwCertEncodingType
O tipo de codificação de certificado usado para codificar a cadeia de caracteres. O tipo de codificação de mensagem
Esse parâmetro pode ser o seguinte tipo de codificação de certificado definido no momento.
Valor | Significado |
---|---|
|
Especifica codificação de certificado X.509. |
[in] pszX500
Um ponteiro para a cadeia de caracteres X.500 terminada em nulo a ser convertida. O formato dessa cadeia de caracteres é especificado pelo parâmetro dwStrType
Espera-se que essa cadeia de caracteres seja formatada da mesma forma que a saída da função CertNameToStr
[in] dwStrType
Esse parâmetro especifica o tipo da cadeia de caracteres. Esse parâmetro também especifica outras opções para o conteúdo da cadeia de caracteres.
Se nenhum sinalizador for combinado com o especificador de tipo de cadeia de caracteres, a cadeia de caracteres poderá conter uma vírgula (,) ou um ponto-e-vírgula (;) como separadores no nome diferenciado relativo (RDN) e um sinal de adição (+) como separador em vários valores RDN.
Há suporte para aspas (""). Uma aspa pode ser incluída em um valor entre aspas usando dois conjuntos de aspas, por exemplo, CN="Usuário ""um""".
Um valor que começa com um sinal de número (#) é tratado como ASCII hexadecimal e convertido em um CERT_RDN_OCTET_STRING. O espaço em branco inserido é ignorado. Por exemplo, 1.2.3 = # AB CD 01 é igual a 1.2.3=#ABCD01.
O espaço em branco que envolve as chaves, os identificadores de objeto e os valores é ignorado.
Esse parâmetro pode ser um dos valores a seguir.
As opções a seguir também podem ser combinadas com o valor acima para especificar opções adicionais para a cadeia de caracteres.
[in, optional] pvReserved
Reservado para uso futuro e deve ser NULL.
[out] pbEncoded
Um ponteiro para um buffer que recebe a estrutura codificada.
O tamanho desse buffer é especificado no parâmetro pcbEncoded.
Esse parâmetro pode ser NULL para obter o tamanho necessário do buffer para fins de alocação de memória. Para obter mais informações, consulte Recuperando dados dede comprimento desconhecido.
[in, out] pcbEncoded
Um ponteiro para um DWORD que, antes de chamar a função, contém o tamanho, em bytes, do buffer apontado pelo parâmetro pbEncoded. Quando a função retorna, o DWORD
Se
[out, optional] ppszError
Um ponteiro para um ponteiro de cadeia de caracteres que recebe informações de erro adicionais sobre uma cadeia de caracteres de entrada que não é válida.
Se o pszX500 cadeia de caracteres não for válido, ppszError será atualizado por essa função para apontar para o início da sequência de caracteres que não é válida. Se nenhum erro for detectado na cadeia de caracteres de entrada, ppszError será definido como NULL.
Se essas informações não forem necessárias, passe NULL para esse parâmetro.
Esse parâmetro é atualizado para os seguintes códigos de erro retornados de GetLastError.
CRYPT_E_INVALID_X500_STRING
CRYPT_E_INVALID_NUMERIC_STRING
CRYPT_E_INVALID_PRINTABLE_STRING
CRYPT_E_INVALID_IA5_STRING
Valor de retorno
Retorna diferente de zero se tiver êxito ou zero caso contrário.
Para obter informações de erro estendidas, chame GetLastError.
Observações
A tabela a seguir contém as chaves X.500 compatíveis, a cadeia de caracteres do identificador de objeto correspondente, o identificador de cadeia de caracteres (de Wincrypt.h) e os tipos de valor.
Chave | Cadeia de caracteres do identificador de objeto | Identificador de cadeia de caracteres | Tipos de valor RDN |
---|---|---|---|
CN | 2.5.4.3 | szOID_COMMON_NAME |
Imprimível T61 |
L | 2.5.4.7 | szOID_LOCALITY_NAME |
Imprimível T61 |
O | 2.5.4.10 | szOID_ORGANIZATION_NAME |
Imprimível T61 |
UO | 2.5.4.11 | szOID_ORGANIZATIONAL_UNIT_NAME |
Imprimível T61 |
E |
1.2.840.113549.1.9.1 | szOID_RSA_emailAddr | IA5 |
C | 2.5.4.6 | szOID_COUNTRY_NAME | Imprimível |
S ST |
2.5.4.8 | szOID_STATE_OR_PROVINCE_NAME |
Imprimível T61 |
RUA | 2.5.4.9 | szOID_STREET_ADDRESS |
Imprimível T61 |
T Título |
2.5.4.12 | szOID_TITLE |
Imprimível T61 |
G GivenName |
2.5.4.42 | szOID_GIVEN_NAME |
Imprimível T61 |
Eu Iniciais |
2.5.4.43 | szOID_INITIALS |
Imprimível T61 |
SN | 2.5.4.4 | szOID_SUR_NAME |
Imprimível T61 |
DC | 0.9.2342.19200300.100.1.25 | szOID_DOMAIN_COMPONENT |
IA5 UTF8 |
Se imprimível ou T61 for permitido como o tipo de valor RDN para a chave, Printable será automaticamente selecionado se o componente de cadeia de caracteres de nome for um membro dos seguintes conjuntos de caracteres:
- A, B, ..., Z
- a, b, ..., z
- 0, 1, …, 9
- (espaço) ' ( ) + , - . / : = ?
Os tipos T61 são codificados em UTF8.
Exemplos
Para obter um exemplo que usa essa função, consulte Exemplo de Programa C: Convertendo Nomes de Certificados em ASN.1 e Voltar.
Nota
O cabeçalho wincrypt.h define CertStrToName 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 |
Consulte também
CertNameToStr
recuperando dados de de comprimento desconhecido