From 9315f06e1fffa7efcd27a96b3c0b4c342d36f4f9 Mon Sep 17 00:00:00 2001 From: YueGuobin Date: Tue, 3 Mar 2026 16:46:23 +0800 Subject: [PATCH] feat(config): add encryption key loading for sensitive data Add a new method `_load_encryption_key` to initialize encryption for sensitive data such as API keys. This method is called within `_load_secret_files` alongside JWT secret key loading, ensuring encryption is set up during server configuration. The change enhances security by enabling encryption for secrets stored in the server's secrets directory. --- gns3server/config.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/gns3server/config.py b/gns3server/config.py index 0aee21172..f82eff70d 100644 --- a/gns3server/config.py +++ b/gns3server/config.py @@ -225,6 +225,17 @@ class Config: except OSError as e: log.error(f"Could not read JWT secret key file '{jwt_secret_key_path}': {e}") + def _load_encryption_key(self): + """ + Load the encryption key for sensitive data (API keys, etc.). + """ + from .utils.encryption import init_encryption + + try: + init_encryption(self._settings.Server.secrets_dir) + except Exception as e: + log.error(f"Could not initialize encryption: {e}") + def _load_secret_files(self): """ Load the secret files. @@ -234,6 +245,7 @@ class Config: self._settings.Server.secrets_dir = os.path.dirname(self.server_config) self._load_jwt_secret_key() + self._load_encryption_key() def read_config(self): """