boringssl可以在ARMv8裸机平台上工作吗?我尝试使用aarch64-elf-gcc构建boringssl,但拒绝构建。
如果可以,是否有任何移植指南或建议?
最佳答案
可能不是开箱即用的。但是您甚至不应该尝试使用它,主要是因为根据Google本身,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)等效例程:密码功能通常具有简洁的接口。
根据我的经验,如果您的目标是裸机,这可能仍然比移植面向通用操作系统的库要快,但是最终您必须在特定情况下评估这两种选择的成本。
我的猜测是,与尝试剥离openssl或boringssl以在裸机目标上使用相比,使用在适当的许可下已存在的受支持代码为mbedtls添加对Armv8-a加密扩展的支持所涉及的工作要少得多。 。
有很多很好的文档说明了如何在mbedtls here中添加对硬件加速加密的支持,这可能有助于您评估选项。