gpt4 book ai didi

c++ - 用于移动应用(iOS、Android)的 Crypto++ 库的子集

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:31 26 4
gpt4 key购买 nike

我需要为 Android 和 iPhone 项目中使用的跨平台库使用一些 RSA 签名方案。环顾四周后,我选择了 cryptopp,但它对于静态链接来说太大了。因此,我将源代码和 header 添加到我的项目中,以便仅将相关部分链接到我的库中。它仍在向最终库的发布版本中添加几 MB。

  1. 是否有更简单或更有效的方法来缩小库或 cryptopp 的大小?

  2. 我对编译过程中的模板生成不是很了解。但是我记得模板可以添加相当多的代码。有没有办法停止/改进这种情况(编译器选项?)?

  3. 如果我想从项目中手动删除我的简单用例未使用的所有源文件/头文件,是否有任何工具可以提供帮助?深入了解 cryptopp 及其模板需要花费相当长的时间,而且我始终支持自动流程 ;)

非常感谢任何帮助!

最佳答案

如果您想使用 crypto++(并且有很多您想要的充分理由),这可能是您最好让链接器完成其工作的场景。前段时间我很担心这个问题,我手工做的比优化链接器做得更好。

我通过清除使用 crypto++ 生成新的随机 RSA key 、签署字符串并验证该字符串的旧测试应用程序来确认这一点。这是我看到的数字:

  • libcryptopp.a - 为使用 clang++ 针对 iOS SDK 5.0 作为静态库发布而构建的 crypto++。没有特殊的尝试来最小化大小,只是使用 -fvisibility=hidden -fvisibility-inlines-hidden 和 -Os: 22.5MB

  • 构建
  • 默认 iOS 单一 View 模板中的空应用,使用 -Os 构建:34KB

  • 添加了“自测”代码的同一个空应用生成 key 对,使用 RSA/SHA256 签署(并因此散列)字符串,对其进行十六进制编码,打印签名,解码签名并验证签名在原始字符串上,使用 -Os 针对我上面第一个项目符号中的 libcryptopp.a 构建:389KB

链接器似乎在这里做得很好。如果您看到截然不同的东西,请确保您真正查看的是发布二进制文件。

关于c++ - 用于移动应用(iOS、Android)的 Crypto++ 库的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914264/

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