在 openssl 中搜索,只能在头文件搜索到 EVP_aes_256_gcm() ,不能直接搜索到它的实现。
它的实现是通过一个宏展开的,挺难找的,如下,做记录:
文件:openssl-1.1.1g/crypto/evp/e_aes.c
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; }