Implemented AES-128 encryption

This commit is contained in:
Mark Qvist 2019-02-07 18:36:40 +01:00
parent 0e24b54657
commit b3b1a9b253
15 changed files with 730 additions and 118 deletions

View file

@ -1,6 +1,8 @@
#include "LED.h"
#include "util/time.h"
bool LED_softblock_enabled = false;
uint8_t ledIntensity = CONFIG_LED_INTENSITY;
ticks_t led_status_ticks_top = 0;
ticks_t led_status_ticks = 0;
@ -28,6 +30,13 @@ void LED_init(void) {
OCR0A = ledIntensity;
}
void LED_softblock_on(void) {
LED_softblock_enabled = true;
}
void LED_softblock_off(void) {
LED_softblock_enabled = false;
}
void LED_setIntensity(uint8_t value) {
ledIntensity = value;
@ -35,11 +44,22 @@ void LED_setIntensity(uint8_t value) {
}
void LED_COM_ON(void) {
if (!LED_softblock_enabled) {
LED_PORT |= _BV(4);
com_led_timeout = timer_clock() + ms_to_ticks(CONFIG_COM_LED_TIMEOUT_MS);
}
}
void LED_COM_OFF(void) {
if (!LED_softblock_enabled) LED_PORT &= ~_BV(4);
}
void LED_F_COM_ON(void) {
LED_PORT |= _BV(4);
com_led_timeout = timer_clock() + ms_to_ticks(CONFIG_COM_LED_TIMEOUT_MS);
}
void LED_COM_OFF(void) {
void LED_F_COM_OFF(void) {
LED_PORT &= ~_BV(4);
}
@ -54,6 +74,37 @@ void update_led_status(void) {
}
}
#define LED_DELAY_E_C_1 200
#define LED_DELAY_E_C_2 50
void LED_indicate_enabled_crypto(void) {
LED_softblock_on();
LED_F_STATUS_OFF();
LED_F_COM_OFF();
LED_F_TX_OFF();
LED_F_RX_OFF();
delay_ms(LED_DELAY_E_C_1);
for (uint8_t i = 0; i < 2; i++) {
LED_F_STATUS_ON();
delay_ms(LED_DELAY_E_C_2);
LED_F_STATUS_OFF();
LED_F_COM_ON();
delay_ms(LED_DELAY_E_C_2);
LED_F_COM_OFF();
LED_F_RX_ON();
delay_ms(LED_DELAY_E_C_2);
LED_F_RX_OFF();
LED_F_TX_ON();
delay_ms(LED_DELAY_E_C_2);
LED_F_TX_OFF();
delay_ms(LED_DELAY_E_C_2);
}
LED_F_STATUS_ON();
LED_softblock_off();
}
void LED_indicate_error_crypto(void) {
while (true) {
LED_COM_ON();