Skip to content

Commit ec79b98

Browse files
authored
Merge pull request #122 from jschlyter/fernet_order
Prefer raw key to FernetEncrypter
2 parents 5a8aa7c + 1723845 commit ec79b98

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

Diff for: pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ exclude_lines = [
2222

2323
[tool.poetry]
2424
name = "cryptojwt"
25-
version = "1.8.1"
25+
version = "1.8.2"
2626
description = "Python implementation of JWT, JWE, JWS and JWK"
2727
authors = ["Roland Hedberg <[email protected]>"]
2828
license = "Apache-2.0"

Diff for: src/cryptojwt/jwe/fernet.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,13 @@ def __init__(
2525
):
2626
Encrypter.__init__(self)
2727

28-
if password is not None:
28+
if key is not None:
29+
if not isinstance(key, bytes):
30+
raise TypeError("Raw key must be bytes")
31+
if len(key) != 32:
32+
raise ValueError("Raw key must be 32 bytes")
33+
self.key = base64.urlsafe_b64encode(key)
34+
elif password is not None:
2935
_alg = getattr(hashes, hash_alg)
3036
# A bit special for SHAKE* and BLAKE* hashes
3137
if hash_alg.startswith("SHAKE") or hash_alg.startswith("BLAKE"):
@@ -35,12 +41,6 @@ def __init__(
3541
salt = as_bytes(salt) if salt else os.urandom(16)
3642
kdf = PBKDF2HMAC(algorithm=_algorithm, length=32, salt=salt, iterations=iterations)
3743
self.key = base64.urlsafe_b64encode(kdf.derive(as_bytes(password)))
38-
elif key is not None:
39-
if not isinstance(key, bytes):
40-
raise TypeError("Raw key must be bytes")
41-
if len(key) != 32:
42-
raise ValueError("Raw key must be 32 bytes")
43-
self.key = base64.urlsafe_b64encode(key)
4444
else:
4545
self.key = Fernet.generate_key()
4646

0 commit comments

Comments
 (0)