From 1b7086b2ea4c06d9c4b9233c166a16fe4390c877 Mon Sep 17 00:00:00 2001 From: Florian Apolloner Date: Sun, 27 Dec 2020 17:41:33 +0100 Subject: [PATCH] Refs #31358 -- Simplified Argon2PasswordHasher.must_update() by using decode(). --- django/contrib/auth/hashers.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/django/contrib/auth/hashers.py b/django/contrib/auth/hashers.py index bc56b705ee..99d3d5ff6a 100644 --- a/django/contrib/auth/hashers.py +++ b/django/contrib/auth/hashers.py @@ -354,6 +354,7 @@ class Argon2PasswordHasher(BasePasswordHasher): 'time_cost': params.time_cost, 'variety': variety, 'version': params.version, + 'params': params, } def verify(self, password, encoded): @@ -379,10 +380,7 @@ class Argon2PasswordHasher(BasePasswordHasher): } def must_update(self, encoded): - algorithm, rest = encoded.split('$', 1) - assert algorithm == self.algorithm - argon2 = self._load_library() - current_params = argon2.extract_parameters('$' + rest) + current_params = self.decode(encoded)['params'] new_params = self.params() # Set salt_len to the salt_len of the current parameters because salt # is explicitly passed to argon2.