目的
最簡単なCMACの例
code
#include "../cmake-build-debug/zephyr/include/generated/autoconf.h"
#include "../crypt/aes-cbc-cmac.h"
int main(void) {
unsigned char key[16] = {
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08
};
unsigned char input[16] = {0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
};
unsigned char mac[16];
AES_CMAC(key, input, 16, mac);
print_hex("CMAC", mac, BLOCK_SIZE);//2b79935c 27f4ce79 9c0779b4 fa521a58
return 0;
}
暗号化コード
雑談
AES-CMACのような暗号化コードを使用する際、異なるプラットフォームでの対応が異なるため、プラットフォームごとに再実装するのは非常に手間がかかります。そのため、ネットで見つけたAES-CMACのC言語ソースコードをそのまま使用する方法を取ることで、効率的に実装できます。ただし、これによりハードウェアアクセラレーションの可能性を犠牲にしている点には注意が必要です。