gpt4 book ai didi

linux - 确定在运行时使用 CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:52 27 4
gpt4 key购买 nike

我们正在使用 Crypto++ 5.6.3 并在 CentOS 6 上使用 g++ 进行编译。是否可以在运行时确定我们的应用程序是否已链接到使用 CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE 构建的 libcryptopp 作为 1 还是 0

谢谢

最佳答案

Is it possible to determine at runtime if our application has linked with a libcryptopp that was built with CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE as 1 or 0?

不,不是。事实上,您甚至无法判断您使用的是 AES-NI 还是软件实现。

有一些关于将 CXXFLAGS 隐藏起来以备将来使用(并从 cryptest.exe 程序打印它们)的讨论,但它的优先级非常低。如此之低,没有关于它的错误报告来开展工作。

编辑:现在在 Crypto++ 邮件列表中打开:GNUmakefile and 'make flag' recipe .


Crypto++ 测试套件为宏打印一个值。来自validat1.cpp ,在第 310 行附近:

cout << "AESNI_INTRINSICS == " << CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE << endl;

但我认为您知道,库build设置和您的build设置可能不同。


还值得注意的是,Crypto++ 使用 makefile,而发行版通常使用 Autotools 构建。发行版选择自己的标志,它们可能与 Crypto++ makefile 不同。使用发行版时,您可以检查 *.pc 文件或类似文件。

相关的,我们在 CentOS 5 到 CentOS 7 上进行了测试。CentOS 5 是一个不错的机器,因为它有 GCC 4.1,而那个版本的 GCC 在某些方面有点特别。例如,它不能使用 -march=native

关于linux - 确定在运行时使用 CRYPTOPP_BOOL_AESNI_INTRINSICS_AVAILABLE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36940255/

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