estrutura BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO (bcrypt.h)
A estrutura BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO é usada com as funções BCryptEncrypt e BCryptDecrypt para conter informações adicionais relacionadas aos modos de criptografia autenticados.
Sintaxe
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;
Membros
cbSize
O tamanho, em bytes, dessa estrutura. Não defina esse campo diretamente. Em vez disso, use a macro BCRYPT_INIT_AUTH_MODE_INFO .
dwInfoVersion
O número de versão da estrutura. O único valor com suporte é BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION. Não defina esse campo diretamente. Em vez disso, use a macro BCRYPT_INIT_AUTH_MODE_INFO .
pbNonce
Um ponteiro para um buffer que contém um nonce. Os provedores de algoritmos da Microsoft para os modos de encadeamento AES ( Advanced Encryption Standard ) exigem um nonce para os modos de encadeamento Counter with CBC-MAC (CCM) e Galois/Counter Mode (GCM) e retornarão um erro se nenhum estiver presente. Se um nonce não for usado, esse membro deverá ser definido como NULL.
cbNonce
O tamanho, em bytes, do buffer apontado pelo membro pbNonce . Se um nonce não for usado, esse membro deverá ser definido como zero.
pbAuthData
Um ponteiro para um buffer que contém os dados autenticados. Esses são os dados que serão incluídos no MAC ( Código de Autenticação de Mensagem ), mas não criptografados. Se não houver dados autenticados, esse membro deverá ser definido como NULL.
cbAuthData
O tamanho, em bytes, do buffer apontado pelo membro pbAuthData . Se não houver dados autenticados, esse membro deverá ser definido como zero.
pbTag
Um ponteiro para um buffer.
O uso desse membro depende da função para a qual a estrutura é passada.
Função | Descrição |
---|---|
O buffer receberá a marca de autenticação. | |
O buffer contém a marca de autenticação a ser verificada. |
Se não houver nenhuma marca, esse membro deverá ser definido como NULL.
cbTag
O tamanho, em bytes, do buffer pbTag . O buffer deve ser longo o suficiente para incluir toda a marca de autenticação. Alguns modos de autenticação, como CCM e GCM, dão suporte à verificação em uma marca com vários comprimentos. Para obter os comprimentos de marca de autenticação válidos, use BCryptGetProperty para consultar a propriedade BCRYPT_AUTH_TAG_LENGTH . Se não houver nenhuma marca, esse membro deverá ser definido como zero.
pbMacContext
Um ponteiro para um buffer que armazena o MAC parcialmente computado entre chamadas para BCryptEncrypt e BCryptDecrypt ao encadear criptografia ou descriptografia.
Se a entrada para criptografia ou descriptografia estiver espalhada em vários buffers, você deverá encadear chamadas para as funções BCryptEncrypt e BCryptDecrypt . O encadeamento é indicado definindo o sinalizador BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG no membro dwFlags .
Esse buffer deve ser fornecido pelo chamador e deve ser pelo menos tão grande quanto o comprimento máximo de uma marca de autenticação para a codificação que você está usando. Para obter os comprimentos de marca de autenticação válidos, use BCryptGetProperty para consultar a propriedade BCRYPT_AUTH_TAG_LENGTH .
Se as chamadas BCryptEncrypt e BCryptDecrypt não estiverem sendo encadeadas, esse membro deverá ser definido como NULL.
cbMacContext
O tamanho, em bytes, do buffer apontado pelo membro pbMacContext . Se as chamadas BCryptEncrypt e BCryptDecrypt não estiverem sendo encadeadas, esse membro deverá ser definido como zero.
cbAAD
O comprimento, em bytes, de dados autenticados adicionais (AAD) a serem usados pelas funções BCryptEncrypt e BCryptDecrypt . Esse membro é usado somente ao encadear chamadas.
Esse membro é usado somente quando o sinalizador BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG no membro dwFlags é definido.
Na primeira chamada para BCryptEncrypt ou BCryptDecrypt , você deve definir esse campo como zero.
cbData
O comprimento, em bytes, dos dados de conteúdo que foram criptografados ou descriptografados. Esse membro é usado somente ao encadear chamadas.
Esse membro é usado somente quando o sinalizador BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG no membro dwFlags é definido.
Na primeira chamada para BCryptEncrypt ou BCryptDecrypt, você deve definir esse campo como zero, , diretamente ou chamando a macro BCRYPT_INIT_AUTH_INFO
dwFlags
Esse sinalizador é usado ao encadear chamadas de função BCryptEncrypt ou BCryptDecrypt . Se as chamadas não estiverem sendo encadeadas, esse membro deverá ser definido como zero.
Valor | Significado |
---|---|
|
Para BCryptEncrypt, calcule a marca de autenticação e coloque-a no buffer apontado pelo membro pbTag .
Para BCryptDecrypt, calcule a marca de autenticação e compare-a com a marca passada para o buffer apontado pelo membro pbTag . Ao encadear várias chamadas para BCryptEncrypt ou BCryptDecrypt, esse valor sinaliza o fim da cadeia. |
|
Indica que as chamadas de função BCryptEncrypt e BCryptDecrypt estão sendo encadeadas e que o valor MAC não será calculado. Na última chamada na cadeia, desmarque esse valor para calcular o valor mac de toda a cadeia. |
|
Indica que essa estrutura BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO está sendo usada em uma sequência de chamadas de função BCryptEncrypt ou BCryptDecrypt encadeadas. Esse sinalizador é definido e mantido internamente.
Nota Durante a sequência de encadeamento, esse valor de sinalizador é mantido internamente e não deve ser alterado ou o valor do MAC calculado será corrompido.
|
Comentários
O tamanho dessa estrutura é diferente entre sistemas operacionais de 64 bits e 32 bits. Em sistemas operacionais de 64 bits, o tamanho é diferente entre processos de 64 bits e 32 bits. As instâncias dessa estrutura não devem ser compartilhadas entre threads ou passadas entre processos.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista com SP1 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | bcrypt.h |