gpt4 book ai didi

c - 支持 AES-NI 的 EVP 接口(interface)

转载 作者:太空狗 更新时间:2023-10-29 15:26:35 34 4
gpt4 key购买 nike

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

例如,如果我使用 EVP_EncryptInit_ex(ctx, type, imp, key, iv),这些参数是否必须指定 NI 加速? IE。 EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv) 会成功吗?

谢谢!

最佳答案

When using the OpenSSL crypto libraries in C/C++, does the EVP interface automatically support AES-NI

是的。 EVP_* 是确保使用 AES-NI(如果可用)的官方/支持方式。事实上,EVP 通常是访问硬件加速的唯一途径。

EVP_*也是获得其他硬件加速的唯一途径,比如在Skylark下使用Intel的ia32的SHA加速; ARM 的 Crypto 扩展在 ARMv8 中可用;以及 VIA 在其处理器上的 ia32 Padlock 扩展。

使用低级 AES 例程(如 AES_encryptAES_decrypt)是纯软件实现,它们永远不会使用像 AES-NI 这样的硬件加速。另请参阅 Henson 博士在 OpenSSL 邮件列表上的回复 Verify AES-NI use at runtime? .


相关问题是(1)如何判断是否使用了AES-NI; (2) 基准测试结果是什么。为此,请参阅 How can I check if OpenSSL is support/use the Intel AES-NI?

关于c - 支持 AES-NI 的 EVP 接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516976/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com