确定 OpenSSL 是否使用 CPU SHA256 指令

Determine if OpenSSL uses the CPU SHA256 instructions

我正在使用 OpenSSL (openssl/sha.h) 在性能关键型应用程序中计算 SHA256 哈希值,用 C 语言编写。我想知道 OpenSSL 是否真的使用 SHA256 CPU instructions 或者它是否只是自己计算 SHA256 哈希?

有什么方法可以找到 OpenSSL 执行此计算的方式吗?

最简单的方法是在打开时查看端口源代码 (nomen omen)

对于 x86-064 你可以看到:

    sha256rnds2 $CDGH0,$ABEF0

表示该库使用sha指令

https://github.com/openssl

objdump -d /usr/lib/libcrypto.so.1.1|grep sha256rnds2 会告诉 openssl 是否使用任何 sha256 cpu 指令,但它不会告诉是否或何时执行这些指令。您可以在调试器中启动程序并为这些指令设置断点。