CMAC主要用于保证消息的完整性和安全性,以及验证密钥的合法性。以下是CMAC常见的应用场景:
1. 数据完整性保护:在网络通信过程中,使用CMAC保护数据的完整性,确保数据在传输过程中不被篡改或破坏。
2. 消息认证:使用CMAC对消息进行认证,验证消息是否是由合法的发送者发送,并防止被篡改。
3. 密钥管理:在密钥的生成和分配过程中,使用CMAC来校验密钥的合法性,确保生成的密钥符合安全要求。
4. 应用程序安全:在应用程序中使用CMAC对数据进行加密和认证处理,以保证数据的安全性和私密性。
总的来说,CMAC是一种非常实用的消息认证码,能够在多种应用中提供数据安全性和完整性的保护。
下面我通过一个两个荔枝,分别来说明CMAC的计算
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <openssl/aes.h>
#include <openssl/cmac.h>
unsigned char* ssl_cmac(const unsigned char* key, const unsigned char* message, size_t message_len ,int *out_cmac_len) {
CMAC_CTX* c