Product Specs

Table Of Contents
29 CCM AES CCM mode encryption
Page
271
AES CCM
KSGEN
ENDKSGEN
CRYPT
ENDCRYPT
PPI PPI
RADIO
RXEN
READY
START
END
RU: Ramp-up of RADIO
P: Preamble
A: Address
SHORTCUT
H: Header (S0)
L: Length
RFU: reserved for future use (S1)
EPL: encrypted payload
: RADIO receiving noise
Figure 65: On-the-fly decryption using a PPI connection between the READY event in the RADIO and
the KSGEN task in the AES CCM
29.7 CCM data structure
The CCM data structure is located in Data RAM at the memory location specified by the CNFPTR pointer
register.
Table 57: CCM data structure overview
Property
Address offset
Description
KEY
0
16 byte AES key
PKTCTR
16
Octet0 (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) Bit7: 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 from Table 57: CCM data structure overview on page
271 .
Table 58: Data structure for unencrypted packet
Property
Address offset
Description
HEADER
0
Packet Header
LENGTH
1
Number of bytes in unencrypted payload
RFU
2
Reserved Future Use
PAYLOAD
3
Unencrypted payload
Table 59: 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
Important: LENGTH will be 0 for empty packets since the MIC is not added to empty
packets
RFU
2
Reserved Future Use
PAYLOAD
3
Encrypted payload
MIC
3 + payload length
ENCRYPT: 4 bytes encrypted MIC
decryption
key-stream
generation
READY
ADDRESS
RU
P
A
H
L
RFU
EPL
MIC
CRC