Função CryptStringToBinaryA (wincrypt.h)
A função CryptStringToBinary converte uma cadeia de caracteres formatada em uma matriz de bytes.
Sintaxe
BOOL CryptStringToBinaryA(
[in] LPCSTR pszString,
[in] DWORD cchString,
[in] DWORD dwFlags,
[in] BYTE *pbBinary,
[in, out] DWORD *pcbBinary,
[out] DWORD *pdwSkip,
[out] DWORD *pdwFlags
);
Parâmetros
[in] pszString
Um ponteiro para uma cadeia de caracteres que contém a cadeia de caracteres formatada a ser convertida.
[in] cchString
O número de caracteres da cadeia de caracteres formatada a ser convertida, sem incluir o caractere NULL de terminação. Se esse parâmetro for zero, pszString será considerado uma cadeia de caracteres terminada em nulo.
[in] dwFlags
Indica o formato da cadeia de caracteres a ser convertida. Esse pode ser um dos valores a seguir.
Valor | Significado |
---|---|
|
Base64 entre as linhas do formato '-----BEGIN ...-----' e '-----END ...-----'. Consulte os comentários abaixo. |
|
Base64, sem cabeçalhos. |
|
Cópia binária pura. |
|
Base64 entre as linhas do formato '-----BEGIN ...-----' e '-----END ...-----'. Consulte os comentários abaixo. |
|
Formato somente hexadecimal. |
|
Formato hexadecimal com exibição de caractere ASCII . |
|
Tenta o seguinte, na ordem:
|
|
Tenta o seguinte, na ordem:
|
|
Tenta o seguinte, na ordem:
|
|
Base64 entre as linhas do formato '-----BEGIN ...-----' e '-----END ...-----'. Consulte os comentários abaixo. |
|
Hex, com exibição de endereço. |
|
Hex, com caractere ASCII e exibição de endereço. |
|
Uma cadeia de caracteres hexadecimal bruta.
Windows Server 2003 e Windows XP: Não há suporte para esse valor. |
|
Defina esse sinalizador para dados Base64 para especificar que o final dos dados binários contenha apenas espaço em branco e, no máximo, três sinais "=".
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Não há suporte para esse valor. |
[in] pbBinary
Um ponteiro para um buffer que recebe a sequência de bytes retornada. Se esse parâmetro for NULL, a função calculará o comprimento do buffer necessário e retornará o tamanho, em bytes, da memória necessária no DWORD apontado por pcbBinary.
[in, out] pcbBinary
Um ponteiro para uma variável DWORD que, na entrada, contém o tamanho, em bytes, do buffer pbBinary . Depois que a função retorna, essa variável contém o número de bytes copiados para o buffer. Se esse valor não for grande o suficiente para conter todos os dados, a função falhará e GetLastError retornará ERROR_MORE_DATA.
Se pbBinary for NULL, o DWORD apontado por pcbBinary será ignorado.
[out] pdwSkip
Um ponteiro para um valor DWORD que recebe o número de caracteres ignorados para alcançar o início do -----BEGIN ...-----
cabeçalho.
Se nenhum cabeçalho estiver presente, o DWORD será definido como zero.
Esse parâmetro é opcional e pode ser NULL se não for necessário.
[out] pdwFlags
Um ponteiro para um valor DWORD que recebe os sinalizadores realmente usados na conversão. Esses são os mesmos sinalizadores usados para o parâmetro dwFlags . Em muitos casos, esses serão os mesmos sinalizadores que foram passados no parâmetro dwFlags . Se dwFlags contiver um dos sinalizadores a seguir, esse valor receberá um sinalizador que indica o formato real da cadeia de caracteres. Esse parâmetro é opcional e pode ser NULL se não for necessário.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero (TRUE).
Se a função falhar, o valor retornado será zero (FALSE).
Comentários
Os sinalizadores CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADER e CRYPT_STRING_BASE64X509CRLHEADER são tratados de forma idêntica por essa função: eles tentam analisar o primeiro bloco de dados codificados em base64 entre as linhas do formulário -----BEGIN ...-----
e -----END ...-----
.
As ...
partes são ignoradas e não precisam corresponder.
Se a análise for bem-sucedida, o valor passado no parâmetro dwFlags será retornado no DWORD apontado pelo parâmetro pdwFlags .
Observe que um valor de CRYPT_STRING_BASE64REQUESTHEADER ou CRYPT_STRING_BASE64X509CRLHEADER não significa que um cabeçalho de solicitação ou crl (lista de revogação de certificados) X.509 foi encontrado.
Observação
O cabeçalho wincrypt.h define CryptStringToBinary como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.
Requisitos
Cliente mínimo com suporte | Windows XP [aplicativos da área de trabalho | aplicativos UWP] |
Servidor mínimo com suporte | Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | wincrypt.h |
Biblioteca | Crypt32.lib |
DLL | Crypt32.dll |