Función CryptStringToBinaryA (wincrypt.h)

La función CryptStringToBinary convierte una cadena con formato en una matriz de bytes.

Sintaxis

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

Puntero a una cadena que contiene la cadena con formato que se va a convertir.

[in] cchString

Número de caracteres de la cadena con formato que se va a convertir, no incluido el carácter NULL de terminación. Si este parámetro es cero, pszString se considera una cadena terminada en null.

[in] dwFlags

Indica el formato de la cadena que se va a convertir. Puede ser uno de los siguientes valores.

Valor Significado
CRYPT_STRING_BASE64HEADER
0x00000000
Base64 entre líneas del formulario "-----BEGIN ...-----" y "-----END ...-----". Consulte los comentarios indicados más adelante.
CRYPT_STRING_BASE64
0x00000001
Base64, sin encabezados.
CRYPT_STRING_BINARY
0x00000002
Copia binaria pura.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64 entre líneas del formulario "-----BEGIN ...-----" y "-----END ...-----". Consulte los comentarios indicados más adelante.
CRYPT_STRING_HEX
0x00000004
Formato de solo hexadecimal.
CRYPT_STRING_HEXASCII
0x00000005
Formato hexadecimal con pantalla de caracteres ASCII .
CRYPT_STRING_BASE64_ANY
0x00000006
Intenta lo siguiente, en orden:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_ANY
0x00000007
Intenta lo siguiente, en orden:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_HEX_ANY
0x00000008
Intenta lo siguiente, en orden:
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64 entre líneas del formulario "-----BEGIN ...-----" y "-----END ...-----". Consulte los comentarios indicados más adelante.
CRYPT_STRING_HEXADDR
0x0000000a
Hex, con pantalla de dirección.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Hexadecimal, con el carácter ASCII y la presentación de direcciones.
CRYPT_STRING_HEXRAW
0x0000000c
Cadena hexadecimal sin formato.

Windows Server 2003 y Windows XP: Este valor no se admite.

CRYPT_STRING_STRICT
0x20000000
Establezca esta marca para los datos base64 para especificar que el final de los datos binarios solo contenga espacios en blanco y, como máximo, tres signos iguales a "=".

Windows Server 2008, Windows Vista, Windows Server 2003 y Windows XP: Este valor no se admite.

[in] pbBinary

Puntero a un búfer que recibe la secuencia de bytes devuelta. Si este parámetro es NULL, la función calcula la longitud del búfer necesario y devuelve el tamaño, en bytes, de la memoria necesaria en la DWORD a la que apunta pcbBinary.

[in, out] pcbBinary

Puntero a una variable DWORD que, en la entrada, contiene el tamaño, en bytes, del búfer pbBinary . Una vez que la función devuelve, esta variable contiene el número de bytes copiados en el búfer. Si este valor no es lo suficientemente grande como para contener todos los datos, se produce un error en la función y GetLastError devuelve ERROR_MORE_DATA.

Si pbBinary es NULL, se omite el DWORD al que apunta pcbBinary .

[out] pdwSkip

Puntero a un valor DWORD que recibe el número de caracteres omitidos para alcanzar el principio del -----BEGIN ...----- encabezado. Si no hay ningún encabezado presente, DWORD se establece en cero. Este parámetro es opcional y puede ser NULL si no es necesario.

[out] pdwFlags

Puntero a un valor DWORD que recibe las marcas que se usan realmente en la conversión. Son las mismas marcas que se usan para el parámetro dwFlags . En muchos casos, serán las mismas marcas que se pasaron en el parámetro dwFlags . Si dwFlags contiene una de las marcas siguientes, este valor recibirá una marca que indica el formato real de la cadena. Este parámetro es opcional y puede ser NULL si no es necesario.

Valor Significado
CRYPT_STRING_ANY
Esta variable recibirá uno de los siguientes valores. Cada valor indica el formato real de la cadena.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_BASE64_ANY
Esta variable recibirá uno de los siguientes valores. Cada valor indica el formato real de la cadena.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_HEX_ANY
Esta variable recibirá uno de los valores siguientes. Cada valor indica el formato real de la cadena.
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII

Valor devuelto

Si la función se ejecuta correctamente, el valor devuelto es distinto de cero (TRUE).

Si se produce un error en la función, el valor devuelto es cero (FALSE).

Comentarios

Las marcas CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADER y CRYPT_STRING_BASE64X509CRLHEADER se tratan de forma idéntica mediante esta función: intentan analizar el primer bloque de datos codificados en base64 entre líneas del formulario -----BEGIN ...----- y -----END ...-----. Las ... partes se omiten y no tienen que coincidir. Si el análisis se realiza correctamente, el valor pasado en el parámetro dwFlags se devuelve en el DWORD al que apunta el parámetro pdwFlags . Tenga en cuenta que un valor de CRYPT_STRING_BASE64REQUESTHEADER o CRYPT_STRING_BASE64X509CRLHEADER no significa que se haya encontrado un encabezado de solicitud o una lista de revocación de certificados (CRL) X.509.

Nota

El encabezado wincrypt.h define CryptStringToBinary como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado wincrypt.h
Library Crypt32.lib
Archivo DLL Crypt32.dll

Consulte también

CryptBinaryToString