Documentation
¶
Overview ¶
Package joinserver provides a http.Handler interface which implements the join-server API as speficied by the LoRaWAN Backend Interfaces.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrInvalidMIC = errors.New("invalid mic") ErrDevEUINotFound = errors.New("deveui does not exist") )
Errors
Functions ¶
func NewHandler ¶
func NewHandler(config HandlerConfig) (http.Handler, error)
NewHandler creates a new join-sever handler.
Types ¶
type DeviceKeys ¶
type DeviceKeys struct {
DevEUI lorawan.EUI64
NwkKey lorawan.AES128Key
AppKey lorawan.AES128Key
JoinNonce int // the join-nonce that must be used for the join-accept
}
DeviceKeys holds the device (root) keys and the join-nonce to be used for join-request and join-accepts. Note: it follows the LoRaWAN 1.1 key naming!
type HandlerConfig ¶
type HandlerConfig struct {
Logger *log.Logger
GetDeviceKeysByDevEUIFunc func(devEUI lorawan.EUI64) (DeviceKeys, error) // ErrDevEUINotFound must be returned when the device does not exist
GetKEKByLabelFunc func(label string) ([]byte, error) // must return an empty slice when no KEK exists for the given label
GetASKEKLabelByDevEUIFunc func(devEUI lorawan.EUI64) (string, error) // must return an empty string when no label exists
GetHomeNetIDByDevEUIFunc func(devEUI lorawan.EUI64) (lorawan.NetID, error) // ErrDevEUINotFound must be returned when the device does not exist
}
HandlerConfig holds the join-server handler configuration.
Click to show internal directories.
Click to hide internal directories.