Condividi tramite


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
BCryptEncrypt
Il buffer riceverà il tag di autenticazione.
BCryptDecrypt
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.

Nota Durante la sequenza di concatenamento, questo membro viene mantenuto internamente e non deve essere modificato o il valore del MAC calcolato verrà danneggiato.
 

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

Nota Durante la sequenza di concatenamento, questo membro viene mantenuto internamente e non deve essere modificato o il valore del MAC calcolato verrà danneggiato.
 

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
0x00000000
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.

BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG
0x00000001
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.
BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG
0x00000002
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