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
CRYPT_STRING_BASE64HEADER
0x00000000
Base64 tra righe del formato '-----BEGIN ...-----' e '-----END ...-----'. Vedere Le osservazioni riportate di seguito.
CRYPT_STRING_BASE64
0x00000001
Base64, senza intestazioni.
CRYPT_STRING_BINARY
0x00000002
Copia binaria pura.
CRYPT_STRING_BASE64REQUESTHEADER
0x00000003
Base64 tra righe del formato '-----BEGIN ...-----' e '-----END ...-----'. Vedere Le osservazioni riportate di seguito.
CRYPT_STRING_HEX
0x00000004
Formato esadecimale.
CRYPT_STRING_HEXASCII
0x00000005
Formato esadecimale con visualizzazione 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 righe del formato '-----BEGIN ...-----' e '-----END ...-----'. Vedere Le osservazioni riportate di seguito.
CRYPT_STRING_HEXADDR
0x0000000a
Esadecimale, con visualizzazione degli indirizzi.
CRYPT_STRING_HEXASCIIADDR
0x0000000b
Esadecimale, con carattere ASCII e visualizzazione degli indirizzi.
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 "=".

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

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

Vedi anche

CryptBinaryToString