Fonction CryptStringToBinaryA (wincrypt.h)

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

Syntaxe

BOOL CryptStringToBinaryA(
  [in]      LPCSTR 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 compter le caractère NULL de fin. 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
Hexadécimal, avec affichage d’adresse.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Hexadécimal, avec affichage de caractères ASCII et 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 afin de spécifier que la fin des données binaires contient uniquement des espaces blancs et qu’au maximum trois signes sont égaux à « = ».

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 d’octets retournée. Si ce paramètre a la valeur 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 pcbBinary.

[in, out] pcbBinary

Pointeur vers une variable DWORD qui, à 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 a la valeur NULL, le DWORD pointé par pcbBinary 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, le DWORD est défini 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 qui ont été 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 recevra 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 recevra 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 recevra 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 retournée

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 zéro (FALSE).

Remarques

Les indicateurs CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADER et 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 encodées en base64 entre les lignes du formulaire -----BEGIN ...----- et -----END ...-----. Les ... parties sont ignorées et ne doivent pas nécessairement correspondre. Si l’analyse réussit, la valeur passée dans le paramètre dwFlags est retournée dans le DWORD pointé par le paramètre pdwFlags . Notez qu’une valeur de CRYPT_STRING_BASE64REQUESTHEADER ou CRYPT_STRING_BASE64X509CRLHEADER ne signifie pas qu’un en-tête de demande ou une liste de révocation de certificatsX.509 a été trouvé.

Notes

L’en-tête wincrypt.h définit CryptStringToBinary en tant qu’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. La combinaison 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.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptBinaryToString