import base64 import hashlib from cryptography.fernet import Fernet, InvalidToken from app.config import settings def _fernet() -> Fernet: digest = hashlib.sha256(settings.orbitward_secret_key.encode("utf-8")).digest() return Fernet(base64.urlsafe_b64encode(digest)) def decrypt_secret(value: str | None) -> str | None: if not value: return None try: return _fernet().decrypt(value.encode("utf-8")).decode("utf-8") except InvalidToken: return None