|
|
|
@ -63,6 +63,9 @@ uint8_t signver[200];
|
|
|
|
|
// Флаг режима цифровой подписи
|
|
|
|
|
extern int gflag;
|
|
|
|
|
|
|
|
|
|
// Флаг типа прошивки
|
|
|
|
|
extern int dflag;
|
|
|
|
|
|
|
|
|
|
// Параметры текущей цифровой подписи
|
|
|
|
|
uint32_t signtype; // тип прошивки
|
|
|
|
|
uint32_t signlen; // длина подписи
|
|
|
|
@ -77,6 +80,44 @@ char* fw_description(uint8_t code) {
|
|
|
|
|
return fwtypes[code&0x7];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//****************************************************
|
|
|
|
|
//* Получение списка типов прошивок
|
|
|
|
|
//****************************************************
|
|
|
|
|
void dlist() {
|
|
|
|
|
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
|
printf("\n # Описание\n--------------------------------------");
|
|
|
|
|
for(i=1;i<8;i++) {
|
|
|
|
|
printf("\n %i %s",i,fw_description(i));
|
|
|
|
|
}
|
|
|
|
|
printf("\n\n");
|
|
|
|
|
exit(0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//***************************************************
|
|
|
|
|
//* Обработка параметров ключа -d
|
|
|
|
|
//***************************************************
|
|
|
|
|
void dparm(char* sparm) {
|
|
|
|
|
|
|
|
|
|
if (dflag != 0) {
|
|
|
|
|
printf("\n Дублирующийся ключ -d\n\n");
|
|
|
|
|
exit(-1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (sparm[0] == 'l') {
|
|
|
|
|
dlist();
|
|
|
|
|
exit(0);
|
|
|
|
|
}
|
|
|
|
|
sscanf(sparm,"%x",&dload_id);
|
|
|
|
|
if ((dload_id == 0) || (dload_id >7)) {
|
|
|
|
|
printf("\n Неправильное значение ключа -d\n\n");
|
|
|
|
|
exit(-1);
|
|
|
|
|
}
|
|
|
|
|
dflag=1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//****************************************************
|
|
|
|
|
//* Получение списка параметров ключа -g
|
|
|
|
|
//****************************************************
|
|
|
|
|