我想在 Contiki OS 的 Cooja 模拟器中使用 OpenSSL,但我无法集成它

问题描述

我已经安装了 OpenSSL,我可以使用命令 openssl version 检查它,但是当我添加与 OpenSSL 相关的头文件时,比如说计算 HMAC,我收到错误“没有这样的文件或目录”。如果我用代码创建一个简单的 C 文件并使用命令 gcc test.c -lssl -lcrypto 运行它,我会得到输出。我想在 rpl-icmp6.c 目录的 core/net/rpl 文件中使用这个库。

解决方法

简短的回答是无法在 Contiki 中集成 OpenSSL。为什么? OpenSSL 的名称来自“Secure Socket Library”,Contiki 中没有套接字。您无法使用 OpenSSL,因为缺少它期望的核心 API。

然而,您可以从 OpenSSL 中提取一些代码,例如各种加密原语的实现,并将它们作为常规 C 源文件集成到 Contiki 中。这样做超出了本答案的范围。