【问题标题】:Determine if OpenSSL uses the CPU SHA256 instructions判断 OpenSSL 是否使用 CPU SHA256 指令
【发布时间】:2021-12-25 23:53:32
【问题描述】:

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

有没有办法找到 OpenSSL 执行此计算的方式?

【问题讨论】:

    标签: c openssl sha256 libcrypto


    【解决方案1】:

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

    【讨论】:

    • 他用什么树莓派?
    • 正确。这是针对 amd64 的,因为线程作者明确链接了 Intel_SHA_extensions。对于其他架构,必须检查其他 cpu 指令。 openssl 库也可能有另一个文件名,或者可能是静态链接的。
    • @mortmann 谢谢!我实际上对 Mac 上的 arm64 更感兴趣。你知道在这种情况下 grep 语句应该是怎样的吗?
    • 尝试 grepping sha256h
    【解决方案2】:

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

    对于 x86-064 你可以看到:

        sha256rnds2 $CDGH0,$ABEF0
    

    表示库使用sha指令。

    https://github.com/openssl

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-24
      • 2011-06-03
      • 2021-08-31
      • 2016-08-30
      • 2019-01-03
      • 2016-09-25
      • 2010-10-15
      • 2021-12-18
      相关资源
      最近更新 更多