Condividi tramite


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 di terminazione NULL. Se questo parametro è zero, pszString viene considerato una stringa con terminazione Null.

[in] dwFlags

Indica il formato della stringa da convertire. Può trattarsi di uno dei valori seguenti.

Valore Significato
CRYPT_STRING_BASE64HEADER
0x00000000
Base64 tra le righe del formato "-----BEGIN ...-----" e "-----END ...-----". Vedere la sezione Osservazioni di seguito.
CRYPT_STRING_BASE64
0x00000001
Base64, senza intestazioni.
CRYPT_STRING_BINARY
0x00000002
Copia binaria pura.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64 tra le righe del formato "-----BEGIN ...-----" e "-----END ...-----". Vedere la sezione Osservazioni di seguito.
CRYPT_STRING_HEX
0x00000004
Formato solo esadecimale.
CRYPT_STRING_HEXASCII
0x00000005
Formato esadecimale con visualizzazione di caratteri ASCII.
CRYPT_STRING_BASE64_ANY
0x00000006
Prova quanto segue, in ordine:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_ANY
0x00000007
Prova quanto segue, in ordine:
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_HEX_ANY
0x00000008
Prova quanto segue, in ordine:
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII
CRYPT_STRING_BASE64X509CRLHEADER
0x00000009
Base64 tra le righe del formato "-----BEGIN ...-----" e "-----END ...-----". Vedere la sezione Osservazioni di seguito.
CRYPT_STRING_HEXADDR
0x0000000a
Esadecimale, con visualizzazione dell'indirizzo.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Esadecimale, con caratteri ASCII e visualizzazione dell'indirizzo.
CRYPT_STRING_HEXRAW
0x0000000c
Stringa esadecimale non elaborata.

Windows Server 2003 e Windows XP: Questo valore non è supportato.

CRYPT_STRING_STRICT
0x20000000
Impostare questo flag per i dati Base64 per specificare che la fine dei dati binari contiene solo spazi vuoti e al massimo tre segni "=" uguali.

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 necessaria nella DWORD a cui punta pcbBinary.

[in, out] pcbBinary

Puntatore a una variabile DWORD che, in ingresso, contiene le dimensioni, in byte, del buffer pbBinary. Al termine della funzione, questa variabile contiene il numero di byte copiati nel buffer. Se questo valore non è sufficientemente grande da contenere tutti i dati, la funzione ha esito negativo e GetLastError restituisce ERROR_MORE_DATA.

Se pbBinary è NULL, il DWORD a cui punta pcbBinary viene ignorato.

[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, il DWORD è impostato 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 Significato
CRYPT_STRING_ANY
Questa variabile riceverà uno dei valori seguenti. Ogni valore indica il formato effettivo della stringa.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_BINARY
CRYPT_STRING_BASE64_ANY
Questa variabile riceverà uno dei valori seguenti. Ogni valore indica il formato effettivo della stringa.
CRYPT_STRING_BASE64HEADER
CRYPT_STRING_BASE64
CRYPT_STRING_HEX_ANY
Questa variabile riceverà uno dei valori seguenti. Ogni valore indica il formato effettivo della stringa.
CRYPT_STRING_HEXADDR
CRYPT_STRING_HEXASCIIADDR
CRYPT_STRING_HEX
CRYPT_STRING_HEXRAW
CRYPT_STRING_HEXASCII

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).

Osservazioni

I flag CRYPT_STRING_BASE64HEADER, CRYPT_STRING_BASE64REQUESTHEADERe CRYPT_STRING_BASE64X509CRLHEADER vengono trattati in modo identico da questa funzione: tentano di analizzare il primo blocco di dati con codifica base64 tra righe del form -----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 DWORD a cui punta il parametro pdwFlags. Si noti che un valore di CRYPT_STRING_BASE64REQUESTHEADER o CRYPT_STRING_BASE64X509CRLHEADER non significa che sia stata trovata un'intestazione della richiesta o X.509elenco di revoche di certificati (CRL).

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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows XP [app desktop | App UWP]
server minimo supportato Windows Server 2003 [app desktop | App UWP]
piattaforma di destinazione Finestre
intestazione wincrypt.h
libreria Crypt32.lib
dll Crypt32.dll

Vedere anche

CryptBinaryToString