mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-06-29 07:40:35 +08:00
Take crypto interfaces into use in logger, to encrypt ulog data
- Generate a symmetric encryption key and a nonce value - Use a public key in keystore to encrypt the symmteric key - Write the encrypted key and the nonce value to disk into .ulgk, name matching with the encrypted log file - use quick stream encryption to crypt the .ulg file contents Signed-off-by: Jukka Laitinen <jukkax@ssrc.tii.ae>
This commit is contained in:
committed by
Beat Küng
parent
6b22fe99b7
commit
9472f79307
@@ -1269,6 +1269,12 @@ int Logger::get_log_file_name(LogType type, char *file_name, size_t file_name_si
|
||||
replay_suffix = "_replayed";
|
||||
}
|
||||
|
||||
const char *crypto_suffix = "";
|
||||
#if defined(PX4_CRYPTO)
|
||||
// TODO: use parameter to check if logfile crypto is enabled
|
||||
crypto_suffix = "c";
|
||||
#endif
|
||||
|
||||
char *log_file_name = _file_name[(int)type].log_file_name;
|
||||
|
||||
if (time_ok) {
|
||||
@@ -1280,7 +1286,8 @@ int Logger::get_log_file_name(LogType type, char *file_name, size_t file_name_si
|
||||
|
||||
char log_file_name_time[16] = "";
|
||||
strftime(log_file_name_time, sizeof(log_file_name_time), "%H_%M_%S", &tt);
|
||||
snprintf(log_file_name, sizeof(LogFileName::log_file_name), "%s%s.ulg", log_file_name_time, replay_suffix);
|
||||
snprintf(log_file_name, sizeof(LogFileName::log_file_name), "%s%s.ulg%s", log_file_name_time, replay_suffix,
|
||||
crypto_suffix);
|
||||
snprintf(file_name + n, file_name_size - n, "/%s", log_file_name);
|
||||
|
||||
if (notify) {
|
||||
@@ -1310,7 +1317,8 @@ int Logger::get_log_file_name(LogType type, char *file_name, size_t file_name_si
|
||||
/* look for the next file that does not exist */
|
||||
while (file_number <= MAX_NO_LOGFILE) {
|
||||
/* format log file path: e.g. /fs/microsd/log/sess001/log001.ulg */
|
||||
snprintf(log_file_name, sizeof(LogFileName::log_file_name), "log%03" PRIu16 "%s.ulg", file_number, replay_suffix);
|
||||
snprintf(log_file_name, sizeof(LogFileName::log_file_name), "log%03" PRIu16 "%s.ulg%s", file_number, replay_suffix,
|
||||
crypto_suffix);
|
||||
snprintf(file_name + n, file_name_size - n, "/%s", log_file_name);
|
||||
|
||||
if (!util::file_exist(file_name)) {
|
||||
|
||||
Reference in New Issue
Block a user