On 3/19/2019 7:15 AM, Vakul Garg wrote: > Added support for AES128-CCM based record encryption. AES128-CCM is > similar to AES128-GCM. Both of them have same salt/iv/mac size. The > notable difference between the two is that while invoking AES128-CCM > operation, the salt||nonce (which is passed as IV) has to be prefixed > with a hardcoded value '2'. Further, CCM implementation in kernel > requires IV passed in crypto_aead_request() to be full '16' bytes. > Therefore, the record structure 'struct tls_rec' has been modified to > reserve '16' bytes for IV. This works for both GCM and CCM based cipher. >
Can you explain what is the source of the hardcoded '2'? e.g. Why do we need a hardcoded constant?