在RTOS环境中基于ARM Cortex M4的STM32F4控制器上构建OpenSSL库
我正在研究开发嵌入式蓝牙应用程序的可行性 在STM32F407微控制器(基于ARM Cortex M4)上支持openSSL FIPS。该应用程序不在Linux、Windows或andriod等通用操作系统上运行,但在CMSIS-RTX RTOS上运行。我在Windows中使用Keil作为开发环境,内置armc编译器(armcc)进行编译 在分析过程中,我发现了OpenSSL wiki,它解释了如何构建和安装OpenSSL库:。在该页面中,虽然有一个关于ARM平台编译的部分,但没有关于如何编译的描述 我还讨论了stackoverflow中关于在ARM中交叉编译openSSL的一些讨论。但所有这些讨论都是基于ARM+Linux的,没有一个是基于RTOS的在RTOS环境中基于ARM Cortex M4的STM32F4控制器上构建OpenSSL库,openssl,arm,keil,stm32f4,cmsis,Openssl,Arm,Keil,Stm32f4,Cmsis,我正在研究开发嵌入式蓝牙应用程序的可行性 在STM32F407微控制器(基于ARM Cortex M4)上支持openSSL FIPS。该应用程序不在Linux、Windows或andriod等通用操作系统上运行,但在CMSIS-RTX RTOS上运行。我在Windows中使用Keil作为开发环境,内置armc编译器(armcc)进行编译 在分析过程中,我发现了OpenSSL wiki,它解释了如何构建和安装OpenSSL库:。在该页面中,虽然有一个关于ARM平台编译的部分,但没有关于如何编译的
- OpenSSL是一个发布模式下的非常大的库800K。这通常不适合任何STM32F4,更不用说为您自己的应用程序留出空间李>
- 具有FIPS解决方案,已移植到STM32(支持CMSIS-RTX RTOS),并根据功能提供平均60-80K的占地面积。他们甚至得到了积极的支持info@wolfssl.com或其论坛:
网站上有Keil的补丁。不幸的是,这是一个古老版本的OpenSSL 0.9.8(yuk!)。上一次我查看时,可以将作为新项目的起点。完整的OpenSSL库相当大。你想解决的问题是什么?NaCl(和tweetnacl)对你来说足够完整吗?@domen我正在努力使蓝牙连接更加安全,并且要求是针对使用OpenSSL(或其任何变体)的。我认为你需要向需求人员澄清,因为做出如此具体(另一方面又广泛)的技术决定是很奇怪的。如果他们想要像样的非对称加密,他们应该告诉他们;说OpenSSL没有多大意义,考虑到你可以选择eNULL cipher,它不起任何作用。@Jinu wolfSSL维护一个OpenSSL兼容层,因此API可以保持为OpenSSL API,但在下面使用wolfSSL。这是在您的评论“特定于使用OpenSSL(或其任何变体)的需求”的leu中,请参阅:这有帮助吗?更新:wolfSSL添加了对CubeMX硬件抽象层(HAL)的支持。对于在STM32(F0、F1、F2、F3、F4、F7、L0、L1或L4)上开发的用户,如果使用CubeMX代码生成器生成标准外设库,则可以利用wolfSSLv3.10.0版本中添加的硬件加密支持!如果在任何其他micro上工作,请参见/wolfssl/wolfcrypt/settings.h
wolfssl_STM32F2
和wolfssl_STM32F4
中的定义作为模型。测试是在F2和F4上完成的,因此这些是目前唯一可用的默认选项。