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 |
---|---|
|
Base64 entre les lignes de la forme '-----BEGIN ...-----' et '-----END ...-----'. Voir les remarques ci-dessous. |
|
Base64, sans en-têtes. |
|
Copie binaire pure. |
|
Base64 entre les lignes de la forme '-----BEGIN ...-----' et '-----END ...-----'. Voir les remarques ci-dessous. |
|
Format hexadécimal uniquement. |
|
Format hexadécimal avec affichage de caractères ASCII . |
|
Tente les opérations suivantes, dans l’ordre :
|
|
Tente les opérations suivantes, dans l’ordre :
|
|
Tente les opérations suivantes, dans l’ordre :
|
|
Base64 entre les lignes de la forme '-----BEGIN ...-----' et '-----END ...-----'. Voir les remarques ci-dessous. |
|
Hexadécimal, avec affichage d’adresse. |
|
Hexadécimal, avec affichage de caractères ASCII et d’adresse. |
|
Chaîne hexadécimale brute.
Windows Server 2003 et Windows XP : Cette valeur n’est pas prise en charge. |
|
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 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 |