Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Баг в AVR231:AES Bootloader
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
LexaK
Суть его в том, что при определенных размерах файла прошивки процесс шифрования/дешифрования приводит к повреждению данных. В моем случае повреждались 14 байт начиная с адреса 0x4D00. Проявляется достаточно редко, поэтому выявить какую-либо закономерность не могу.
Кто-нибудь разобрался?
PS Видел в одном из обсуждений упоминание этого бага и упоминание темы, в которой он обсуждается, но саму тему не нашел.
acorn
Тоже наткнулся как-то на этот баг. Сходу разобраться не получилось. Решил не тратить времени и перешел на DES из соседней аппноты. С ним проблем не возникало.
SasaVitebsk
Цитата(LexaK @ Feb 1 2010, 19:56) *
Суть его в том, что при определенных размерах файла прошивки процесс шифрования/дешифрования приводит к повреждению данных. В моем случае повреждались 14 байт начиная с адреса 0x4D00. Проявляется достаточно редко, поэтому выявить какую-либо закономерность не могу.
Кто-нибудь разобрался?
PS Видел в одном из обсуждений упоминание этого бага и упоминание темы, в которой он обсуждается, но саму тему не нашел.

А разобрались хоть. Проблема при кодировании или при декодировании.
У меня тоже что-то подобное возникает. Причину не установил. Хоть где рыть.

Похоже придётся писать Coder-decoder и проверять на PC.
V_N
Посмотрите здесь http://www.imagecraft.com/pub/code_samples/AVR/AVR231.zip там этот проект портирован для ICCAVR V6 может подрихтовали
MrYuran
Я сейчас данную тему на МСП перекладываю, так что поиграюсь.
Цитата
Суть его в том, что при определенных размерах файла прошивки процесс шифрования/дешифрования приводит к повреждению данных. В моем случае повреждались 14 байт начиная с адреса 0x4D00. Проявляется достаточно редко, поэтому выявить какую-либо закономерность не могу.

А если отключить шифрование и оставить чисто бутлодер? (приняли пакет - прошили, без помощи aes.c)
Естественно, передавать тоже некриптованный файл.

Как-то надо локализовать, где собака порылась
Сергей Борщ
Цитата(MrYuran @ Feb 2 2010, 11:41) *
Я сейчас данную тему на МСП перекладываю, так что поиграюсь.
Оно вылезает оочень редко. Мне попадалось раз или два с 2007г, а прошивка меняеся пару раз в неделю.
Цитата(MrYuran @ Feb 2 2010, 11:41) *
А если отключить шифрование и оставить чисто бутлодер? (приняли пакет - прошили, без помощи aes.c) Естественно, передавать тоже некриптованный файл.
В кодировании собака. И судя по всему в шифровании. Ибо искажается кусок данных в середине прошивки. А дешифрование идет блочно и зависит от истории. Если бы проблема была в расшифровке, то следующий пакет расшифровывался бы тоже неправильно и вылетали бы по ошибке несовпавшей сигнатуры. Вот не догадался сохранить ту прошивку и набор ключей для детального анализа. Фактически нужен (сбоящий + предыдущие 16 байт) кусок хекса, ключи шифрования и содержимое ChainCipherBlock перед шифровкой этих предыдущих 16 байт.
LexaK
Цитата
А если отключить шифрование и оставить чисто бутлодер? (приняли пакет - прошили, без помощи aes.c)
Естественно, передавать тоже некриптованный файл.

1. В атмелевском примере предусмотрена возможность отключения шифрования, но, если в cfg-файле не указываешь ключи (в аппноте написано так), софтина create.exe вываливается с сообщением об ошибке.
2. По совету acorn к своему проекту подключил DES-шифровальщик и проблема ушла. Остальные части проекта без изменений, тем более, что у меня бутлоадер работает с SD-карты, т.е. атмеловский вариант передачи файла у меня исключен.
3. Сигнатуры-то совпадают!
Цитата
Похоже придётся писать Coder-decoder и проверять на PC.

А стоит ли? использовать DES и не париться. Единственное, он гораздо медленнее.
Да, атмел в этом аппноте щедро разложил грабли smile.gif
MrYuran
Цитата(Сергей Борщ @ Feb 2 2010, 13:05) *
Оно вылезает оочень редко. Мне попадалось раз или два с 2007г, а прошивка меняеся пару раз в неделю.В кодировании собака. И судя по всему в шифровании.

Спасибо, попробую присмотреться.
Хотя, если редко, то может и хрен бы с ним...
Приделать к кодеру верификатор и сигнализировать при ошибке.
Заодно и исходные данные для анализа будут.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.