From 8a51a7052a727abde764f3b061188af972347bd8 Mon Sep 17 00:00:00 2001 From: Pawel Jalocha Date: Sun, 2 Jun 2019 09:02:57 +0100 Subject: [PATCH] Position packet encryption, not complete --- main/proc.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/main/proc.cpp b/main/proc.cpp index a0730a1..fbbe269 100644 --- a/main/proc.cpp +++ b/main/proc.cpp @@ -410,6 +410,10 @@ void vTaskPROC(void* pvParameters) PosPacket.Packet.HeaderWord=0; PosPacket.Packet.Header.Address = Parameters.Address; // set address PosPacket.Packet.Header.AddrType = Parameters.AddrType; // address-type +#ifdef WITH_ENCRYPT + if(Parameters.Encrypt) // if position encryption is requested + { PosPacket.Packet.Header.Encrypted = 1; } // then set the flg in the header +#endif PosPacket.Packet.calcAddrParity(); // parity of (part of) the header if(BestResid==0) Position->Encode(PosPacket.Packet); // encode position/altitude/speed/etc. from GPS position else Position->Encode(PosPacket.Packet, BestResid); @@ -420,7 +424,13 @@ void vTaskPROC(void* pvParameters) // xSemaphoreGive(CONS_Mutex); } OGN_TxPacket *TxPacket = RF_TxFIFO.getWrite(); TxPacket->Packet = PosPacket.Packet; // copy the position packet to the TxFIFO - TxPacket->Packet.Whiten(); TxPacket->calcFEC(); // whiten and calculate FEC code +#ifdef WITH_ENCRYPT + if(Parameters.Encrypt) TxPacket->Packet.Encrypt(Parameters.EncryptKey); // if encryption is requested then encrypt + else TxPacket->Packet.Whiten(); // otherwise only whiten +#else + TxPacket->Packet.Whiten(); +#endif + TxPacket->calcFEC(); // whiten and calculate FEC code #ifdef DEBUG_PRINT xSemaphoreTake(CONS_Mutex, portMAX_DELAY); Format_UnsDec(CONS_UART_Write, TimeSync_Time()%60);