Skip to content

Commit 2f30742

Browse files
authored
295 Fix extra requirements for MFA (#296)
* fix extra requirements for MFA * fix linter error
1 parent 724d5b8 commit 2f30742

File tree

2 files changed

+16
-16
lines changed

2 files changed

+16
-16
lines changed

piccolo_api/encryption/providers.py

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,24 @@
55
from abc import ABCMeta, abstractmethod
66

77
if t.TYPE_CHECKING:
8-
import cryptography
98
import nacl
9+
from cryptography.fernet import Fernet
1010

1111

1212
logger = logging.getLogger(__name__)
1313

1414

15-
def get_cryptography() -> cryptography: # type: ignore
15+
def get_fernet_class() -> t.Type[Fernet]: # type: ignore
1616
try:
17-
import cryptography
17+
from cryptography.fernet import Fernet
1818
except ImportError as e:
1919
print(
2020
"Install pip install piccolo_api[cryptography] to use this "
2121
"feature."
2222
)
2323
raise e
2424

25-
return cryptography
25+
return Fernet
2626

2727

2828
class EncryptionProvider(metaclass=ABCMeta):
@@ -108,14 +108,12 @@ def __init__(self, encryption_key: bytes):
108108

109109
@staticmethod
110110
def get_new_key() -> bytes:
111-
cryptography = get_cryptography()
112-
return cryptography.fernet.Fernet.generate_key() # type: ignore
111+
Fernet = get_fernet_class()
112+
return Fernet.generate_key() # type: ignore
113113

114114
def encrypt(self, value: str, add_prefix: bool = True) -> str:
115-
cryptography = get_cryptography()
116-
fernet = cryptography.fernet.Fernet( # type: ignore
117-
self.encryption_key
118-
)
115+
Fernet = get_fernet_class()
116+
fernet = Fernet(self.encryption_key) # type: ignore
119117
encrypted_value = fernet.encrypt(value.encode("utf-8")).decode("utf-8")
120118
return (
121119
self.add_prefix(encrypted_value=encrypted_value)
@@ -127,11 +125,8 @@ def decrypt(self, encrypted_value: str, has_prefix: bool = True) -> str:
127125
if has_prefix:
128126
encrypted_value = self.remove_prefix(encrypted_value)
129127

130-
cryptography = get_cryptography()
131-
132-
fernet = cryptography.fernet.Fernet( # type: ignore
133-
self.encryption_key
134-
)
128+
Fernet = get_fernet_class()
129+
fernet = Fernet(self.encryption_key) # type: ignore
135130
return fernet.decrypt(encrypted_value.encode("utf-8")).decode("utf-8")
136131

137132

setup.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@
2121
LONG_DESCRIPTION = f.read()
2222

2323

24-
EXTRAS = ["s3"]
24+
EXTRAS = [
25+
"authenticator",
26+
"cryptography",
27+
"pynacl",
28+
"s3",
29+
]
2530

2631

2732
def parse_requirement(req_path: str) -> t.List[str]:

0 commit comments

Comments
 (0)