Funzione CryptStringToBinaryA (wincrypt.h)
La funzione CryptStringToBinary converte una stringa formattata in una matrice di byte.
Sintassi
BOOL CryptStringToBinaryA(
[in] LPCSTR pszString,
[in] DWORD cchString,
[in] DWORD dwFlags,
[in] BYTE *pbBinary,
[in, out] DWORD *pcbBinary,
[out] DWORD *pdwSkip,
[out] DWORD *pdwFlags
);
Parametri
[in] pszString
Puntatore a una stringa contenente la stringa formattata da convertire.
[in] cchString
Numero di caratteri della stringa formattata da convertire, non incluso il carattere NULL terminante. Se questo parametro è zero, pszString viene considerato come una stringa con terminazione null.
[in] dwFlags
Indica il formato della stringa da convertire. Questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Base64 tra righe del formato '-----BEGIN ...-----' e '-----END ...-----'. Vedere Le osservazioni riportate di seguito. |
|
Base64, senza intestazioni. |
|
Copia binaria pura. |
|
Base64 tra righe del formato '-----BEGIN ...-----' e '-----END ...-----'. Vedere Le osservazioni riportate di seguito. |
|
Formato esadecimale. |
|
Formato esadecimale con visualizzazione caratteri ASCII . |
|
Prova quanto segue, in ordine:
|
|
Prova quanto segue, in ordine:
|
|
Prova quanto segue, in ordine:
|
|
Base64 tra righe del formato '-----BEGIN ...-----' e '-----END ...-----'. Vedere Le osservazioni riportate di seguito. |
|
Esadecimale, con visualizzazione degli indirizzi. |
|
Esadecimale, con carattere ASCII e visualizzazione degli indirizzi. |
|
Stringa esadecimale non elaborata.
Windows Server 2003 e Windows XP: Questo valore non è supportato. |
|
Impostare questo flag per i dati base64 per specificare che la fine dei dati binari contiene solo spazi vuoti e al massimo tre segni "=".
Windows Server 2008, Windows Vista, Windows Server 2003 e Windows XP: Questo valore non è supportato. |
[in] pbBinary
Puntatore a un buffer che riceve la sequenza restituita di byte. Se questo parametro è NULL, la funzione calcola la lunghezza del buffer necessaria e restituisce le dimensioni, in byte, della memoria richiesta nella DWORD a cui fa riferimento pcbBinary.
[in, out] pcbBinary
Puntatore a una variabile DWORD che, nella voce, contiene le dimensioni, in byte, del buffer pbBinary . Dopo aver restituito la funzione, questa variabile contiene il numero di byte copiati nel buffer. Se questo valore non è sufficiente per contenere tutti i dati, la funzione ha esito negativo e GetLastError restituisce ERROR_MORE_DATA.
Se pbBinary è NULL, la DWORD puntata da pcbBinary viene ignorata.
[out] pdwSkip
Puntatore a un valore DWORD che riceve il numero di caratteri ignorati per raggiungere l'inizio dell'intestazione -----BEGIN ...-----
.
Se non è presente alcuna intestazione, la DWORD è impostata su zero.
Questo parametro è facoltativo e può essere NULL se non è necessario.
[out] pdwFlags
Puntatore a un valore DWORD che riceve i flag effettivamente usati nella conversione. Questi sono gli stessi flag usati per il parametro dwFlags . In molti casi, questi saranno gli stessi flag passati nel parametro dwFlags . Se dwFlags contiene uno dei flag seguenti, questo valore riceverà un flag che indica il formato effettivo della stringa. Questo parametro è facoltativo e può essere NULL se non è necessario.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).
Se la funzione ha esito negativo, il valore restituito è zero (FALSE).
Commenti
I flag CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADER e CRYPT_STRING_BASE64X509CRLHEADER vengono tutti trattati in modo identico da questa funzione: tentano di analizzare il primo blocco di dati con codifica base64 tra le righe del modulo -----BEGIN ...-----
e -----END ...-----
.
Le ...
parti vengono ignorate e non devono corrispondere.
Se l'analisi ha esito positivo, il valore passato nel parametro dwFlags viene restituito nel parametro DWORD a cui fa riferimento il parametro pdwFlags .
Si noti che un valore di CRYPT_STRING_BASE64REQUESTHEADER o CRYPT_STRING_BASE64X509CRLHEADER non significa che è stata trovata un'intestazione di richiesta o un elenco di revoche di certificatiX.509.
Nota
L'intestazione wincrypt.h definisce CryptStringToBinary come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Client minimo supportato | Windows XP [app desktop | App UWP] |
Server minimo supportato | Windows Server 2003 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Crypt32.lib |
DLL | Crypt32.dll |