./security/py-passlib, Comprehensive password hashing framework supporting over 30 schemes

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 1.7.4, Package name: py37-passlib-1.7.4, Maintainer: kleink

Passlib is a password hashing library for Python 2 & 3, which
provides cross-platform implementations of over 30 password hashing
algorithms, as well as a framework for managing existing password
hashes. It's designed to be useful for a wide range of tasks, from
verifying a hash found in /etc/shadow, to providing full-strength
password hashing for multi-user application.


Required to run:
[devel/py-setuptools] [lang/python37]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 7881275c4fdbb235ebf610e4fd0b661d9fb3c249
RMD160: b32ad2ad061cc5eaac37b114684f8364686dfbdd
Filesize: 673.676 KB

Version history: (Expand)


CVS history: (Expand)


   2020-10-12 13:57:03 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-passlib: updated to 1.7.4

**1.7.4** (2020-10-08)
======================

Small followup to 1.7.3 release.

Bugfixes
--------

* Fixed some Python 2.6 errors from last release (:issue:`128`)

Other Changes
-------------

* :mod:`passlib.ext.django` -- updated tests to pass for Django 1.8 - 3.1 \ 
(:issue:`98`);
  along with some internal refactoring of the test classes.

* .. py:currentmodule:: passlib.context

  :class:`CryptContext` will now throw :exc:`~passlib.exc.UnknownHashError` when \ 
it can't identify
  a hash provided to methods such as :meth:`!CryptContext.verify`.
  Previously it would throw a generic :exc:`ValueError`.

Deprecations
------------

* :mod:`passlib.ext.django`: This extension will require Django 2.2 or newer as \ 
of Passlib 1.8.

**1.7.3** (2020-10-06)
======================

This release rolls up assorted bug & compatibility fixes since 1.7.2.

Administrative Changes
----------------------

.. rst-class:: without-title

.. note::

  **Passlib has moved to Heptapod!**

  Due to BitBucket deprecating Mercurial support, Passlib's public repository \ 
and issue tracker
  has been relocated.  It's now located at \ 
`<https://foss.heptapod.net/python-libs/passlib>`_,
  and is powered by `Heptapod <https://heptapod.net/>`_.

  Hosting for this and other open-source projects graciously provided by the \ 
people at
  `Octobus <https://octobus.net/>`_ and `CleverCloud \ 
<https://clever-cloud.com/>`_!

  The mailing list and documentation urls remain the same.

New Features
------------

* .. py:currentmodule:: passlib.hash

  :class:`ldap_salted_sha512`: LDAP "salted hash" support added for \ 
SHA-256 and SHA-512 (:issue:`124`).

Bugfixes
--------

* .. py:currentmodule:: passlib.hash

  :class:`bcrypt`: Under python 3, OS native backend wasn't being detected on \ 
BSD platforms.
  This was due to a few internal issues in feature-detection code, which have \ 
been fixed.

* :func:`passlib.utils.safe_crypt`: Support :func:`crypt.crypt` unexpectedly
  returning bytes under Python 3 (:issue:`113`).

* :func:`passlib.utils.safe_crypt`: Support :func:`crypt.crypt` throwing \ 
:exc:`OSError`,
  which can happen as of Python 3.9 (:issue:`115`).

* :mod:`passlib.ext.django`: fixed lru_cache import (django 3 compatibility)

* :mod:`!passlib.tests`: fixed bug where \ 
:meth:`HandlerCase.test_82_crypt_support` wasn't
  being run on systems lacking support for the hasher being tested.
  This test now runs regardless of system support.

Other Changes
-------------

* .. py:currentmodule:: passlib.hash

  :class:`bcrypt_sha256`:  Internal algorithm has been changed to use \ 
HMAC-SHA256 instead of
  plain SHA256.  This should strengthen the hash against brute-force attempts \ 
which bypass
  the intermediary hash by using known-sha256-digest lookup tables (:issue:`114`).

* .. py:currentmodule:: passlib.hash

  :class:`bcrypt`: OS native backend ("os_crypt") now raises the new \ 
:exc:`~passlib.exc.PasswordValueError`
  if password is provided as non-UTF8 bytes under python 3
  (These can't be passed through, due to limitation in stdlib's \ 
:func:`!crypt.crypt`).
  Prior to this release, it confusingly raised \ 
:exc:`~passlib.exc.MissingBackendError` instead.

  Also improved legacy bcrypt format workarounds, to support a few more UTF8 \ 
edge cases than before.

* Modified some internals to help run on FIPS systems (:issue:`116`):

  In particular, when MD5 hash is not available, :class:`~passlib.hash.hex_md5`
  will now return a dummy hasher which throws an error if used; rather than throwing
  an uncaught :exc:`!ValueError` when an application attempts to import it.  \ 
(Similar behavior
  added for the other unsalted digest hashes).

  .. py:currentmodule:: passlib.crypto.digest

  Also, :func:`lookup_hash`'s ``required=False`` kwd was modified to report \ 
unsupported hashes
  via the :attr:`HashInfo.supported` attribute; rather than letting ValueErrors \ 
through uncaught.

  This should allow CryptContext instances to be created on FIPS systems without \ 
having
  a load-time error (though they will still receive an error if an attempt is \ 
made to actually
  *use* a FIPS-disabled hash).

* Internal errors calling stdlib's :func:`crypt.crypt`, or third party libraries,
  will now raise the new :exc:`~passlib.exc.InternalBackendError` (a RuntimeError);
  where previously it would raise an :exc:`AssertionError`.

* Various Python 3.9 compatibility fixes (including ``NotImplemented``-related \ 
warning, :issue:`125`)
   2020-09-27 12:38:25 by Klaus Klein | Files touched by this commit (1) | Package updated
Log message:
py-passlib: Update HOMEPAGE.
   2019-11-24 12:36:53 by Adam Ciarcinski | Files touched by this commit (2) | Package updated
Log message:
py-passlib: updated to 1.7.2

1.7.2:
This release rolls up assorted bug & compatibility fixes since 1.7.1.

New Features

* .. py:currentmodule:: passlib.hash
  :class:`argon2`: Now supports Argon2 "ID" and "D" hashes \ 
(assuming new enough backend library).
  Now defaults to "ID" hashes instead of "I" hashes, but \ 
this can be overridden via ``type`` keyword.

* .. py:currentmodule:: passlib.hash
  :class:`scrypt`: Now uses python 3.6 stdlib's :func:`hashlib.scrypt` as backend,
  if present
   2017-06-21 12:24:19 by Adam Ciarcinski | Files touched by this commit (3)
Log message:
1.7.1:
Argon2 & Scrypt hash support
TOTP support
PBKDF2 now has faster builtin backend, and utilizes other backends where available
Lots of API cleanups and internal refactoring
HtpasswdFile reader is now more flexible, and with improved security options.
Refreshed documentation
   2016-06-08 19:43:49 by Thomas Klausner | Files touched by this commit (356)
Log message:
Switch to MASTER_SITES_PYPI.
   2015-11-04 02:18:12 by Alistair G. Crooks | Files touched by this commit (434)
Log message:
Add SHA512 digests for distfiles for security category

Problems found locating distfiles:
	Package f-prot-antivirus6-fs-bin: missing distfile fp-NetBSD.x86.32-fs-6.2.3.tar.gz
	Package f-prot-antivirus6-ws-bin: missing distfile fp-NetBSD.x86.32-ws-6.2.3.tar.gz
	Package libidea: missing distfile libidea-0.8.2b.tar.gz
	Package openssh: missing distfile openssh-7.1p1-hpn-20150822.diff.bz2
	Package uvscan: missing distfile vlp4510e.tar.Z

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2015-08-14 20:46:33 by Klaus Klein | Files touched by this commit (2) | Package updated
Log message:
Update py-passlib to 1.6.5.

**1.6.5** (2015-08-04) ======================

   Fixed some minor bugs in the test suite which were causing
   erroneous test failures (:issue:`57` and :issue:`58`). The passlib
   library itself is unchanged.

**1.6.4** (2015-07-25) ======================

    This release rolls up assorted bug & compatibility fixes since
    1.6.2.

Bugfixes --------

    * Correctly detect bcrypt 2.0.  Previous releases were incorrectly
      detecting it as py-bcrypt,
      causing spurious errors (:issue:`56`).

    * CryptContext now accepts scheme names as unicode (:issue:`54`).

    * :mod:`passlib.ext.django` now works correctly with Django
      1.7-1.8. Previous
      releases had various test failures (:issue:`52`).

    * :class:`passlib.apache.HtpasswdFile` now recognizes bcrypt,
      sha256_crypt, sha512_crypt
      hashes (:issue:`55`).

BCrypt Changes --------------

    A few changes have been made to the :class:`~passlib.hash.bcrypt`
    hash:

    * It now supports the ``$2b$`` hash format.

    * It will now issue a :exc:`~passlib.exc.PasslibSecurityWarning`
      if the active backend
      is vulnerable to the :ref:`wraparound bug <bsd-wraparound-bug>`,
      and automatically enable a workaround (py-bcrypt is known to
      be vulnerable as of v0.4).

    * It will throw a :exc:`~passlib.exc.PasslibSecurityError` if
      the active backend
      is vulnerable to the :ref:`8-bit bug <crypt-blowfish-bug>`
      (none of Passlib's backends are known to be vulnerable as of
      2015-07).

    * Updated documentation to indicate the cffi-based `bcrypt
      <https://pypi.python.org/pypi/bcrypt>`_
      library is now the recommended bcrypt backend.

    * Backend capability detection code refactored to rely on runtime
      detection
      rather than hardcoded information.

Other Changes -------------

    * Source repo's ``tox.ini`` updated.  Now assumes python3 by
      default, and refactored test
      environments to more cleanly delineate the different setups
      being tested.

    * Passlib releases are now published as wheels instead of eggs.

.. note::

    Release **1.6.3** was skipped due to upload issues.
   2014-01-25 11:30:32 by Thomas Klausner | Files touched by this commit (533) | Package updated
Log message:
Mark packages as not ready for python-3.x where applicable;
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE=  33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE=  33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.

Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.

Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.

Whitespace cleanups and other nits corrected, where necessary.