20#define PROTECTED_ID 0x123
29 0x70, 0x81, 0x92, 0xA3, 0xB4, 0xC5,
30 0xD6, 0xE7, 0xF8, 0x09};
57 for (
int i = 0; i < EEPROM.length(); i++) {
58 EEPROM.write(i, 0xFF);
62 if (
CAN.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ) != CAN_OK) {
63 Serial.println(
"[ERROR] CAN Init Failed!");
67 CAN.setMode(MCP_NORMAL);
72 Serial.println(
"[INFO] Sender Initialized");
87 uint8_t payloadLen = 4;
98 if (result == CAN_OK) {
99 Serial.println(
"[INFO] Message sent");
101 Serial.println(
"[ERROR] Send failed");
uint8_t minimac_sign(uint8_t *data, uint8_t payload_len)
송신할 메시지에 Mini-MAC 태그 생성 및 내부 상태 갱신
void minimac_init(uint16_t can_id, const uint8_t *key)
Mini-MAC 초기화 및 EEPROM 동기화
#define MINIMAC_TAG_LEN
Mini-MAC 다이제스트에서 사용할 태그 길이 (4바이트, 32비트)
#define MINIMAC_MAX_DATA
CAN 데이터 필드 최대 길이 (8바이트)
#define MINIMAC_KEY_LEN
Mini-MAC HMAC 키 길이 (16바이트, 128비트)
MCP_CAN CAN(10)
CAN 버스 제어 객체.
#define PROTECTED_ID
Mini-MAC 인증이 적용되는 보호 대상 CAN 메시지 식별자.
const uint8_t SECRET_KEY[16]
Mini-MAC 프로토콜에 사용되는 16바이트 비밀 키.
void setup()
시스템 초기화 함수로, 장치 설정을 수행합니다.
MCP_CAN CAN(10)
CAN 버스 제어 객체.
void loop()
주기적으로 메시지를 생성하여 전송하는 메인 루프 함수입니다.