lorawan 0.2.0

Crate lorawan provides structures and tools to read and write LoRaWAN messages from and to a slice of bytes.
Documentation

LoRaWAN

Build Status Latest Version Docs Gitter chat

Package lorawan provides structures and tools to read and write LoRaWAN messages from and to a slice of bytes.

NOTE: This is a toy-project that I undertake in order to learn more about Rust. Currrently it is far from stable or finished. Use at your own risk :)

Already present

The following structures are implemented (+ fields):

  • PhyPayload, MHDR, MType, Major
  • MIC
  • AES128
  • MacPayload
  • DataPayload
  • EUI64
  • DevNonce
  • JoinRequestPayload
  • JoinAcceptPayload
  • DevAddr
  • NwkAdr
  • FHDR
  • FCtrl
  • FRMPayload
  • FRMDataPayload
  • FRMMacCommands
  • MacCommand
  • LinkCkeckReq
  • JoinRequestCreator
  • JoinAcceptCreator
  • DataPayloadCreator

MIC can be checked and FRMPayload and JoinAccept can be decrypted.

JoinRequest, JoinAccept and DataPayload packets can be constructed (without MAC commands).

Next steps

I plan to implement soon:

  • Finish with JoinAcceptPayload.
  • Add packet creation functions.
  • Finish with the mac commands.
  • Add more tests.

Used code and inspiration

I would like to thank the projects lorawan by brocaar for the inspiration and useful examples, rust-crypto by DaGenix for the AES implentation and the form of rust-crypto by a-dma that helped me with the implementation of cmac :)