Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 674353 Details for
Bug 756103
dev-python/passlib-1.7.4 fails tests with PyPy3
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
build.log
build.log (text/plain), 449.60 KB, created by
Agostino Sarubbo
on 2020-11-22 18:17:01 UTC
(
hide
)
Description:
build.log
Filename:
MIME Type:
Creator:
Agostino Sarubbo
Created:
2020-11-22 18:17:01 UTC
Size:
449.60 KB
patch
obsolete
> * Package: dev-python/passlib-1.7.4 > * Repository: gentoo > * Maintainer: prometheanfire@gentoo.org openstack@gentoo.org,python@gentoo.org > * USE: abi_x86_64 amd64 bcrypt elibc_glibc kernel_linux python_targets_pypy3 python_targets_python3_6 python_targets_python3_7 python_targets_python3_8 python_targets_python3_9 scrypt test totp userland_GNU > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox > > >@@@@@ PLEASE PAY ATTENTION HERE!!! @@@@@ >This information may help you to understand if this is a duplicate or if this bug exists after you pushed a fix; >This ebuild was merged at the following commit: >https://github.com/gentoo/gentoo/commit/e4bfcb396befd930753c877935f5be88ac4a838a (Sun Nov 22 15:44:14 UTC 2020) >@@@@@ END @@@@@ > > > >emerge --info: >Portage 3.0.10 (python 3.7.9-final-0, default/linux/amd64/17.1, gcc-10.2.0, glibc-2.32-r3, 4.19.102-gentoo x86_64) >================================================================= >System uname: Linux-4.19.102-gentoo-x86_64-Intel-R-_Xeon-R-_CPU_E5-2650_v4_@_2.20GHz-with-gentoo-2.7 >KiB Mem: 264031048 total, 189493264 free >KiB Swap: 0 total, 0 free >sh bash 5.0_p18 >ld GNU ld (Gentoo 2.35.1 p2) 2.35.1 >app-shells/bash: 5.0_p18::gentoo >dev-lang/perl: 5.30.3-r1::gentoo >dev-lang/python: 2.7.18-r4::gentoo, 3.6.12::gentoo, 3.7.9::gentoo, 3.8.6::gentoo, 3.9.0::gentoo >dev-util/cmake: 3.19.0::gentoo >sys-apps/baselayout: 2.7-r1::gentoo >sys-apps/openrc: 0.42.1::gentoo >sys-apps/sandbox: 2.20::gentoo >sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo >sys-devel/automake: 1.16.3-r1::gentoo >sys-devel/binutils: 2.35.1-r1::gentoo >sys-devel/gcc: 10.2.0-r3::gentoo >sys-devel/gcc-config: 2.3.2-r1::gentoo >sys-devel/libtool: 2.4.6-r6::gentoo >sys-devel/make: 4.3::gentoo >sys-kernel/linux-headers: 5.9::gentoo (virtual/os-headers) >sys-libs/glibc: 2.32-r3::gentoo >Repositories: > >gentoo > location: /usr/portage > sync-type: rsync > sync-uri: rsync://rsync.gentoo.org/gentoo-portage > priority: -1000 > sync-rsync-verify-metamanifest: yes > sync-rsync-extra-opts: > sync-rsync-verify-max-age: 24 > sync-rsync-verify-jobs: 1 > >ACCEPT_KEYWORDS="amd64 ~amd64" >ACCEPT_LICENSE="* BSD-2" >CBUILD="x86_64-pc-linux-gnu" >CFLAGS="-O2 -pipe -march=x86-64 -frecord-gcc-switches" >CHOST="x86_64-pc-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" >CXXFLAGS="-O2 -pipe -march=x86-64 -frecord-gcc-switches" >DISTDIR="/var/tmp/portage/dev-python/passlib-1.7.4/distdir" >EMERGE_DEFAULT_OPTS="--with-bdeps=y -1 -k -b" >ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" >FCFLAGS="-O2 -pipe -march=x86-64 -frecord-gcc-switches" >FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" >FFLAGS="-O2 -pipe -march=x86-64 -frecord-gcc-switches" >GENTOO_MIRRORS="http://distfiles.gentoo.org" >LANG="en_US.utf8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0" >MAKEOPTS="-j48 V=1" >PKGDIR="/root/.packages" >PORTAGE_CONFIGROOT="/" >PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" >PORTAGE_TMPDIR="/var/tmp" >USE="acl amd64 bcrypt berkdb bzip2 cli crypt dri elogind fortran gdbm iconv ipv6 jumbo-build libglvnd libtirpc multilib native-symlinks ncurses nls nptl openmp pam pcre readline scrypt seccomp split-usr ssl tcpd test totp unicode xattr zlib" ABI_X86="64" ELIBC="glibc" KERNEL="linux" PYTHON_TARGETS="pypy3 python3_6 python3_7 python3_8 python3_9" USERLAND="GNU" >Unset: CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS > > > > > >emerge history: >2020-11-22T17:00:43 >>> dev-python/bcrypt >2020-11-22T17:00:44 >>> dev-python/scrypt >2020-11-22T17:00:53 >>> dev-python/passlib >2020-11-22T17:01:35 >>> dev-python/nose > > >>>> Unpacking source... >>>> Unpacking passlib-1.7.4.tar.gz to /var/tmp/portage/dev-python/passlib-1.7.4/work >>>> Source unpacked in /var/tmp/portage/dev-python/passlib-1.7.4/work >>>> Preparing source in /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4 ... >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4 ... > * pypy3: running distutils-r1_run_phase distutils-r1_python_compile >pypy3 setup.py build -j 48 >running build >running build_py >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/exc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/hash.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/ifc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >copying passlib/win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_setup >copying passlib/_setup/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_setup >copying passlib/_setup/stamp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_setup >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto >copying passlib/crypto/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto >copying passlib/crypto/_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto >copying passlib/crypto/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto >copying passlib/crypto/digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/ext >copying passlib/ext/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/ext >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/des_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/fshp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/ldap_digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/misc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/mssql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/mysql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/oracle.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/phpass.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/postgres.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/roundup.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/scram.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/sha1_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/sha2_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/sun_md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >copying passlib/handlers/windows.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/handlers >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/__main__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/_test_bad_register.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/backports.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_context_deprecated.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_crypto_builtin_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_crypto_des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_crypto_digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_crypto_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_ext_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_ext_django_source.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_handlers_argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_handlers_bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_handlers_cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_handlers_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_handlers_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_handlers_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_utils_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_utils_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_utils_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/test_win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/tox_support.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >copying passlib/utils/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >copying passlib/utils/binary.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >copying passlib/utils/decor.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >copying passlib/utils/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >copying passlib/utils/handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >copying passlib/utils/md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >copying passlib/utils/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/base.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/unrolled.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/_blowfish >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_builtin.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_salsa.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/crypto/scrypt >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/ext/django >copying passlib/ext/django/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/ext/django >copying passlib/ext/django/models.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/ext/django >copying passlib/ext/django/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/ext/django >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils/compat >copying passlib/utils/compat/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils/compat >copying passlib/utils/compat/_ordered_dict.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/utils/compat >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_data >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/bip39.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_long.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_prefixed.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_short.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/_data/wordsets >copying passlib/tests/sample1.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/sample1b.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/sample1c.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >copying passlib/tests/sample_config_1s.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-pypy3/lib/passlib/tests >warning: build_py: byte-compiling is disabled, skipping. > > * python3_6: running distutils-r1_run_phase distutils-r1_python_compile >python3.6 setup.py build -j 48 >running build >running build_py >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/exc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/hash.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/ifc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >copying passlib/win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_setup >copying passlib/_setup/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_setup >copying passlib/_setup/stamp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_setup >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto >copying passlib/crypto/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto >copying passlib/crypto/_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto >copying passlib/crypto/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto >copying passlib/crypto/digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/ext >copying passlib/ext/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/ext >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/des_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/fshp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/ldap_digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/misc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/mssql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/mysql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/oracle.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/phpass.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/postgres.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/roundup.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/scram.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/sha1_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/sha2_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/sun_md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >copying passlib/handlers/windows.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/handlers >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/__main__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/_test_bad_register.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/backports.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_context_deprecated.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_crypto_builtin_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_crypto_des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_crypto_digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_crypto_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_ext_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_ext_django_source.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_handlers_argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_handlers_bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_handlers_cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_handlers_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_handlers_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_handlers_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_utils_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_utils_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_utils_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/test_win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/tox_support.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >copying passlib/utils/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >copying passlib/utils/binary.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >copying passlib/utils/decor.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >copying passlib/utils/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >copying passlib/utils/handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >copying passlib/utils/md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >copying passlib/utils/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/base.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/unrolled.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/_blowfish >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_builtin.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_salsa.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/crypto/scrypt >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/ext/django >copying passlib/ext/django/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/ext/django >copying passlib/ext/django/models.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/ext/django >copying passlib/ext/django/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/ext/django >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils/compat >copying passlib/utils/compat/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils/compat >copying passlib/utils/compat/_ordered_dict.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/utils/compat >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_data >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/bip39.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_long.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_prefixed.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_short.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/_data/wordsets >copying passlib/tests/sample1.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/sample1b.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/sample1c.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >copying passlib/tests/sample_config_1s.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_6/lib/passlib/tests >warning: build_py: byte-compiling is disabled, skipping. > > * python3_7: running distutils-r1_run_phase distutils-r1_python_compile >python3.7 setup.py build -j 48 >running build >running build_py >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/exc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/hash.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/ifc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >copying passlib/win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_setup >copying passlib/_setup/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_setup >copying passlib/_setup/stamp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_setup >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto >copying passlib/crypto/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto >copying passlib/crypto/_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto >copying passlib/crypto/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto >copying passlib/crypto/digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/ext >copying passlib/ext/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/ext >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/des_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/fshp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/ldap_digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/misc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/mssql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/mysql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/oracle.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/phpass.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/postgres.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/roundup.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/scram.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/sha1_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/sha2_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/sun_md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >copying passlib/handlers/windows.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/handlers >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/__main__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/_test_bad_register.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/backports.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_context_deprecated.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_crypto_builtin_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_crypto_des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_crypto_digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_crypto_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_ext_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_ext_django_source.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_handlers_argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_handlers_bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_handlers_cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_handlers_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_handlers_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_handlers_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_utils_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_utils_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_utils_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/test_win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/tox_support.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >copying passlib/utils/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >copying passlib/utils/binary.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >copying passlib/utils/decor.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >copying passlib/utils/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >copying passlib/utils/handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >copying passlib/utils/md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >copying passlib/utils/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/base.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/unrolled.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/_blowfish >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_builtin.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_salsa.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/crypto/scrypt >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/ext/django >copying passlib/ext/django/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/ext/django >copying passlib/ext/django/models.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/ext/django >copying passlib/ext/django/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/ext/django >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils/compat >copying passlib/utils/compat/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils/compat >copying passlib/utils/compat/_ordered_dict.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/utils/compat >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_data >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/bip39.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_long.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_prefixed.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_short.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/_data/wordsets >copying passlib/tests/sample1.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/sample1b.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/sample1c.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >copying passlib/tests/sample_config_1s.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_7/lib/passlib/tests >warning: build_py: byte-compiling is disabled, skipping. > > * python3_8: running distutils-r1_run_phase distutils-r1_python_compile >python3.8 setup.py build -j 48 >running build >running build_py >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/exc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/hash.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/ifc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >copying passlib/win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_setup >copying passlib/_setup/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_setup >copying passlib/_setup/stamp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_setup >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto >copying passlib/crypto/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto >copying passlib/crypto/_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto >copying passlib/crypto/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto >copying passlib/crypto/digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/ext >copying passlib/ext/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/ext >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/des_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/fshp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/ldap_digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/misc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/mssql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/mysql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/oracle.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/phpass.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/postgres.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/roundup.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/scram.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/sha1_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/sha2_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/sun_md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >copying passlib/handlers/windows.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/handlers >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/__main__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/_test_bad_register.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/backports.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_context_deprecated.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_crypto_builtin_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_crypto_des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_crypto_digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_crypto_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_ext_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_ext_django_source.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_handlers_argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_handlers_bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_handlers_cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_handlers_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_handlers_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_handlers_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_utils_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_utils_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_utils_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/test_win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/tox_support.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >copying passlib/utils/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >copying passlib/utils/binary.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >copying passlib/utils/decor.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >copying passlib/utils/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >copying passlib/utils/handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >copying passlib/utils/md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >copying passlib/utils/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/base.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/unrolled.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/_blowfish >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_builtin.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_salsa.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/crypto/scrypt >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/ext/django >copying passlib/ext/django/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/ext/django >copying passlib/ext/django/models.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/ext/django >copying passlib/ext/django/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/ext/django >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils/compat >copying passlib/utils/compat/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils/compat >copying passlib/utils/compat/_ordered_dict.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/utils/compat >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_data >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/bip39.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_long.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_prefixed.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_short.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/_data/wordsets >copying passlib/tests/sample1.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/sample1b.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/sample1c.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >copying passlib/tests/sample_config_1s.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_8/lib/passlib/tests >warning: build_py: byte-compiling is disabled, skipping. > > * python3_9: running distutils-r1_run_phase distutils-r1_python_compile >python3.9 setup.py build -j 48 >running build >running build_py >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/exc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/hash.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/ifc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >copying passlib/win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_setup >copying passlib/_setup/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_setup >copying passlib/_setup/stamp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_setup >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto >copying passlib/crypto/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto >copying passlib/crypto/_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto >copying passlib/crypto/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto >copying passlib/crypto/digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/ext >copying passlib/ext/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/ext >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/des_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/fshp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/ldap_digests.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/misc.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/mssql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/mysql.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/oracle.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/phpass.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/postgres.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/roundup.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/scram.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/sha1_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/sha2_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/sun_md5_crypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >copying passlib/handlers/windows.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/handlers >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/__main__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/_test_bad_register.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/backports.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_apache.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_apps.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_context.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_context_deprecated.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_crypto_builtin_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_crypto_des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_crypto_digest.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_crypto_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_ext_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_ext_django_source.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_handlers_argon2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_handlers_bcrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_handlers_cisco.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_handlers_django.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_handlers_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_handlers_scrypt.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_hosts.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_pwd.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_registry.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_totp.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_utils_handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_utils_md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_utils_pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/test_win32.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/tox_support.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >copying passlib/utils/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >copying passlib/utils/binary.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >copying passlib/utils/decor.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >copying passlib/utils/des.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >copying passlib/utils/handlers.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >copying passlib/utils/md4.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >copying passlib/utils/pbkdf2.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/base.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/_blowfish >copying passlib/crypto/_blowfish/unrolled.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/_blowfish >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_builtin.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_gen_files.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/scrypt >copying passlib/crypto/scrypt/_salsa.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/crypto/scrypt >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/ext/django >copying passlib/ext/django/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/ext/django >copying passlib/ext/django/models.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/ext/django >copying passlib/ext/django/utils.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/ext/django >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils/compat >copying passlib/utils/compat/__init__.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils/compat >copying passlib/utils/compat/_ordered_dict.py -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/utils/compat >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_data >creating /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/bip39.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_long.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_prefixed.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_data/wordsets >copying passlib/_data/wordsets/eff_short.txt -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/_data/wordsets >copying passlib/tests/sample1.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/sample1b.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/sample1c.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >copying passlib/tests/sample_config_1s.cfg -> /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4-python3_9/lib/passlib/tests >warning: build_py: byte-compiling is disabled, skipping. > >>>> Source compiled. >>>> Test phase: dev-python/passlib-1.7.4 > * pypy3: running distutils-r1_run_phase python_test >HtdigestFile: test constructor autoload ... ok >HtdigestFile: test delete() ... ok >HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok >HtdigestFile: test update() ... ok >HtdigestFile: test users() ... ok >HtdigestFile: test check_password() ... ok >HtdigestFile: test load() ... ok >HtdigestFile: test save() ... ok >HtdigestFile: test realms() & delete_realm() ... ok >HtdigestFile: test get_hash() ... ok >HtdigestFile: test encoding parameter ... ok >HtdigestFile: test to_string() ... ok >HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok >HtpasswdFile: test constructor autoload ... ok >HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok >HtpasswdFile: test delete() ... ok >HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok >HtpasswdFile: test set_password() ... ok >HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok >HtpasswdFile: test set_password() -- default_scheme ... ok >HtpasswdFile: test users() ... ok >HtpasswdFile: test check_password() ... ok >HtpasswdFile: test load() ... ok >HtpasswdFile: test save() ... ok >HtpasswdFile: test 'encoding' kwd ... ok >HtpasswdFile: test get_hash() ... ok >HtpasswdFile: test to_string ... ok >HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok >HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok >HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok >HtpasswdFile: whitespace & comment handling ... ok >HtpasswdFile: verify "htpasswd" command can read output ... SKIP: requires `htpasswd` cmdline tool >HtpasswdFile: verify "htpasswd" command can read bcrypt format ... SKIP: requires `htpasswd` cmdline tool >test_custom_app_context (passlib.tests.test_apps.AppsTest) ... ok >test_django16_context (passlib.tests.test_apps.AppsTest) ... ok >test_django_context (passlib.tests.test_apps.AppsTest) ... ok >test_ldap_context (passlib.tests.test_apps.AppsTest) ... ok >test_ldap_mysql_context (passlib.tests.test_apps.AppsTest) ... ok >test_ldap_nocrypt_context (passlib.tests.test_apps.AppsTest) ... ok >test_master_context (passlib.tests.test_apps.AppsTest) ... ok >test_phpbb3_context (passlib.tests.test_apps.AppsTest) ... ok >test_phppass_context (passlib.tests.test_apps.AppsTest) ... ok >test_postgres_context (passlib.tests.test_apps.AppsTest) ... ok >test_roundup_context (passlib.tests.test_apps.AppsTest) ... ok >CryptContext: test class constructor ... ok >CryptContext: test from_string() constructor ... ok >CryptContext: test from_path() constructor ... ok >CryptContext: test copy() method ... ok >CryptContext: test repr() ... ok >CryptContext: test load() / load_path() method ... ok >CryptContext: test load() errors restore old state ... ok >CryptContext: test update() method ... ok >CryptContext: test basic option parsing ... ok >CryptContext: test 'schemes' context option parsing ... ok >CryptContext: test 'deprecated' context option parsing ... ok >CryptContext: test 'default' context option parsing ... ok >CryptContext: test 'vary_rounds' hash option parsing ... ok >CryptContext: test schemes() method ... ok >CryptContext: test default_scheme() method ... ok >CryptContext: test handler() method ... ok >CryptContext: test internal _get_record_options() method ... ok >CryptContext: test to_dict() method ... ok >CryptContext: test to_string() method ... ok >CryptContext: test basic hash/identify/verify functionality ... ok >CryptContext: test genconfig() method ... ok >CryptContext: test genhash() method ... ok >CryptContext: test hash() method ... ok >CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok >CryptContext: test identify() border cases ... ok >CryptContext: test verify() scheme kwd ... ok >CryptContext: test needs_update() method ... ok >CryptContext: test verify_and_update() ... ok >CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok >CryptContext: test rounds limits ... ok >CryptContext: test linear vary rounds ... ok >CryptContext: test log2 vary rounds ... ok >CryptContext: test deprecated='auto' is handled correctly ... ok >CryptContext: disabled hash support ... ok >CryptContext: dummy_verify() method ... ok >CryptContext: harden_verify -- parsing ... ok >LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok >LazyCryptContext: test plain kwds ... ok >CryptContext: test constructor ... ok >CryptContext: test replace() ... ok >CryptContext: test no handlers ... ok >CryptContext: test hash_needs_update() method ... ok >CryptContext: test non-string hash values cause error ... ok >CryptPolicy: test CryptPolicy() constructor ... ok >CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok >CryptPolicy: test CryptPolicy.from_path() constructor ... ok >CryptPolicy: test CryptPolicy.from_string() constructor ... ok >CryptPolicy: test CryptPolicy.from_source() constructor ... ok >CryptPolicy: test CryptPolicy.from_sources() constructor ... ok >CryptPolicy: test CryptPolicy.replace() constructor ... ok >CryptPolicy: test CryptPolicy() forbidden kwds ... ok >CryptPolicy: test has_schemes() method ... ok >CryptPolicy: test iter_handlers() method ... ok >CryptPolicy: test get_handler() method ... ok >CryptPolicy: test get_options() method ... ok >CryptPolicy: test handler_is_deprecated() method ... ok >CryptPolicy: test get_min_verify_time() method ... ok >CryptPolicy: test iter_config() method ... ok >CryptPolicy: test to_dict() method ... ok >CryptPolicy: test to_string() method ... ok >LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok >LazyCryptContext: test plain kwds ... ok >passlib.crypto._md4.md4(): informational attributes ... ok >passlib.crypto._md4.md4(): copy() method ... ok >passlib.crypto._md4.md4(): digest() method ... ok >passlib.crypto._md4.md4(): hexdigest() method ... ok >passlib.crypto._md4.md4(): update() method ... ok >hashlib.new('md4'): informational attributes ... ok >hashlib.new('md4'): copy() method ... ok >hashlib.new('md4'): digest() method ... ok >hashlib.new('md4'): hexdigest() method ... ok >hashlib.new('md4'): update() method ... ok >passlib.crypto.des: expand_des_key() ... ok >passlib.crypto.des: shrink_des_key() ... ok >passlib.crypto.des: des_encrypt_block() ... ok >passlib.crypto.des: des_encrypt_int_block() ... ok >passlib.crypto.digest: lookup_hash() -- alternate types ... ok >passlib.crypto.digest: lookup_hash() -- constructor ... ok >passlib.crypto.digest: lookup_hash() -- metadata ... ok >passlib.crypto.digest: lookup_hash() -- unknown hash name ... ok >passlib.crypto.digest: lookup_hash() -- test set_mock_fips_mode() ... ok >passlib.crypto.digest: norm_hash_name() ... ok >passlib.crypto.digest.pbkdf1: test border cases ... ok >passlib.crypto.digest.pbkdf1: test reference vectors ... ok >passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: verify expected backends are present ... ok >passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: test border cases ... ok >passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: test keylen==None ... ok >passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: test reference vectors ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: backend management ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: 'keylen' parameter ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: backend management -- missing backend ... SKIP: non-builtin backend is present >passlib.utils.scrypt.scrypt() <builtin backend>: 'n' (rounds) parameter ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: compare output to other backends ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: 'p' (parallelism) parameter ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: 'r' (block size) parameter ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: reference vectors ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: 'salt' parameter ... ok >passlib.utils.scrypt.scrypt() <builtin backend>: 'secret' parameter ... ok >passlib.crypto.scrypt._builtin: bmix() ... ok >passlib.crypto.scrypt._builtin: salsa20() ... ok >passlib.crypto.scrypt._builtin: smix() ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: backend management ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: backend management -- default backend ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: 'keylen' parameter ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: 'n' (rounds) parameter ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: compare output to other backends ... /var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4/passlib/crypto/scrypt/__init__.py:165: PasslibSecurityWarning: Using builtin scrypt backend, which is 10x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended > "is strongly recommended" % slowdown, exc.PasslibSecurityWarning) >ok >passlib.utils.scrypt.scrypt() <scrypt backend>: 'p' (parallelism) parameter ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: 'r' (block size) parameter ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: reference vectors ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: 'salt' parameter ... ok >passlib.utils.scrypt.scrypt() <scrypt backend>: 'secret' parameter ... ok >verify django behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed >verify django behavior: test django's default algorithm ... SKIP: Django not installed >verify django behavior: test how methods handle empty string as hash value ... SKIP: Django not installed >verify django behavior: test how methods handle empty string as password ... SKIP: Django not installed >verify django behavior: test extension config is loaded correctly ... SKIP: Django not installed >verify django behavior: test how methods handle invalid hash values. ... SKIP: Django not installed >verify django behavior: test how methods handle None as hash value ... SKIP: Django not installed >verify django behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed >passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed >passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed >passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed >passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed >passlib.ext.django plugin: test PASSLIB_CONFIG='<preset>' ... SKIP: Django not installed >passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed >passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed >passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed >verify extension behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed >verify extension behavior: test django's default algorithm ... SKIP: Django not installed >verify extension behavior: test how methods handle empty string as hash value ... SKIP: Django not installed >verify extension behavior: test how methods handle empty string as password ... SKIP: Django not installed >verify extension behavior: test extension config is loaded correctly ... SKIP: Django not installed >verify extension behavior: test how methods handle invalid hash values. ... SKIP: Django not installed >verify extension behavior: test how methods handle None as hash value ... SKIP: Django not installed >verify extension behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed >external django hasher tests ... SKIP: django not installed >test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok >apr_md5_crypt: validate required attributes ... ok >apr_md5_crypt: test basic config-string workflow ... ok >apr_md5_crypt: test basic using() workflow ... ok >apr_md5_crypt: test basic hash-string workflow. ... ok >apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >apr_md5_crypt: test hashes can be unicode or bytes ... ok >apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend >apr_md5_crypt: validate optional salt attributes ... ok >apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok >apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok >apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok >apr_md5_crypt: test hash() honors salt_chars ... ok >apr_md5_crypt: test non-string salt values ... ok >apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >apr_md5_crypt: test password case sensitivity ... ok >apr_md5_crypt: test non-string passwords are rejected ... ok >apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok >apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed >apr_md5_crypt: test known hashes ... ok >apr_md5_crypt: parsehash() ... ok >apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided >apr_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present >apr_md5_crypt: test known config strings ... SKIP: no config strings provided >apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >apr_md5_crypt: test known identifiable-but-malformed strings ... ok >apr_md5_crypt: test known foreign hashes ... ok >apr_md5_crypt: test non-string hashes are rejected ... ok >apr_md5_crypt: fuzz testing -- random passwords and options ... ok >apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable >apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok >apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok >apr_md5_crypt: Handler.using() -- default_salt_size ... ok >bigcrypt: validate required attributes ... ok >bigcrypt: test basic config-string workflow ... ok >bigcrypt: test basic using() workflow ... ok >bigcrypt: test basic hash-string workflow. ... ok >bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >bigcrypt: test hashes can be unicode or bytes ... ok >bigcrypt: test multi-backend support ... SKIP: handler only has one backend >bigcrypt: validate optional salt attributes ... ok >bigcrypt: test hash() / genconfig() creates new salt each time ... ok >bigcrypt: test hash() / genconfig() honors min_salt_size ... ok >bigcrypt: test hash() / genconfig() honors max_salt_size ... ok >bigcrypt: test hash() honors salt_chars ... ok >bigcrypt: test non-string salt values ... ok >bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >bigcrypt: test password case sensitivity ... ok >bigcrypt: test non-string passwords are rejected ... ok >bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok >bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed >bigcrypt: test known hashes ... ok >bigcrypt: parsehash() ... ok >bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided >bigcrypt: parsehash() -- known outputs ... SKIP: no samples present >bigcrypt: test known config strings ... SKIP: no config strings provided >bigcrypt: test known unidentifiably-mangled strings ... ok >bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >bigcrypt: test known foreign hashes ... ok >bigcrypt: test non-string hashes are rejected ... ok >bigcrypt: fuzz testing -- random passwords and options ... ok >bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok >bigcrypt: .disable() / .enable() methods ... SKIP: not applicable >bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok >bigcrypt: validate 'truncate_error' setting & related attributes ... ok >bigcrypt: Handler.using() -- default_salt_size ... ok >bsd_nthash: validate required attributes ... ok >bsd_nthash: test basic config-string workflow ... ok >bsd_nthash: test basic using() workflow ... ok >bsd_nthash: test basic hash-string workflow. ... ok >bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >bsd_nthash: test hashes can be unicode or bytes ... ok >bsd_nthash: test multi-backend support ... SKIP: handler only has one backend >bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt >bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt >bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt >bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >bsd_nthash: test password case sensitivity ... ok >bsd_nthash: test non-string passwords are rejected ... ok >bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok >bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed >bsd_nthash: test known hashes ... ok >bsd_nthash: parsehash() ... SKIP: parsehash() not implemented >bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided >bsd_nthash: parsehash() -- known outputs ... SKIP: parsehash() not implemented >bsd_nthash: test known config strings ... SKIP: hash has no settings >bsd_nthash: test known unidentifiably-mangled strings ... ok >bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >bsd_nthash: test known foreign hashes ... ok >bsd_nthash: test non-string hashes are rejected ... ok >bsd_nthash: fuzz testing -- random passwords and options ... ok >bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable >bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok >bsd_nthash: validate 'truncate_error' setting & related attributes ... ok >bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >bsdi_crypt (builtin backend): validate required attributes ... ok >bsdi_crypt (builtin backend): test basic config-string workflow ... ok >bsdi_crypt (builtin backend): test basic using() workflow ... ok >bsdi_crypt (builtin backend): test basic hash-string workflow. ... ok >bsdi_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >bsdi_crypt (builtin backend): test hashes can be unicode or bytes ... ok >bsdi_crypt (builtin backend): test multi-backend support ... ok >bsdi_crypt (builtin backend): validate optional salt attributes ... ok >bsdi_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok >bsdi_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok >bsdi_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok >bsdi_crypt (builtin backend): test hash() honors salt_chars ... ok >bsdi_crypt (builtin backend): test non-string salt values ... ok >bsdi_crypt (builtin backend): validate optional rounds attributes ... ok >bsdi_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok >bsdi_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok >bsdi_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >bsdi_crypt (builtin backend): test password case sensitivity ... ok >bsdi_crypt (builtin backend): test non-string passwords are rejected ... ok >bsdi_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok >bsdi_crypt (builtin backend): test forbidden characters not allowed in password ... ok >bsdi_crypt (builtin backend): test known hashes ... ok >bsdi_crypt (builtin backend): parsehash() ... ok >bsdi_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided >bsdi_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present >bsdi_crypt (builtin backend): test known config strings ... SKIP: no config strings provided >bsdi_crypt (builtin backend): test known unidentifiably-mangled strings ... ok >bsdi_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >bsdi_crypt (builtin backend): test known foreign hashes ... ok >bsdi_crypt (builtin backend): test non-string hashes are rejected ... ok >bsdi_crypt (builtin backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) ... ok >bsdi_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >bsdi_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable >bsdi_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >bsdi_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >bsdi_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >bsdi_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok >bsdi_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok >bsdi_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >bsdi_crypt (builtin backend): HasRounds.using() -- rounds ... ok >bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok >bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok >bsdi_crypt (builtin backend): needs_update() should flag even rounds ... ok >bsdi_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >bsdi_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok >bsdi_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok >bsdi_crypt (builtin backend): Handler.using() -- default_salt_size ... ok >bsdi_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = False) >bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >crypt16: validate required attributes ... ok >crypt16: test basic config-string workflow ... ok >crypt16: test basic using() workflow ... ok >crypt16: test basic hash-string workflow. ... ok >crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >crypt16: test hashes can be unicode or bytes ... ok >crypt16: test multi-backend support ... SKIP: handler only has one backend >crypt16: validate optional salt attributes ... ok >crypt16: test hash() / genconfig() creates new salt each time ... ok >crypt16: test hash() / genconfig() honors min_salt_size ... ok >crypt16: test hash() / genconfig() honors max_salt_size ... ok >crypt16: test hash() honors salt_chars ... ok >crypt16: test non-string salt values ... ok >crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >crypt16: test password case sensitivity ... ok >crypt16: test non-string passwords are rejected ... ok >crypt16: test MAX_PASSWORD_SIZE is enforced ... ok >crypt16: test forbidden characters not allowed in password ... SKIP: none listed >crypt16: test known hashes ... ok >crypt16: parsehash() ... ok >crypt16: test known alternate hashes ... SKIP: no alternate hashes provided >crypt16: parsehash() -- known outputs ... SKIP: no samples present >crypt16: test known config strings ... SKIP: no config strings provided >crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >crypt16: test known foreign hashes ... ok >crypt16: test non-string hashes are rejected ... ok >crypt16: fuzz testing -- random passwords and options ... ok >crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >crypt16: .disable() / .enable() methods ... SKIP: not applicable >crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >crypt16: test password size limits raise truncate_error (if appropriate) ... ok >crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >crypt16: validate 'truncate_error' setting & related attributes ... ok >crypt16: Handler.using() -- default_salt_size ... ok >des_crypt (builtin backend): validate required attributes ... ok >des_crypt (builtin backend): test basic config-string workflow ... ok >des_crypt (builtin backend): test basic using() workflow ... ok >des_crypt (builtin backend): test basic hash-string workflow. ... ok >des_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >des_crypt (builtin backend): test hashes can be unicode or bytes ... ok >des_crypt (builtin backend): test multi-backend support ... ok >des_crypt (builtin backend): validate optional salt attributes ... ok >des_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok >des_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok >des_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok >des_crypt (builtin backend): test hash() honors salt_chars ... ok >des_crypt (builtin backend): test non-string salt values ... ok >des_crypt (builtin backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >des_crypt (builtin backend): test password case sensitivity ... ok >des_crypt (builtin backend): test non-string passwords are rejected ... ok >des_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok >des_crypt (builtin backend): test forbidden characters not allowed in password ... ok >des_crypt (builtin backend): test known hashes ... ok >des_crypt (builtin backend): parsehash() ... ok >des_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided >des_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present >des_crypt (builtin backend): test known config strings ... SKIP: no config strings provided >des_crypt (builtin backend): test known unidentifiably-mangled strings ... ok >des_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >des_crypt (builtin backend): test known foreign hashes ... ok >des_crypt (builtin backend): test non-string hashes are rejected ... ok >des_crypt (builtin backend): fuzz testing -- random passwords and options ... ok >des_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >des_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable >des_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >des_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >des_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... ok >des_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >des_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok >des_crypt (builtin backend): Handler.using() -- default_salt_size ... ok >des_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test platform-specific crypt() support detection ... FAIL >des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >fshp: validate required attributes ... ok >fshp: test basic config-string workflow ... ok >fshp: test basic using() workflow ... ok >fshp: test basic hash-string workflow. ... ok >fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >fshp: test hashes can be unicode or bytes ... ok >fshp: test multi-backend support ... SKIP: handler only has one backend >fshp: validate optional salt attributes ... ok >fshp: test hash() / genconfig() creates new salt each time ... ok >fshp: test hash() / genconfig() honors min_salt_size ... ok >fshp: test hash() / genconfig() honors max_salt_size ... ok >fshp: test hash() honors salt_chars ... ok >fshp: test non-string salt values ... ok >fshp: validate optional rounds attributes ... ok >fshp: test hash() / genconfig() honors min_rounds ... ok >fshp: test hash() / genconfig() honors max_rounds ... ok >fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >fshp: test password case sensitivity ... ok >fshp: test non-string passwords are rejected ... ok >fshp: test MAX_PASSWORD_SIZE is enforced ... ok >fshp: test forbidden characters not allowed in password ... SKIP: none listed >fshp: test known hashes ... ok >fshp: parsehash() ... ok >fshp: test known alternate hashes ... SKIP: no alternate hashes provided >fshp: parsehash() -- known outputs ... SKIP: no samples present >fshp: test known config strings ... SKIP: no config strings provided >fshp: test known unidentifiably-mangled strings ... ok >fshp: test known identifiable-but-malformed strings ... ok >fshp: test known foreign hashes ... ok >fshp: test non-string hashes are rejected ... ok >fshp: fuzz testing -- random passwords and options ... ok >fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >fshp: test variant keyword ... ok >fshp: .disable() / .enable() methods ... SKIP: not applicable >fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok >fshp: HasRounds.using() -- sanity check test harness ... ok >fshp: HasRounds.using() -- default_rounds ... ok >fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >fshp: HasRounds.using() -- rounds ... ok >fshp: HasRounds.using() -- vary_rounds generation ... ok >fshp: HasRounds.using() -- vary_rounds parsing ... ok >fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >fshp: test no password size limits enforced (if truncate_size=None) ... ok >fshp: validate 'truncate_error' setting & related attributes ... ok >fshp: Handler.using() -- default_salt_size ... ok >hex_md4: validate required attributes ... ok >hex_md4: test basic config-string workflow ... ok >hex_md4: test basic using() workflow ... ok >hex_md4: test basic hash-string workflow. ... ok >hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >hex_md4: test hashes can be unicode or bytes ... ok >hex_md4: test multi-backend support ... SKIP: handler only has one backend >hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt >hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt >hex_md4: test non-string salt values ... SKIP: handler doesn't have salt >hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >hex_md4: test password case sensitivity ... ok >hex_md4: test non-string passwords are rejected ... ok >hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok >hex_md4: test forbidden characters not allowed in password ... SKIP: none listed >hex_md4: test known hashes ... ok >hex_md4: parsehash() ... ok >hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided >hex_md4: parsehash() -- known outputs ... SKIP: no samples present >hex_md4: test known config strings ... SKIP: hash has no settings >hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >hex_md4: test known foreign hashes ... ok >hex_md4: test non-string hashes are rejected ... ok >hex_md4: fuzz testing -- random passwords and options ... ok >hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >hex_md4: .disable() / .enable() methods ... SKIP: not applicable >hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >hex_md4: test no password size limits enforced (if truncate_size=None) ... ok >hex_md4: validate 'truncate_error' setting & related attributes ... ok >hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >hex_md5: validate required attributes ... ok >hex_md5: test basic config-string workflow ... ok >hex_md5: test basic using() workflow ... ok >hex_md5: test basic hash-string workflow. ... ok >hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >hex_md5: test hashes can be unicode or bytes ... ok >hex_md5: test multi-backend support ... SKIP: handler only has one backend >hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt >hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt >hex_md5: test non-string salt values ... SKIP: handler doesn't have salt >hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >hex_md5: test password case sensitivity ... ok >hex_md5: test non-string passwords are rejected ... ok >hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok >hex_md5: test forbidden characters not allowed in password ... SKIP: none listed >hex_md5: test known hashes ... ok >hex_md5: parsehash() ... ok >hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided >hex_md5: parsehash() -- known outputs ... SKIP: no samples present >hex_md5: test known config strings ... SKIP: hash has no settings >hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >hex_md5: test known foreign hashes ... ok >hex_md5: test non-string hashes are rejected ... ok >hex_md5: fuzz testing -- random passwords and options ... ok >hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >hex_md5: .disable() / .enable() methods ... SKIP: not applicable >hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >hex_md5: if md5 isn't available, a dummy instance should be created. ... ok >hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >hex_md5: test no password size limits enforced (if truncate_size=None) ... ok >hex_md5: validate 'truncate_error' setting & related attributes ... ok >hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >hex_sha1: validate required attributes ... ok >hex_sha1: test basic config-string workflow ... ok >hex_sha1: test basic using() workflow ... ok >hex_sha1: test basic hash-string workflow. ... ok >hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >hex_sha1: test hashes can be unicode or bytes ... ok >hex_sha1: test multi-backend support ... SKIP: handler only has one backend >hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt >hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt >hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt >hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >hex_sha1: test password case sensitivity ... ok >hex_sha1: test non-string passwords are rejected ... ok >hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed >hex_sha1: test known hashes ... ok >hex_sha1: parsehash() ... ok >hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >hex_sha1: parsehash() -- known outputs ... SKIP: no samples present >hex_sha1: test known config strings ... SKIP: hash has no settings >hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >hex_sha1: test known foreign hashes ... ok >hex_sha1: test non-string hashes are rejected ... ok >hex_sha1: fuzz testing -- random passwords and options ... ok >hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >hex_sha1: .disable() / .enable() methods ... SKIP: not applicable >hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok >hex_sha1: validate 'truncate_error' setting & related attributes ... ok >hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >hex_sha256: validate required attributes ... ok >hex_sha256: test basic config-string workflow ... ok >hex_sha256: test basic using() workflow ... ok >hex_sha256: test basic hash-string workflow. ... ok >hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >hex_sha256: test hashes can be unicode or bytes ... ok >hex_sha256: test multi-backend support ... SKIP: handler only has one backend >hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt >hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt >hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt >hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >hex_sha256: test password case sensitivity ... ok >hex_sha256: test non-string passwords are rejected ... ok >hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok >hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed >hex_sha256: test known hashes ... ok >hex_sha256: parsehash() ... ok >hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided >hex_sha256: parsehash() -- known outputs ... SKIP: no samples present >hex_sha256: test known config strings ... SKIP: hash has no settings >hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >hex_sha256: test known foreign hashes ... ok >hex_sha256: test non-string hashes are rejected ... ok >hex_sha256: fuzz testing -- random passwords and options ... ok >hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >hex_sha256: .disable() / .enable() methods ... SKIP: not applicable >hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok >hex_sha256: validate 'truncate_error' setting & related attributes ... ok >hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >hex_sha512: validate required attributes ... ok >hex_sha512: test basic config-string workflow ... ok >hex_sha512: test basic using() workflow ... ok >hex_sha512: test basic hash-string workflow. ... ok >hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >hex_sha512: test hashes can be unicode or bytes ... ok >hex_sha512: test multi-backend support ... SKIP: handler only has one backend >hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt >hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt >hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt >hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >hex_sha512: test password case sensitivity ... ok >hex_sha512: test non-string passwords are rejected ... ok >hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok >hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed >hex_sha512: test known hashes ... ok >hex_sha512: parsehash() ... ok >hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided >hex_sha512: parsehash() -- known outputs ... SKIP: no samples present >hex_sha512: test known config strings ... SKIP: hash has no settings >hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >hex_sha512: test known foreign hashes ... ok >hex_sha512: test non-string hashes are rejected ... ok >hex_sha512: fuzz testing -- random passwords and options ... ok >hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >hex_sha512: .disable() / .enable() methods ... SKIP: not applicable >hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok >hex_sha512: validate 'truncate_error' setting & related attributes ... ok >hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >htdigest: validate required attributes ... ok >htdigest: test basic config-string workflow ... ok >htdigest: test basic using() workflow ... ok >htdigest: test basic hash-string workflow. ... ok >htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >htdigest: test hashes can be unicode or bytes ... ok >htdigest: test multi-backend support ... SKIP: handler only has one backend >htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt >htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt >htdigest: test non-string salt values ... SKIP: handler doesn't have salt >htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >htdigest: test password case sensitivity ... ok >htdigest: test non-string passwords are rejected ... ok >htdigest: test MAX_PASSWORD_SIZE is enforced ... ok >htdigest: test forbidden characters not allowed in password ... SKIP: none listed >htdigest: test known hashes ... ok >htdigest: parsehash() ... SKIP: parsehash() not implemented >htdigest: test known alternate hashes ... SKIP: no alternate hashes provided >htdigest: parsehash() -- known outputs ... SKIP: parsehash() not implemented >htdigest: test known config strings ... SKIP: hash has no settings >htdigest: test known unidentifiably-mangled strings ... ok >htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >htdigest: test known foreign hashes ... ok >htdigest: test non-string hashes are rejected ... ok >htdigest: fuzz testing -- random passwords and options ... ok >htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword >htdigest: test user case sensitivity ... ok >htdigest: test user used as salt ... ok >htdigest: .disable() / .enable() methods ... SKIP: not applicable >htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >htdigest: test no password size limits enforced (if truncate_size=None) ... ok >htdigest: validate 'truncate_error' setting & related attributes ... ok >htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >ldap_md5_crypt (builtin backend): validate required attributes ... ok >ldap_md5_crypt (builtin backend): test basic config-string workflow ... ok >ldap_md5_crypt (builtin backend): test basic using() workflow ... ok >ldap_md5_crypt (builtin backend): test basic hash-string workflow. ... ok >ldap_md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_md5_crypt (builtin backend): test hashes can be unicode or bytes ... ok >ldap_md5_crypt (builtin backend): test multi-backend support ... ok >ldap_md5_crypt (builtin backend): validate optional salt attributes ... ok >ldap_md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok >ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok >ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok >ldap_md5_crypt (builtin backend): test hash() honors salt_chars ... ok >ldap_md5_crypt (builtin backend): test non-string salt values ... ok >ldap_md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_md5_crypt (builtin backend): test password case sensitivity ... ok >ldap_md5_crypt (builtin backend): test non-string passwords are rejected ... ok >ldap_md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok >ldap_md5_crypt (builtin backend): test forbidden characters not allowed in password ... ok >ldap_md5_crypt (builtin backend): test known hashes ... ok >ldap_md5_crypt (builtin backend): parsehash() ... SKIP: parsehash() not implemented >ldap_md5_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided >ldap_md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented >ldap_md5_crypt (builtin backend): test known config strings ... SKIP: no config strings provided >ldap_md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >ldap_md5_crypt (builtin backend): test known identifiable-but-malformed strings ... ok >ldap_md5_crypt (builtin backend): test known foreign hashes ... ok >ldap_md5_crypt (builtin backend): test non-string hashes are rejected ... ok >ldap_md5_crypt (builtin backend): fuzz testing -- random passwords and options ... ok >ldap_md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable >ldap_md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok >ldap_md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok >ldap_md5_crypt (builtin backend): Handler.using() -- default_salt_size ... ok >ldap_md5_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers >ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >ldap_md5: validate required attributes ... ok >ldap_md5: test basic config-string workflow ... ok >ldap_md5: test basic using() workflow ... ok >ldap_md5: test basic hash-string workflow. ... ok >ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_md5: test hashes can be unicode or bytes ... ok >ldap_md5: test multi-backend support ... SKIP: handler only has one backend >ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt >ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt >ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt >ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_md5: test password case sensitivity ... ok >ldap_md5: test non-string passwords are rejected ... ok >ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok >ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed >ldap_md5: test known hashes ... ok >ldap_md5: parsehash() ... ok >ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided >ldap_md5: parsehash() -- known outputs ... SKIP: no samples present >ldap_md5: test known config strings ... SKIP: hash has no settings >ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >ldap_md5: test known foreign hashes ... ok >ldap_md5: test non-string hashes are rejected ... ok >ldap_md5: fuzz testing -- random passwords and options ... ok >ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_md5: .disable() / .enable() methods ... SKIP: not applicable >ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok >ldap_md5: validate 'truncate_error' setting & related attributes ... ok >ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >ldap_plaintext: validate required attributes ... ok >ldap_plaintext: test basic config-string workflow ... ok >ldap_plaintext: test basic using() workflow ... ok >ldap_plaintext: test basic hash-string workflow. ... ok >ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_plaintext: test hashes can be unicode or bytes ... ok >ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend >ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt >ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt >ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt >ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_plaintext: test password case sensitivity ... ok >ldap_plaintext: test non-string passwords are rejected ... ok >ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok >ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed >ldap_plaintext: test known hashes ... ok >ldap_plaintext: parsehash() ... SKIP: parsehash() not implemented >ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided >ldap_plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented >ldap_plaintext: test known config strings ... SKIP: hash has no settings >ldap_plaintext: test known unidentifiably-mangled strings ... ok >ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >ldap_plaintext: test known foreign hashes ... ok >ldap_plaintext: test non-string hashes are rejected ... ok >ldap_plaintext: fuzz testing -- random passwords and options ... ok >ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable >ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok >ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok >ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >ldap_salted_md5: validate required attributes ... ok >ldap_salted_md5: test basic config-string workflow ... ok >ldap_salted_md5: test basic using() workflow ... ok >ldap_salted_md5: test basic hash-string workflow. ... ok >ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_salted_md5: test hashes can be unicode or bytes ... ok >ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend >ldap_salted_md5: validate optional salt attributes ... ok >ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok >ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok >ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok >ldap_salted_md5: test hash() honors salt_chars ... ok >ldap_salted_md5: test non-string salt values ... ok >ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_md5: test password case sensitivity ... ok >ldap_salted_md5: test non-string passwords are rejected ... ok >ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok >ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed >ldap_salted_md5: test known hashes ... ok >ldap_salted_md5: parsehash() ... ok >ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided >ldap_salted_md5: parsehash() -- known outputs ... SKIP: no samples present >ldap_salted_md5: test known config strings ... SKIP: no config strings provided >ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >ldap_salted_md5: test known identifiable-but-malformed strings ... ok >ldap_salted_md5: test known foreign hashes ... ok >ldap_salted_md5: test non-string hashes are rejected ... ok >ldap_salted_md5: fuzz testing -- random passwords and options ... ok >ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable >ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok >ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok >ldap_salted_md5: Handler.using() -- default_salt_size ... ok >ldap_salted_sha1: validate required attributes ... ok >ldap_salted_sha1: test basic config-string workflow ... ok >ldap_salted_sha1: test basic using() workflow ... ok >ldap_salted_sha1: test basic hash-string workflow. ... ok >ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_salted_sha1: test hashes can be unicode or bytes ... ok >ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend >ldap_salted_sha1: validate optional salt attributes ... ok >ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok >ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok >ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok >ldap_salted_sha1: test hash() honors salt_chars ... ok >ldap_salted_sha1: test non-string salt values ... ok >ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_sha1: test password case sensitivity ... ok >ldap_salted_sha1: test non-string passwords are rejected ... ok >ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed >ldap_salted_sha1: test known hashes ... ok >ldap_salted_sha1: parsehash() ... ok >ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >ldap_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present >ldap_salted_sha1: test known config strings ... SKIP: no config strings provided >ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >ldap_salted_sha1: test known identifiable-but-malformed strings ... ok >ldap_salted_sha1: test known foreign hashes ... ok >ldap_salted_sha1: test non-string hashes are rejected ... ok >ldap_salted_sha1: fuzz testing -- random passwords and options ... ok >ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable >ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok >ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok >ldap_salted_sha1: Handler.using() -- default_salt_size ... ok >ldap_salted_sha256: validate required attributes ... ok >ldap_salted_sha256: test basic config-string workflow ... ok >ldap_salted_sha256: test basic using() workflow ... ok >ldap_salted_sha256: test basic hash-string workflow. ... ok >ldap_salted_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_salted_sha256: test hashes can be unicode or bytes ... ok >ldap_salted_sha256: test multi-backend support ... SKIP: handler only has one backend >ldap_salted_sha256: validate optional salt attributes ... ok >ldap_salted_sha256: test hash() / genconfig() creates new salt each time ... ok >ldap_salted_sha256: test hash() / genconfig() honors min_salt_size ... ok >ldap_salted_sha256: test hash() / genconfig() honors max_salt_size ... ok >ldap_salted_sha256: test hash() honors salt_chars ... ok >ldap_salted_sha256: test non-string salt values ... ok >ldap_salted_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_sha256: test password case sensitivity ... ok >ldap_salted_sha256: test non-string passwords are rejected ... ok >ldap_salted_sha256: test MAX_PASSWORD_SIZE is enforced ... ok >ldap_salted_sha256: test forbidden characters not allowed in password ... SKIP: none listed >ldap_salted_sha256: test known hashes ... ok >ldap_salted_sha256: parsehash() ... ok >ldap_salted_sha256: test known alternate hashes ... SKIP: no alternate hashes provided >ldap_salted_sha256: parsehash() -- known outputs ... SKIP: no samples present >ldap_salted_sha256: test known config strings ... SKIP: no config strings provided >ldap_salted_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >ldap_salted_sha256: test known identifiable-but-malformed strings ... ok >ldap_salted_sha256: test known foreign hashes ... ok >ldap_salted_sha256: test non-string hashes are rejected ... ok >ldap_salted_sha256: fuzz testing -- random passwords and options ... ok >ldap_salted_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_salted_sha256: .disable() / .enable() methods ... SKIP: not applicable >ldap_salted_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_salted_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_salted_sha256: test no password size limits enforced (if truncate_size=None) ... ok >ldap_salted_sha256: validate 'truncate_error' setting & related attributes ... ok >ldap_salted_sha256: Handler.using() -- default_salt_size ... ok >ldap_salted_sha512: validate required attributes ... ok >ldap_salted_sha512: test basic config-string workflow ... ok >ldap_salted_sha512: test basic using() workflow ... ok >ldap_salted_sha512: test basic hash-string workflow. ... ok >ldap_salted_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_salted_sha512: test hashes can be unicode or bytes ... ok >ldap_salted_sha512: test multi-backend support ... SKIP: handler only has one backend >ldap_salted_sha512: validate optional salt attributes ... ok >ldap_salted_sha512: test hash() / genconfig() creates new salt each time ... ok >ldap_salted_sha512: test hash() / genconfig() honors min_salt_size ... ok >ldap_salted_sha512: test hash() / genconfig() honors max_salt_size ... ok >ldap_salted_sha512: test hash() honors salt_chars ... ok >ldap_salted_sha512: test non-string salt values ... ok >ldap_salted_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_sha512: test password case sensitivity ... ok >ldap_salted_sha512: test non-string passwords are rejected ... ok >ldap_salted_sha512: test MAX_PASSWORD_SIZE is enforced ... ok >ldap_salted_sha512: test forbidden characters not allowed in password ... SKIP: none listed >ldap_salted_sha512: test known hashes ... ok >ldap_salted_sha512: parsehash() ... ok >ldap_salted_sha512: test known alternate hashes ... SKIP: no alternate hashes provided >ldap_salted_sha512: parsehash() -- known outputs ... SKIP: no samples present >ldap_salted_sha512: test known config strings ... SKIP: no config strings provided >ldap_salted_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >ldap_salted_sha512: test known identifiable-but-malformed strings ... ok >ldap_salted_sha512: test known foreign hashes ... ok >ldap_salted_sha512: test non-string hashes are rejected ... ok >ldap_salted_sha512: fuzz testing -- random passwords and options ... ok >ldap_salted_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_salted_sha512: .disable() / .enable() methods ... SKIP: not applicable >ldap_salted_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_salted_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_salted_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_salted_sha512: test no password size limits enforced (if truncate_size=None) ... ok >ldap_salted_sha512: validate 'truncate_error' setting & related attributes ... ok >ldap_salted_sha512: Handler.using() -- default_salt_size ... ok >ldap_sha1_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers >ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >ldap_sha1: validate required attributes ... ok >ldap_sha1: test basic config-string workflow ... ok >ldap_sha1: test basic using() workflow ... ok >ldap_sha1: test basic hash-string workflow. ... ok >ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >ldap_sha1: test hashes can be unicode or bytes ... ok >ldap_sha1: test multi-backend support ... SKIP: handler only has one backend >ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt >ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt >ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt >ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >ldap_sha1: test password case sensitivity ... ok >ldap_sha1: test non-string passwords are rejected ... ok >ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed >ldap_sha1: test known hashes ... ok >ldap_sha1: parsehash() ... ok >ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >ldap_sha1: parsehash() -- known outputs ... SKIP: no samples present >ldap_sha1: test known config strings ... SKIP: hash has no settings >ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >ldap_sha1: test known foreign hashes ... ok >ldap_sha1: test non-string hashes are rejected ... ok >ldap_sha1: fuzz testing -- random passwords and options ... ok >ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable >ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok >ldap_sha1: validate 'truncate_error' setting & related attributes ... ok >ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >lmhash: validate required attributes ... ok >lmhash: test basic config-string workflow ... ok >lmhash: test basic using() workflow ... ok >lmhash: test basic hash-string workflow. ... ok >lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >lmhash: test hashes can be unicode or bytes ... ok >lmhash: test multi-backend support ... SKIP: handler only has one backend >lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt >lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt >lmhash: test non-string salt values ... SKIP: handler doesn't have salt >lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >lmhash: test password case sensitivity ... ok >lmhash: test non-string passwords are rejected ... ok >lmhash: test MAX_PASSWORD_SIZE is enforced ... ok >lmhash: test forbidden characters not allowed in password ... SKIP: none listed >lmhash: test known hashes ... ok >lmhash: parsehash() ... ok >lmhash: test known alternate hashes ... SKIP: no alternate hashes provided >lmhash: parsehash() -- known outputs ... SKIP: no samples present >lmhash: test known config strings ... SKIP: no config strings provided >lmhash: test known unidentifiably-mangled strings ... ok >lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >lmhash: test known foreign hashes ... ok >lmhash: test non-string hashes are rejected ... ok >lmhash: fuzz testing -- random passwords and options ... ok >lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >lmhash: test lmhash.raw() method ... ok >lmhash: .disable() / .enable() methods ... SKIP: not applicable >lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >lmhash: test password size limits raise truncate_error (if appropriate) ... ok >lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >lmhash: validate 'truncate_error' setting & related attributes ... ok >lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >md5_crypt (builtin backend): validate required attributes ... ok >md5_crypt (builtin backend): test basic config-string workflow ... ok >md5_crypt (builtin backend): test basic using() workflow ... ok >md5_crypt (builtin backend): test basic hash-string workflow. ... ok >md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >md5_crypt (builtin backend): test hashes can be unicode or bytes ... ok >md5_crypt (builtin backend): test multi-backend support ... ok >md5_crypt (builtin backend): validate optional salt attributes ... ok >md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok >md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok >md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok >md5_crypt (builtin backend): test hash() honors salt_chars ... ok >md5_crypt (builtin backend): test non-string salt values ... ok >md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >md5_crypt (builtin backend): test password case sensitivity ... ok >md5_crypt (builtin backend): test non-string passwords are rejected ... ok >md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok >md5_crypt (builtin backend): test forbidden characters not allowed in password ... ok >md5_crypt (builtin backend): test known hashes ... ok >md5_crypt (builtin backend): parsehash() ... ok >md5_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided >md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present >md5_crypt (builtin backend): test known config strings ... SKIP: no config strings provided >md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >md5_crypt (builtin backend): test known identifiable-but-malformed strings ... ok >md5_crypt (builtin backend): test known foreign hashes ... ok >md5_crypt (builtin backend): test non-string hashes are rejected ... ok >md5_crypt (builtin backend): fuzz testing -- random passwords and options ... ok >md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable >md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok >md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok >md5_crypt (builtin backend): Handler.using() -- default_salt_size ... ok >md5_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... FAIL >md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >msdcc2: validate required attributes ... ok >msdcc2: test basic config-string workflow ... ok >msdcc2: test basic using() workflow ... ok >msdcc2: test basic hash-string workflow. ... ok >msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >msdcc2: test hashes can be unicode or bytes ... ok >msdcc2: test multi-backend support ... SKIP: handler only has one backend >msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt >msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt >msdcc2: test non-string salt values ... SKIP: handler doesn't have salt >msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >msdcc2: test password case sensitivity ... ok >msdcc2: test non-string passwords are rejected ... ok >msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok >msdcc2: test forbidden characters not allowed in password ... SKIP: none listed >msdcc2: test known hashes ... ok >msdcc2: parsehash() ... ok >msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided >msdcc2: parsehash() -- known outputs ... SKIP: no samples present >msdcc2: test known config strings ... SKIP: hash has no settings >msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >msdcc2: test known foreign hashes ... ok >msdcc2: test non-string hashes are rejected ... ok >msdcc2: fuzz testing -- random passwords and options ... ok >msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >msdcc2: test user context keyword ... ok >msdcc2: test user case sensitivity ... ok >msdcc2: test user used as salt ... ok >msdcc2: .disable() / .enable() methods ... SKIP: not applicable >msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >msdcc2: test no password size limits enforced (if truncate_size=None) ... ok >msdcc2: validate 'truncate_error' setting & related attributes ... ok >msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >msdcc: validate required attributes ... ok >msdcc: test basic config-string workflow ... ok >msdcc: test basic using() workflow ... ok >msdcc: test basic hash-string workflow. ... ok >msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >msdcc: test hashes can be unicode or bytes ... ok >msdcc: test multi-backend support ... SKIP: handler only has one backend >msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt >msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt >msdcc: test non-string salt values ... SKIP: handler doesn't have salt >msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >msdcc: test password case sensitivity ... ok >msdcc: test non-string passwords are rejected ... ok >msdcc: test MAX_PASSWORD_SIZE is enforced ... ok >msdcc: test forbidden characters not allowed in password ... SKIP: none listed >msdcc: test known hashes ... ok >msdcc: parsehash() ... ok >msdcc: test known alternate hashes ... ok >msdcc: parsehash() -- known outputs ... SKIP: no samples present >msdcc: test known config strings ... SKIP: hash has no settings >msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >msdcc: test known foreign hashes ... ok >msdcc: test non-string hashes are rejected ... ok >msdcc: fuzz testing -- random passwords and options ... ok >msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >msdcc: test user context keyword ... ok >msdcc: test user case sensitivity ... ok >msdcc: test user used as salt ... ok >msdcc: .disable() / .enable() methods ... SKIP: not applicable >msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >msdcc: test no password size limits enforced (if truncate_size=None) ... ok >msdcc: validate 'truncate_error' setting & related attributes ... ok >msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >mssql2000: validate required attributes ... ok >mssql2000: test basic config-string workflow ... ok >mssql2000: test basic using() workflow ... ok >mssql2000: test basic hash-string workflow. ... ok >mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >mssql2000: test hashes can be unicode or bytes ... ok >mssql2000: test multi-backend support ... SKIP: handler only has one backend >mssql2000: validate optional salt attributes ... ok >mssql2000: test hash() / genconfig() creates new salt each time ... ok >mssql2000: test hash() / genconfig() honors min_salt_size ... ok >mssql2000: test hash() / genconfig() honors max_salt_size ... ok >mssql2000: test hash() honors salt_chars ... ok >mssql2000: test non-string salt values ... ok >mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >mssql2000: test password case sensitivity ... ok >mssql2000: test non-string passwords are rejected ... ok >mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok >mssql2000: test forbidden characters not allowed in password ... SKIP: none listed >mssql2000: test known hashes ... ok >mssql2000: parsehash() ... ok >mssql2000: test known alternate hashes ... ok >mssql2000: parsehash() -- known outputs ... SKIP: no samples present >mssql2000: test known config strings ... SKIP: no config strings provided >mssql2000: test known unidentifiably-mangled strings ... ok >mssql2000: test known identifiable-but-malformed strings ... ok >mssql2000: test known foreign hashes ... ok >mssql2000: test non-string hashes are rejected ... ok >mssql2000: fuzz testing -- random passwords and options ... ok >mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >mssql2000: .disable() / .enable() methods ... SKIP: not applicable >mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >mssql2000: test no password size limits enforced (if truncate_size=None) ... ok >mssql2000: validate 'truncate_error' setting & related attributes ... ok >mssql2000: Handler.using() -- default_salt_size ... ok >mssql2005: validate required attributes ... ok >mssql2005: test basic config-string workflow ... ok >mssql2005: test basic using() workflow ... ok >mssql2005: test basic hash-string workflow. ... ok >mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >mssql2005: test hashes can be unicode or bytes ... ok >mssql2005: test multi-backend support ... SKIP: handler only has one backend >mssql2005: validate optional salt attributes ... ok >mssql2005: test hash() / genconfig() creates new salt each time ... ok >mssql2005: test hash() / genconfig() honors min_salt_size ... ok >mssql2005: test hash() / genconfig() honors max_salt_size ... ok >mssql2005: test hash() honors salt_chars ... ok >mssql2005: test non-string salt values ... ok >mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >mssql2005: test password case sensitivity ... ok >mssql2005: test non-string passwords are rejected ... ok >mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok >mssql2005: test forbidden characters not allowed in password ... SKIP: none listed >mssql2005: test known hashes ... ok >mssql2005: parsehash() ... ok >mssql2005: test known alternate hashes ... ok >mssql2005: parsehash() -- known outputs ... SKIP: no samples present >mssql2005: test known config strings ... SKIP: no config strings provided >mssql2005: test known unidentifiably-mangled strings ... ok >mssql2005: test known identifiable-but-malformed strings ... ok >mssql2005: test known foreign hashes ... ok >mssql2005: test non-string hashes are rejected ... ok >mssql2005: fuzz testing -- random passwords and options ... ok >mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >mssql2005: .disable() / .enable() methods ... SKIP: not applicable >mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >mssql2005: test no password size limits enforced (if truncate_size=None) ... ok >mssql2005: validate 'truncate_error' setting & related attributes ... ok >mssql2005: Handler.using() -- default_salt_size ... ok >mysql323: validate required attributes ... ok >mysql323: test basic config-string workflow ... ok >mysql323: test basic using() workflow ... ok >mysql323: test basic hash-string workflow. ... ok >mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >mysql323: test hashes can be unicode or bytes ... ok >mysql323: test multi-backend support ... SKIP: handler only has one backend >mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt >mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt >mysql323: test non-string salt values ... SKIP: handler doesn't have salt >mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >mysql323: test password case sensitivity ... ok >mysql323: test non-string passwords are rejected ... ok >mysql323: test MAX_PASSWORD_SIZE is enforced ... ok >mysql323: test forbidden characters not allowed in password ... SKIP: none listed >mysql323: test known hashes ... ok >mysql323: parsehash() ... ok >mysql323: test known alternate hashes ... SKIP: no alternate hashes provided >mysql323: parsehash() -- known outputs ... SKIP: no samples present >mysql323: test known config strings ... SKIP: hash has no settings >mysql323: test known unidentifiably-mangled strings ... ok >mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >mysql323: test known foreign hashes ... ok >mysql323: test non-string hashes are rejected ... ok >mysql323: fuzz testing -- random passwords and options ... ok >mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >mysql323: check whitespace is ignored per spec ... ok >mysql323: .disable() / .enable() methods ... SKIP: not applicable >mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >mysql323: test no password size limits enforced (if truncate_size=None) ... ok >mysql323: validate 'truncate_error' setting & related attributes ... ok >mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >mysql41: validate required attributes ... ok >mysql41: test basic config-string workflow ... ok >mysql41: test basic using() workflow ... ok >mysql41: test basic hash-string workflow. ... ok >mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >mysql41: test hashes can be unicode or bytes ... ok >mysql41: test multi-backend support ... SKIP: handler only has one backend >mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt >mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt >mysql41: test non-string salt values ... SKIP: handler doesn't have salt >mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >mysql41: test password case sensitivity ... ok >mysql41: test non-string passwords are rejected ... ok >mysql41: test MAX_PASSWORD_SIZE is enforced ... ok >mysql41: test forbidden characters not allowed in password ... SKIP: none listed >mysql41: test known hashes ... ok >mysql41: parsehash() ... ok >mysql41: test known alternate hashes ... SKIP: no alternate hashes provided >mysql41: parsehash() -- known outputs ... SKIP: no samples present >mysql41: test known config strings ... SKIP: hash has no settings >mysql41: test known unidentifiably-mangled strings ... ok >mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >mysql41: test known foreign hashes ... ok >mysql41: test non-string hashes are rejected ... ok >mysql41: fuzz testing -- random passwords and options ... ok >mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >mysql41: .disable() / .enable() methods ... SKIP: not applicable >mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >mysql41: test no password size limits enforced (if truncate_size=None) ... ok >mysql41: validate 'truncate_error' setting & related attributes ... ok >mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >nthash: validate required attributes ... ok >nthash: test basic config-string workflow ... ok >nthash: test basic using() workflow ... ok >nthash: test basic hash-string workflow. ... ok >nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >nthash: test hashes can be unicode or bytes ... ok >nthash: test multi-backend support ... SKIP: handler only has one backend >nthash: validate optional salt attributes ... SKIP: handler doesn't have salt >nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt >nthash: test non-string salt values ... SKIP: handler doesn't have salt >nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >nthash: test password case sensitivity ... ok >nthash: test non-string passwords are rejected ... ok >nthash: test MAX_PASSWORD_SIZE is enforced ... ok >nthash: test forbidden characters not allowed in password ... SKIP: none listed >nthash: test known hashes ... ok >nthash: parsehash() ... ok >nthash: test known alternate hashes ... SKIP: no alternate hashes provided >nthash: parsehash() -- known outputs ... SKIP: no samples present >nthash: test known config strings ... SKIP: hash has no settings >nthash: test known unidentifiably-mangled strings ... ok >nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >nthash: test known foreign hashes ... ok >nthash: test non-string hashes are rejected ... ok >nthash: fuzz testing -- random passwords and options ... ok >nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >nthash: .disable() / .enable() methods ... SKIP: not applicable >nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >nthash: test no password size limits enforced (if truncate_size=None) ... ok >nthash: validate 'truncate_error' setting & related attributes ... ok >nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >oracle10: validate required attributes ... ok >oracle10: test basic config-string workflow ... ok >oracle10: test basic using() workflow ... ok >oracle10: test basic hash-string workflow. ... ok >oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >oracle10: test hashes can be unicode or bytes ... ok >oracle10: test multi-backend support ... SKIP: handler only has one backend >oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt >oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt >oracle10: test non-string salt values ... SKIP: handler doesn't have salt >oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >oracle10: test password case sensitivity ... ok >oracle10: test non-string passwords are rejected ... ok >oracle10: test MAX_PASSWORD_SIZE is enforced ... ok >oracle10: test forbidden characters not allowed in password ... SKIP: none listed >oracle10: test known hashes ... ok >oracle10: parsehash() ... ok >oracle10: test known alternate hashes ... SKIP: no alternate hashes provided >oracle10: parsehash() -- known outputs ... SKIP: no samples present >oracle10: test known config strings ... SKIP: hash has no settings >oracle10: test known unidentifiably-mangled strings ... ok >oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >oracle10: test known foreign hashes ... ok >oracle10: test non-string hashes are rejected ... ok >oracle10: fuzz testing -- random passwords and options ... ok >oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >oracle10: test user context keyword ... ok >oracle10: test user case sensitivity ... ok >oracle10: test user used as salt ... ok >oracle10: .disable() / .enable() methods ... SKIP: not applicable >oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >oracle10: test no password size limits enforced (if truncate_size=None) ... ok >oracle10: validate 'truncate_error' setting & related attributes ... ok >oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >oracle11: validate required attributes ... ok >oracle11: test basic config-string workflow ... ok >oracle11: test basic using() workflow ... ok >oracle11: test basic hash-string workflow. ... ok >oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >oracle11: test hashes can be unicode or bytes ... ok >oracle11: test multi-backend support ... SKIP: handler only has one backend >oracle11: validate optional salt attributes ... ok >oracle11: test hash() / genconfig() creates new salt each time ... ok >oracle11: test hash() / genconfig() honors min_salt_size ... ok >oracle11: test hash() / genconfig() honors max_salt_size ... ok >oracle11: test hash() honors salt_chars ... ok >oracle11: test non-string salt values ... ok >oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >oracle11: test password case sensitivity ... ok >oracle11: test non-string passwords are rejected ... ok >oracle11: test MAX_PASSWORD_SIZE is enforced ... ok >oracle11: test forbidden characters not allowed in password ... SKIP: none listed >oracle11: test known hashes ... ok >oracle11: parsehash() ... ok >oracle11: test known alternate hashes ... SKIP: no alternate hashes provided >oracle11: parsehash() -- known outputs ... SKIP: no samples present >oracle11: test known config strings ... SKIP: no config strings provided >oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >oracle11: test known foreign hashes ... ok >oracle11: test non-string hashes are rejected ... ok >oracle11: fuzz testing -- random passwords and options ... ok >oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >oracle11: .disable() / .enable() methods ... SKIP: not applicable >oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >oracle11: test no password size limits enforced (if truncate_size=None) ... ok >oracle11: validate 'truncate_error' setting & related attributes ... ok >oracle11: Handler.using() -- default_salt_size ... ok >phpass: validate required attributes ... ok >phpass: test basic config-string workflow ... ok >phpass: test basic using() workflow ... ok >phpass: test basic hash-string workflow. ... ok >phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >phpass: test hashes can be unicode or bytes ... ok >phpass: test multi-backend support ... SKIP: handler only has one backend >phpass: validate optional salt attributes ... ok >phpass: test hash() / genconfig() creates new salt each time ... ok >phpass: test hash() / genconfig() honors min_salt_size ... ok >phpass: test hash() / genconfig() honors max_salt_size ... ok >phpass: test hash() honors salt_chars ... ok >phpass: test non-string salt values ... ok >phpass: validate optional rounds attributes ... ok >phpass: test hash() / genconfig() honors min_rounds ... ok >phpass: test hash() / genconfig() honors max_rounds ... ok >phpass: validate HasManyIdents configuration ... ok >phpass: test password case sensitivity ... ok >phpass: test non-string passwords are rejected ... ok >phpass: test MAX_PASSWORD_SIZE is enforced ... ok >phpass: test forbidden characters not allowed in password ... SKIP: none listed >phpass: test known hashes ... ok >phpass: parsehash() ... ok >phpass: test known alternate hashes ... SKIP: no alternate hashes provided >phpass: parsehash() -- known outputs ... SKIP: no samples present >phpass: test known config strings ... SKIP: no config strings provided >phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >phpass: test known identifiable-but-malformed strings ... ok >phpass: test known foreign hashes ... ok >phpass: test non-string hashes are rejected ... ok >phpass: fuzz testing -- random passwords and options ... ok >phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >phpass: .disable() / .enable() methods ... SKIP: not applicable >phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok >phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok >phpass: HasRounds.using() -- sanity check test harness ... ok >phpass: HasRounds.using() -- default_rounds ... ok >phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >phpass: HasRounds.using() -- rounds ... ok >phpass: HasRounds.using() -- vary_rounds generation ... ok >phpass: HasRounds.using() -- vary_rounds parsing ... ok >phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >phpass: test no password size limits enforced (if truncate_size=None) ... ok >phpass: validate 'truncate_error' setting & related attributes ... ok >phpass: Handler.using() -- default_salt_size ... ok >plaintext: validate required attributes ... ok >plaintext: test basic config-string workflow ... ok >plaintext: test basic using() workflow ... ok >plaintext: test basic hash-string workflow. ... ok >plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >plaintext: test hashes can be unicode or bytes ... ok >plaintext: test multi-backend support ... SKIP: handler only has one backend >plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt >plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt >plaintext: test non-string salt values ... SKIP: handler doesn't have salt >plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >plaintext: test password case sensitivity ... ok >plaintext: test non-string passwords are rejected ... ok >plaintext: test MAX_PASSWORD_SIZE is enforced ... ok >plaintext: test forbidden characters not allowed in password ... SKIP: none listed >plaintext: test known hashes ... ok >plaintext: parsehash() ... SKIP: parsehash() not implemented >plaintext: test known alternate hashes ... SKIP: no alternate hashes provided >plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented >plaintext: test known config strings ... SKIP: hash has no settings >plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >plaintext: test known foreign hashes ... SKIP: not applicable >plaintext: test non-string hashes are rejected ... ok >plaintext: fuzz testing -- random passwords and options ... ok >plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >plaintext: .disable() / .enable() methods ... SKIP: not applicable >plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >plaintext: test no password size limits enforced (if truncate_size=None) ... ok >plaintext: validate 'truncate_error' setting & related attributes ... ok >plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >postgres_md5: validate required attributes ... ok >postgres_md5: test basic config-string workflow ... ok >postgres_md5: test basic using() workflow ... ok >postgres_md5: test basic hash-string workflow. ... ok >postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >postgres_md5: test hashes can be unicode or bytes ... ok >postgres_md5: test multi-backend support ... SKIP: handler only has one backend >postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt >postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt >postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt >postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >postgres_md5: test password case sensitivity ... ok >postgres_md5: test non-string passwords are rejected ... ok >postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok >postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed >postgres_md5: test known hashes ... ok >postgres_md5: parsehash() ... ok >postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided >postgres_md5: parsehash() -- known outputs ... SKIP: no samples present >postgres_md5: test known config strings ... SKIP: hash has no settings >postgres_md5: test known unidentifiably-mangled strings ... ok >postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >postgres_md5: test known foreign hashes ... ok >postgres_md5: test non-string hashes are rejected ... ok >postgres_md5: fuzz testing -- random passwords and options ... ok >postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >postgres_md5: test user context keyword ... ok >postgres_md5: test user case sensitivity ... ok >postgres_md5: test user used as salt ... ok >postgres_md5: .disable() / .enable() methods ... SKIP: not applicable >postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok >postgres_md5: validate 'truncate_error' setting & related attributes ... ok >postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >sha1_crypt (builtin backend): validate required attributes ... ok >sha1_crypt (builtin backend): test basic config-string workflow ... ok >sha1_crypt (builtin backend): test basic using() workflow ... ok >sha1_crypt (builtin backend): test basic hash-string workflow. ... ok >sha1_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >sha1_crypt (builtin backend): test hashes can be unicode or bytes ... ok >sha1_crypt (builtin backend): test multi-backend support ... ok >sha1_crypt (builtin backend): validate optional salt attributes ... ok >sha1_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok >sha1_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok >sha1_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok >sha1_crypt (builtin backend): test hash() honors salt_chars ... ok >sha1_crypt (builtin backend): test non-string salt values ... ok >sha1_crypt (builtin backend): validate optional rounds attributes ... ok >sha1_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok >sha1_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok >sha1_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >sha1_crypt (builtin backend): test password case sensitivity ... ok >sha1_crypt (builtin backend): test non-string passwords are rejected ... ok >sha1_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok >sha1_crypt (builtin backend): test forbidden characters not allowed in password ... ok >sha1_crypt (builtin backend): test known hashes ... ok >sha1_crypt (builtin backend): parsehash() ... ok >sha1_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided >sha1_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present >sha1_crypt (builtin backend): test known config strings ... SKIP: no config strings provided >sha1_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >sha1_crypt (builtin backend): test known identifiable-but-malformed strings ... ok >sha1_crypt (builtin backend): test known foreign hashes ... ok >sha1_crypt (builtin backend): test non-string hashes are rejected ... ok >sha1_crypt (builtin backend): fuzz testing -- random passwords and options ... ok >sha1_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >sha1_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable >sha1_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >sha1_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >sha1_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >sha1_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok >sha1_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok >sha1_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >sha1_crypt (builtin backend): HasRounds.using() -- rounds ... ok >sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok >sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok >sha1_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >sha1_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok >sha1_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok >sha1_crypt (builtin backend): Handler.using() -- default_salt_size ... ok >sha1_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = False) >sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >sha256_crypt (builtin backend): validate required attributes ... ok >sha256_crypt (builtin backend): test basic config-string workflow ... ok >sha256_crypt (builtin backend): test basic using() workflow ... ok >sha256_crypt (builtin backend): test basic hash-string workflow. ... ok >sha256_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >sha256_crypt (builtin backend): test hashes can be unicode or bytes ... ok >sha256_crypt (builtin backend): test multi-backend support ... ok >sha256_crypt (builtin backend): validate optional salt attributes ... ok >sha256_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok >sha256_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok >sha256_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok >sha256_crypt (builtin backend): test hash() honors salt_chars ... ok >sha256_crypt (builtin backend): test non-string salt values ... ok >sha256_crypt (builtin backend): validate optional rounds attributes ... ok >sha256_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok >sha256_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok >sha256_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >sha256_crypt (builtin backend): test password case sensitivity ... ok >sha256_crypt (builtin backend): test non-string passwords are rejected ... ok >sha256_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok >sha256_crypt (builtin backend): test forbidden characters not allowed in password ... ok >sha256_crypt (builtin backend): test known hashes ... ok >sha256_crypt (builtin backend): parsehash() ... ok >sha256_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided >sha256_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present >sha256_crypt (builtin backend): test known config strings ... ok >sha256_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >sha256_crypt (builtin backend): test known identifiable-but-malformed strings ... ok >sha256_crypt (builtin backend): test known foreign hashes ... ok >sha256_crypt (builtin backend): test non-string hashes are rejected ... ok >sha256_crypt (builtin backend): fuzz testing -- random passwords and options ... ok >sha256_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >sha256_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable >sha256_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >sha256_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >sha256_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >sha256_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok >sha256_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok >sha256_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >sha256_crypt (builtin backend): HasRounds.using() -- rounds ... ok >sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok >sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok >sha256_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >sha256_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok >sha256_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok >sha256_crypt (builtin backend): Handler.using() -- default_salt_size ... ok >sha256_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... FAIL >sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >sha512_crypt (builtin backend): validate required attributes ... ok >sha512_crypt (builtin backend): test basic config-string workflow ... ok >sha512_crypt (builtin backend): test basic using() workflow ... ok >sha512_crypt (builtin backend): test basic hash-string workflow. ... ok >sha512_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >sha512_crypt (builtin backend): test hashes can be unicode or bytes ... ok >sha512_crypt (builtin backend): test multi-backend support ... ok >sha512_crypt (builtin backend): validate optional salt attributes ... ok >sha512_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok >sha512_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok >sha512_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok >sha512_crypt (builtin backend): test hash() honors salt_chars ... ok >sha512_crypt (builtin backend): test non-string salt values ... ok >sha512_crypt (builtin backend): validate optional rounds attributes ... ok >sha512_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok >sha512_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok >sha512_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >sha512_crypt (builtin backend): test password case sensitivity ... ok >sha512_crypt (builtin backend): test non-string passwords are rejected ... ok >sha512_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok >sha512_crypt (builtin backend): test forbidden characters not allowed in password ... ok >sha512_crypt (builtin backend): test known hashes ... ok >sha512_crypt (builtin backend): parsehash() ... ok >sha512_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided >sha512_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present >sha512_crypt (builtin backend): test known config strings ... ok >sha512_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >sha512_crypt (builtin backend): test known identifiable-but-malformed strings ... ok >sha512_crypt (builtin backend): test known foreign hashes ... ok >sha512_crypt (builtin backend): test non-string hashes are rejected ... ok >sha512_crypt (builtin backend): fuzz testing -- random passwords and options ... ok >sha512_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >sha512_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable >sha512_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >sha512_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >sha512_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >sha512_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok >sha512_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok >sha512_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >sha512_crypt (builtin backend): HasRounds.using() -- rounds ... ok >sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok >sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok >sha512_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >sha512_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok >sha512_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok >sha512_crypt (builtin backend): Handler.using() -- default_salt_size ... ok >sha512_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... FAIL >sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >sun_md5_crypt: validate required attributes ... ok >sun_md5_crypt: test basic config-string workflow ... ok >sun_md5_crypt: test basic using() workflow ... ok >sun_md5_crypt: test basic hash-string workflow. ... ok >sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >sun_md5_crypt: test hashes can be unicode or bytes ... ok >sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend >sun_md5_crypt: validate optional salt attributes ... ok >sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok >sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok >sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok >sun_md5_crypt: test hash() honors salt_chars ... ok >sun_md5_crypt: test non-string salt values ... ok >sun_md5_crypt: validate optional rounds attributes ... ok >sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok >sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok >sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >sun_md5_crypt: test password case sensitivity ... ok >sun_md5_crypt: test non-string passwords are rejected ... ok >sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok >sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed >sun_md5_crypt: test known hashes ... ok >sun_md5_crypt: parsehash() ... ok >sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided >sun_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present >sun_md5_crypt: test known config strings ... ok >sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >sun_md5_crypt: test known identifiable-but-malformed strings ... ok >sun_md5_crypt: test known foreign hashes ... ok >sun_md5_crypt: test non-string hashes are rejected ... ok >sun_md5_crypt: fuzz testing -- random passwords and options ... ok >sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable >sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok >sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok >sun_md5_crypt: HasRounds.using() -- default_rounds ... ok >sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >sun_md5_crypt: HasRounds.using() -- rounds ... ok >sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok >sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok >sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok >sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok >sun_md5_crypt: Handler.using() -- default_salt_size ... ok >unix_disabled: validate required attributes ... ok >unix_disabled: test basic config-string workflow ... ok >unix_disabled: test basic using() workflow ... ok >unix_disabled: test basic hash-string workflow. ... ok >unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >unix_disabled: test hashes can be unicode or bytes ... ok >unix_disabled: test multi-backend support ... SKIP: handler only has one backend >unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt >unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt >unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt >unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >unix_disabled: test password case sensitivity ... ok >unix_disabled: test non-string passwords are rejected ... ok >unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok >unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed >unix_disabled: test known hashes ... ok >unix_disabled: parsehash() ... SKIP: parsehash() not implemented >unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided >unix_disabled: parsehash() -- known outputs ... SKIP: parsehash() not implemented >unix_disabled: test known config strings ... SKIP: no config strings provided >unix_disabled: test known unidentifiably-mangled strings ... ok >unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >unix_disabled: test known foreign hashes ... ok >unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok >unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable >unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >unix_disabled: test marker option & special behavior ... ok >unix_disabled: .disable() / .enable() methods ... ok >unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok >unix_disabled: validate 'truncate_error' setting & related attributes ... ok >unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >unix_fallback: validate required attributes ... ok >unix_fallback: test basic config-string workflow ... ok >unix_fallback: test basic using() workflow ... ok >unix_fallback: test basic hash-string workflow. ... ok >unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >unix_fallback: test hashes can be unicode or bytes ... ok >unix_fallback: test multi-backend support ... SKIP: handler only has one backend >unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt >unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt >unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt >unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >unix_fallback: test password case sensitivity ... ok >unix_fallback: test non-string passwords are rejected ... ok >unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok >unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed >unix_fallback: test known hashes ... ok >unix_fallback: parsehash() ... ok >unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided >unix_fallback: parsehash() -- known outputs ... SKIP: no samples present >unix_fallback: test known config strings ... SKIP: hash has no settings >unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >unix_fallback: test known foreign hashes ... SKIP: not applicable >unix_fallback: test non-string hashes are rejected ... ok >unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable >unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >unix_fallback: test enable_wildcard flag ... ok >unix_fallback: test preserves existing disabled hash ... ok >unix_fallback: .disable() / .enable() methods ... ok >unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok >unix_fallback: validate 'truncate_error' setting & related attributes ... ok >unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >argon2 (argon2_cffi backend): validate required attributes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test basic config-string workflow ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test basic using() workflow ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test multi-backend support ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): validate optional salt attributes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test non-string salt values ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): validate optional rounds attributes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test password case sensitivity ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test known hashes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): parsehash() ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test known alternate hashes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test known config strings ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test known foreign hashes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested >argon2 (argon2_cffi backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >argon2 (argon2pure backend): validate required attributes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test basic config-string workflow ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test basic using() workflow ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test multi-backend support ... SKIP: only default backend is being tested >argon2 (argon2pure backend): validate optional salt attributes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test non-string salt values ... SKIP: only default backend is being tested >argon2 (argon2pure backend): validate optional rounds attributes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >argon2 (argon2pure backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test password case sensitivity ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test known hashes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): parsehash() ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test known alternate hashes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test known config strings ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test known foreign hashes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >argon2 (argon2pure backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >argon2 (argon2pure backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >argon2 (argon2pure backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >argon2 (argon2pure backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested >argon2 (argon2pure backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt (bcrypt backend): validate required attributes ... ok >bcrypt (bcrypt backend): test basic config-string workflow ... ok >bcrypt (bcrypt backend): test basic using() workflow ... ok >bcrypt (bcrypt backend): test basic hash-string workflow. ... ok >bcrypt (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >bcrypt (bcrypt backend): test hashes can be unicode or bytes ... ok >bcrypt (bcrypt backend): test multi-backend support ... ok >bcrypt (bcrypt backend): validate optional salt attributes ... ok >bcrypt (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok >bcrypt (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok >bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok >bcrypt (bcrypt backend): test hash() honors salt_chars ... ok >bcrypt (bcrypt backend): test non-string salt values ... ok >bcrypt (bcrypt backend): validate optional rounds attributes ... ok >bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok >bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok >bcrypt (bcrypt backend): validate HasManyIdents configuration ... ok >bcrypt (bcrypt backend): test password case sensitivity ... ok >bcrypt (bcrypt backend): test non-string passwords are rejected ... ok >bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok >bcrypt (bcrypt backend): test forbidden characters not allowed in password ... ok >bcrypt (bcrypt backend): test known hashes ... ok >bcrypt (bcrypt backend): parsehash() ... ok >bcrypt (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided >bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present >bcrypt (bcrypt backend): test known config strings ... ok >bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... ok >bcrypt (bcrypt backend): test known identifiable-but-malformed strings ... ok >bcrypt (bcrypt backend): test known foreign hashes ... ok >bcrypt (bcrypt backend): test non-string hashes are rejected ... ok >bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... ok >bcrypt (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >bcrypt (bcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: requires >= 'full' test mode >bcrypt (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable >bcrypt (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok >bcrypt (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >bcrypt (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >bcrypt (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok >bcrypt (bcrypt backend): HasRounds.using() -- default_rounds ... ok >bcrypt (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >bcrypt (bcrypt backend): HasRounds.using() -- rounds ... ok >bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok >bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok >bcrypt (bcrypt backend): needs_update corrects bcrypt padding ... ok >bcrypt (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... ok >bcrypt (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >bcrypt (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok >bcrypt (bcrypt backend): Handler.using() -- default_salt_size ... ok >bcrypt (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test known hashes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): parsehash() ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test known config strings ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt (builtin backend): test known hashes ... SKIP: only default backend is being tested >bcrypt (builtin backend): parsehash() ... SKIP: only default backend is being tested >bcrypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt (builtin backend): test known config strings ... SKIP: only default backend is being tested >bcrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt (builtin backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested >bcrypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt (builtin backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested >bcrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = False) >bcrypt (os_crypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (bcrypt backend): validate required attributes ... ok >bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... ok >bcrypt_sha256 (bcrypt backend): test basic using() workflow ... ok >bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... ok >bcrypt_sha256 (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >bcrypt_sha256 (bcrypt backend): test hashes can be unicode or bytes ... ok >bcrypt_sha256 (bcrypt backend): test multi-backend support ... ok >bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... ok >bcrypt_sha256 (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok >bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok >bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok >bcrypt_sha256 (bcrypt backend): test hash() honors salt_chars ... ok >bcrypt_sha256 (bcrypt backend): test non-string salt values ... ok >bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... ok >bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok >bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok >bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... SKIP: multiple idents not supported >bcrypt_sha256 (bcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... ok >bcrypt_sha256 (bcrypt backend): test password case sensitivity ... ok >bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... ok >bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok >bcrypt_sha256 (bcrypt backend): test forbidden characters not allowed in password ... SKIP: none listed >bcrypt_sha256 (bcrypt backend): test known hashes ... ok >bcrypt_sha256 (bcrypt backend): parsehash() ... ok >bcrypt_sha256 (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided >bcrypt_sha256 (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present >bcrypt_sha256 (bcrypt backend): test known config strings ... ok >bcrypt_sha256 (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >bcrypt_sha256 (bcrypt backend): test known identifiable-but-malformed strings ... ok >bcrypt_sha256 (bcrypt backend): test known foreign hashes ... ok >bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... ok >bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... ok >bcrypt_sha256 (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >bcrypt_sha256 (bcrypt backend): test digest calc v2 matches bcrypt() ... ok >bcrypt_sha256 (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable >bcrypt_sha256 (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: multiple idents not supported >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- default_rounds ... ok >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- rounds ... ok >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok >bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok >bcrypt_sha256 (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >bcrypt_sha256 (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... ok >bcrypt_sha256 (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok >bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... ok >bcrypt_sha256 (bcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... ok >bcrypt_sha256 (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test known hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): parsehash() ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test known config strings ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (bcryptor backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test known hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): parsehash() ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test known config strings ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (builtin backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test known hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): parsehash() ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test known config strings ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform (current host support = False) >bcrypt_sha256 (os_crypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (os_crypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >bcrypt_sha256 (pybcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested >cisco_asa: validate required attributes ... ok >cisco_asa: test basic config-string workflow ... ok >cisco_asa: test basic using() workflow ... ok >cisco_asa: test basic hash-string workflow. ... ok >cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >cisco_asa: test hashes can be unicode or bytes ... ok >cisco_asa: test multi-backend support ... SKIP: handler only has one backend >cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt >cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt >cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt >cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >cisco_asa: test password case sensitivity ... ok >cisco_asa: test non-string passwords are rejected ... ok >cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok >cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed >cisco_asa: test known hashes ... ok >cisco_asa: parsehash() ... ok >cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided >cisco_asa: parsehash() -- known outputs ... SKIP: no samples present >cisco_asa: test known config strings ... SKIP: hash has no settings >cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >cisco_asa: test known foreign hashes ... ok >cisco_asa: test non-string hashes are rejected ... ok >cisco_asa: fuzz testing -- random passwords and options ... ok >cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >cisco_asa: test user context keyword ... ok >cisco_asa: test user case sensitivity ... ok >cisco_asa: test user used as salt ... ok >cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok >cisco_asa: .disable() / .enable() methods ... SKIP: not applicable >cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok >cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >cisco_asa: validate 'truncate_error' setting & related attributes ... ok >cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >cisco_pix: validate required attributes ... ok >cisco_pix: test basic config-string workflow ... ok >cisco_pix: test basic using() workflow ... ok >cisco_pix: test basic hash-string workflow. ... ok >cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >cisco_pix: test hashes can be unicode or bytes ... ok >cisco_pix: test multi-backend support ... SKIP: handler only has one backend >cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt >cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt >cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt >cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >cisco_pix: test password case sensitivity ... ok >cisco_pix: test non-string passwords are rejected ... ok >cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok >cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed >cisco_pix: test known hashes ... ok >cisco_pix: parsehash() ... ok >cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided >cisco_pix: parsehash() -- known outputs ... SKIP: no samples present >cisco_pix: test known config strings ... SKIP: hash has no settings >cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >cisco_pix: test known foreign hashes ... ok >cisco_pix: test non-string hashes are rejected ... ok >cisco_pix: fuzz testing -- random passwords and options ... ok >cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >cisco_pix: test user context keyword ... ok >cisco_pix: test user case sensitivity ... ok >cisco_pix: test user used as salt ... ok >cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok >cisco_pix: .disable() / .enable() methods ... SKIP: not applicable >cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok >cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >cisco_pix: validate 'truncate_error' setting & related attributes ... ok >cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >cisco_type7: validate required attributes ... ok >cisco_type7: test basic config-string workflow ... ok >cisco_type7: test basic using() workflow ... ok >cisco_type7: test basic hash-string workflow. ... ok >cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >cisco_type7: test hashes can be unicode or bytes ... ok >cisco_type7: test multi-backend support ... SKIP: handler only has one backend >cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info >cisco_type7: test hash() / genconfig() creates new salt each time ... ok >cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info >cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info >cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info >cisco_type7: test non-string salt values ... ok >cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >cisco_type7: test password case sensitivity ... ok >cisco_type7: test non-string passwords are rejected ... ok >cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok >cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed >cisco_type7: test known hashes ... ok >cisco_type7: parsehash() ... ok >cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided >cisco_type7: parsehash() -- known outputs ... SKIP: no samples present >cisco_type7: test known config strings ... SKIP: no config strings provided >cisco_type7: test known unidentifiably-mangled strings ... ok >cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >cisco_type7: test known foreign hashes ... ok >cisco_type7: test non-string hashes are rejected ... ok >cisco_type7: fuzz testing -- random passwords and options ... ok >cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >cisco_type7: test cisco_type7.decode() ... ok >cisco_type7: test salt value border cases ... ok >cisco_type7: .disable() / .enable() methods ... SKIP: not applicable >cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok >cisco_type7: validate 'truncate_error' setting & related attributes ... ok >cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info >django_bcrypt_sha256 (bcrypt backend): validate required attributes ... ok >django_bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... ok >django_bcrypt_sha256 (bcrypt backend): test basic using() workflow ... ok >django_bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... ok >django_bcrypt_sha256 (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_bcrypt_sha256 (bcrypt backend): test hashes can be unicode or bytes ... ok >django_bcrypt_sha256 (bcrypt backend): test multi-backend support ... ok >django_bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... ok >django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok >django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok >django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok >django_bcrypt_sha256 (bcrypt backend): test hash() honors salt_chars ... ok >django_bcrypt_sha256 (bcrypt backend): test non-string salt values ... ok >django_bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... ok >django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok >django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok >django_bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... ok >django_bcrypt_sha256 (bcrypt backend): test password case sensitivity ... ok >django_bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... ok >django_bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok >django_bcrypt_sha256 (bcrypt backend): test forbidden characters not allowed in password ... SKIP: none listed >django_bcrypt_sha256 (bcrypt backend): test known hashes ... ok >django_bcrypt_sha256 (bcrypt backend): parsehash() ... ok >django_bcrypt_sha256 (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided >django_bcrypt_sha256 (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present >django_bcrypt_sha256 (bcrypt backend): test known config strings ... SKIP: no config strings provided >django_bcrypt_sha256 (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >django_bcrypt_sha256 (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >django_bcrypt_sha256 (bcrypt backend): test known foreign hashes ... ok >django_bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... ok >django_bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... ok >django_bcrypt_sha256 (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_bcrypt_sha256 (bcrypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed >django_bcrypt_sha256 (bcrypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed >django_bcrypt_sha256 (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable >django_bcrypt_sha256 (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- default_rounds ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- rounds ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok >django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok >django_bcrypt_sha256 (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >django_bcrypt_sha256 (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... ok >django_bcrypt_sha256 (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok >django_bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... ok >django_bcrypt (bcrypt backend): validate required attributes ... ok >django_bcrypt (bcrypt backend): test basic config-string workflow ... ok >django_bcrypt (bcrypt backend): test basic using() workflow ... ok >django_bcrypt (bcrypt backend): test basic hash-string workflow. ... ok >django_bcrypt (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_bcrypt (bcrypt backend): test hashes can be unicode or bytes ... ok >django_bcrypt (bcrypt backend): test multi-backend support ... ok >django_bcrypt (bcrypt backend): validate optional salt attributes ... ok >django_bcrypt (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok >django_bcrypt (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok >django_bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok >django_bcrypt (bcrypt backend): test hash() honors salt_chars ... ok >django_bcrypt (bcrypt backend): test non-string salt values ... ok >django_bcrypt (bcrypt backend): validate optional rounds attributes ... ok >django_bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok >django_bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok >django_bcrypt (bcrypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >django_bcrypt (bcrypt backend): test password case sensitivity ... ok >django_bcrypt (bcrypt backend): test non-string passwords are rejected ... ok >django_bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok >django_bcrypt (bcrypt backend): test forbidden characters not allowed in password ... ok >django_bcrypt (bcrypt backend): test known hashes ... ok >django_bcrypt (bcrypt backend): parsehash() ... SKIP: parsehash() not implemented >django_bcrypt (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided >django_bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented >django_bcrypt (bcrypt backend): test known config strings ... SKIP: no config strings provided >django_bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >django_bcrypt (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >django_bcrypt (bcrypt backend): test known foreign hashes ... ok >django_bcrypt (bcrypt backend): test non-string hashes are rejected ... ok >django_bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... ok >django_bcrypt (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_bcrypt (bcrypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed >django_bcrypt (bcrypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed >django_bcrypt (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable >django_bcrypt (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >django_bcrypt (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >django_bcrypt (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >django_bcrypt (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok >django_bcrypt (bcrypt backend): HasRounds.using() -- default_rounds ... ok >django_bcrypt (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >django_bcrypt (bcrypt backend): HasRounds.using() -- rounds ... ok >django_bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok >django_bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok >django_bcrypt (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... ok >django_bcrypt (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >django_bcrypt (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok >django_bcrypt (bcrypt backend): Handler.using() -- default_salt_size ... ok >django_des_crypt: validate required attributes ... ok >django_des_crypt: test basic config-string workflow ... ok >django_des_crypt: test basic using() workflow ... ok >django_des_crypt: test basic hash-string workflow. ... ok >django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_des_crypt: test hashes can be unicode or bytes ... ok >django_des_crypt: test multi-backend support ... SKIP: handler only has one backend >django_des_crypt: validate optional salt attributes ... ok >django_des_crypt: test hash() / genconfig() creates new salt each time ... ok >django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok >django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok >django_des_crypt: test hash() honors salt_chars ... ok >django_des_crypt: test non-string salt values ... ok >django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >django_des_crypt: test password case sensitivity ... ok >django_des_crypt: test non-string passwords are rejected ... ok >django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok >django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed >django_des_crypt: test known hashes ... ok >django_des_crypt: parsehash() ... ok >django_des_crypt: test known alternate hashes ... ok >django_des_crypt: parsehash() -- known outputs ... SKIP: no samples present >django_des_crypt: test known config strings ... SKIP: no config strings provided >django_des_crypt: test known unidentifiably-mangled strings ... ok >django_des_crypt: test known identifiable-but-malformed strings ... ok >django_des_crypt: test known foreign hashes ... ok >django_des_crypt: test non-string hashes are rejected ... ok >django_des_crypt: fuzz testing -- random passwords and options ... ok >django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed >django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed >django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable >django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok >django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set >django_des_crypt: validate 'truncate_error' setting & related attributes ... ok >django_des_crypt: Handler.using() -- default_salt_size ... ok >django_disabled: validate required attributes ... ok >django_disabled: test basic config-string workflow ... ok >django_disabled: test basic using() workflow ... ok >django_disabled: test basic hash-string workflow. ... ok >django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_disabled: test hashes can be unicode or bytes ... ok >django_disabled: test multi-backend support ... SKIP: handler only has one backend >django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt >django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt >django_disabled: test non-string salt values ... SKIP: handler doesn't have salt >django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >django_disabled: test password case sensitivity ... ok >django_disabled: test non-string passwords are rejected ... ok >django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok >django_disabled: test forbidden characters not allowed in password ... SKIP: none listed >django_disabled: test known hashes ... ok >django_disabled: parsehash() ... ok >django_disabled: test known alternate hashes ... ok >django_disabled: parsehash() -- known outputs ... SKIP: no samples present >django_disabled: test known config strings ... SKIP: hash has no settings >django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >django_disabled: test known foreign hashes ... ok >django_disabled: test non-string hashes are rejected ... ok >django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable >django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_disabled: .disable() / .enable() methods ... ok >django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >django_disabled: test no password size limits enforced (if truncate_size=None) ... ok >django_disabled: validate 'truncate_error' setting & related attributes ... ok >django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >django_pbkdf2_sha1: validate required attributes ... ok >django_pbkdf2_sha1: test basic config-string workflow ... ok >django_pbkdf2_sha1: test basic using() workflow ... ok >django_pbkdf2_sha1: test basic hash-string workflow. ... ok >django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok >django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend >django_pbkdf2_sha1: validate optional salt attributes ... ok >django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok >django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok >django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok >django_pbkdf2_sha1: test hash() honors salt_chars ... ok >django_pbkdf2_sha1: test non-string salt values ... ok >django_pbkdf2_sha1: validate optional rounds attributes ... ok >django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok >django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok >django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >django_pbkdf2_sha1: test password case sensitivity ... ok >django_pbkdf2_sha1: test non-string passwords are rejected ... ok >django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed >django_pbkdf2_sha1: test known hashes ... ok >django_pbkdf2_sha1: parsehash() ... ok >django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >django_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present >django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided >django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >django_pbkdf2_sha1: test known foreign hashes ... ok >django_pbkdf2_sha1: test non-string hashes are rejected ... ok >django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok >django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed >django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed >django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable >django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok >django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok >django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok >django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok >django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok >django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok >django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok >django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok >django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok >django_pbkdf2_sha256: validate required attributes ... ok >django_pbkdf2_sha256: test basic config-string workflow ... ok >django_pbkdf2_sha256: test basic using() workflow ... ok >django_pbkdf2_sha256: test basic hash-string workflow. ... ok >django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok >django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend >django_pbkdf2_sha256: validate optional salt attributes ... ok >django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok >django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok >django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok >django_pbkdf2_sha256: test hash() honors salt_chars ... ok >django_pbkdf2_sha256: test non-string salt values ... ok >django_pbkdf2_sha256: validate optional rounds attributes ... ok >django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok >django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok >django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >django_pbkdf2_sha256: test password case sensitivity ... ok >django_pbkdf2_sha256: test non-string passwords are rejected ... ok >django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok >django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed >django_pbkdf2_sha256: test known hashes ... ok >django_pbkdf2_sha256: parsehash() ... ok >django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided >django_pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present >django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided >django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >django_pbkdf2_sha256: test known foreign hashes ... ok >django_pbkdf2_sha256: test non-string hashes are rejected ... ok >django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok >django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed >django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed >django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable >django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok >django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok >django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok >django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok >django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok >django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok >django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok >django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok >django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok >django_salted_md5: validate required attributes ... ok >django_salted_md5: test basic config-string workflow ... ok >django_salted_md5: test basic using() workflow ... ok >django_salted_md5: test basic hash-string workflow. ... ok >django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_salted_md5: test hashes can be unicode or bytes ... ok >django_salted_md5: test multi-backend support ... SKIP: handler only has one backend >django_salted_md5: validate optional salt attributes ... ok >django_salted_md5: test hash() / genconfig() creates new salt each time ... ok >django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok >django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok >django_salted_md5: test hash() honors salt_chars ... ok >django_salted_md5: test non-string salt values ... ok >django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >django_salted_md5: test password case sensitivity ... ok >django_salted_md5: test non-string passwords are rejected ... ok >django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok >django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed >django_salted_md5: test known hashes ... ok >django_salted_md5: parsehash() ... ok >django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided >django_salted_md5: parsehash() -- known outputs ... SKIP: no samples present >django_salted_md5: test known config strings ... SKIP: no config strings provided >django_salted_md5: test known unidentifiably-mangled strings ... ok >django_salted_md5: test known identifiable-but-malformed strings ... ok >django_salted_md5: test known foreign hashes ... ok >django_salted_md5: test non-string hashes are rejected ... ok >django_salted_md5: fuzz testing -- random passwords and options ... ok >django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed >django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed >django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable >django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok >django_salted_md5: validate 'truncate_error' setting & related attributes ... ok >django_salted_md5: Handler.using() -- default_salt_size ... ok >django_salted_sha1: validate required attributes ... ok >django_salted_sha1: test basic config-string workflow ... ok >django_salted_sha1: test basic using() workflow ... ok >django_salted_sha1: test basic hash-string workflow. ... ok >django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >django_salted_sha1: test hashes can be unicode or bytes ... ok >django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend >django_salted_sha1: validate optional salt attributes ... ok >django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok >django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok >django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok >django_salted_sha1: test hash() honors salt_chars ... ok >django_salted_sha1: test non-string salt values ... ok >django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >django_salted_sha1: test password case sensitivity ... ok >django_salted_sha1: test non-string passwords are rejected ... ok >django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed >django_salted_sha1: test known hashes ... ok >django_salted_sha1: parsehash() ... ok >django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >django_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present >django_salted_sha1: test known config strings ... SKIP: no config strings provided >django_salted_sha1: test known unidentifiably-mangled strings ... ok >django_salted_sha1: test known identifiable-but-malformed strings ... ok >django_salted_sha1: test known foreign hashes ... ok >django_salted_sha1: test non-string hashes are rejected ... ok >django_salted_sha1: fuzz testing -- random passwords and options ... ok >django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed >django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed >django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable >django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok >django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok >django_salted_sha1: Handler.using() -- default_salt_size ... ok >atlassian_pbkdf2_sha1: validate required attributes ... ok >atlassian_pbkdf2_sha1: test basic config-string workflow ... ok >atlassian_pbkdf2_sha1: test basic using() workflow ... ok >atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok >atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok >atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend >atlassian_pbkdf2_sha1: validate optional salt attributes ... ok >atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok >atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok >atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok >atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok >atlassian_pbkdf2_sha1: test non-string salt values ... ok >atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >atlassian_pbkdf2_sha1: test password case sensitivity ... ok >atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok >atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed >atlassian_pbkdf2_sha1: test known hashes ... ok >atlassian_pbkdf2_sha1: parsehash() ... ok >atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >atlassian_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present >atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided >atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok >atlassian_pbkdf2_sha1: test known foreign hashes ... ok >atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok >atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok >atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable >atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok >atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok >atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok >cta_pbkdf2_sha1: validate required attributes ... ok >cta_pbkdf2_sha1: test basic config-string workflow ... ok >cta_pbkdf2_sha1: test basic using() workflow ... ok >cta_pbkdf2_sha1: test basic hash-string workflow. ... ok >cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok >cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend >cta_pbkdf2_sha1: validate optional salt attributes ... ok >cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok >cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok >cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok >cta_pbkdf2_sha1: test hash() honors salt_chars ... ok >cta_pbkdf2_sha1: test non-string salt values ... ok >cta_pbkdf2_sha1: validate optional rounds attributes ... ok >cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok >cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok >cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >cta_pbkdf2_sha1: test password case sensitivity ... ok >cta_pbkdf2_sha1: test non-string passwords are rejected ... ok >cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed >cta_pbkdf2_sha1: test known hashes ... ok >cta_pbkdf2_sha1: parsehash() ... ok >cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >cta_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present >cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided >cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >cta_pbkdf2_sha1: test known foreign hashes ... ok >cta_pbkdf2_sha1: test non-string hashes are rejected ... ok >cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok >cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable >cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok >cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok >cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok >cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok >cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok >cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok >cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok >cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok >cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok >dlitz_pbkdf2_sha1: validate required attributes ... ok >dlitz_pbkdf2_sha1: test basic config-string workflow ... ok >dlitz_pbkdf2_sha1: test basic using() workflow ... ok >dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok >dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok >dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend >dlitz_pbkdf2_sha1: validate optional salt attributes ... ok >dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok >dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok >dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok >dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok >dlitz_pbkdf2_sha1: test non-string salt values ... ok >dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok >dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok >dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok >dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >dlitz_pbkdf2_sha1: test password case sensitivity ... ok >dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok >dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed >dlitz_pbkdf2_sha1: test known hashes ... ok >dlitz_pbkdf2_sha1: parsehash() ... ok >dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >dlitz_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present >dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided >dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >dlitz_pbkdf2_sha1: test known foreign hashes ... ok >dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok >dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok >dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable >dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok >dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok >dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok >dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok >dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok >dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok >dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok >dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok >dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok >grub_pbkdf2_sha512: validate required attributes ... ok >grub_pbkdf2_sha512: test basic config-string workflow ... ok >grub_pbkdf2_sha512: test basic using() workflow ... ok >grub_pbkdf2_sha512: test basic hash-string workflow. ... ok >grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok >grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend >grub_pbkdf2_sha512: validate optional salt attributes ... ok >grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok >grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok >grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok >grub_pbkdf2_sha512: test hash() honors salt_chars ... ok >grub_pbkdf2_sha512: test non-string salt values ... ok >grub_pbkdf2_sha512: validate optional rounds attributes ... ok >grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok >grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok >grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >grub_pbkdf2_sha512: test password case sensitivity ... ok >grub_pbkdf2_sha512: test non-string passwords are rejected ... ok >grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok >grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed >grub_pbkdf2_sha512: test known hashes ... ok >grub_pbkdf2_sha512: parsehash() ... ok >grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided >grub_pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present >grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided >grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >grub_pbkdf2_sha512: test known foreign hashes ... ok >grub_pbkdf2_sha512: test non-string hashes are rejected ... ok >grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok >grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable >grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok >grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok >grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok >grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok >grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok >grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok >grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok >grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok >grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok >test ldap pbkdf2 wrappers ... ok >pbkdf2_sha1: validate required attributes ... ok >pbkdf2_sha1: test basic config-string workflow ... ok >pbkdf2_sha1: test basic using() workflow ... ok >pbkdf2_sha1: test basic hash-string workflow. ... ok >pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >pbkdf2_sha1: test hashes can be unicode or bytes ... ok >pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend >pbkdf2_sha1: validate optional salt attributes ... ok >pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok >pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok >pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok >pbkdf2_sha1: test hash() honors salt_chars ... ok >pbkdf2_sha1: test non-string salt values ... ok >pbkdf2_sha1: validate optional rounds attributes ... ok >pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok >pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok >pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >pbkdf2_sha1: test password case sensitivity ... ok >pbkdf2_sha1: test non-string passwords are rejected ... ok >pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok >pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed >pbkdf2_sha1: test known hashes ... ok >pbkdf2_sha1: parsehash() ... ok >pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided >pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present >pbkdf2_sha1: test known config strings ... SKIP: no config strings provided >pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >pbkdf2_sha1: test known identifiable-but-malformed strings ... ok >pbkdf2_sha1: test known foreign hashes ... ok >pbkdf2_sha1: test non-string hashes are rejected ... ok >pbkdf2_sha1: fuzz testing -- random passwords and options ... ok >pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable >pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok >pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok >pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok >pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >pbkdf2_sha1: HasRounds.using() -- rounds ... ok >pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok >pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok >pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok >pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok >pbkdf2_sha1: Handler.using() -- default_salt_size ... ok >pbkdf2_sha256: validate required attributes ... ok >pbkdf2_sha256: test basic config-string workflow ... ok >pbkdf2_sha256: test basic using() workflow ... ok >pbkdf2_sha256: test basic hash-string workflow. ... ok >pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >pbkdf2_sha256: test hashes can be unicode or bytes ... ok >pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend >pbkdf2_sha256: validate optional salt attributes ... ok >pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok >pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok >pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok >pbkdf2_sha256: test hash() honors salt_chars ... ok >pbkdf2_sha256: test non-string salt values ... ok >pbkdf2_sha256: validate optional rounds attributes ... ok >pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok >pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok >pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >pbkdf2_sha256: test password case sensitivity ... ok >pbkdf2_sha256: test non-string passwords are rejected ... ok >pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok >pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed >pbkdf2_sha256: test known hashes ... ok >pbkdf2_sha256: parsehash() ... ok >pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided >pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present >pbkdf2_sha256: test known config strings ... SKIP: no config strings provided >pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >pbkdf2_sha256: test known foreign hashes ... ok >pbkdf2_sha256: test non-string hashes are rejected ... ok >pbkdf2_sha256: fuzz testing -- random passwords and options ... ok >pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable >pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok >pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok >pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok >pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >pbkdf2_sha256: HasRounds.using() -- rounds ... ok >pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok >pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok >pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok >pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok >pbkdf2_sha256: Handler.using() -- default_salt_size ... ok >pbkdf2_sha512: validate required attributes ... ok >pbkdf2_sha512: test basic config-string workflow ... ok >pbkdf2_sha512: test basic using() workflow ... ok >pbkdf2_sha512: test basic hash-string workflow. ... ok >pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >pbkdf2_sha512: test hashes can be unicode or bytes ... ok >pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend >pbkdf2_sha512: validate optional salt attributes ... ok >pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok >pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok >pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok >pbkdf2_sha512: test hash() honors salt_chars ... ok >pbkdf2_sha512: test non-string salt values ... ok >pbkdf2_sha512: validate optional rounds attributes ... ok >pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok >pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok >pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >pbkdf2_sha512: test password case sensitivity ... ok >pbkdf2_sha512: test non-string passwords are rejected ... ok >pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok >pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed >pbkdf2_sha512: test known hashes ... ok >pbkdf2_sha512: parsehash() ... ok >pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided >pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present >pbkdf2_sha512: test known config strings ... SKIP: no config strings provided >pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >pbkdf2_sha512: test known foreign hashes ... ok >pbkdf2_sha512: test non-string hashes are rejected ... ok >pbkdf2_sha512: fuzz testing -- random passwords and options ... ok >pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable >pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok >pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok >pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok >pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >pbkdf2_sha512: HasRounds.using() -- rounds ... ok >pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok >pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok >pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok >pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok >pbkdf2_sha512: Handler.using() -- default_salt_size ... ok >scram: validate required attributes ... ok >scram: test basic config-string workflow ... ok >scram: test basic using() workflow ... ok >scram: test basic hash-string workflow. ... ok >scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >scram: test hashes can be unicode or bytes ... ok >scram: test multi-backend support ... SKIP: handler only has one backend >scram: validate optional salt attributes ... ok >scram: test hash() / genconfig() creates new salt each time ... ok >scram: test hash() / genconfig() honors min_salt_size ... ok >scram: test hash() / genconfig() honors max_salt_size ... ok >scram: test hash() honors salt_chars ... ok >scram: test non-string salt values ... ok >scram: validate optional rounds attributes ... ok >scram: test hash() / genconfig() honors min_rounds ... ok >scram: test hash() / genconfig() honors max_rounds ... ok >scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >scram: test password case sensitivity ... ok >scram: test non-string passwords are rejected ... ok >scram: test MAX_PASSWORD_SIZE is enforced ... ok >scram: test forbidden characters not allowed in password ... SKIP: none listed >scram: test known hashes ... ok >scram: parsehash() ... ok >scram: test known alternate hashes ... SKIP: no alternate hashes provided >scram: parsehash() -- known outputs ... SKIP: no samples present >scram: test known config strings ... SKIP: no config strings provided >scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >scram: test known identifiable-but-malformed strings ... ok >scram: test known foreign hashes ... ok >scram: test non-string hashes are rejected ... ok >scram: fuzz testing -- random passwords and options ... ok >scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >scram: test parsing of 'algs' setting ... ok >scram: test internal parsing of 'checksum' keyword ... ok >scram: test scram.extract_digest_info() ... ok >scram: test scram.extract_digest_algs() ... ok >scram: test scram.derive_digest() ... ok >scram: needs_update() -- algs setting ... ok >scram: test hash/verify use saslprep ... ok >scram: using() -- 'algs' parameter ... ok >scram: using() -- 'default_algs' parameter ... ok >scram: test handling of 'algs' in context object ... ok >scram: test verify(full=True) flag ... ok >scram: .disable() / .enable() methods ... SKIP: not applicable >scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok >scram: HasRounds.using() -- desired_rounds + needs_update() ... ok >scram: HasRounds.using() -- sanity check test harness ... ok >scram: HasRounds.using() -- default_rounds ... ok >scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok >scram: HasRounds.using() -- rounds ... ok >scram: HasRounds.using() -- vary_rounds generation ... ok >scram: HasRounds.using() -- vary_rounds parsing ... ok >scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >scram: test no password size limits enforced (if truncate_size=None) ... ok >scram: validate 'truncate_error' setting & related attributes ... ok >scram: Handler.using() -- default_salt_size ... ok >scrypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested >scrypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested >scrypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested >scrypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >scrypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >scrypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested >scrypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested >scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >scrypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >scrypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested >scrypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested >scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >scrypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >scrypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested >scrypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >scrypt (builtin backend): test known hashes ... SKIP: only default backend is being tested >scrypt (builtin backend): parsehash() ... SKIP: only default backend is being tested >scrypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested >scrypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >scrypt (builtin backend): test known config strings ... SKIP: only default backend is being tested >scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >scrypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >scrypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested >scrypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >scrypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >scrypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >scrypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >scrypt (scrypt backend): validate required attributes ... ok >scrypt (scrypt backend): test basic config-string workflow ... ok >scrypt (scrypt backend): test basic using() workflow ... ok >scrypt (scrypt backend): test basic hash-string workflow. ... ok >scrypt (scrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >scrypt (scrypt backend): test hashes can be unicode or bytes ... ok >scrypt (scrypt backend): test multi-backend support ... ok >scrypt (scrypt backend): validate optional salt attributes ... ok >scrypt (scrypt backend): test hash() / genconfig() creates new salt each time ... ok >scrypt (scrypt backend): test hash() / genconfig() honors min_salt_size ... ok >scrypt (scrypt backend): test hash() / genconfig() honors max_salt_size ... ok >scrypt (scrypt backend): test hash() honors salt_chars ... ok >scrypt (scrypt backend): test non-string salt values ... ok >scrypt (scrypt backend): validate optional rounds attributes ... ok >scrypt (scrypt backend): test hash() / genconfig() honors min_rounds ... ok >scrypt (scrypt backend): test hash() / genconfig() honors max_rounds ... ok >scrypt (scrypt backend): validate HasManyIdents configuration ... ok >scrypt (scrypt backend): test password case sensitivity ... ok >scrypt (scrypt backend): test non-string passwords are rejected ... ok >scrypt (scrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok >scrypt (scrypt backend): test forbidden characters not allowed in password ... SKIP: none listed >scrypt (scrypt backend): test known hashes ... ok >scrypt (scrypt backend): parsehash() ... ok >scrypt (scrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided >scrypt (scrypt backend): parsehash() -- known outputs ... SKIP: no samples present >scrypt (scrypt backend): test known config strings ... SKIP: no config strings provided >scrypt (scrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >scrypt (scrypt backend): test known identifiable-but-malformed strings ... ok >scrypt (scrypt backend): test known foreign hashes ... ok >scrypt (scrypt backend): test non-string hashes are rejected ... ok >scrypt (scrypt backend): fuzz testing -- random passwords and options ... ok >scrypt (scrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >scrypt (scrypt backend): .disable() / .enable() methods ... SKIP: not applicable >scrypt (scrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok >scrypt (scrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok >scrypt (scrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok >scrypt (scrypt backend): HasRounds.using() -- sanity check test harness ... ok >scrypt (scrypt backend): HasRounds.using() -- default_rounds ... ok >scrypt (scrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok >scrypt (scrypt backend): HasRounds.using() -- rounds ... ok >scrypt (scrypt backend): HasRounds.using() -- vary_rounds generation ... ok >scrypt (scrypt backend): HasRounds.using() -- vary_rounds parsing ... ok >scrypt (scrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >scrypt (scrypt backend): test no password size limits enforced (if truncate_size=None) ... ok >scrypt (scrypt backend): validate 'truncate_error' setting & related attributes ... ok >scrypt (scrypt backend): Handler.using() -- default_salt_size ... ok >scrypt (stdlib backend): validate required attributes ... SKIP: only default backend is being tested >scrypt (stdlib backend): test basic config-string workflow ... SKIP: only default backend is being tested >scrypt (stdlib backend): test basic using() workflow ... SKIP: only default backend is being tested >scrypt (stdlib backend): test basic hash-string workflow. ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested >scrypt (stdlib backend): test multi-backend support ... SKIP: only default backend is being tested >scrypt (stdlib backend): validate optional salt attributes ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hash() honors salt_chars ... SKIP: only default backend is being tested >scrypt (stdlib backend): test non-string salt values ... SKIP: only default backend is being tested >scrypt (stdlib backend): validate optional rounds attributes ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested >scrypt (stdlib backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested >scrypt (stdlib backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested >scrypt (stdlib backend): test password case sensitivity ... SKIP: only default backend is being tested >scrypt (stdlib backend): test non-string passwords are rejected ... SKIP: only default backend is being tested >scrypt (stdlib backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested >scrypt (stdlib backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested >scrypt (stdlib backend): test known hashes ... SKIP: only default backend is being tested >scrypt (stdlib backend): parsehash() ... SKIP: only default backend is being tested >scrypt (stdlib backend): test known alternate hashes ... SKIP: only default backend is being tested >scrypt (stdlib backend): parsehash() -- known outputs ... SKIP: only default backend is being tested >scrypt (stdlib backend): test known config strings ... SKIP: only default backend is being tested >scrypt (stdlib backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested >scrypt (stdlib backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested >scrypt (stdlib backend): test known foreign hashes ... SKIP: only default backend is being tested >scrypt (stdlib backend): test non-string hashes are rejected ... SKIP: only default backend is being tested >scrypt (stdlib backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested >scrypt (stdlib backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested >scrypt (stdlib backend): .disable() / .enable() methods ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested >scrypt (stdlib backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested >scrypt (stdlib backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested >scrypt (stdlib backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested >scrypt (stdlib backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested >scrypt (stdlib backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested >test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok >test_host_context (passlib.tests.test_hosts.HostsTest) ... SKIP: host_context not available on this platform >test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok >passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok >passlib.pwd.genphrase(): general behavior ... ok >passlib.pwd.genphrase(): 'returns' keyword ... ok >passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok >passlib.pwd: _self_info_rate() ... ok >passlib.pwd.genword(): 'charset' & 'chars' options ... ok >passlib.pwd.genword(): general behavior ... ok >passlib.pwd.genword(): 'returns' keyword ... ok >passlib.registry: test get_crypt_handler() ... ok >passlib.registry: verify we have tests for all builtin handlers ... ok >passlib.registry: test passlib.hash proxy object ... ok >passlib.registry: test list_crypt_handlers() ... ok >passlib.registry: test register_crypt_handler() ... ok >passlib.registry: test register_crypt_handler_path() ... ok >passlib.totp.AppWallet: .decrypt_key() ... ok >passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... ok >passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok >passlib.totp.AppWallet: verify cost parameter via timing ... ok >passlib.totp.AppWallet: .encrypt_key() ... ok >passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok >passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok >passlib.totp.TOTP: helper to iterate over test vectors. ... ok >passlib.totp.TOTP: constructor -- 'alg' parameter ... ok >passlib.totp.TOTP: constructor -- 'digits' parameter ... ok >passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok >passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok >passlib.totp.TOTP: constructor -- 'label' parameter ... ok >passlib.totp.TOTP: constructor -- 'new' parameter ... ok >passlib.totp.TOTP: constructor -- 'period' parameter ... ok >passlib.totp.TOTP: constructor -- 'size' parameter ... ok >passlib.totp.TOTP: from_dict() ... ok >passlib.totp.TOTP: from_source() ... ok >passlib.totp.TOTP: from_uri() ... ok >passlib.totp.TOTP: generate() ... ok >passlib.totp.TOTP: generate() -- reference vectors ... ok >passlib.totp.TOTP: pretty_key() and .key attributes ... ok >passlib.totp.TOTP: match() -- reference vectors ... ok >passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok >passlib.totp.TOTP: match() -- 'skew' parameters ... ok >passlib.totp.TOTP: match() -- token normalization ... ok >passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok >passlib.totp.TOTP: normalize_time() ... ok >passlib.totp.TOTP: normalize_token() -- class method ... ok >passlib.totp.TOTP: normalize_token() -- instance method ... ok >passlib.totp.TOTP: internal test -- randotp() ... ok >passlib.totp.TOTP: to_dict() ... ok >passlib.totp.TOTP: to_uri() ... ok >passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok >passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok >passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok >passlib.totp.TOTP: match() -- valid TotpMatch object ... ok >passlib.totp.TOTP: generate() -- TotpToken() class ... ok >passlib.totp.TOTP: using -- 'now' parameter ... ok >passlib.totp.TOTP: using() -- 'period' parameter ... ok >passlib.totp.TOTP: verify() ... ok >ab64_decode() ... ok >ab64_encode() ... ok >b64s_decode() ... ok >b64s_encode() ... ok >test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok >test b() helper, bytes and native str type ... ok >test is_ascii_safe() ... ok >test is_same_codec() ... ok >test to_bytes() ... ok >test to_native_str() ... ok >test to_unicode() ... ok >h64big codec: test encode_bytes/decode_bytes against random data ... ok >h64big codec: test decode_bytes() against reference inputs ... ok >h64big codec: test decode_bytes() with bad input ... ok >h64big codec: test decode_bytes() ignores padding bits ... ok >h64big codec: test decode_transposed_bytes() ... ok >h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok >h64big codec: test encode_bytes() against reference inputs ... ok >h64big codec: test encode_bytes() with bad input ... ok >h64big codec: test encode_transposed_bytes() ... ok >h64big codec: test against reference integer encodings ... ok >h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok >h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok >h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok >h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok >h64big codec: test repair_unused() ... ok >h64 codec: test encode_bytes/decode_bytes against random data ... ok >h64 codec: test decode_bytes() against reference inputs ... ok >h64 codec: test decode_bytes() with bad input ... ok >h64 codec: test decode_bytes() ignores padding bits ... ok >h64 codec: test decode_transposed_bytes() ... ok >h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok >h64 codec: test encode_bytes() against reference inputs ... ok >h64 codec: test encode_bytes() with bad input ... ok >h64 codec: test encode_transposed_bytes() ... ok >h64 codec: test against reference integer encodings ... ok >h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok >h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok >h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok >h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok >h64 codec: test repair_unused() ... ok >test_classproperty (passlib.tests.test_utils.MiscTest) ... ok >test compat's lazymodule ... ok >test consteq() ... ok >test crypt.crypt() wrappers ... SKIP: crypt.crypt() not available >test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok >generate_password() ... ok >test genseed() ... ok >getrandbytes() ... ok >getrandstr() ... ok >test is_crypt_context() ... ok >test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok >test saslprep() unicode normalizer ... ok >test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok >utf8_truncate() ... ok >test PrefixWrapper lazy loading of handler ... ok >test PrefixWrapper active loading of handler ... ok >test PrefixWrapper with explicitly specified handler ... ok >test_10_wrapped_attributes (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok >test_11_wrapped_methods (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok >test_12_ident (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok >test repr() ... ok >test orig_prefix sanity check ... ok >salted_test_hash: validate required attributes ... ok >salted_test_hash: test basic config-string workflow ... ok >salted_test_hash: test basic using() workflow ... ok >salted_test_hash: test basic hash-string workflow. ... ok >salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >salted_test_hash: test hashes can be unicode or bytes ... ok >salted_test_hash: test multi-backend support ... SKIP: handler only has one backend >salted_test_hash: validate optional salt attributes ... ok >salted_test_hash: test hash() / genconfig() creates new salt each time ... ok >salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok >salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok >salted_test_hash: test hash() honors salt_chars ... ok >salted_test_hash: test non-string salt values ... ok >salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >salted_test_hash: test password case sensitivity ... ok >salted_test_hash: test non-string passwords are rejected ... ok >salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok >salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed >salted_test_hash: test known hashes ... ok >salted_test_hash: parsehash() ... ok >salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided >salted_test_hash: parsehash() -- known outputs ... SKIP: no samples present >salted_test_hash: test known config strings ... SKIP: no config strings provided >salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >salted_test_hash: test known foreign hashes ... ok >salted_test_hash: test non-string hashes are rejected ... ok >salted_test_hash: fuzz testing -- random passwords and options ... ok >salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok >salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable >salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok >salted_test_hash: validate 'truncate_error' setting & related attributes ... ok >salted_test_hash: Handler.using() -- default_salt_size ... ok >test StaticHandler class ... ok >test StaticHandler legacy attr ... ok >test GenericHandler.identify() ... ok >test GenericHandler checksum handling ... ok >test GenericHandler + HasRawChecksum mixin ... ok >test GenericHandler + HasSalt mixin ... ok >test GenericHandler + HasRounds mixin ... ok >test GenericHandler + HasManyBackends mixin ... ok >test GenericHandler + HasManyBackends mixin (deprecated api) ... ok >test GenericHandler + HasManyIdents ... ok >test parsehash() ... ok >test bitsize() ... ok >unsalted_test_hash: validate required attributes ... ok >unsalted_test_hash: test basic config-string workflow ... ok >unsalted_test_hash: test basic using() workflow ... ok >unsalted_test_hash: test basic hash-string workflow. ... ok >unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok >unsalted_test_hash: test hashes can be unicode or bytes ... ok >unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend >unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt >unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt >unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt >unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt >unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt >unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt >unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes >unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes >unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes >unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents >unsalted_test_hash: test password case sensitivity ... ok >unsalted_test_hash: test non-string passwords are rejected ... ok >unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok >unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed >unsalted_test_hash: test known hashes ... ok >unsalted_test_hash: parsehash() ... ok >unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided >unsalted_test_hash: parsehash() -- known outputs ... SKIP: no samples present >unsalted_test_hash: test known config strings ... SKIP: hash has no settings >unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided >unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided >unsalted_test_hash: test known foreign hashes ... ok >unsalted_test_hash: test non-string hashes are rejected ... ok >unsalted_test_hash: fuzz testing -- random passwords and options ... ok >unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode >unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok >unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable >unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents >unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes >unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes >unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes >unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes >unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes >unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes >unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes >unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes >unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set >unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok >unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok >unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt >passlib.utils.md4.md4(): informational attributes ... ok >passlib.utils.md4.md4(): copy() method ... ok >passlib.utils.md4.md4(): digest() method ... ok >passlib.utils.md4.md4(): hexdigest() method ... ok >passlib.utils.md4.md4(): update() method ... ok >passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok >passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok >passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok >passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok >passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok >passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok >passlib.utils.pbkdf2: norm_hash_name() ... ok >test_lmhash (passlib.tests.test_win32.UtilTest) ... ok >test_nthash (passlib.tests.test_win32.UtilTest) ... ok > >====================================================================== >FAIL: des_crypt (os_crypt backend): test platform-specific crypt() support detection >---------------------------------------------------------------------- >Traceback (most recent call last): > File "/var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4/passlib/tests/utils.py", line 3388, in test_82_crypt_support > (platform, name)) >AssertionError: expected 'linux' platform would have native support for 'des_crypt' > >====================================================================== >FAIL: md5_crypt (os_crypt backend): test platform-specific crypt() support detection >---------------------------------------------------------------------- >Traceback (most recent call last): > File "/var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4/passlib/tests/utils.py", line 3388, in test_82_crypt_support > (platform, name)) >AssertionError: expected 'linux' platform would have native support for 'md5_crypt' > >====================================================================== >FAIL: sha256_crypt (os_crypt backend): test platform-specific crypt() support detection >---------------------------------------------------------------------- >Traceback (most recent call last): > File "/var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4/passlib/tests/utils.py", line 3388, in test_82_crypt_support > (platform, name)) >AssertionError: expected 'linux' platform would have native support for 'sha256_crypt' > >====================================================================== >FAIL: sha512_crypt (os_crypt backend): test platform-specific crypt() support detection >---------------------------------------------------------------------- >Traceback (most recent call last): > File "/var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4/passlib/tests/utils.py", line 3388, in test_82_crypt_support > (platform, name)) >AssertionError: expected 'linux' platform would have native support for 'sha512_crypt' > >---------------------------------------------------------------------- >Ran 4372 tests in 249.994s > >FAILED (SKIP=2398, failures=4) > * ERROR: dev-python/passlib-1.7.4::gentoo failed (test phase): > * Tests fail with pypy3 > * > * Call stack: > * ebuild.sh, line 125: Called src_test > * environment, line 3042: Called distutils-r1_src_test > * environment, line 1297: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 513: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 2646: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2079: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2077: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 870: Called distutils-r1_run_phase 'python_test' > * environment, line 1234: Called python_test > * environment, line 3002: Called die > * The specific snippet of code: > * nosetests -v || die "Tests fail with ${EPYTHON}" > * > * If you need support, post the output of `emerge --info '=dev-python/passlib-1.7.4::gentoo'`, > * the complete build log and the output of `emerge -pqv '=dev-python/passlib-1.7.4::gentoo'`. > * The complete build log is located at '/var/log/emerge-log/build/dev-python/passlib-1.7.4:20201122-160141.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-python/passlib-1.7.4/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/dev-python/passlib-1.7.4/temp/environment'. > * Working directory: '/var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4' > * S: '/var/tmp/portage/dev-python/passlib-1.7.4/work/passlib-1.7.4'
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 756103
: 674353