estructura BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO (bcrypt.h)
La estructura BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO se usa con las funciones BCryptEncrypt y BCryptDecrypt para contener información adicional relacionada con los modos de cifrado autenticados.
Sintaxis
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;
Miembros
cbSize
Tamaño, en bytes, de esta estructura. No establezca este campo directamente. En su lugar, use la macro BCRYPT_INIT_AUTH_MODE_INFO .
dwInfoVersion
Número de versión de la estructura. El único valor admitido es BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION. No establezca este campo directamente. En su lugar, use la macro BCRYPT_INIT_AUTH_MODE_INFO .
pbNonce
Puntero a un búfer que contiene un valor nonce. Los proveedores de algoritmos de Microsoft para los modos de encadenamiento estándar de cifrado avanzado (AES) requieren un nonce para el contador con CBC-MAC (CCM) y los modos de encadenamiento galois/counter (GCM) y devolverá un error si no hay ninguno. Si no se usa un valor nonce, este miembro debe establecerse en NULL.
cbNonce
Tamaño, en bytes, del búfer al que apunta el miembro pbNonce . Si no se usa un valor nonce, este miembro debe establecerse en cero.
pbAuthData
Puntero a un búfer que contiene los datos autenticados. Estos son los datos que se incluirán en el código de autenticación de mensajes (MAC), pero que no se cifrarán. Si no hay datos autenticados, este miembro debe establecerse en NULL.
cbAuthData
Tamaño, en bytes, del búfer al que apunta el miembro pbAuthData . Si no hay datos autenticados, este miembro debe establecerse en cero.
pbTag
Puntero a un búfer.
El uso de este miembro depende de la función a la que se pasa la estructura.
Función | Descripción |
---|---|
El búfer recibirá la etiqueta de autenticación. | |
El búfer contiene la etiqueta de autenticación con la que se va a comprobar. |
Si no hay ninguna etiqueta, este miembro debe establecerse en NULL.
cbTag
Tamaño, en bytes, del búfer pbTag . El búfer debe ser lo suficientemente largo como para incluir toda la etiqueta de autenticación. Algunos modos de autenticación, como CCM y GCM, admiten la comprobación de una etiqueta con varias longitudes. Para obtener las longitudes de etiqueta de autenticación válidas, use BCryptGetProperty para consultar la propiedad BCRYPT_AUTH_TAG_LENGTH . Si no hay ninguna etiqueta, este miembro debe establecerse en cero.
pbMacContext
Puntero a un búfer que almacena el MAC calculado parcialmente entre las llamadas a BCryptEncrypt y BCryptDecrypt al encadenar el cifrado o descifrado.
Si la entrada para el cifrado o el descifrado se dispersa entre varios búferes, debe encadenar llamadas a las funciones BCryptEncrypt y BCryptDecrypt . El encadenamiento se indica estableciendo la marca BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG en el miembro dwFlags .
El autor de la llamada debe proporcionar este búfer y debe ser al menos tan grande como la longitud máxima de una etiqueta de autenticación para el cifrado que está usando. Para obtener las longitudes de etiqueta de autenticación válidas, use BCryptGetProperty para consultar la propiedad BCRYPT_AUTH_TAG_LENGTH .
Si no se encadenan las llamadas BCryptEncrypt y BCryptDecrypt , este miembro debe establecerse en NULL.
cbMacContext
Tamaño, en bytes, del búfer al que apunta el miembro pbMacContext . Si no se encadenan las llamadas BCryptEncrypt y BCryptDecrypt , este miembro debe establecerse en cero.
cbAAD
Longitud, en bytes, de datos autenticados adicionales (AAD) que usarán las funciones BCryptEncrypt y BCryptDecrypt . Este miembro solo se usa al encadenar llamadas.
Este miembro solo se usa cuando se establece la marca BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG en el miembro dwFlags .
En la primera llamada a BCryptEncrypt o BCryptDecrypt , debe establecer este campo en cero.
cbData
Longitud, en bytes, de los datos de carga que se cifran o descifran. Este miembro solo se usa al encadenar llamadas.
Este miembro solo se usa cuando se establece la marca BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG en el miembro dwFlags .
En la primera llamada a BCryptEncrypt o BCryptDecrypt, debe establecer este campo en cero, , ya sea directamente o llamando a la macro BCRYPT_INIT_AUTH_INFO
dwFlags
Esta marca se usa al encadenar llamadas de función BCryptEncrypt o BCryptDecrypt . Si las llamadas no se encadenan, este miembro debe establecerse en cero.
Valor | Significado |
---|---|
|
Para BCryptEncrypt, calcule la etiqueta de autenticación y colóquela en el búfer al que apunta el miembro pbTag .
Para BCryptDecrypt, calcule la etiqueta de autenticación y compárela con la etiqueta pasada al búfer al que apunta el miembro pbTag . Al encadenar varias llamadas a BCryptEncrypt o BCryptDecrypt, este valor señala el final de la cadena. |
|
Indica que las llamadas de función BCryptEncrypt y BCryptDecrypt se están encadenando y que el valor MAC no se calculará. En la última llamada de la cadena, borre este valor para calcular el valor MAC de toda la cadena. |
|
Indica que esta estructura de BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO se usa en una secuencia de llamadas de función BCryptEncrypt o BCryptDecrypt encadenadas. Esta marca se establece y se mantiene internamente.
Nota Durante la secuencia de encadenamiento, este valor de marca se mantiene internamente y no se debe cambiar o el valor del MAC calculado estará dañado.
|
Comentarios
El tamaño de esta estructura es diferente entre los sistemas operativos de 64 y 32 bits. En los sistemas operativos de 64 bits, el tamaño es diferente entre los procesos de 64 y 32 bits. Las instancias de esta estructura no se deben compartir entre subprocesos ni pasarse entre procesos.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista con SP1 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado | bcrypt.h |