mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
33 lines
727 B
Python
33 lines
727 B
Python
import gnupg
|
|
|
|
from django.conf import settings
|
|
|
|
|
|
class GnuPG:
|
|
"""
|
|
A handy singleton to use when handling encrypted files.
|
|
"""
|
|
|
|
gpg = gnupg.GPG(gnupghome=settings.GNUPG_HOME)
|
|
|
|
@classmethod
|
|
def decrypted(cls, file_handle, passphrase=None):
|
|
|
|
if not passphrase:
|
|
passphrase = settings.PASSPHRASE
|
|
|
|
return cls.gpg.decrypt_file(file_handle, passphrase=passphrase).data
|
|
|
|
@classmethod
|
|
def encrypted(cls, file_handle, passphrase=None):
|
|
|
|
if not passphrase:
|
|
passphrase = settings.PASSPHRASE
|
|
|
|
return cls.gpg.encrypt_file(
|
|
file_handle,
|
|
recipients=None,
|
|
passphrase=passphrase,
|
|
symmetric=True
|
|
).data
|