diff options
author | Eli Collins <elic@assurancetechnologies.com> | 2016-11-09 16:58:22 -0500 |
---|---|---|
committer | Eli Collins <elic@assurancetechnologies.com> | 2016-11-09 16:58:22 -0500 |
commit | becdbf0042bab294938cfa33d8fa93b7fd2dcf0b (patch) | |
tree | c8560e615e6ef5d97f266d9f6b7c3018f6ce1c4b | |
parent | f076c2c877f62b79941b0aacddfaa122b1220977 (diff) | |
download | passlib-becdbf0042bab294938cfa33d8fa93b7fd2dcf0b.tar.gz |
bugfix: argon2 & bcrypt2 -- stub _calc_checksum stub should use super() call
to prevent it from recursively calling wrong method when backend first loaded
while being invoked from subclass.
-rw-r--r-- | passlib/handlers/argon2.py | 4 | ||||
-rw-r--r-- | passlib/handlers/bcrypt.py | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/passlib/handlers/argon2.py b/passlib/handlers/argon2.py index aed5b77..a533e8e 100644 --- a/passlib/handlers/argon2.py +++ b/passlib/handlers/argon2.py @@ -530,7 +530,9 @@ class _NoBackend(_Argon2Common): # NOTE: since argon2_cffi takes care of rendering hash, # _calc_checksum() is only used by the argon2pure backend. self._stub_requires_backend() - return self._calc_checksum(secret) + # NOTE: have to use super() here so that we don't recursively + # call subclass's wrapped _calc_checksum + return super(argon2, self)._calc_checksum(secret) #=================================================================== # eoc diff --git a/passlib/handlers/bcrypt.py b/passlib/handlers/bcrypt.py index 9edb4ae..423503c 100644 --- a/passlib/handlers/bcrypt.py +++ b/passlib/handlers/bcrypt.py @@ -525,7 +525,9 @@ class _NoBackend(_BcryptCommon): #=================================================================== def _calc_checksum(self, secret): self._stub_requires_backend() - return self._calc_checksum(secret) + # NOTE: have to use super() here so that we don't recursively + # call subclass's wrapped _calc_checksum, e.g. bcrypt_sha256._calc_checksum + return super(bcrypt, self)._calc_checksum(secret) #=================================================================== # eoc |