Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: mac/LoRaMacCrypto.h
- Revision:
- 1:2be292bd43f9
- Parent:
- 0:c58229885f95
diff -r c58229885f95 -r 2be292bd43f9 mac/LoRaMacCrypto.h --- a/mac/LoRaMacCrypto.h Wed Dec 16 14:25:16 2015 +0000 +++ b/mac/LoRaMacCrypto.h Tue Mar 15 23:27:24 2016 +0000 @@ -1,96 +1,111 @@ -/* - / _____) _ | | -( (____ _____ ____ _| |_ _____ ____| |__ - \____ \| ___ | (_ _) ___ |/ ___) _ \ - _____) ) ____| | | || |_| ____( (___| | | | -(______/|_____)_|_|_| \__)_____)\____)_| |_| - (C)2013 Semtech -Description: LoRa MAC layer implementation -License: Revised BSD License, see LICENSE.TXT file include in the project -Maintainer: Miguel Luis and Gregory Cristian -*/ +/*! + * \file LoRaMacCrypto.h + * + * \brief LoRa MAC layer cryptography implementation + * + * \copyright Revised BSD License, see section \ref LICENSE. + * + * \code + * ______ _ + * / _____) _ | | + * ( (____ _____ ____ _| |_ _____ ____| |__ + * \____ \| ___ | (_ _) ___ |/ ___) _ \ + * _____) ) ____| | | || |_| ____( (___| | | | + * (______/|_____)_|_|_| \__)_____)\____)_| |_| + * (C)2013 Semtech + * + * ___ _____ _ ___ _ _____ ___ ___ ___ ___ + * / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __| + * \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _| + * |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___| + * embedded.connectivity.solutions=============== + * + * \endcode + * + * \author Miguel Luis ( Semtech ) + * + * \author Gregory Cristian ( Semtech ) + * + * \author Daniel Jäckle ( STACKFORCE ) + * + * \defgroup LORAMAC_CRYPTO LoRa MAC layer cryptography implementation + * This module covers the implementation of cryptographic functions + * of the LoRaMAC layer. + * \{ + */ #ifndef __LORAMAC_CRYPTO_H__ #define __LORAMAC_CRYPTO_H__ /*! - * Copies size elements of src array to dst array - * - * \remark STM32 Standard memcpy function only works on pointers that are aligned + * Computes the LoRaMAC frame MIC field * - * \param [IN] src Source array - * \param [OUT] dst Destination array - * \param [IN] size Number of bytes to be copied - */ -#define LoRaMacMemCpy( src, dst, size ) memcpy1( dst, src, size ) - -/*! - * Computes the LoRaMAC frame MIC field - * - * \param [IN] buffer Data buffer - * \param [IN] size Data buffer size - * \param [IN] key AES key to be used - * \param [IN] address Frame address - * \param [IN] dir Frame direction [0: uplink, 1: downlink] - * \param [IN] sequenceCounter Frame sequence counter - * \param [OUT] mic Computed MIC field + * \param [IN] buffer - Data buffer + * \param [IN] size - Data buffer size + * \param [IN] key - AES key to be used + * \param [IN] address - Frame address + * \param [IN] dir - Frame direction [0: uplink, 1: downlink] + * \param [IN] sequenceCounter - Frame sequence counter + * \param [OUT] mic - Computed MIC field */ void LoRaMacComputeMic( const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t address, uint8_t dir, uint32_t sequenceCounter, uint32_t *mic ); /*! - * Computes the LoRaMAC payload encryption + * Computes the LoRaMAC payload encryption * - * \param [IN] buffer Data buffer - * \param [IN] size Data buffer size - * \param [IN] key AES key to be used - * \param [IN] address Frame address - * \param [IN] dir Frame direction [0: uplink, 1: downlink] - * \param [IN] sequenceCounter Frame sequence counter - * \param [OUT] encBuffer Encrypted buffer + * \param [IN] buffer - Data buffer + * \param [IN] size - Data buffer size + * \param [IN] key - AES key to be used + * \param [IN] address - Frame address + * \param [IN] dir - Frame direction [0: uplink, 1: downlink] + * \param [IN] sequenceCounter - Frame sequence counter + * \param [OUT] encBuffer - Encrypted buffer */ void LoRaMacPayloadEncrypt( const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t address, uint8_t dir, uint32_t sequenceCounter, uint8_t *encBuffer ); /*! - * Computes the LoRaMAC payload decryption + * Computes the LoRaMAC payload decryption * - * \param [IN] buffer Data buffer - * \param [IN] size Data buffer size - * \param [IN] key AES key to be used - * \param [IN] address Frame address - * \param [IN] dir Frame direction [0: uplink, 1: downlink] - * \param [IN] sequenceCounter Frame sequence counter - * \param [OUT] decBuffer Decrypted buffer + * \param [IN] buffer - Data buffer + * \param [IN] size - Data buffer size + * \param [IN] key - AES key to be used + * \param [IN] address - Frame address + * \param [IN] dir - Frame direction [0: uplink, 1: downlink] + * \param [IN] sequenceCounter - Frame sequence counter + * \param [OUT] decBuffer - Decrypted buffer */ void LoRaMacPayloadDecrypt( const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t address, uint8_t dir, uint32_t sequenceCounter, uint8_t *decBuffer ); /*! - * Computes the LoRaMAC Join Request frame MIC field + * Computes the LoRaMAC Join Request frame MIC field * - * \param [IN] buffer Data buffer - * \param [IN] size Data buffer size - * \param [IN] key AES key to be used - * \param [OUT] mic Computed MIC field + * \param [IN] buffer - Data buffer + * \param [IN] size - Data buffer size + * \param [IN] key - AES key to be used + * \param [OUT] mic - Computed MIC field */ void LoRaMacJoinComputeMic( const uint8_t *buffer, uint16_t size, const uint8_t *key, uint32_t *mic ); /*! - * Computes the LoRaMAC join frame decryption + * Computes the LoRaMAC join frame decryption * - * \param [IN] buffer Data buffer - * \param [IN] size Data buffer size - * \param [IN] key AES key to be used - * \param [OUT] decBuffer Decrypted buffer + * \param [IN] buffer - Data buffer + * \param [IN] size - Data buffer size + * \param [IN] key - AES key to be used + * \param [OUT] decBuffer - Decrypted buffer */ void LoRaMacJoinDecrypt( const uint8_t *buffer, uint16_t size, const uint8_t *key, uint8_t *decBuffer ); /*! - * Computes the LoRaMAC join frame decryption + * Computes the LoRaMAC join frame decryption * - * \param [IN] key AES key to be used - * \param [IN] appNonce Application nonce - * \param [IN] devNonce Device nonce - * \param [OUT] nwkSKey Network session key - * \param [OUT] appSKey Application session key + * \param [IN] key - AES key to be used + * \param [IN] appNonce - Application nonce + * \param [IN] devNonce - Device nonce + * \param [OUT] nwkSKey - Network session key + * \param [OUT] appSKey - Application session key */ void LoRaMacJoinComputeSKeys( const uint8_t *key, const uint8_t *appNonce, uint16_t devNonce, uint8_t *nwkSKey, uint8_t *appSKey ); +/*! \} defgroup LORAMAC */ + #endif // __LORAMAC_CRYPTO_H__ \ No newline at end of file