upload
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import base64
|
||||
import hashlib
|
||||
|
||||
from cryptography.fernet import Fernet, InvalidToken
|
||||
from django.conf import settings
|
||||
|
||||
|
||||
def _fernet():
|
||||
key = hashlib.sha256(settings.SECRET_KEY.encode("utf-8")).digest()
|
||||
return Fernet(base64.urlsafe_b64encode(key))
|
||||
|
||||
|
||||
def encrypt_secret(value):
|
||||
if value in (None, ""):
|
||||
return ""
|
||||
return _fernet().encrypt(value.encode("utf-8")).decode("ascii")
|
||||
|
||||
|
||||
def decrypt_secret(value):
|
||||
if not value:
|
||||
return ""
|
||||
try:
|
||||
return _fernet().decrypt(value.encode("ascii")).decode("utf-8")
|
||||
except InvalidToken as exc:
|
||||
raise ValueError("Stored VMware password cannot be decrypted. Re-enter it on the endpoint.") from exc
|
||||
Reference in New Issue
Block a user