当前位置: 首页 > article >正文

openssl 中 EVP_aes_256_gcm() 函数展开

在 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; }

http://www.kler.cn/a/532152.html

相关文章:

  • 普罗米修斯监控服务搭建位置全解析:权衡与抉择
  • 《Origin画百图》之脊线图
  • 在K8S中,pending状态一般由什么原因导致的?
  • 【xdoj-离散线上练习】T251(C++)
  • DeepSeek 介绍及对外国的影响
  • C++ 泛型编程指南02 (模板参数的类型推导)
  • k8s二进制集群之负载均衡器高可用部署
  • C#面试常考随笔12:游戏开发中常用的设计模式【C#面试题(中级篇)补充】
  • Lua语言的云计算
  • el-table表格点击单元格实现编辑
  • windows电脑-ubuntu,传输文件
  • 启元世界(Inspir.ai)技术浅析(四):演化学习
  • 结构体和类
  • 【学术投稿-2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)】从计算机基础到HTML开发:Web开发的第一步
  • 超详细UE4(虚幻4)第一人称射击(FPS)游戏制作教程
  • Spring Boot统一异常拦截实践指南
  • 后盾人JS--继承
  • 流程驱动应用系统设计
  • pytorch ReSet18模型
  • 力扣41缺失的第一个正数
  • UE学习日志#21 C++笔记#7 基础复习7 string和string_view1
  • MySQL-索引下推
  • OpenAI 正式推出Deep Research
  • 网络工程师 (17)通信系统概述
  • ip数据报考研
  • .Net Core笔记知识点(跨域、缓存)