diff options
| author | Eli Collins <elic@assurancetechnologies.com> | 2016-02-11 15:50:48 -0500 |
|---|---|---|
| committer | Eli Collins <elic@assurancetechnologies.com> | 2016-02-11 15:50:48 -0500 |
| commit | 4416fecd4afe3742ba198f4d09d190703bc44596 (patch) | |
| tree | 31746f6568d6b4e1d287936051f2315af08f652a | |
| parent | 74894c9ebe1994823edd210262e6fc9b729e18f8 (diff) | |
| download | passlib-4416fecd4afe3742ba198f4d09d190703bc44596.tar.gz | |
changes: updated 1.7 TODO list, reformatted some items
| -rw-r--r-- | CHANGES | 137 | ||||
| -rw-r--r-- | docs/conf.py | 1 |
2 files changed, 74 insertions, 64 deletions
@@ -13,20 +13,35 @@ Release History The following tasks are blocking the 1.7 release: - * Finish the :mod:`passlib.totp` module (mainly tests & documentation) + * Finish the :meth:`PasswordHash.using` and :meth:`PasswordHash.needs_update` refactoring, + aimed at eliminating any need for the internal :class:`passlib.context._CryptRecord` class. - * Get scrypt hash implemented, or push it to later release (really want to include it) + - FIXME: Default using() method won't work correctly for wrapper handlers just yet. + - mainly needs UTs + - search CryptContext for anything more we can push into handler api. - * Finish :mod:`passlib.pwd` -- need to finalize API and document it better. + * Get argon2 hash implemented (:issue:`69`). - * Internal cleanups: + - blocking on .using() api - * Check for additions to Django's hashers as of Django 1.7 + * Get scrypt hash implemented (:issue:`8`). - * Finish the :meth:`PasswordHash.using` and :meth:`PasswordHash.needs_update` refactoring, - aimed at eliminating any need for the internal :class:`passlib.context._CryptRecord` class. + - blocking on .using() api + + * Finish the :mod:`passlib.totp` module (:issue:`44`) + + - tests + - narrative documentation + - audit encrypted mode code + + * :mod:`passlib.pwd` + + - final length should be adjusted to account for sequence space + that's omitted by min_complexity cutoff; or decide this is non-issue. + + * Get :mod:`passlib.apache` context profiles finished & committed. - * FIXME: Default using() method won't work correctly for wrapper handlers just yet. + * Thread safety audit and tests for CryptContext, HasManyBackends, and lazy-init subclasses. Requirements ------------ @@ -37,84 +52,78 @@ Requirements Support for PyPy 1.x has also been dropped. * The :mod:`passlib.ext.django` extension now requires Django 1.8 or better. - Django 0.9 .. 1.7 are no longer supported. + Django 1.7 and earlier are no longer supported. Major Changes ------------- -* New :mod:`passlib.totp` module provides full support for TOTP & HOTP tokens - on both client and server side. Contains both low-level primitives, and high-level - helpers for persisting and tracking client state. + * New :mod:`passlib.totp` module provides full support for TOTP & HOTP tokens + on both client and server side. Contains both low-level primitives, and high-level + helpers for persisting and tracking client state. -* New :mod:`passlib.pwd` module added to aid in password generation - and strength measurement (with contributions from Thomas Waldmann). + * New :mod:`passlib.pwd` module added to aid in password generation + and strength measurement (with contributions from Thomas Waldmann). -* Added :class:`~passlib.hash.cisco_asa` which provides (tentative) - support for Cisco ASA 7.0 and newer hashes. + * Added :class:`~passlib.hash.cisco_asa` which provides (tentative) + support for Cisco ASA 7.0 and newer hashes. -* The :func:`~passlib.crypto.digest.pbkdf2_hmac` function and all PBKDF2-based - hashes have been sped up by ~20% compared to Passlib 1.6. + * The :func:`~passlib.crypto.digest.pbkdf2_hmac` function and all PBKDF2-based + hashes have been sped up by ~20% compared to Passlib 1.6. -* Passlib will now detect and work around the fatal concurrency bug - in py-bcrypt 0.2 and earlier (a :exc:`~passlib.exc.PasslibSecurityWarning` - will also be issued). Nevertheless, users are *strongly* encouraged - to upgrade to py-bcrypt 0.3 or another bcrypt library if you are using - the :doc:`bcrypt </lib/passlib.hash.bcrypt>` hash. + * Passlib will now detect and work around the fatal concurrency bug + in py-bcrypt 0.2 and earlier (a :exc:`~passlib.exc.PasslibSecurityWarning` + will also be issued). Nevertheless, users are *strongly* encouraged + to upgrade to py-bcrypt 0.3 or another bcrypt library if you are using + the :doc:`bcrypt </lib/passlib.hash.bcrypt>` hash. -Minor Changes -------------- -* The shared :class:`!PasswordHash` unittests now check all hash handlers for - basic thread-safety (motivated by the pybcrypt 0.2 concurrency bug). +Minor Internal Changes +---------------------- + * The shared :class:`!PasswordHash` unittests now check all hash handlers for + basic thread-safety (motivated by the pybcrypt 0.2 concurrency bug). + + * Most of passlib's internal cryptography helpers have been moved from + :mod:`!passlib.utils` to :mod:`passlib.crypto`, and the APIs refactored. + This allowed unification of various hash management routines, + some speed ups to the HMAC and PBKDF2 primitives, and opens up the architecture + to support more optional backend libraries. -* Most of passlib's internal cryptography helpers have been moved from - :mod:`!passlib.utils` to :mod:`passlib.crypto`, and the APIs refactored. - This allowed unification of various hash management routines, - some speed ups to the HMAC and PBKDF2 primitives, and opens up the architecture - to support more optional backend libraries. + Compatibility wrappers will be kept in place at the old location until Passlib 2.0. - Compatibility wrappers will be kept in place at the old location until Passlib 2.0. + * The majority of CryptContext's internal rounds handling & migration code has been + moved to the password hashes themselves, via the new :meth:`~passlib.ifc.PasswordHash.using` + and :meth:`~passlib.ifc.PasswordHash.needs_update` methods. This allows much more flexibility + when using a hash directly, rather than via CryptContext, as well making it easier for + CryptContext to support hash-specific parameters. Deprecations ------------ -* The :func:`~passlib.utils.generate_secret` function has been deprecated - in favor of the new :mod:`passlib.pwd` module, and will be removed - in Passlib 2.0. + * The :func:`~passlib.utils.generate_secret` function has been deprecated + in favor of the new :mod:`passlib.pwd` module, and the old function will be removed + in Passlib 2.0. -* :class:`passlib.utils.handlers.HasManyBackends` internal API change + * :class:`passlib.utils.handlers.HasManyBackends` internal API changed: - Applications implementing a custom handler with multiple backends - should now provide :samp:`_load_backend_{name}` classmethod for each backend. - This is simpler, more flexible, and more explicit than the - previous (1.6 and earlier) API, which required a :samp:`_has_backend_{name}` - class property and a :samp:`_calc_checksum_{name}` method. Support - for the older API is deprecated, and will it be removed in Passlib 2.0. + Applications implementing a custom handler with multiple backends + should now provide :samp:`_load_backend_{name}` classmethod for each backend. + This is simpler, more flexible, and more explicit than the + previous (1.6 and earlier) API, which required a :samp:`_has_backend_{name}` + class property and a :samp:`_calc_checksum_{name}` method. -Internal Changes ----------------- -* The majority of CryptContext's internal rounds handling & migration code has been - moved to the password hashes themselves, via the new :meth:`~passlib.ifc.PasswordHash.using` - and :meth:`~passlib.ifc.PasswordHash.needs_update` methods. This allows much more flexibility - when using a hash directly, rather than via CryptContext, as well making it easier for - CryptContext to support hash-specific parameters. + Support for the older API is deprecated, and will it be removed in Passlib 2.0. Backwards Incompatibilities --------------------------- -* :func:`passlib.utils.pbkdf2.pbkdf2` no longer supports custom PRF callables. - this was an unused feature, and prevented some useful optimizations. + * :func:`passlib.utils.pbkdf2.pbkdf2` no longer supports custom PRF callables. + this was an unused feature, and prevented some useful optimizations. -* The :ref:`min_verify_time <context-min-verify-time-option>` keyword - that was deprecated in release 1.6, is now completely ignored. - It was never very useful, and now complicates the internal code needlessly. - It will be removed entirely in release 1.8. - -* New hashes generated by :class:`!HtpasswdFile` now use the strongest - algorithm available on the host, rather than one that is guaranteed to be portable. - Applications can explicitly set ``default_scheme="portable"`` to retain the old behavior. - -Todo ----- + * The :ref:`min_verify_time <context-min-verify-time-option>` keyword + that was deprecated in release 1.6, is now completely ignored. + It was never very useful, and now complicates the internal code needlessly. + It will be removed entirely in release 1.8. -* Thread safety audit and tests for CryptContext, HasManyBackends, and lazy-init subclasses. + * New hashes generated by :class:`~passlib.apache.HtpasswdFile` now use the strongest + algorithm available on the host, rather than one that is guaranteed to be portable. + Applications can explicitly set ``default_scheme="portable"`` to retain the old behavior. **1.6.6** (NOT YET RELEASED) ============================ diff --git a/docs/conf.py b/docs/conf.py index fbda296..4e8fb7e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -46,6 +46,7 @@ extensions = [ # standard sphinx extensions 'sphinx.ext.autodoc', 'sphinx.ext.todo', + 'sphinx.ext.viewcode', # 3rd part extensions 'sphinxcontrib.fulltoc', |
