Сделал первый подход к аппаратному AES. Пока понял только как
шифровать/расшифровывать в режиме ECB с 128-битным ключем. Более
хитрые варианты (в частности CCM) не особо пока ясны. Вот примерно
что делает кетайская либа при шифровании. R32_AES_CTRL_CCMMOD &= ~0x06;
<запихиваем ключ в R32_AES_KEY0...R32_AES_KEY3 >
<запихиваем данные в R32_AES_DATA0...R32_AES_DATA3>
R32_AES_CCMINT_EN &= ~0x02;
R32_AES_CCMINT_EN |= 0x01;
R32_AES_CTRL_CCMMOD |= 0x01;
<ждем, пока в R32_AES_CCMINT_EN не установится нулевой бит>
R32_AES_CCMINT_EN &= ~0x02;
<вынимаем данные из R32_AES_DATA0...R32_AES_DATA3>
При расшифровке все то же самое, только в начале делается
R32_AES_CTRL_CCMMOD &= ~0x06;
R32_AES_CTRL_CCMMOD |= 0x02;