openssl - 在 Contiki 中使用 OpenSSL

标签 openssl contiki

我想在 contiki 中使用 openssl 库。我已安装它并且头文件位于 /usr/include/openssl 中,但包含这些头文件不起作用。我试过将 -lcrypto 标志传递给编译器,但仍然没有成功。我是否需要使用其他标志,或者我根本无法使用 OpenSSL 库?

最佳答案

您已经安装了 OpenSSL 的主机版本,无法使用主机库为微 Controller 目标或任何不同于您正在编译它的主机(严格来说)的体系结构目标交叉编译二进制文件。

可以肯定的是,在任何 Contiki 平台上使用 OpenSSL 是不可能的。由于该库对于任何微 Controller 来说都太大了,因此有可能破解对“原生” 平台的支持。

不妨看看CyaSSL用于替代解决方案,因为已知适用于某些微 Controller 。您还可以考虑尝试其他 SSL 库(例如 MatrixSSLSharkSSL )。其中一些是商业性的或仅供非商业用途免费使用。

还有各种其他部分解决方案来保护网络流量:

  • 使用 HTTP(S) 代理(例如 nginx )终止本地终端设备网络与互联网之间的 SSL 连接
  • 使用带有 Contiki 内置加密加速器的 SoC(例如 MC1322x)
  • 使用Thingsquare Mist它具有用于 radio 网络加密和 WebSocket 的 AES API

如果您的项目使用 UDP(而不是 HTTPS 或其他 TCP 协议(protocol))就足够了,那么您不妨看看 DTLS implementation for Contiki .还有一个 implementation of IPSec ,这可能适用于某些应用。

关于openssl - 在 Contiki 中使用 OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674935/

相关文章:

c - 如何使用 aes key 创建 .pem 文件

api - 我可以在 OpenSSL 中禁用 MAC 吗?

Java Runtime.getRuntime().exec 和垂直条

c - 执行 msp430x 指令但 mcu 不是 msp430x

c - 如何在C语言的cooja模拟器中获得一个随时间变化的随机数?

c - RPL child 列表 Contiki

process - 'Yield'在Contiki rtos中意味着什么

ssl - 带有 CA :TRUE and Key Usage not set to sign certificates - is it safe? 的自签名证书

encryption - openssl s_client 和 s_server 密码不匹配

c - 将函数分配给 packetbuf_copyfrom