【发布时间】:2021-12-25 23:53:32
【问题描述】:
我正在使用 OpenSSL (openssl/sha.h) 在一个用 C 编写的性能关键应用程序中计算 SHA256 哈希值。我想知道 OpenSSL 是否真的使用 SHA256 CPU instructions 或者它只是自己计算 SHA256 哈希值?
有没有办法找到 OpenSSL 执行此计算的方式?
【问题讨论】:
标签: c openssl sha256 libcrypto
我正在使用 OpenSSL (openssl/sha.h) 在一个用 C 编写的性能关键应用程序中计算 SHA256 哈希值。我想知道 OpenSSL 是否真的使用 SHA256 CPU instructions 或者它只是自己计算 SHA256 哈希值?
有没有办法找到 OpenSSL 执行此计算的方式?
【问题讨论】:
标签: c openssl sha256 libcrypto
objdump -d /usr/lib/libcrypto.so.1.1|grep sha256rnds2 会判断 openssl 是否使用任何 sha256 cpu 指令,但不会判断是否或何时执行这些指令。您可以在调试器中启动程序并为这些指令设置断点。
【讨论】:
最简单的方法是查看打开的端口源代码(nomen omen)
对于 x86-064 你可以看到:
sha256rnds2 $CDGH0,$ABEF0
表示库使用sha指令。
【讨论】: