summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Collins <elic@assurancetechnologies.com>2016-11-09 16:58:22 -0500
committerEli Collins <elic@assurancetechnologies.com>2016-11-09 16:58:22 -0500
commitbecdbf0042bab294938cfa33d8fa93b7fd2dcf0b (patch)
treec8560e615e6ef5d97f266d9f6b7c3018f6ce1c4b
parentf076c2c877f62b79941b0aacddfaa122b1220977 (diff)
downloadpasslib-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.py4
-rw-r--r--passlib/handlers/bcrypt.py4
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