ssl - boringssl 可以在裸机 ARM 系统中工作吗?

标签 ssl arm arm64 armv8 boringssl

boringssl 可以在 ARMv8 裸机平台上运行吗?我尝试使用 aarch64-elf-gcc 构建 boringssl,但它拒绝构建。

如果可以,有什么移植指南或建议吗?

最佳答案

可能不是开箱即用的。但你可能甚至不应该尝试使用它,主要是因为,根据谷歌本身,it is not intended for general use
在使用库时独自一人从来都不是一件好事,更具体地说是加密库。这通常是没有错误修复、没有支持、没有用户论坛等的同义词。
您可以考虑为此目的设计的库,例如 mbedtls(以前称为 PolarSSL)。
它被广泛用于各种系统,从裸机系统 (FreeRTOS) 到 Linux(例如 Hiawhata web server 确实使用它)。

更新:即使需要支持 Armv8-a 硬件加密扩展,您仍然可以重复使用 BoringSSL Armv8-a 优化例程(ISC 许可)或 Cavium armv8_crypto library ( BSD 许可),以替换 mbedtls (Apache 2.0 lisense) 等效例程:密码函数通常具有干净和小的接口(interface)。

根据我的经验,如果您的目标是裸机操作系统,这可能仍然比移植针对通用操作系统的库要快,但您最终必须在特定情况下评估这两种选择的成本。

我的猜测是,与尝试剥离 openssl 或 boringssl 以在裸机目标上使用相比,在适当的许可下使用现有的受支持代码向 mbedtls 添加对 Armv8-a 加密扩展的支持所涉及的工作要少得多.

有一篇非常好的文档解释了如何向 mbedtls here 添加对硬件加速加密的支持,这可能有助于您评估您的选择。

关于ssl - boringssl 可以在裸机 ARM 系统中工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55607253/

相关文章:

security - 在不使用 SSL/TLS 的情况下交换数据的方法有哪些

c - gcc 在系统调用之前优化变量

xcode - 架构arm64的 undefined symbol : Azure mobile Services (o)

qemu - 在 qemu 中模拟 cortex-a53 (arm64)

multithreading - ARM STLR 内存排序语义

java - 使用 PKCS11 keystore 类型在 Spring Boot 上的 Web 应用程序中建立 TLS 连接

asp.net - 禁用 TLS 1.0 会破坏 ASP.NET 应用程序

asp.net - SSL 无法正常工作

android - 在汇编中编写 Android 应用程序部件

gcc - ARM GCC 错误?使用 vldr 链而不是一个 vldmia…