21 lines
499 B
Python
21 lines
499 B
Python
import base64
|
|
import hashlib
|
|
|
|
from cryptography.fernet import Fernet, InvalidToken
|
|
|
|
from app.config import settings
|
|
|
|
|
|
def _fernet() -> Fernet:
|
|
digest = hashlib.sha256(settings.infrapulse_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
|