#coap #oscore #networking #no-alloc

无std liboscore-msgbackend

基于coap-message crate实现的libOSCORE的CoAP消息

1个不稳定版本

0.1.0 2024年4月17日

#2021嵌入式开发


liboscore 中使用

BSD-3-Clause

18KB
324

libOSCORE: 一个用于嵌入式系统(不只是)的OSCORE实现

libOSCORE库是OSCORE (RFC8613)的一个可移植(和独立)实现,可用于嵌入式设备。

OSCORE是一种保护(即加密和验证)CoAP消息(典型物联网设备之间的网络流量)的方法,以端到端方式防止窃听或篡改,同时不牺牲消息和协议实现的紧凑性。文章OSCORE: 深入了解新的物联网安全协议提供了一个新手友好的总结。

本实现旨在在各种平台上使用,特别是嵌入式平台上;它通过用一个小型通用API描述对所使用平台CoAP实现的要求来实现这一点,该API可以由不同的CoAP库实现,例如RIOT-OS的gcoap。通过选择编程语言(C)、避免动态内存分配以及广泛使用就地操作,它适用于所有能进行IP流量和执行加密操作的设备中最小的一类。

项目状态

该库功能完整,在RIOT-OS上的OSCORE 插件测试服务器是可用的,尽管它尚未通过所有测试。

使用和文档

根据底层CoAP库的支持情况,libOSCORE库可以以不同的方式使用。

集成级别指南概述了可能性,并作为进入其余文档的起点。

为了快速入门,一些示例和演示涵盖了常见用例

请注意,当前示例中使用的代码是描述为“中间集成”(参见集成级别)。对于高级应用,建议使用完全集成,但该级别在RIOT平台上尚未提供。

库集成

计划集成的库

  • RIOT-OS - 可用轻量级集成;完整集成正在跟踪中,见11761
  • MoCkoAP – 在测试中用作模拟的内部最小CoAP库
  • libcose – 提供所需的加密原语
  • Rust集成
    • liboscore-cryptobackend – 提供各种(可配置的)加密原语
    • liboscore-msgbackend – 在[coap-message]特质上实现libOSCORE的消息访问器
    • liboscore-backends-standalone – 为从C应用程序中使用Rust cryptobackend构建基础设施
    • liboscore – 高级Rust抽象

潜在未来候选人:(目前没有计划实现,但正在考虑其可移植性)

许可证

版权所有2019年Christian Amsüss和Ericsson AB

根据LICENSE文件中所述的3条款BSD许可证许可。


lib.rs:

liboscore的本地消息API的后端

这是一个(除非有人想通过Box<dyn ReadableMessage>进行操作),在某种程度上是有些主观的,因为它绑定到具体的消息类型(或一组类型)。

它使用枚举包装了不同的coap-message实现。

依赖项

~1MB
~17K SLoC