BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO 结构是 Windows Cryptography API Next Generation (CNG) 中定义的一个结构,用于在加密和解密操作中提供额外的信息,例如关联数据(Additional Authentication Data,AAD)和初始化向量(Initialization Vector,IV),以及其他与身份验证和密码模式相关的信息。

以下是该结构的定义:
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;

结构成员说明:

  •  cbSize:结构的大小,以字节为单位。

  •  dwInfoVersion:结构的版本号。

  •  pbNonce:指向用于初始化向量 (IV) 的缓冲区的指针。

  •  cbNonce:IV 缓冲区的大小,以字节为单位。

  •  pbAuthData:指向关联数据 (AAD) 的缓冲区的指针。

  •  cbAuthData:AAD 缓冲区的大小,以字节为单位。

  •  pbTag:指向用于存储标签(tag)的缓冲区的指针。在某些模式下,它可以用于存储身份验证标签。

  •  cbTag:标签缓冲区的大小,以字节为单位。

  •  pbMacContext:指向存储 MAC 上下文的缓冲区的指针。

  •  cbMacContext:MAC 上下文缓冲区的大小,以字节为单位。

  •  cbAAD:AAD 的总大小。

  •  cbData:已处理的数据的总大小。

  •  dwFlags:标志位,用于指定一些加密模式的属性。


这个结构通常用在一些高级的加密模式中,例如 GCM (Galois/Counter Mode) 模式。在使用这个结构时,最好查阅相关的文档或头文件中的注释,以确保了解正确的用法。




转载请注明出处:http://www.zyzy.cn/article/detail/24013/Win32 API/Bcrypt.h/BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO