移植网络加密服务到RMC2000:嵌入式系统开发案例研究
1. 引言
嵌入式系统因其独特的硬件和软件集成特性,带来了不同的软件工程挑战。本文描述了将传输层加密服务(TLS)移植到嵌入式微控制器RMC2000的经验。RMC2000是一款基于Z80架构的微控制器,运行在30 MHz频率下,配备512 K闪存RAM和128 K SRAM。移植过程中遇到了一系列与库、API、内存管理和程序结构调整相关的问题。本文将详细介绍这些问题及其解决方案。
2. 网络加密服务
iSSL是一个公共领域的SSL协议实现,提供安全的点对点通信。iSSL通过Unix套接字层提供加密功能,允许用户在普通非加密套接字上进行安全的读写操作。为了简化移植过程,我们选择了iSSL库,并将其移植到RMC2000平台。
2.1 iSSL库特性
- 加密算法 :iSSL支持RSA和AES算法,可以生成会话密钥和交换公钥。
- 密钥长度 :支持128、192或256位密钥长度和块长度,为了简化实现,我们选择了128位密钥和块长度。
- 参考实现 :在移植过程中,我们参考了Eric Green和Randy Kaelber开发的AESCrypt实现。
3. 移植和开发问题
在将网络加密服务移植到RMC2000的过程中,遇到了三大类问题:缺少某些库和操作系统功能、具有相似功能的不同API、以及基本假设的不同。以下是详细的描述和解决方案。