LR1121
User Manual Rev 1.1
UM.LR1121.W.APP Mar 2023
105 of 130
Semtech
Proprietary & Confidential
www.semtech.com
10.3.4 CryptoProcessJoinAccept
Command CryptoProcessJoinAccept(...) decrypts the join accept message (using AES-ECB encrypt as per
LoRaWAN specification) on the Data and Header, and then verifies the MIC of the decrypted message.
The decrypted data is then provided, if the MIC verification is successful.
• DecKeyID and VerKeyID are defined in Table 10-1: Cryptographic Keys Usage and Derivation:
DecKeyID: Key used for decryption of the message.
VerKeyID: Key used for MIC verification.
• LoRaWANVer: Determines the expected Header size N: 1 byte (v1.0) or 12 bytes (v1.1).
LoRaWANVer=0: LoRaWAN version 1.0.x, only MHDR (1 byte).
LoRaWANVer=1: LoRaWAN version 1.1.x, SIntKey, JoinReqType | JoinEUI | DevNonce | MHDR.
• Header1 to HeaderN: Header. N depends on LoRaWANVer.
• Data1 to DataM: Data. Data size M is either 16 or 32 bytes. Data must include the encrypted MIC.
• CEStatus is defined in section CEStatus on page 103.
Table 10-6: CryptoProcessJoinAccept Command
Byte 0 1 2 3 4 5 … N+4 N+5 ... N+4+M
Data from Host 0x05 0x04
DecKeyID
(7:0)
VerKeyID
(7:0)
LoRa
WANVer
(7:0)
Header1 … HeaderN Data1 ... DataM
Data to Host Stat1 Stat2
IrqStatus
(31:24)
IrqStatus
(23:16)
IrqStatus
(15:8)
IrqStatus
(7:0)
… 0x00 0x00 ... 0x00
Table 10-7: CryptoProcessJoinAccept Response
Byte 0 1 2 ... M+1
Data from Host 0x00 0x00 0x00 ... 0x00
Data to Host Stat1 CEStatus Data1 ... DataM