| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
| |
ambiguous method names
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* passing a non-string secret or non-string hash to any
CryptContext or handler method will now reliably result
in a TypeError.
previously, passing hash=None to many handler identify() and verify()
methods would return False, while others would raise a TypeError.
other handler methods would alternately throw ValueError or TypeError
when passed a value that wasn't unicode or bytes.
the various CryptContext methods also behaved inconsistently,
depending on the behavior of the underlying handler.
all of these behaviors are gone, they should all raise the same TypeError.
* redid many of the from_string() methods to verify the hash type.
* moved secret type & size validation to GenericHandler's encrypt/genhash/verify methods.
this cheaply made the secret validation global to all hashes, and lets
_calc_digest() implementations trust that the secret is valid.
* updated the CryptContext and handler unittests to verify the above behavior is adhered to.
|
| |
|
|
|
|
| |
* support variable salt size of 4-16 bytes [issue 30].
* throw correct error when invalid base64 encoding is encountered.
* added some test vectors for the above.
|
| |
|
|
| |
chars; to prevent DOS issues.
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* studied crypt_blowfish's 8bit bug
- verified none of passlib's backends were affected
- added recognition (but not support) for crypt_blowfish's $2x$ hash prefix
- added support for crypt_blowfish's $2y$ hash prefix
- note in docs about Passlib's current handling of crypt_blowfish 8bit issues.
* refactored bcrypt's salt-unused-bits repair code into Base64Engine.repair_unused(),
making the code cleaner and more isolated. a bunch more tests.
* added bcrypt64 (bcrypt-base64 variant) to utils
* added LazyBase64Engine to reduce memory / startup time
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
after some thought, realized the 'nthash' name should implement
the raw hash. since bsd_nthash was very rarely used, it shouldn't
present backwards incompatibility issues at this point to go
ahead and rename it.
|
| | |
|
| |
|
|
|
|
|
|
| |
* Cisco Type 5 appears to be same as md5_crypt
* added requires_user=False support to HandlerCase
* added more through salt-generation test (since
cisco_pix has only 4 bits of salt)
* added HandlerCase test to ensure user is used as salt
|
| |
|
|
| |
test
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* StaticHandler is now subclass of GenericHandler
- _calc_checksum() should be implemented instead of encrypt().
(compatibility stub added so old code should continue to work)
- _norm_hash() no longer needs to handle ->unicode conversion
- default from_string() contains a bunch of features,
including stripping a known prefix, etc.
* context kwds now pulled into constructor, so GenericHandler
supports context kwds properly; HasUserContext mixin added
to support common 'user' context kwd
* identify_regexp & identify_prefix removed, functionality
rolled into default GenericHandler.identify() implementation.
- default identify checks _hash_regex as potential way to identify hashes
* HasStubChecksum removed, functionality rolled into GenericHandler
* HasRawChecksum now just sets a flag, functionality moved into GenericHandler
* HasManyIdents._parse_ident() helper added to valid & split identifier
from hashes.
* GenericHandler._norm_checksum() is now strict about unicode / bytes
|
| |\ |
|
| | |
| |
| |
| | |
methods of most handlers
|
| | | |
|
| |/
|
|
| |
and adds code complexity
|
| | |
|
| |
|
|
| |
classes to make filtering easier
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
* new utils.Base64Engine() provides flexible class for encoding arbitrary base64 charmaps.
it should also be a bit faster than the old h64 module.
* predefined 'h64' instance has mostly the same methods as the old h64 module
which it takes the place off - so imports should be unaffected.
(the only the exception of the xxx_dc_xxx methods, which now use the 'h64big' instance)
* replaced utils._blowfish base64 encoding with custom Base64Engine instance
to reduce code duplication.
* more through unittests for Base64Engine.
|
| | |
|
| | |
|
| |
|
|
| |
[issue 24]
|
| |
|
|
|
|
| |
decided that to_hash_str will always return native string,
feature of hashes being returned as unicode under python 2
is better done through a CryptContext option.
|
| | |
|
| |
|
|
| |
*much* shorter codepath when calling CryptContext.encrypt(), etc
|
| |
|
|
| |
CHANGELOG for details)
|
| | |
|
| |\ |
|
| | |\ |
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | | |
* removed previously deprecated support for ConfigParser interpolated files
* removed previously deprecated support for set_backend(None)
|
| | | | |
|
| |/ /
| |
| |
| |
| |
| |
| |
| | |
* added changelog entry re: issue & fix
* bcrypt now warns about padding bits in digest as well
* bcrypt.normhash() now normalizes salt padding bits, digest padding bits, and rounds zero-padding
* hash_needs_update() will now flag unclean bcrypt hashes as needing an update
* UTs for hash_needs_update(), and digest padding bit handling
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
even though it hasn't been officially documented,
some people are using it, so...
major
-----
* DEFAULT_CTX now uses SHA512-Crypt instead of PBKDF2-HMAC-SHA256,
this should be natively supported on a larger number of platforms.
* added full unittest suite for passlib.ext.django:
- checks monkeypatch implementation
- checks full plugin behavior
- STOCK_CTX is compared against official Django behavior
minor
-----
* ``set_django_password_context()`` now patches ``django.contrib.auth.models.check_password()``
as well as User methods.
* now exposes active context as ``User.password_context`` when patch is enabled.
* replacement ``User.check_password`` now handles None and unusable passwords explicitly,
even if context doesn't include support for django_disabled.
|
| | | |
|
| | | |
|
| | | |
|
| |/
|
|
|
|
| |
* also added more django-related unittests
* django_des_crypt now uses des_crypt handler instead of raw_des_crypt function
* django_des_crypt now detects salt char mismatches in hash
|
| | |
|
| |
|
|
|
|
| |
* added private constructor Htpasswd._from_string(), will clean it up and make public in future
* most apache tests now use _from_string() so they don't have to write to fs
* tests which still require writing to fs (mainly the autoload tests) now skipped for GAE
|
| |
|
|
| |
Google App Engine.
|
| |
|
|
| |
working
|
| | |
|