Шифрование AES под контики на CC2650

В настоящее время я пытаюсь добавить шифрование AES в существующую демонстрацию маяка, в которой используется сенсорный тег TI cc2650. Я использую AES API, предоставленный contiki под ядром/библиотекой. Мой основной выглядит так:

static const uint8_t AES_key[16] = { 0xC0 , 0xC1 , 0xC2 , 0xC3 ,
                                 0xC4 , 0xC5 , 0xC6 , 0xC7 ,
                                 0xC8 , 0xC9 , 0xCA , 0xCB ,
                                 0xCC , 0xCD , 0xCE , 0xCF };// AES Key

static uint8_t plain_text[16] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 15, 16}; // Plain-text to be encrypted.
const struct aes_128_driver AES_128;
.
.
.
printf("Plain_Text: %d \r\n", plain_text);
AES_128.set_key(AES_key);
AES_128.encrypt(plain_text);
printf("Encrypted_Text: %p\r\n", plain_text);

К сожалению, когда я запускаю код, обычный текст остается неизменным. Используя некоторые дополнительные отпечатки, я понимаю, что функция шифрования работает, но вывод по-прежнему неизменен. Может кто-нибудь, пожалуйста, скажите мне, что я делаю неправильно здесь?

Обратите внимание, что я уже добавил следующую строку в свой файл конфигурации:

#define AES_128_CONF aes_128_driver

person SuperKogito    schedule 12.09.2017    source источник
comment
Весь этот код внутри функции?   -  person kfx    schedule 12.09.2017
comment
Нет, это всего лишь небольшая часть длинного функционирующего кода, который считывает данные датчика и отправляет их по каналу (IEEE 802.15.4).   -  person SuperKogito    schedule 12.09.2017
comment
Я спрашиваю о том, находится ли опубликованный вами блок кода внутри функции или в области файла? Первая часть перед... в частности?   -  person kfx    schedule 12.09.2017
comment
Я вижу, поэтому первые строки написаны прямо под разделом #define, а вторая часть вызывается внутри PROCESS_THREAD, который вызывает различные другие статические пустоты. Вы думаете, что я должен помещать свой код в такую ​​статическую пустоту и вызывать его в PROCESS_THREAD?   -  person SuperKogito    schedule 12.09.2017
comment
Это нормально - мне было интересно, может ли const struct aes_128_driver AES_128 быть локальной переменной, которая затеняет глобальную. Вам это ни в коем случае не нужно. Я без проблем запускал AES на CC2650, но не вижу проблемы с вашим кодом.   -  person kfx    schedule 12.09.2017
comment
Не могли бы вы указать мне простой пример AES, в котором используется API contiki AES, отличный от примера CCM (github.com/contiki-os/contiki/blob/master/core/lib/ccm-star.c)   -  person SuperKogito    schedule 12.09.2017
comment
Извините, наш код в настоящее время является приватным. Но ваш код у меня работал (зашифровал строку во что-то), поэтому в вашей настройке должна быть какая-то проблема.   -  person kfx    schedule 12.09.2017
comment
Хорошо, я посмотрю на это больше. Спасибо за вашу помощь, сэр.   -  person SuperKogito    schedule 12.09.2017


Ответы (1)


Ну, как указал @kfx в комментариях, const struct aes_128_driver AES_128 затеняет глобальную переменную.

person SuperKogito    schedule 03.11.2017