Compartir a través de


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 incluida la terminación carácter NULL. 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 ...-----". Vea los comentarios a continuación.
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 ...-----". Vea los comentarios a continuación.
CRYPT_STRING_HEX
0x00000004
Solo formato hexadecimal.
CRYPT_STRING_HEXASCII
0x00000005
Formato hexadecimal con presentación 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 ...-----". Vea los comentarios a continuación.
CRYPT_STRING_HEXADDR
0x0000000a
Hex, con presentación de direcciones.
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 el DWORD apuntado por pcbBinary.

[in, out] pcbBinary

Puntero a una variable DWORD de que, en la entrada, contiene el tamaño, en bytes, del búfer de pbBinary. Una vez que se devuelve la función, 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 llegar al principio del encabezado -----BEGIN ...-----. Si no hay ningún encabezado presente, el DWORD se establece en cero. Este parámetro es opcional y se puede NULL si no es necesario.

[out] pdwFlags

Puntero a un valor DWORD que recibe las marcas que se usan realmente en la conversión. Se trata de 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 se puede 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 siguientes valores. 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).

Observaciones

Las marcas CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADERy 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 necesitan coincidir. Si el análisis se realiza correctamente, el valor pasado en el parámetro dwFlags se devuelve en el DWORD apuntado por el parámetro pdwFlags . Tenga en cuenta que un valor de CRYPT_STRING_BASE64REQUESTHEADER o CRYPT_STRING_BASE64X509CRLHEADER no significa que se encontró un encabezado de solicitud o X.509lista de revocación de certificados (CRL).

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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows XP [aplicaciones de escritorio | Aplicaciones para UWP]
servidor mínimo admitido Windows Server 2003 [aplicaciones de escritorio | Aplicaciones para UWP]
de la plataforma de destino de Windows
encabezado de wincrypt.h
biblioteca de Crypt32.lib
DLL de Crypt32.dll

Consulte también

CryptBinaryToString