mirror of
https://github.com/trushildhokiya/allininx-2.git
synced 2025-03-15 11:58:40 +00:00
24 lines
679 B
Python
24 lines
679 B
Python
from typing import Union
|
|
|
|
from cryptography.fernet import Fernet, InvalidToken
|
|
|
|
from reworkd_platform.settings import settings
|
|
from reworkd_platform.web.api.http_responses import forbidden
|
|
|
|
|
|
class EncryptionService:
|
|
def __init__(self, secret: bytes):
|
|
self.fernet = Fernet(secret)
|
|
|
|
def encrypt(self, text: str) -> bytes:
|
|
return self.fernet.encrypt(text.encode("utf-8"))
|
|
|
|
def decrypt(self, encoded_bytes: Union[bytes, str]) -> str:
|
|
try:
|
|
return self.fernet.decrypt(encoded_bytes).decode("utf-8")
|
|
except InvalidToken:
|
|
raise forbidden()
|
|
|
|
|
|
encryption_service = EncryptionService(settings.secret_signing_key.encode())
|