Tools gesucht

#4532407
Lesenswert?

Hallo Forum,

ich suche Tools oder Ideen um eine Firmware zu verschlüsseln und zu 
übertragen. Es soll unter Windows laufen und möglichst nicht 
selbst-programmiert sein. Also gescriptete Tools die man in Batches 
rufen kann. Es soll für den Anwender leicht nachvollziehbar sein, was 
mit der Firmware passiert. Desweiteren soll derjenige, der dann mal ein 
das Firmwareupdate macht, nicht die Firmware entschlüsseln können. Die 
verschlüsselten Daten soll erst auf µC wieder entschlüsselt werden.
Folgendes ist meine Vorstellung:
- S19-File zeilenweise AES verschüsseln
- (Länge + Verschüsseltet Zeile) * Zeilenanzahl in Datei speichern
- je eine Zeile per serieller Schnittstelle senden und auf ACK warten

Auf dem µC steht eine AES-Hardware zur Verfügung, jedoch ist diese nur 
Atomar verwendbar, da diese gleichzeitig noch für andere Aufgaben 
verwendet wird. Es steht auch nicht genügend Platz (weder RAM noch 
Flash) zur Verfügung um ein komplettes S19-File zu speichern.
Ich hab schon mit teraterm rumgespielt, aber das kann keine Binärdaten 
verarbeiten (bricht ab, wenn 0x00 in Datei enthalten ist).
Wie würdet Ihr das lösen?
Persönliche Seite #4542420
Lesenswert?

Hab das mal selbst geschrieben, mit SW AES lib. Die PC Version landete 
in einem Konsole-Programm. In der µC Variante sind Intrinsics, AES 
Tables liegen im Flash (dahingehend wurde der original AES angepasst).

Ich würde die Binärversion der Firmware blockweise ver-/entschlüsseln, 
in Häppchen, die in einem Rutsch in den FlashAlg geschoben werden können 
(z.B. 256 Byte).

In meinem Fall wird die neue Firmware von einer SD Card gelesen, aber 
das ist prinzipiell ja egal.
#4542474
Lesenswert?

Da keine microcontroller genennt wird nehme ich an es geht sich um die 
Cypress PSOC 3/5LP.

Der gibt ein professioneller bootloader mit einige standardfunktionen 
die password und dabei gibt es, wenn ich mich nicht irre, auch die 
source-code frei.

Falls es um einen anderen controller geht, bitte angeben welches weil es 
pro hersteller sehr unterschiedlich ist.
#4551608
Lesenswert?

so, habs hinbekommen. funktioniert.

Hab jetzt nur noch ne kleinigkeit: Wie kann ich im CCS6 einen Step 
"starten" nach dem HEX Utility?

Es gibt unter "Project" - "Properties" - "Build" - Tab "Steps" die 
Möglichkeit Pre-build und Post-build steps einzutragen. Das hab ich 
gemacht, wird auch gerufen, leider aber zeitlich vor dem HEX-Utility. 
Ich will aber die Ausgabe dieses Hex-Tools verwenden.
Wie kann ich etwas nach dem HEX-Utility starten?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren