具有AES-NI支持的EVP接口

 888真人游戏官网1 发布于 2023-01-06 18:48

在C/C++中使用OpenSSL加密库时,EVP接口是否自动支持AES-NI硬件加速(假设处理器支持)?参考这个,看起来命令行OpenSSL确实有支持.我想知道是否有我必须使用的特定函数调用来利用这种支持.

例如,如果我使用EVP_EncryptInit_ex(ctx, type, imp, key, iv),那么这些参数中的任何一个都必须指定NI加速度吗?即,你会EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv)做的伎俩?

谢谢!

1 个回答
  • 在C/C++中使用OpenSSL加密库时,EVP接口是否自动支持AES-NI

    是.EVP_*是确保使用AES-NI的官方/支持方式(如果可用).实际上,EVP是获得硬件加速的唯一方法.

    EVP_*也是获得其他硬件加速的唯一方法,例如在Skylark下使用英特尔的ia32 SHA加速; ARM的加密扩展在ARMv8中可用; 和VIA的处理器上的ia32 Padlock扩展.

    使用低级AES例程(如AES_encryptAES_decrypt)是纯软件实现,他们永远不会使用像AES-NI这样的硬件加速.另请参阅Dr. Henson在验证AES-NI运行时使用的OpenSSL邮件列表中的回复?.


    相关问题是(1)如何确定是否使用AES-NI; (2)什么是基准测试结果.为此,请参阅如何检查OpenSSL是否支持/使用Intel AES-NI?

    2023-01-06 18:50 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有