boringssl 可以在裸机 ARM 系统中工作吗?
Can boringssl work in bare metal ARM system?
boringssl可以在ARMv8裸机平台上运行吗?我尝试使用 aarch64-elf-gcc 构建 boringssl,但它拒绝构建。
如果有,有什么移植指南或建议吗?
可能不是开箱即用的。但你可能甚至不应该尝试使用它,主要是因为,根据 Google 本身,it is not intended for general use.
在使用库时独自一人从来都不是一件好事,更具体地说是加密库。这通常是没有错误修复、没有支持、没有用户论坛等的同义词。
您可以考虑为此目的设计的库,例如 mbedtls(以前称为 PolarSSL)。
它被广泛用于各种系统,从裸机系统开始(例如FreeRTOS) to Linux (The Hiawhata web server确实使用它)。
更新: 即使需要支持 Armv8-a 硬件加密扩展,您仍然可以重用 BoringSSL Armv8-a 优化例程(ISC 许可证)或 Cavium armv8_crypto library(BSD 许可证),以替换 mbedtls (Apache 2.0 lisense) 等效例程:密码函数通常具有干净和小的接口。
根据我的经验,如果您的目标是裸机操作系统,这可能仍然比移植针对通用操作系统的库要快,但您最终必须在特定情况下评估这两种选择的成本。
我的猜测是,与尝试剥离 openssl 或 boringssl 以在裸机目标上使用相比,在适当的许可下使用现有的受支持代码向 mbedtls 添加对 Armv8-a 加密扩展的支持所涉及的工作要少得多.
有一篇非常好的文档解释了如何向 mbedtls 添加对硬件加速加密的支持here,这可能有助于您评估您的选择。
boringssl可以在ARMv8裸机平台上运行吗?我尝试使用 aarch64-elf-gcc 构建 boringssl,但它拒绝构建。
如果有,有什么移植指南或建议吗?
可能不是开箱即用的。但你可能甚至不应该尝试使用它,主要是因为,根据 Google 本身,it is not intended for general use.
在使用库时独自一人从来都不是一件好事,更具体地说是加密库。这通常是没有错误修复、没有支持、没有用户论坛等的同义词。
您可以考虑为此目的设计的库,例如 mbedtls(以前称为 PolarSSL)。
它被广泛用于各种系统,从裸机系统开始(例如FreeRTOS) to Linux (The Hiawhata web server确实使用它)。
更新: 即使需要支持 Armv8-a 硬件加密扩展,您仍然可以重用 BoringSSL Armv8-a 优化例程(ISC 许可证)或 Cavium armv8_crypto library(BSD 许可证),以替换 mbedtls (Apache 2.0 lisense) 等效例程:密码函数通常具有干净和小的接口。
根据我的经验,如果您的目标是裸机操作系统,这可能仍然比移植针对通用操作系统的库要快,但您最终必须在特定情况下评估这两种选择的成本。
我的猜测是,与尝试剥离 openssl 或 boringssl 以在裸机目标上使用相比,在适当的许可下使用现有的受支持代码向 mbedtls 添加对 Armv8-a 加密扩展的支持所涉及的工作要少得多.
有一篇非常好的文档解释了如何向 mbedtls 添加对硬件加速加密的支持here,这可能有助于您评估您的选择。