CCM data structure

nRF5340 Product Specification

The CCM data structure is located in data RAM, at the memory location specified by the CNFPTR pointer register.

Table 1. CCM data structure overview
Property Address offset Description
KEY 0 16-byte AES key.
PKTCTR 16 Octet0 (least significant octet (LSO)) of packet. counter
17 Octet1 of packet counter.
18 Octet2 of packet counter.
19 Octet3 of packet counter.
20 Bit 6 – bit 0: Octet4 (7 most significant bits of packet counter, with bit 6 being the most significant bit). Bit 7: Ignored.
21 Ignored.
22 Ignored.
23 Ignored.
24 Bit 0: Direction bit. Bit 7 – bit 1: Zero padded.
IV 25 8-byte initialization vector (IV). Octet0 (LSO) of IV, Octet1 of IV, … , Octet7 (MSO) of IV.

The NONCE vector (as specified by the Bluetooth Core Specification) will be generated by hardware based on the information specified in the CCM data structure.

Table 2. Data structure for unencrypted packet
Property Address offset Description
HEADER 0 Packet header
LENGTH 1 Number of bytes in unencrypted payload
RFU 2 Reserved for future use
PAYLOAD 3 Unencrypted payload
Table 3. Data structure for encrypted packet
Property Address offset Description
HEADER 0 Packet header
LENGTH 1

Number of bytes in encrypted payload including length of MIC

LENGTH will be 0 for empty packets since the MIC is not added to empty packets

RFU 2 Reserved for future use
PAYLOAD 3 Encrypted payload
MIC 3 + payload length

ENCRYPT: 4 bytes encrypted MIC

MIC is not added to empty packets