在 openssl 中搜索,只能在头文件搜索到 EVP_aes_256_gcm() ,不能直接搜索到它的实现。
它的实现是通过一个宏展开的,挺难找的,如下,做记录:
文件:openssl-1.1.1g/crypto/evp/e_aes.c
EVP_aes_256_gcm();// 代码原文:
BLOCK_CIPHER_custom(NID_aes, 256, 1, 12, gcm, GCM,EVP_CIPH_FLAG_AEAD_CIPHER | CUSTOM_FLAGS)// 展开后原文:
static const EVP_CIPHER aes_256_gcm = {901, 1, (0x6 == 0x10001 ? 2 : 1) * 256 / 8, 12, 0x200000 | (0 | 0x10 | 0x100000 | 0x20 | 0x40 | 0x400 | 0x800) | 0x6, aes_gcm_init_key, aes_gcm_cipher, aes_gcm_cleanup, sizeof(EVP_AES_GCM_CTX), ((void *)0), ((void *)0), aes_gcm_ctrl, ((void *)0)};
const EVP_CIPHER *EVP_aes_256_gcm(void) { return &aes_256_gcm; }