Cryptographic Token Interface Standard

PKCS#11


AES-CMAC

AES-CMAC, denoted CKM_AES_CMAC, is a special case of the general-length AES-CMAC mechanism. AES-MAC always produces and verifies MACs that are a full block size in length, the default output length specified by [RFC 4493].

Constraints on key types and the length of data are summarized in the following table:

Table 247, AES-CMAC: Key And Data Length
Function Key type
Data length
Signature length
C_Sign CKK_AES
any
Block size (16 bytes)
C_Verify CKK_AES
any
Block size (16 bytes)

References [NIST sp800-38b] and [RFC 4493] recommend that the output MAC is not truncated to less than 64 bits. The MAC length must be specified before the communication starts, and must not be changed during the lifetime of the key. It is the caller's responsibility to follow these rules.

For this mechanism, the ulMinKeySize and ulMaxKeySize fields of the CK_MECHANISM_INFO structure specify the supported range of AES key sizes, in bytes.


RSA Security Inc. Public-Key Cryptography Standards - PKCS#11 - v230