1212
1313from cryptography import utils
1414from cryptography .exceptions import InvalidSignature
15- from cryptography .hazmat .backends import _get_backend
16- from cryptography .hazmat .backends .interfaces import Backend
1715from cryptography .hazmat .primitives import hashes , padding
1816from cryptography .hazmat .primitives .ciphers import Cipher , algorithms , modes
1917from cryptography .hazmat .primitives .hmac import HMAC
@@ -30,10 +28,8 @@ class Fernet(object):
3028 def __init__ (
3129 self ,
3230 key : typing .Union [bytes , str ],
33- backend : typing .Optional [ Backend ] = None ,
31+ backend : typing .Any = None ,
3432 ):
35- backend = _get_backend (backend )
36-
3733 key = base64 .urlsafe_b64decode (key )
3834 if len (key ) != 32 :
3935 raise ValueError (
@@ -42,7 +38,6 @@ def __init__(
4238
4339 self ._signing_key = key [:16 ]
4440 self ._encryption_key = key [16 :]
45- self ._backend = backend
4641
4742 @classmethod
4843 def generate_key (cls ) -> bytes :
@@ -63,15 +58,16 @@ def _encrypt_from_parts(
6358 padder = padding .PKCS7 (algorithms .AES .block_size ).padder ()
6459 padded_data = padder .update (data ) + padder .finalize ()
6560 encryptor = Cipher (
66- algorithms .AES (self ._encryption_key ), modes .CBC (iv ), self ._backend
61+ algorithms .AES (self ._encryption_key ),
62+ modes .CBC (iv ),
6763 ).encryptor ()
6864 ciphertext = encryptor .update (padded_data ) + encryptor .finalize ()
6965
7066 basic_parts = (
7167 b"\x80 " + struct .pack (">Q" , current_time ) + iv + ciphertext
7268 )
7369
74- h = HMAC (self ._signing_key , hashes .SHA256 (), backend = self . _backend )
70+ h = HMAC (self ._signing_key , hashes .SHA256 ())
7571 h .update (basic_parts )
7672 hmac = h .finalize ()
7773 return base64 .urlsafe_b64encode (basic_parts + hmac )
@@ -118,7 +114,7 @@ def _get_unverified_token_data(token: bytes) -> typing.Tuple[int, bytes]:
118114 return timestamp , data
119115
120116 def _verify_signature (self , data : bytes ) -> None :
121- h = HMAC (self ._signing_key , hashes .SHA256 (), backend = self . _backend )
117+ h = HMAC (self ._signing_key , hashes .SHA256 ())
122118 h .update (data [:- 32 ])
123119 try :
124120 h .verify (data [- 32 :])
@@ -144,7 +140,7 @@ def _decrypt_data(
144140 iv = data [9 :25 ]
145141 ciphertext = data [25 :- 32 ]
146142 decryptor = Cipher (
147- algorithms .AES (self ._encryption_key ), modes .CBC (iv ), self . _backend
143+ algorithms .AES (self ._encryption_key ), modes .CBC (iv )
148144 ).decryptor ()
149145 plaintext_padded = decryptor .update (ciphertext )
150146 try :
0 commit comments