BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO struttura (bcrypt.h)
La struttura BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO viene usata con le funzioni BCryptEncrypt e BCryptDecrypt per contenere informazioni aggiuntive correlate alle modalità di crittografia autenticate.
Sintassi
typedef struct _BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO {
ULONG cbSize;
ULONG dwInfoVersion;
PUCHAR pbNonce;
ULONG cbNonce;
PUCHAR pbAuthData;
ULONG cbAuthData;
PUCHAR pbTag;
ULONG cbTag;
PUCHAR pbMacContext;
ULONG cbMacContext;
ULONG cbAAD;
ULONGLONG cbData;
ULONG dwFlags;
} BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO, *PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
Members
cbSize
Dimensione, in byte, della struttura. Non impostare direttamente questo campo. Usare invece la macro BCRYPT_INIT_AUTH_MODE_INFO .
dwInfoVersion
Numero di versione della struttura. L'unico valore supportato è BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION. Non impostare direttamente questo campo. Usare invece la macro BCRYPT_INIT_AUTH_MODE_INFO .
pbNonce
Puntatore a un buffer contenente un nonce. I provider di algoritmi Microsoft per Advanced Encryption Standard (AES) richiedono un nonce per Il contatore con CBC-MAC (CCM) e le modalità di concatenazione Galois/Counter Mode (GCM) e restituiranno un errore se non è presente alcuno. Se non viene usato un nonce, questo membro deve essere impostato su NULL.
cbNonce
Dimensioni, in byte, del buffer a cui fa riferimento il membro pbNonce . Se non viene usato un nonce, questo membro deve essere impostato su zero.
pbAuthData
Puntatore a un buffer che contiene i dati autenticati. Si tratta di dati che verranno inclusi nel codice di autenticazione dei messaggi (MAC) ma non crittografato. Se non sono presenti dati autenticati, questo membro deve essere impostato su NULL.
cbAuthData
Dimensioni, in byte, del buffer a cui punta il membro pbAuthData . Se non sono presenti dati autenticati, questo membro deve essere impostato su zero.
pbTag
Puntatore a un buffer.
L'uso di questo membro dipende dalla funzione a cui viene passata la struttura.
Funzione | Descrizione |
---|---|
Il buffer riceverà il tag di autenticazione. | |
Il buffer contiene il tag di autenticazione da controllare. |
Se non è presente alcun tag, questo membro deve essere impostato su NULL.
cbTag
Dimensioni, in byte, del buffer pbTag . Il buffer deve essere abbastanza lungo da includere l'intero tag di autenticazione. Alcune modalità di autenticazione, ad esempio CCM e GCM, supportano il controllo su un tag con più lunghezze. Per ottenere le lunghezze del tag di autenticazione valide, usare BCryptGetProperty per eseguire query sulla proprietà BCRYPT_AUTH_TAG_LENGTH . Se non è presente alcun tag, questo membro deve essere impostato su zero.
pbMacContext
Puntatore a un buffer che archivia il MAC parzialmente calcolato tra le chiamate a BCryptEncrypt e BCryptDecrypt durante la concatenazione o la decrittografia.
Se l'input per la crittografia o la decrittografia viene distribuito in più buffer, è necessario concatenare le chiamate alle funzioni BCryptEncrypt e BCryptDecrypt . Il concatenamento è indicato impostando il flag di BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG nel membro dwFlags .
Questo buffer deve essere fornito dal chiamante e deve essere almeno maggiore della lunghezza massima di un tag di autenticazione per la crittografia in uso. Per ottenere le lunghezze del tag di autenticazione valide, usare BCryptGetProperty per eseguire query sulla proprietà BCRYPT_AUTH_TAG_LENGTH .
Se le chiamate BCryptEncrypt e BCryptDecrypt non vengono concatenati, questo membro deve essere impostato su NULL.
cbMacContext
Dimensioni, in byte, del buffer a cui punta il membro pbMacContext . Se le chiamate BCryptEncrypt e BCryptDecrypt non vengono concatenati, questo membro deve essere impostato su zero.
cbAAD
Lunghezza, in byte, di dati autenticati aggiuntivi da usare dalle funzioni BCryptEncrypt e BCryptDecrypt. Questo membro viene usato solo quando si concatenano le chiamate.
Questo membro viene usato solo quando viene impostato il flag BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG nel membro dwFlags .
Nella prima chiamata a BCryptEncrypt o BCryptDecrypt è necessario impostare questo campo su zero.
cbData
Lunghezza, in byte, dei dati del payload crittografati o decrittografati. Questo membro viene usato solo quando si concatenano le chiamate.
Questo membro viene usato solo quando viene impostato il flag BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG nel membro dwFlags .
Nella prima chiamata a BCryptEncrypt o BCryptDecrypt è necessario impostare questo campo su zero, , direttamente o chiamando la macro BCRYPT_INIT_AUTH_INFO
dwFlags
Questo flag viene usato quando si concatenano le chiamate di funzione BCryptEncrypt o BCryptDecrypt. Se le chiamate non vengono concatenati, questo membro deve essere impostato su zero.
Valore | Significato |
---|---|
|
Per BCryptEncrypt, calcolare il tag di autenticazione e inserirlo nel buffer a cui punta il membro pbTag .
Per BCryptDecrypt, calcolare il tag di autenticazione e confrontarlo con il tag passato al buffer a cui punta il membro pbTag . Quando si concatenano più chiamate a BCryptEncrypt o BCryptDecrypt, questo valore segnala la fine della catena. |
|
Indica che le chiamate di funzione BCryptEncrypt e BCryptDecrypt vengono concatenati e che il valore MAC non verrà calcolato. Nell'ultima chiamata nella catena deselezionare questo valore per calcolare il valore MAC per l'intera catena. |
|
Indica che questa struttura BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO viene usata in una sequenza di chiamate di funzione BCryptEncrypt concatenati o BCryptDecrypt . Questo flag viene impostato e gestito internamente.
Nota Durante la sequenza di concatenamento, questo valore di flag viene mantenuto internamente e non deve essere modificato o il valore del MAC calcolato verrà danneggiato.
|
Commenti
Le dimensioni di questa struttura sono diverse tra sistemi operativi a 64 bit e a 32 bit. Nei sistemi operativi a 64 bit le dimensioni sono diverse tra processi a 64 bit e a 32 bit. Le istanze di questa struttura non devono essere condivise tra thread o passati tra processi.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista con SP1 [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | bcrypt.h |