Partager via


CryptStringToBinaryW, fonction (wincrypt.h)

La fonction CryptStringToBinary convertit une chaîne mise en forme en un tableau d’octets.

Syntaxe

BOOL CryptStringToBinaryW(
  [in]      LPCWSTR pszString,
  [in]      DWORD   cchString,
  [in]      DWORD   dwFlags,
  [in]      BYTE    *pbBinary,
  [in, out] DWORD   *pcbBinary,
  [out]     DWORD   *pdwSkip,
  [out]     DWORD   *pdwFlags
);

Paramètres

[in] pszString

Pointeur vers une chaîne qui contient la chaîne mise en forme à convertir.

[in] cchString

Nombre de caractères de la chaîne mise en forme à convertir, sans inclure la fin caractère NULL. Si ce paramètre est égal à zéro, pszString est considéré comme une chaîne terminée par null.

[in] dwFlags

Indique le format de la chaîne à convertir. Il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
CRYPT_STRING_BASE64HEADER
0x00000000
Base64 entre les lignes de la forme '-----BEGIN ...-----' et '-----END ...-----'. Voir les remarques ci-dessous.
CRYPT_STRING_BASE64
0x00000001
Base64, sans en-têtes.
CRYPT_STRING_BINARY
0x00000002
Copie binaire pure.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64 entre les lignes de la forme '-----BEGIN ...-----' et '-----END ...-----'. Voir les remarques ci-dessous.
CRYPT_STRING_HEX
0x00000004
Format hexadécimal uniquement.
CRYPT_STRING_HEXASCII
0x00000005
Format hexadécimal avec affichage de caractères ASCII.
CRYPT_STRING_BASE64_ANY
0x00000006
Tente les opérations suivantes, dans l’ordre :
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_ANY
0x00000007
Tente les opérations suivantes, dans l’ordre :
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_HEX_ANY
0x00000008
Tente les opérations suivantes, dans l’ordre :
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64 entre les lignes de la forme '-----BEGIN ...-----' et '-----END ...-----'. Voir les remarques ci-dessous.
CRYPT_STRING_HEXADDR
0x0000000a
Hex, avec l’affichage d’adresse.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Hexadécimal, avec caractère ASCII et affichage d’adresse.
CRYPT_STRING_HEXRAW
0x0000000c
Chaîne hexadécimale brute.

Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.

CRYPT_STRING_STRICT
0x20000000
Définissez cet indicateur pour les données Base64 pour spécifier que la fin des données binaires contient uniquement des espaces blancs et au plus trois égaux aux signes « = ».

Windows Server 2008, Windows Vista, Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge.

[in] pbBinary

Pointeur vers une mémoire tampon qui reçoit la séquence retournée d’octets. Si ce paramètre est NULL, la fonction calcule la longueur de la mémoire tampon nécessaire et retourne la taille, en octets, de la mémoire requise dans le DWORD pointé par de tableaux de tableaux.

[in, out] pcbBinary

Pointeur vers une variable DWORD qui, lors de l’entrée, contient la taille, en octets, de la mémoire tampon pbBinary. Une fois la fonction retournée, cette variable contient le nombre d’octets copiés dans la mémoire tampon. Si cette valeur n’est pas suffisamment grande pour contenir toutes les données, la fonction échoue et GetLastError retourne ERROR_MORE_DATA.

Si pbBinary est NULL, le DWORD pointé par pbBinary est ignoré.

[out] pdwSkip

Pointeur vers une valeur DWORD qui reçoit le nombre de caractères ignorés pour atteindre le début de l’en-tête -----BEGIN ...-----. Si aucun en-tête n’est présent, la DWORD est définie sur zéro. Ce paramètre est facultatif et peut être NULL s’il n’est pas nécessaire.

[out] pdwFlags

Pointeur vers une valeur DWORD qui reçoit les indicateurs réellement utilisés dans la conversion. Il s’agit des mêmes indicateurs que ceux utilisés pour le paramètre dwFlags. Dans de nombreux cas, il s’agit des mêmes indicateurs que ceux passés dans le paramètre dwFlags. Si dwFlags contient l’un des indicateurs suivants, cette valeur reçoit un indicateur qui indique le format réel de la chaîne. Ce paramètre est facultatif et peut être NULL s’il n’est pas nécessaire.

Valeur Signification
CRYPT_STRING_ANY
Cette variable reçoit l’une des valeurs suivantes. Chaque valeur indique le format réel de la chaîne.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_BASE64_ANY
Cette variable reçoit l’une des valeurs suivantes. Chaque valeur indique le format réel de la chaîne.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_HEX_ANY
Cette variable reçoit l’une des valeurs suivantes. Chaque valeur indique le format réel de la chaîne.
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII

Valeur de retour

Si la fonction réussit, la valeur de retour est différente de zéro (TRUE).

Si la fonction échoue, la valeur de retour est égale à zéro (FALSE).

Remarques

Les indicateurs CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADERet CRYPT_STRING_BASE64X509CRLHEADER sont tous traités de la même façon par cette fonction : ils tentent d’analyser le premier bloc de données codées en base64 entre les lignes du formulaire -----BEGIN ...----- et -----END ...-----. Les parties ... sont ignorées et ne doivent pas correspondre. Si l’analyse réussit, la valeur transmise dans le paramètre dwFlags est retournée dans la DWORD pointée par le paramètre pdwFlags. Notez qu’une valeur de CRYPT_STRING_BASE64REQUESTHEADER ou de CRYPT_STRING_BASE64X509CRLHEADER ne signifie pas qu’un en-tête de demande ou liste de révocation de certificats X.509 (CRL) a été trouvé.

Note

L’en-tête wincrypt.h définit CryptStringToBinary comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2003 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête wincrypt.h
bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptBinaryToString