This instance was upgraded to Heptapod 0.20.1 today

Commit 6d1d78c0 authored by Eli Collins's avatar Eli Collins

docs: marked 1.7 release in changelog, various doc updates

--HG--
branch : stable
parent c7963dbf5a24
......@@ -15,7 +15,7 @@ providing full-strength password hashing for multi-user application.
* See the `documentation <https://passlib.readthedocs.io>`_
for details, installation instructions, and examples.
* See the `changelog <https://passlib.readthedocs.io/en/stable/history>`_
* See the `changelog <https://passlib.readthedocs.io/en/stable/history.html>`_
for a description of what's new in Passlib.
* Visit `PyPI <https://pypi.python.org/pypi/passlib>`_
......@@ -24,7 +24,7 @@ providing full-strength password hashing for multi-user application.
`4D8592DF4CE1ED31 <http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x4D8592DF4CE1ED31>`_.
* Additional questions about usage or features? Feel free to post on our
`mailing list <http://groups.google.com/group/passlib-users>`_.
`mailing list <https://groups.google.com/group/passlib-users>`_.
Usage
=====
......@@ -56,6 +56,7 @@ Online Resources
* Downloads - https://pypi.python.org/pypi/passlib
* Source - https://bitbucket.org/ecollins/passlib/src
* Issues - https://bitbucket.org/ecollins/passlib/issues
* Roadmap - https://bitbucket.org/ecollins/passlib/wiki/Roadmap
Source
=========
......
......@@ -11,8 +11,8 @@
.. rst-class:: emphasize-children toc-always-open
**1.7.0** (NOT YET RELEASED)
============================
**1.7.0** (2016-11-22)
======================
Overview
--------
......@@ -28,17 +28,19 @@ Overview
* Support for :class:`~passlib.hash.argon2` and
:class:`~passlib.hash.scrypt` hashes.
* TOTP Two-Factor Authentications helpers in the :mod:`passlib.totp` module.
.. currentmodule:: passlib.ifc
* The misnamed :meth:`PasswordHash.encrypt` method is deprecated, new code should
now call :meth:`PasswordHash.hash` instead. This is part of a much
* The misnamed :meth:`PasswordHash.encrypt` method has been renamed to :meth:`PasswordHash.hash`
(and the old alias deprecated). This is part of a much
larger project to clean up passlib's password hashing API,
including the new :meth:`PasswordHash.using` factory constructor.
* TOTP Two-Factor Authentications helpers in the :mod:`passlib.totp` module.
see the :ref:`hash-tutorial` for a walkthrough.
* Large speedup of the internal PBKDF2 routines.
* Updated documentation
Requirements
------------
......@@ -100,47 +102,33 @@ New Features
speedup, it will now take advantage of the external `fastpbk2 <https://pypi.python.org/pypi/fastpbkdf2>`_
library, or stdlib's :func:`hashlib.pbkdf2_hmac` (when available).
Bugfixes
--------
* :class:`~passlib.hash.bcrypt`: Passlib will now detect and work around
a 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.
* :class:`~passlib.CryptContext` instances now pass contextual keywords (such as `"user"`)
to the hashes that support them, but ignore them for hashes that don't (:issue:`63`).
* The :mod:`passlib.apache` htpasswd helpers now preserve blank lines and comments,
rather than throwing a parse error (:issue:`73`).
Other Changes
-------------
* :mod:`passlib.ext.django` and unittests: compatibility fixes for Django 1.9,
and some internal cleanups (:issue:`68`).
*Other changes of note in Passlib 1.7:*
* The :class:`~passlib.hash.django_disabled` hash now appends
a 40-char alphanumeric string, to match Django's behavior.
.. currentmodule:: passlib.ifc
Other Changes
-------------
* New workflows have been for configuring the hashers through :meth:`PasswordHash.using`,
and testing hashes through :meth:`PasswordHash.needs_update`.
See the :ref:`hash-tutorial` for a walkthrough.
*Public Changes*
* :class:`~passlib.hash.bcrypt` and :class:`~passlib.hash.bcrypt_sha256`
now default to the "2b" format.
* :class:`~passlib.hash.bcrypt` and :class:`~passlib.hash.bcrypt_sha256`
now default to the "2b" format.
* Added support for Django's Argon2 wrapper (:class:`~passlib.hash.django_argon2`)
* added support for Django's Argon2 wrapper (:class:`~passlib.hash.django_argon2`)
* :class:`passlib.apache.HtpasswdFile` has been updated to support all of Apache 2.4's
hash schemes, as well as all host OS crypt formats; allowing for much more
secure hashes in htpasswd files.
* :class:`passlib.apache.HtpasswdFile` has been updated to support all of Apache 2.4's
hash schemes, as well as all host OS crypt formats; allowing for much more
secure hashes in htpasswd files. You can now specify if the default hash
should be compatible with apache 2.2 / 2.4, and host-specific or portable.
See the ``default_schemes`` keyword for details.
You can now specify if the default hash should be compatible with apache 2.2 or 2.4, and host-specific or portable.
See the ``default_schemes`` keyword for details.
* Large parts of the documentation have been rewritten, to separate
tutorial & api reference content, and provide more detail on various features.
* Large parts of the documentation have been rewritten, to separate
tutorial & api reference content, and provide more detail on various features.
* Official documentation is now at https://passlib.readthedocs.io
* Official documentation is now at https://passlib.readthedocs.io
*Internal Changes*
......@@ -159,6 +147,27 @@ Other Changes
* :func:`~passlib.utils.consteq` is now wraps stdlib's :func:`hmac.compare_digest`
when available (python 2.7.11, python 3.3 and up).
Bugfixes
--------
* :class:`~passlib.hash.bcrypt`: Passlib will now detect and work around
a 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.
* :class:`~passlib.CryptContext` instances now pass contextual keywords (such as `"user"`)
to the hashes that support them, but ignore them for hashes that don't (:issue:`63`).
* The :mod:`passlib.apache` htpasswd helpers now preserve blank lines and comments,
rather than throwing a parse error (:issue:`73`).
* :mod:`passlib.ext.django` and unittests: compatibility fixes for Django 1.9 / 1.10,
and some internal refactoring (:issue:`68`).
* The :class:`~passlib.hash.django_disabled` hash now appends
a 40-char alphanumeric string, to match Django's behavior.
.. _encrypt-method-cleanup:
Deprecations
......@@ -266,20 +275,15 @@ Other Deprecations
* Some deprecations and internal changes have been made to the :mod:`passlib.utils.handlers`
module, which provides the common framework Passlib uses to implement hashers.
.. warning::
.. caution::
Developers who are importing from the :mod:`!passlib.utils.handlers` module directly are strongly encouraged
to contact the Passlib `mailing list <http://groups.google.com/group/passlib-users>`_.
Backwards-incompatible relocations will occur in the Passlib 1.8 / 1.9 releases.
More backwards-incompatible relocations are planned for the internal
:mod:`!passlib.utils` module in the Passlib 1.8 / 1.9 releases.
Backwards Incompatibilities
---------------------------
Changes in existing behavior:
* **[moderate]** :mod:`passlib.apache`: 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 ``HtPasswdFile(default_scheme="portable")`` to restore the old behavior.
* **[minor]** M2Crypto no longer used to accelerate pbkdf2-hmac-sha1; applications relying on this
to speed up :class:`~passlib.hash.pbkdf2_sha1` should install
`fastpbkdf2 <https://pypi.python.org/pypi/fastpbkdf2>`_.
......
......@@ -4,7 +4,7 @@
Release History
===============
.. centered:: This documentation is for the :ref:`1.7.0 Release <whats-new>` of Passlib.
.. centered:: This is the documentation for the :ref:`1.7.0 Release <whats-new>` of Passlib.
.. rst-class:: float-right
......
......@@ -77,6 +77,6 @@ Online Resources
=================== ===================================================
Latest Docs: `<https://passlib.readthedocs.io>`_
Project Home: `<https://bitbucket.org/ecollins/passlib>`_
News & Discussion: `<http://groups.google.com/group/passlib-users>`_
News & Discussion: `<https://groups.google.com/group/passlib-users>`_
Downloads @ PyPI: `<https://pypi.python.org/pypi/passlib>`_
=================== ===================================================
......@@ -14,23 +14,6 @@
Constants
=========
Base64 Encoding
===============
Base64Engine Class
------------------
Passlib has to deal with a number of different Base64 encodings,
with varying endianness, as well as wildly different character <-> value
mappings. This is all encapsulated in the :class:`Base64Engine` class,
which provides common encoding actions for an arbitrary base64-style encoding
scheme. There are also a couple of predefined instances which are commonly
used by the hashes in Passlib.
.. autoclass:: Base64Engine
Common Character Maps
---------------------
.. data:: BASE64_CHARS
Character map used by standard MIME-compatible Base64 encoding scheme.
......@@ -52,6 +35,23 @@ Common Character Maps
The ordering is wildly different from both the standard base64 character map,
and the common hash64 character map.
..
TODO: document the other constants
Base64 Encoding
===============
Base64Engine Class
------------------
Passlib has to deal with a number of different Base64 encodings,
with varying endianness, as well as wildly different character <-> value
mappings. This is all encapsulated in the :class:`Base64Engine` class,
which provides common encoding actions for an arbitrary base64-style encoding
scheme. There are also a couple of predefined instances which are commonly
used by the hashes in Passlib.
.. autoclass:: Base64Engine
Predefined Instances
--------------------
.. data:: h64
......@@ -77,8 +77,10 @@ Other
-----
.. autofunction:: ab64_encode
.. autofunction:: ab64_decode
.. autofunction:: b32_encode
.. autofunction:: b32_decode
.. autofunction:: b64s_encode
.. autofunction:: b64s_decode
.. autofunction:: b32encode
.. autofunction:: b32decode
..
.. data:: AB64_CHARS
......
......@@ -2594,7 +2594,7 @@ class CryptContext(object):
def disable(self, hash=None):
"""
return a string to disable logins for user,
usually by returning an unusable string such as ``"!"``.
usually by returning a non-verifying string such as ``"!"``.
:param hash:
Callers can optionally provide the account's existing hash.
......
......@@ -88,15 +88,20 @@ providing full-strength password hashing for multi-user applications.
* See the `homepage <https://bitbucket.org/ecollins/passlib>`_
for the latest news and more information.
* See the `changelog <https://passlib.readthedocs.io/en/stable/history>`_
* See the `changelog <https://passlib.readthedocs.io/en/stable/history.html>`_
for a description of what's new in Passlib.
All releases are signed with the gpg key
`4D8592DF4CE1ED31 <http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x4D8592DF4CE1ED31>`_.
"""
KEYWORDS = "password secret hash security crypt md5-crypt \
sha256-crypt sha512-crypt bcrypt apache htpasswd htdigest pbkdf2"
KEYWORDS = """\
password secret hash security
crypt md5-crypt
sha256-crypt sha512-crypt pbkdf2 argon2 scrypt bcrypt
apache htpasswd htdigest
totp 2fa
"""
CLASSIFIERS = """\
Intended Audience :: Developers
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment