Я пытаюсь реализовать переносимый легкий хеш-модуль с помощью zephyr-rtos. это конкретное семейство функций (https://131002.net/quark/quark_full.pdf) возвращает дайджест / хэш фиксированного размера из произвольного количества пакетов информации, и я не знаю, как реализовать такой интерфейс на практике.
Образцы кодов, которыми исследователи и другие криптографы поделились в Интернете, используют функцию, которая получает указатель на область памяти, а также размер и количество информационных блоков для обработки. Я не думаю, что такой подход возможен во встроенной среде, где память является критически важным ресурсом.
Поэтому я решил реализовать синхронный интерфейс, который читает флаг, чтобы увидеть, доступен ли чанк для обработки:
void absorb_chunk()
{
unsigned char flag=0x1;
unsigned char chunk;
while(flag)
{
chunk=read_chunk();
flag=read_flag();
}
}
Как уже говорилось, я хочу, чтобы этот модуль был переносимым, но функции "read_x" должны получать информацию от некоторого порта ввода / вывода, например, порта GPIO в Arduino 101 или кварка 2000-ds. Есть ли способ сделать это в зефире? или любой другой rtos ?, или должен быть код для поддержки конкретной платформы ?. Будем весьма благодарны за любые комментарии, замечания или идеи.
Привет