The CCM data structure is located in data RAM, at the memory location specified by the CNFPTR pointer register.
| 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.
| 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 |
| 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 |