【发布时间】:2017-01-24 11:48:49
【问题描述】:
我正在研究开发嵌入式蓝牙应用程序的可行性 在 STM32F407 微控制器(基于 ARM Cortex M4)上支持 openSSL-FIPS。该应用程序不能在 Linux、Windows 或 Android 等通用操作系统上运行,但它可以在 CMSIS-RTX RTOS 上运行。我在Windows中使用Keil作为开发环境,内置armc编译器(armcc)进行编译。
在我的分析过程中,我找到了解释如何构建和安装 openSSL 库的 OpenSSL wiki:Compilation and Installation。页面中虽然有ARM平台编译的部分,但没有说明如何编译。
我还在 stackoverflow 中讨论了一些关于在 ARM 中交叉编译 openSSL 的讨论。但是所有这些讨论都是基于 ARM+Linux 的,没有一个是基于 RTOS 的。
我也浏览了以下关于使用 ARM 编译的链接
但是这里指定的编译器是GCC。
是否有可以在上述平台上使用的库?
是否可以将 openSSL 移植到带有 RTOS 的 ARM Cortex M4 平台?更具体地说,是否可以使用 CMSIS RTX 将其移植到 STM32F407 ?
如果可能,我应该从哪里开始,它有多复杂?
如果我在 GCC 编译器中编译 openSSL 库并在 armc 编译的应用程序中使用它,它会工作吗? (我感觉不会)
我可以在嵌入式软件中使用哪些其他 SSL 库? (我听说 WolfSSL 可能是一个选择)
【问题讨论】:
-
网上有 Keil 的补丁。不幸的是,它是 OpenSSL 0.9.8 的古董版本(yuk!)。上次看的时候,可以作为一个新项目的起点。
-
完整的 OpenSSL 库非常大。您要解决的问题是什么? NaCl(和 tweetnacl)对您来说足够完整吗?
-
@domen 我正在尝试使蓝牙连接更加安全,并且要求特定于使用 OpenSSL(或其任何变体)。
-
我认为您需要向需求人员澄清,因为做出如此具体(另一方面也很广泛)的技术决策很奇怪。如果他们想要体面的非对称加密,他们应该告诉他们;说 OpenSSL 并没有多大意义,考虑到您可以选择不做任何事情的 eNULL 密码。
-
@Jinu wolfSSL 维护一个 OpenSSL 兼容层,因此 API 可以保留为 OpenSSL API,但在下面使用 wolfSSL。这是您的评论“要求特定于使用 OpenSSL(或其任何变体)”的 leu,请参阅:wolfssl.com/wolfSSL/… 这有帮助吗?
标签: openssl arm keil stm32f4 cmsis