Spaces:
Runtime error
Runtime error
Download backend/app/services/crypto.py from firebird-technologies/NoteStack-Test: direct link, hf CLI and curl.
- Browser
- Download file 864 Bytes
-
https://huggingface.co/spaces/firebird-technologies/NoteStack-Test/resolve/main/backend/app/services/crypto.py
- Command line
-
hf download hf://spaces/firebird-technologies/NoteStack-Test/backend/app/services/crypto.py
-
curl -L -o crypto.py https://huggingface.co/spaces/firebird-technologies/NoteStack-Test/resolve/main/backend/app/services/crypto.py
864 Bytes
| """Encrypts third party tokens at rest (social accounts). Fernet key from SOCIAL_TOKEN_KEY, or derived | |
| from JWT_SECRET so local dev needs no extra setting.""" | |
| import base64 | |
| import hashlib | |
| from functools import lru_cache | |
| from cryptography.fernet import Fernet, InvalidToken | |
| from app.config import settings | |
| def _fernet() -> Fernet: | |
| key = settings.social_token_key | |
| if not key: | |
| key = base64.urlsafe_b64encode(hashlib.sha256(f"social:{settings.jwt_secret}".encode()).digest()).decode() | |
| return Fernet(key.encode()) | |
| def encrypt(value: str | None) -> str | None: | |
| return _fernet().encrypt(value.encode()).decode() if value else None | |
| def decrypt(value: str | None) -> str | None: | |
| if not value: | |
| return None | |
| try: | |
| return _fernet().decrypt(value.encode()).decode() | |
| except InvalidToken: | |
| return None | |