Java - What are the additional 8 bytes of output generated by AES/CCM/NoPadding? What are the additional 8 bytes of output used for in Java's (Bouncycastle) AES/CCM/NoPadding? I do not believe this is padding as I am requesting "NoPadding," and the block size is not 128, 192, or 256 bit. Is this some sort of Message Integrity Check (MIC)?

For example: 


Encrypting 16 bytes yields 24 bytes of output.
Encrypting 20 bytes yields 28 bytes of output.
Encrypting 31 bytes yields 39 bytes of output.


BTW.: The reason I ask is that I am trying to send/receive encrypted data from a bluetooth node. The bluetooth's firmware, written in C, encrypts data with AES/CCM with the same first 16 bytes of output as I get here, but only produces a 4-byte MIC (total of 20 bytes). I'm working on finding a solution to this. Apparently Bouncy Castle isn't supported in C?
The additional 8 bytes are the Message authentication code (MAC), which is called the Message integrity check (MIC) in Bluetooth terminology. 

For more info, see here.