LoRaMAC  4.4.5
Documentation of the API
secure-element.h File Reference

Secure Element driver API. More...

#include <stdint.h>
#include "LoRaMacCrypto.h"

Go to the source code of this file.

Macros

#define SE_KEY_SIZE   16
 
#define SE_EUI_SIZE   8
 
#define SE_PIN_SIZE   4
 

Typedefs

typedef void(* SecureElementNvmEvent) (void)
 

Enumerations

enum  SecureElementStatus_t {
  SECURE_ELEMENT_SUCCESS = 0, SECURE_ELEMENT_FAIL_CMAC, SECURE_ELEMENT_ERROR_NPE, SECURE_ELEMENT_ERROR_INVALID_KEY_ID,
  SECURE_ELEMENT_ERROR_INVALID_LORAWAM_SPEC_VERSION, SECURE_ELEMENT_ERROR_BUF_SIZE, SECURE_ELEMENT_ERROR, SECURE_ELEMENT_FAIL_ENCRYPT
}
 

Functions

SecureElementStatus_t SecureElementInit (SecureElementNvmEvent seNvmCtxChanged)
 
SecureElementStatus_t SecureElementRestoreNvmCtx (void *seNvmCtx)
 
void * SecureElementGetNvmCtx (size_t *seNvmCtxSize)
 
SecureElementStatus_t SecureElementSetKey (KeyIdentifier_t keyID, uint8_t *key)
 
SecureElementStatus_t SecureElementComputeAesCmac (uint8_t *micBxBuffer, uint8_t *buffer, uint16_t size, KeyIdentifier_t keyID, uint32_t *cmac)
 
SecureElementStatus_t SecureElementVerifyAesCmac (uint8_t *buffer, uint16_t size, uint32_t expectedCmac, KeyIdentifier_t keyID)
 
SecureElementStatus_t SecureElementAesEncrypt (uint8_t *buffer, uint16_t size, KeyIdentifier_t keyID, uint8_t *encBuffer)
 
SecureElementStatus_t SecureElementDeriveAndStoreKey (uint8_t *input, KeyIdentifier_t rootKeyID, KeyIdentifier_t targetKeyID)
 
SecureElementStatus_t SecureElementProcessJoinAccept (JoinReqIdentifier_t joinReqType, uint8_t *joinEui, uint16_t devNonce, uint8_t *encJoinAccept, uint8_t encJoinAcceptSize, uint8_t *decJoinAccept, uint8_t *versionMinor)
 
SecureElementStatus_t SecureElementRandomNumber (uint32_t *randomNum)
 
SecureElementStatus_t SecureElementSetDevEui (uint8_t *devEui)
 
uint8_t * SecureElementGetDevEui (void)
 
SecureElementStatus_t SecureElementSetJoinEui (uint8_t *joinEui)
 
uint8_t * SecureElementGetJoinEui (void)
 
SecureElementStatus_t SecureElementSetPin (uint8_t *pin)
 
uint8_t * SecureElementGetPin (void)
 

Detailed Description

Secure Element driver API.

______ _
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2013 Semtech
___ _____ _ ___ _ _____ ___ ___ ___ ___
/ __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __|
\__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _|
|___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
embedded.connectivity.solutions===============
Author
Miguel Luis ( Semtech )
Gregory Cristian ( Semtech )
Daniel Jaeckle ( STACKFORCE )
Johannes Bruder ( STACKFORCE )