Files
NetBox-VM-Import/netbox_vmware_importer/crypto.py
T
2026-07-10 11:06:12 +02:00

26 lines
686 B
Python

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 endpoint password cannot be decrypted. Re-enter it on the endpoint.") from exc