Mock Version: 1.4.14 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-passlib.spec'], chrootPath='/var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.8qu66ne9:/etc/resolv.conf']unshare_net=TrueprintOutput=True) Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '4016c5758b634ca4a1c537002c50d6e2', '-D', '/var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root', '-a', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.8qu66ne9:/etc/resolv.conf', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=en_US.UTF-8', '-u', 'mockbuild', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-passlib.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/python-passlib-1.7.1-3.fc31.src.rpm Child return code was: 0 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/python-passlib.spec'], chrootPath='/var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.8qu66ne9:/etc/resolv.conf']unshare_net=TrueprintOutput=True) Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '1724e5b48b9f42b9af36fb9230e59d56', '-D', '/var/lib/mock/883567-fedora-rawhide-x86_64-1555337421.721624/root', '-a', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.8qu66ne9:/etc/resolv.conf', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=en_US.UTF-8', '-u', 'mockbuild', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/python-passlib.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.pDNH6u + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf passlib-1.7.1 + /usr/bin/gzip -dc /builddir/build/SOURCES/passlib-1.7.1.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd passlib-1.7.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/bin/cat /builddir/build/SOURCES/python-passlib-1.7.1-libxcrypt-compat.patch + /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch + rm -fr passlib.egg-info + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.hcRyTv + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + sleep 1 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python2 setup.py build '--executable=/usr/bin/python2 -s' running build running build_py creating build creating build/lib creating build/lib/passlib copying passlib/win32.py -> build/lib/passlib copying passlib/apache.py -> build/lib/passlib copying passlib/totp.py -> build/lib/passlib copying passlib/apps.py -> build/lib/passlib copying passlib/registry.py -> build/lib/passlib copying passlib/hash.py -> build/lib/passlib copying passlib/pwd.py -> build/lib/passlib copying passlib/exc.py -> build/lib/passlib copying passlib/hosts.py -> build/lib/passlib copying passlib/context.py -> build/lib/passlib copying passlib/ifc.py -> build/lib/passlib copying passlib/__init__.py -> build/lib/passlib creating build/lib/passlib/tests copying passlib/tests/test_handlers.py -> build/lib/passlib/tests copying passlib/tests/test_context.py -> build/lib/passlib/tests copying passlib/tests/test_context_deprecated.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_des.py -> build/lib/passlib/tests copying passlib/tests/__main__.py -> build/lib/passlib/tests copying passlib/tests/test_registry.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_scrypt.py -> build/lib/passlib/tests copying passlib/tests/test_ext_django.py -> build/lib/passlib/tests copying passlib/tests/test_win32.py -> build/lib/passlib/tests copying passlib/tests/tox_support.py -> build/lib/passlib/tests copying passlib/tests/test_hosts.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_builtin_md4.py -> build/lib/passlib/tests copying passlib/tests/utils.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_django.py -> build/lib/passlib/tests copying passlib/tests/backports.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_cisco.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_bcrypt.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_argon2.py -> build/lib/passlib/tests copying passlib/tests/_test_bad_register.py -> build/lib/passlib/tests copying passlib/tests/test_totp.py -> build/lib/passlib/tests copying passlib/tests/test_ext_django_source.py -> build/lib/passlib/tests copying passlib/tests/test_utils_pbkdf2.py -> build/lib/passlib/tests copying passlib/tests/test_apps.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_pbkdf2.py -> build/lib/passlib/tests copying passlib/tests/test_utils.py -> build/lib/passlib/tests copying passlib/tests/test_apache.py -> build/lib/passlib/tests copying passlib/tests/test_crypto_digest.py -> build/lib/passlib/tests copying passlib/tests/test_pwd.py -> build/lib/passlib/tests copying passlib/tests/test_utils_md4.py -> build/lib/passlib/tests copying passlib/tests/test_utils_handlers.py -> build/lib/passlib/tests copying passlib/tests/test_handlers_scrypt.py -> build/lib/passlib/tests copying passlib/tests/__init__.py -> build/lib/passlib/tests creating build/lib/passlib/handlers copying passlib/handlers/misc.py -> build/lib/passlib/handlers copying passlib/handlers/sun_md5_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/cisco.py -> build/lib/passlib/handlers copying passlib/handlers/mysql.py -> build/lib/passlib/handlers copying passlib/handlers/phpass.py -> build/lib/passlib/handlers copying passlib/handlers/pbkdf2.py -> build/lib/passlib/handlers copying passlib/handlers/django.py -> build/lib/passlib/handlers copying passlib/handlers/postgres.py -> build/lib/passlib/handlers copying passlib/handlers/windows.py -> build/lib/passlib/handlers copying passlib/handlers/digests.py -> build/lib/passlib/handlers copying passlib/handlers/mssql.py -> build/lib/passlib/handlers copying passlib/handlers/sha2_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/md5_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/bcrypt.py -> build/lib/passlib/handlers copying passlib/handlers/argon2.py -> build/lib/passlib/handlers copying passlib/handlers/sha1_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/des_crypt.py -> build/lib/passlib/handlers copying passlib/handlers/roundup.py -> build/lib/passlib/handlers copying passlib/handlers/scram.py -> build/lib/passlib/handlers copying passlib/handlers/oracle.py -> build/lib/passlib/handlers copying passlib/handlers/scrypt.py -> build/lib/passlib/handlers copying passlib/handlers/ldap_digests.py -> build/lib/passlib/handlers copying passlib/handlers/__init__.py -> build/lib/passlib/handlers copying passlib/handlers/fshp.py -> build/lib/passlib/handlers creating build/lib/passlib/_setup copying passlib/_setup/stamp.py -> build/lib/passlib/_setup copying passlib/_setup/__init__.py -> build/lib/passlib/_setup creating build/lib/passlib/crypto copying passlib/crypto/des.py -> build/lib/passlib/crypto copying passlib/crypto/digest.py -> build/lib/passlib/crypto copying passlib/crypto/_md4.py -> build/lib/passlib/crypto copying passlib/crypto/__init__.py -> build/lib/passlib/crypto creating build/lib/passlib/ext copying passlib/ext/__init__.py -> build/lib/passlib/ext creating build/lib/passlib/utils copying passlib/utils/des.py -> build/lib/passlib/utils copying passlib/utils/pbkdf2.py -> build/lib/passlib/utils copying passlib/utils/binary.py -> build/lib/passlib/utils copying passlib/utils/decor.py -> build/lib/passlib/utils copying passlib/utils/handlers.py -> build/lib/passlib/utils copying passlib/utils/__init__.py -> build/lib/passlib/utils copying passlib/utils/md4.py -> build/lib/passlib/utils creating build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_gen_files.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_builtin.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/_salsa.py -> build/lib/passlib/crypto/scrypt copying passlib/crypto/scrypt/__init__.py -> build/lib/passlib/crypto/scrypt creating build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/_gen_files.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/unrolled.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/base.py -> build/lib/passlib/crypto/_blowfish copying passlib/crypto/_blowfish/__init__.py -> build/lib/passlib/crypto/_blowfish creating build/lib/passlib/ext/django copying passlib/ext/django/models.py -> build/lib/passlib/ext/django copying passlib/ext/django/utils.py -> build/lib/passlib/ext/django copying passlib/ext/django/__init__.py -> build/lib/passlib/ext/django creating build/lib/passlib/utils/compat copying passlib/utils/compat/_ordered_dict.py -> build/lib/passlib/utils/compat copying passlib/utils/compat/__init__.py -> build/lib/passlib/utils/compat creating build/lib/passlib/_data creating build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_long.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/bip39.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_prefixed.txt -> build/lib/passlib/_data/wordsets copying passlib/_data/wordsets/eff_short.txt -> build/lib/passlib/_data/wordsets copying passlib/tests/sample1c.cfg -> build/lib/passlib/tests copying passlib/tests/sample_config_1s.cfg -> build/lib/passlib/tests copying passlib/tests/sample1.cfg -> build/lib/passlib/tests copying passlib/tests/sample1b.cfg -> build/lib/passlib/tests + sleep 1 + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' running build running build_py + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.twbn4t + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 BUILDSTDERR: ++ dirname /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 + cd passlib-1.7.1 + export PASSLIB_SETUP_TAG_RELEASE=no + PASSLIB_SETUP_TAG_RELEASE=no + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python2 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 running install running install_lib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7 creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_short.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_prefixed.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/bip39.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_long.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_data/wordsets creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/_ordered_dict.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/decor.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/binary.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils copying build/lib/passlib/utils/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/models.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/base.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/unrolled.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_salsa.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_builtin.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/stamp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/fshp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/ldap_digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/oracle.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scram.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/roundup.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/des_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha1_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha2_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mssql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/windows.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/postgres.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/phpass.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mysql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sun_md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/misc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1b.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample_config_1s.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1c.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django_source.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/_test_bad_register.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/backports.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_builtin_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/tox_support.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/__main__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context_deprecated.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests copying build/lib/passlib/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/ifc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/exc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/hash.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib copying build/lib/passlib/win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/md4.py to md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/handlers.py to handlers.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/decor.py to decor.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/binary.py to binary.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/pbkdf2.py to pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/utils/des.py to des.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/django/models.py to models.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ext/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/base.py to base.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_salsa.py to _salsa.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_builtin.py to _builtin.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/_md4.py to _md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/digest.py to digest.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/crypto/des.py to des.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/_setup/stamp.py to stamp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/fshp.py to fshp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/ldap_digests.py to ldap_digests.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/scrypt.py to scrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/oracle.py to oracle.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/scram.py to scram.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/roundup.py to roundup.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/des_crypt.py to des_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/argon2.py to argon2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/bcrypt.py to bcrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/md5_crypt.py to md5_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/mssql.py to mssql.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/digests.py to digests.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/windows.py to windows.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/postgres.py to postgres.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/django.py to django.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/pbkdf2.py to pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/phpass.py to phpass.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/mysql.py to mysql.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/cisco.py to cisco.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/handlers/misc.py to misc.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils_md4.py to test_utils_md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_pwd.py to test_pwd.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_apache.py to test_apache.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils.py to test_utils.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_apps.py to test_apps.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_totp.py to test_totp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/_test_bad_register.py to _test_bad_register.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/backports.py to backports.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers_django.py to test_handlers_django.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/utils.py to utils.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_hosts.py to test_hosts.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/tox_support.py to tox_support.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_win32.py to test_win32.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_ext_django.py to test_ext_django.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_registry.py to test_registry.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/__main__.py to __main__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_crypto_des.py to test_crypto_des.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_context.py to test_context.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/tests/test_handlers.py to test_handlers.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/__init__.py to __init__.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/ifc.py to ifc.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/context.py to context.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/hosts.py to hosts.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/exc.py to exc.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/pwd.py to pwd.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/hash.py to hash.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/registry.py to registry.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/apps.py to apps.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/totp.py to totp.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/apache.py to apache.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib/win32.py to win32.pyc writing byte-compilation script '/tmp/tmpyC1OL4.py' /usr/bin/python2 -O /tmp/tmpyC1OL4.py removing /tmp/tmpyC1OL4.py running install_egg_info running egg_info creating passlib.egg-info writing requirements to passlib.egg-info/requires.txt writing passlib.egg-info/PKG-INFO writing top-level names to passlib.egg-info/top_level.txt writing dependency_links to passlib.egg-info/dependency_links.txt writing manifest file 'passlib.egg-info/SOURCES.txt' reading manifest file 'passlib.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' BUILDSTDERR: warning: no files found matching 'CHANGES' writing manifest file 'passlib.egg-info/SOURCES.txt' Copying passlib.egg-info to /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7/site-packages/passlib-1.7.1-py2.7.egg-info running install_scripts + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 running install running install_lib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7 creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_short.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_prefixed.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/bip39.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets copying build/lib/passlib/_data/wordsets/eff_long.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_data/wordsets creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/compat/_ordered_dict.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat copying build/lib/passlib/utils/md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/decor.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/binary.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils copying build/lib/passlib/utils/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/django/models.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django copying build/lib/passlib/ext/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/base.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/unrolled.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish copying build/lib/passlib/crypto/_blowfish/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_salsa.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_builtin.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/scrypt/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt copying build/lib/passlib/crypto/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto copying build/lib/passlib/crypto/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup copying build/lib/passlib/_setup/stamp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/fshp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/ldap_digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/oracle.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/scram.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/roundup.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/des_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha1_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sha2_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mssql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/windows.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/postgres.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/phpass.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/mysql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/sun_md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers copying build/lib/passlib/handlers/misc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers creating /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1b.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample_config_1s.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/sample1c.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_utils_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django_source.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/_test_bad_register.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/backports.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_builtin_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/tox_support.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_ext_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/__main__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_crypto_des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context_deprecated.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/tests/test_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests copying build/lib/passlib/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/ifc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/exc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/hash.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib copying build/lib/passlib/win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/md4.py to md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/handlers.py to handlers.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/decor.py to decor.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/binary.py to binary.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/pbkdf2.py to pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/utils/des.py to des.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django/utils.py to utils.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/django/models.py to models.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ext/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/base.py to base.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/_salsa.py to _salsa.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/_builtin.py to _builtin.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/_md4.py to _md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/digest.py to digest.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/crypto/des.py to des.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/_setup/stamp.py to stamp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/fshp.py to fshp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/ldap_digests.py to ldap_digests.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/scrypt.py to scrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/oracle.py to oracle.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/scram.py to scram.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/roundup.py to roundup.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/des_crypt.py to des_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/argon2.py to argon2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/bcrypt.py to bcrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/md5_crypt.py to md5_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/mssql.py to mssql.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/digests.py to digests.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/windows.py to windows.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/postgres.py to postgres.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/django.py to django.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/pbkdf2.py to pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/phpass.py to phpass.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/mysql.py to mysql.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/cisco.py to cisco.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/handlers/misc.py to misc.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils_md4.py to test_utils_md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_pwd.py to test_pwd.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_apache.py to test_apache.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils.py to test_utils.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_apps.py to test_apps.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_totp.py to test_totp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/_test_bad_register.py to _test_bad_register.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/backports.py to backports.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers_django.py to test_handlers_django.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/utils.py to utils.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_hosts.py to test_hosts.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/tox_support.py to tox_support.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_win32.py to test_win32.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_ext_django.py to test_ext_django.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_registry.py to test_registry.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/__main__.py to __main__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_crypto_des.py to test_crypto_des.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_context.py to test_context.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/tests/test_handlers.py to test_handlers.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/__init__.py to __init__.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/ifc.py to ifc.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/context.py to context.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/hosts.py to hosts.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/exc.py to exc.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/pwd.py to pwd.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/hash.py to hash.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/registry.py to registry.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/apps.py to apps.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/totp.py to totp.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/apache.py to apache.cpython-37.pyc byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib/win32.py to win32.cpython-37.pyc writing byte-compilation script '/tmp/tmpjwvfeet_.py' /usr/bin/python3 /tmp/tmpjwvfeet_.py removing /tmp/tmpjwvfeet_.py running install_egg_info running egg_info writing passlib.egg-info/PKG-INFO writing dependency_links to passlib.egg-info/dependency_links.txt writing requirements to passlib.egg-info/requires.txt writing top-level names to passlib.egg-info/top_level.txt reading manifest file 'passlib.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' BUILDSTDERR: warning: no files found matching 'CHANGES' writing manifest file 'passlib.egg-info/SOURCES.txt' Copying passlib.egg-info to /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7/site-packages/passlib-1.7.1-py3.7.egg-info running install_scripts + /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 1.7.1-3.fc31 --unique-debug-suffix -1.7.1-3.fc31.x86_64 --unique-debug-src-base python-passlib-1.7.1-3.fc31.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/passlib-1.7.1 BUILDSTDERR: find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python3.7 using /usr/bin/python3.7 Bytecompiling .py files below /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/lib/python2.7 using /usr/bin/python2.7 + /usr/lib/rpm/brp-python-hardlink + /usr/lib/rpm/redhat/brp-mangle-shebangs Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.ZprGDw + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + nosetests-2.7 -v BUILDSTDERR: /builddir/build/BUILD/passlib-1.7.1/passlib/crypto/scrypt/__init__.py:127: PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended BUILDSTDERR: "is strongly recommended" % slowdown, exc.PasslibSecurityWarning) BUILDSTDERR: HtdigestFile: test constructor autoload ... ok BUILDSTDERR: HtdigestFile: test delete() ... ok BUILDSTDERR: HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok BUILDSTDERR: HtdigestFile: test update() ... ok BUILDSTDERR: HtdigestFile: test users() ... ok BUILDSTDERR: HtdigestFile: test check_password() ... ok BUILDSTDERR: HtdigestFile: test load() ... ok BUILDSTDERR: HtdigestFile: test save() ... ok BUILDSTDERR: HtdigestFile: test realms() & delete_realm() ... ok BUILDSTDERR: HtdigestFile: test get_hash() ... ok BUILDSTDERR: HtdigestFile: test encoding parameter ... ok BUILDSTDERR: HtdigestFile: test to_string() ... ok BUILDSTDERR: HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok BUILDSTDERR: HtpasswdFile: test constructor autoload ... ok BUILDSTDERR: HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test delete() ... ok BUILDSTDERR: HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test set_password() ... ok BUILDSTDERR: HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test set_password() -- default_scheme ... /builddir/build/BUILD/passlib-1.7.1/passlib/apache.py:717: PasslibSecurityWarning: HtpasswdFile: no bcrypt backends available, using fallback for default scheme 'portable' BUILDSTDERR: exc.PasslibSecurityWarning) BUILDSTDERR: ok BUILDSTDERR: HtpasswdFile: test users() ... ok BUILDSTDERR: HtpasswdFile: test check_password() ... ok BUILDSTDERR: HtpasswdFile: test load() ... ok BUILDSTDERR: HtpasswdFile: test save() ... ok BUILDSTDERR: HtpasswdFile: test 'encoding' kwd ... ok BUILDSTDERR: HtpasswdFile: test get_hash() ... ok BUILDSTDERR: HtpasswdFile: test to_string ... ok BUILDSTDERR: HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: whitespace & comment handling ... ok BUILDSTDERR: test_custom_app_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_django16_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_django_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_ldap_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_ldap_mysql_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_ldap_nocrypt_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_master_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_phpbb3_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_phppass_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_postgres_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_roundup_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: CryptContext: test class constructor ... ok BUILDSTDERR: CryptContext: test from_string() constructor ... ok BUILDSTDERR: CryptContext: test from_path() constructor ... ok BUILDSTDERR: CryptContext: test copy() method ... ok BUILDSTDERR: CryptContext: test repr() ... ok BUILDSTDERR: CryptContext: test load() / load_path() method ... ok BUILDSTDERR: CryptContext: test load() errors restore old state ... ok BUILDSTDERR: CryptContext: test update() method ... ok BUILDSTDERR: CryptContext: test basic option parsing ... ok BUILDSTDERR: CryptContext: test 'schemes' context option parsing ... ok BUILDSTDERR: CryptContext: test 'deprecated' context option parsing ... ok BUILDSTDERR: CryptContext: test 'default' context option parsing ... ok BUILDSTDERR: CryptContext: test 'vary_rounds' hash option parsing ... ok BUILDSTDERR: CryptContext: test schemes() method ... ok BUILDSTDERR: CryptContext: test default_scheme() method ... ok BUILDSTDERR: CryptContext: test handler() method ... ok BUILDSTDERR: CryptContext: test internal _get_record_options() method ... ok BUILDSTDERR: CryptContext: test to_dict() method ... ok BUILDSTDERR: CryptContext: test to_string() method ... ok BUILDSTDERR: CryptContext: test basic hash/identify/verify functionality ... ok BUILDSTDERR: CryptContext: test genconfig() method ... ok BUILDSTDERR: CryptContext: test genhash() method ... ok BUILDSTDERR: CryptContext: test hash() method ... ok BUILDSTDERR: CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok BUILDSTDERR: CryptContext: test identify() border cases ... ok BUILDSTDERR: CryptContext: test verify() scheme kwd ... ok BUILDSTDERR: CryptContext: test needs_update() method ... ok BUILDSTDERR: CryptContext: test verify_and_update() ... ok BUILDSTDERR: CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok BUILDSTDERR: CryptContext: test rounds limits ... ok BUILDSTDERR: CryptContext: test linear vary rounds ... ok BUILDSTDERR: CryptContext: test log2 vary rounds ... ok BUILDSTDERR: CryptContext: test deprecated='auto' is handled correctly ... ok BUILDSTDERR: CryptContext: disabled hash support ... ok BUILDSTDERR: CryptContext: dummy_verify() method ... ok BUILDSTDERR: CryptContext: harden_verify -- parsing ... ok BUILDSTDERR: LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok BUILDSTDERR: LazyCryptContext: test plain kwds ... ok BUILDSTDERR: CryptContext: test constructor ... ok BUILDSTDERR: CryptContext: test replace() ... ok BUILDSTDERR: CryptContext: test no handlers ... ok BUILDSTDERR: CryptContext: test hash_needs_update() method ... ok BUILDSTDERR: CryptContext: test non-string hash values cause error ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_path() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_string() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_source() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_sources() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.replace() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy() forbidden kwds ... ok BUILDSTDERR: CryptPolicy: test has_schemes() method ... ok BUILDSTDERR: CryptPolicy: test iter_handlers() method ... ok BUILDSTDERR: CryptPolicy: test get_handler() method ... ok BUILDSTDERR: CryptPolicy: test get_options() method ... ok BUILDSTDERR: CryptPolicy: test handler_is_deprecated() method ... ok BUILDSTDERR: CryptPolicy: test get_min_verify_time() method ... ok BUILDSTDERR: CryptPolicy: test iter_config() method ... ok BUILDSTDERR: CryptPolicy: test to_dict() method ... ok BUILDSTDERR: CryptPolicy: test to_string() method ... ok BUILDSTDERR: LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok BUILDSTDERR: LazyCryptContext: test plain kwds ... ok BUILDSTDERR: passlib.crypto._md4.md4(): informational attributes ... ok BUILDSTDERR: passlib.crypto._md4.md4(): copy() method ... ok BUILDSTDERR: passlib.crypto._md4.md4(): digest() method ... ok BUILDSTDERR: passlib.crypto._md4.md4(): hexdigest() method ... ok BUILDSTDERR: passlib.crypto._md4.md4(): update() method ... ok BUILDSTDERR: hashlib.new('md4'): informational attributes ... ok BUILDSTDERR: hashlib.new('md4'): copy() method ... ok BUILDSTDERR: hashlib.new('md4'): digest() method ... ok BUILDSTDERR: hashlib.new('md4'): hexdigest() method ... ok BUILDSTDERR: hashlib.new('md4'): update() method ... ok BUILDSTDERR: passlib.crypto.des: expand_des_key() ... ok BUILDSTDERR: passlib.crypto.des: shrink_des_key() ... ok BUILDSTDERR: passlib.crypto.des: des_encrypt_block() ... ok BUILDSTDERR: passlib.crypto.des: des_encrypt_int_block() ... ok BUILDSTDERR: passlib.crypto.digest: lookup_hash() -- alternate types ... ok BUILDSTDERR: passlib.crypto.digest: lookup_hash() -- constructor ... ok BUILDSTDERR: passlib.crypto.digest: lookup_hash() -- metadata ... ok BUILDSTDERR: passlib.crypto.digest: norm_hash_name() ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf1: test border cases ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf1: test reference vectors ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : verify expected backends are present ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : test border cases ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : test keylen==None ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : test reference vectors ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : backend management ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : backend management -- missing backend ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : compare output to other backends ... SKIP: no other backends found BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : reference vectors ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok BUILDSTDERR: passlib.crypto.scrypt._builtin: bmix() ... ok BUILDSTDERR: passlib.crypto.scrypt._builtin: salsa20() ... ok BUILDSTDERR: passlib.crypto.scrypt._builtin: smix() ... ok BUILDSTDERR: verify django behavior: test hashing interface ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG='' ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed BUILDSTDERR: verify extension behavior: test hashing interface ... SKIP: Django not installed BUILDSTDERR: external django hasher tests ... SKIP: django not installed BUILDSTDERR: test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok BUILDSTDERR: apr_md5_crypt: validate required attributes ... ok BUILDSTDERR: apr_md5_crypt: test basic config-string workflow ... ok BUILDSTDERR: apr_md5_crypt: test basic using() workflow ... ok BUILDSTDERR: apr_md5_crypt: test basic hash-string workflow. ... ok BUILDSTDERR: apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: apr_md5_crypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: apr_md5_crypt: validate optional salt attributes ... ok BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: apr_md5_crypt: test hash() honors salt_chars ... ok BUILDSTDERR: apr_md5_crypt: test non-string salt values ... ok BUILDSTDERR: apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: apr_md5_crypt: test password case sensitivity ... ok BUILDSTDERR: apr_md5_crypt: test non-string passwords are rejected ... ok BUILDSTDERR: apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: apr_md5_crypt: test known hashes ... ok BUILDSTDERR: apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: apr_md5_crypt: test known config strings ... SKIP: no config strings provided BUILDSTDERR: apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: apr_md5_crypt: test known identifiable-but-malformed strings ... ok BUILDSTDERR: apr_md5_crypt: test known foreign hashes ... ok BUILDSTDERR: apr_md5_crypt: test non-string hashes are rejected ... ok BUILDSTDERR: apr_md5_crypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: apr_md5_crypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: bigcrypt: validate required attributes ... ok BUILDSTDERR: bigcrypt: test basic config-string workflow ... ok BUILDSTDERR: bigcrypt: test basic using() workflow ... ok BUILDSTDERR: bigcrypt: test basic hash-string workflow. ... ok BUILDSTDERR: bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: bigcrypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: bigcrypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: bigcrypt: validate optional salt attributes ... ok BUILDSTDERR: bigcrypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: bigcrypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: bigcrypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: bigcrypt: test hash() honors salt_chars ... ok BUILDSTDERR: bigcrypt: test non-string salt values ... ok BUILDSTDERR: bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bigcrypt: test password case sensitivity ... ok BUILDSTDERR: bigcrypt: test non-string passwords are rejected ... ok BUILDSTDERR: bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: bigcrypt: test known hashes ... ok BUILDSTDERR: bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: bigcrypt: test known config strings ... SKIP: no config strings provided BUILDSTDERR: bigcrypt: test known unidentifiably-mangled strings ... ok BUILDSTDERR: bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: bigcrypt: test known foreign hashes ... ok BUILDSTDERR: bigcrypt: test non-string hashes are rejected ... ok BUILDSTDERR: bigcrypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok BUILDSTDERR: bigcrypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: bigcrypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: bigcrypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: bsd_nthash: validate required attributes ... ok BUILDSTDERR: bsd_nthash: test basic config-string workflow ... ok BUILDSTDERR: bsd_nthash: test basic using() workflow ... ok BUILDSTDERR: bsd_nthash: test basic hash-string workflow. ... ok BUILDSTDERR: bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: bsd_nthash: test hashes can be unicode or bytes ... ok BUILDSTDERR: bsd_nthash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsd_nthash: test password case sensitivity ... ok BUILDSTDERR: bsd_nthash: test non-string passwords are rejected ... ok BUILDSTDERR: bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: bsd_nthash: test known hashes ... ok BUILDSTDERR: bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: bsd_nthash: test known config strings ... SKIP: hash has no settings BUILDSTDERR: bsd_nthash: test known unidentifiably-mangled strings ... ok BUILDSTDERR: bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: bsd_nthash: test known foreign hashes ... ok BUILDSTDERR: bsd_nthash: test non-string hashes are rejected ... ok BUILDSTDERR: bsd_nthash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: bsd_nthash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: bsdi_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsdi_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: bsdi_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: bsdi_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: bsdi_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux2' platform BUILDSTDERR: bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: crypt16: validate required attributes ... ok BUILDSTDERR: crypt16: test basic config-string workflow ... ok BUILDSTDERR: crypt16: test basic using() workflow ... ok BUILDSTDERR: crypt16: test basic hash-string workflow. ... ok BUILDSTDERR: crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: crypt16: test hashes can be unicode or bytes ... ok BUILDSTDERR: crypt16: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: crypt16: validate optional salt attributes ... ok BUILDSTDERR: crypt16: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: crypt16: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: crypt16: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: crypt16: test hash() honors salt_chars ... ok BUILDSTDERR: crypt16: test non-string salt values ... ok BUILDSTDERR: crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: crypt16: test password case sensitivity ... ok BUILDSTDERR: crypt16: test non-string passwords are rejected ... ok BUILDSTDERR: crypt16: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: crypt16: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: crypt16: test known hashes ... ok BUILDSTDERR: crypt16: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: crypt16: test known config strings ... SKIP: no config strings provided BUILDSTDERR: crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: crypt16: test known foreign hashes ... ok BUILDSTDERR: crypt16: test non-string hashes are rejected ... ok BUILDSTDERR: crypt16: fuzz testing -- random passwords and options ... ok BUILDSTDERR: crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: crypt16: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: crypt16: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: crypt16: Handler.using() -- default_salt_size ... ok BUILDSTDERR: des_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: des_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: des_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: des_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: des_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: des_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: des_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: des_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: des_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: des_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok BUILDSTDERR: des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: des_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: des_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: des_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: des_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: fshp: validate required attributes ... ok BUILDSTDERR: fshp: test basic config-string workflow ... ok BUILDSTDERR: fshp: test basic using() workflow ... ok BUILDSTDERR: fshp: test basic hash-string workflow. ... ok BUILDSTDERR: fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: fshp: test hashes can be unicode or bytes ... ok BUILDSTDERR: fshp: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: fshp: validate optional salt attributes ... ok BUILDSTDERR: fshp: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: fshp: test hash() honors salt_chars ... ok BUILDSTDERR: fshp: test non-string salt values ... ok BUILDSTDERR: fshp: validate optional rounds attributes ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: fshp: test password case sensitivity ... ok BUILDSTDERR: fshp: test non-string passwords are rejected ... ok BUILDSTDERR: fshp: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: fshp: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: fshp: test known hashes ... ok BUILDSTDERR: fshp: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: fshp: test known config strings ... SKIP: no config strings provided BUILDSTDERR: fshp: test known unidentifiably-mangled strings ... ok BUILDSTDERR: fshp: test known identifiable-but-malformed strings ... ok BUILDSTDERR: fshp: test known foreign hashes ... ok BUILDSTDERR: fshp: test non-string hashes are rejected ... ok BUILDSTDERR: fshp: fuzz testing -- random passwords and options ... ok BUILDSTDERR: fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: fshp: test variant keyword ... ok BUILDSTDERR: fshp: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: fshp: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: fshp: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: fshp: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: fshp: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: fshp: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: fshp: Handler.using() -- default_salt_size ... ok BUILDSTDERR: hex_md4: validate required attributes ... ok BUILDSTDERR: hex_md4: test basic config-string workflow ... ok BUILDSTDERR: hex_md4: test basic using() workflow ... ok BUILDSTDERR: hex_md4: test basic hash-string workflow. ... ok BUILDSTDERR: hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_md4: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_md4: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md4: test password case sensitivity ... ok BUILDSTDERR: hex_md4: test non-string passwords are rejected ... ok BUILDSTDERR: hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_md4: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_md4: test known hashes ... ok BUILDSTDERR: hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_md4: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_md4: test known foreign hashes ... ok BUILDSTDERR: hex_md4: test non-string hashes are rejected ... ok BUILDSTDERR: hex_md4: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_md4: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_md4: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_md4: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: validate required attributes ... ok BUILDSTDERR: hex_md5: test basic config-string workflow ... ok BUILDSTDERR: hex_md5: test basic using() workflow ... ok BUILDSTDERR: hex_md5: test basic hash-string workflow. ... ok BUILDSTDERR: hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md5: test password case sensitivity ... ok BUILDSTDERR: hex_md5: test non-string passwords are rejected ... ok BUILDSTDERR: hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_md5: test known hashes ... ok BUILDSTDERR: hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_md5: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_md5: test known foreign hashes ... ok BUILDSTDERR: hex_md5: test non-string hashes are rejected ... ok BUILDSTDERR: hex_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: validate required attributes ... ok BUILDSTDERR: hex_sha1: test basic config-string workflow ... ok BUILDSTDERR: hex_sha1: test basic using() workflow ... ok BUILDSTDERR: hex_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha1: test password case sensitivity ... ok BUILDSTDERR: hex_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_sha1: test known hashes ... ok BUILDSTDERR: hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_sha1: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_sha1: test known foreign hashes ... ok BUILDSTDERR: hex_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: hex_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: validate required attributes ... ok BUILDSTDERR: hex_sha256: test basic config-string workflow ... ok BUILDSTDERR: hex_sha256: test basic using() workflow ... ok BUILDSTDERR: hex_sha256: test basic hash-string workflow. ... ok BUILDSTDERR: hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_sha256: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_sha256: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha256: test password case sensitivity ... ok BUILDSTDERR: hex_sha256: test non-string passwords are rejected ... ok BUILDSTDERR: hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_sha256: test known hashes ... ok BUILDSTDERR: hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_sha256: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_sha256: test known foreign hashes ... ok BUILDSTDERR: hex_sha256: test non-string hashes are rejected ... ok BUILDSTDERR: hex_sha256: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_sha256: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_sha256: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: validate required attributes ... ok BUILDSTDERR: hex_sha512: test basic config-string workflow ... ok BUILDSTDERR: hex_sha512: test basic using() workflow ... ok BUILDSTDERR: hex_sha512: test basic hash-string workflow. ... ok BUILDSTDERR: hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_sha512: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_sha512: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha512: test password case sensitivity ... ok BUILDSTDERR: hex_sha512: test non-string passwords are rejected ... ok BUILDSTDERR: hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_sha512: test known hashes ... ok BUILDSTDERR: hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_sha512: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_sha512: test known foreign hashes ... ok BUILDSTDERR: hex_sha512: test non-string hashes are rejected ... ok BUILDSTDERR: hex_sha512: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_sha512: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_sha512: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: validate required attributes ... ok BUILDSTDERR: htdigest: test basic config-string workflow ... ok BUILDSTDERR: htdigest: test basic using() workflow ... ok BUILDSTDERR: htdigest: test basic hash-string workflow. ... ok BUILDSTDERR: htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: htdigest: test hashes can be unicode or bytes ... ok BUILDSTDERR: htdigest: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: htdigest: test password case sensitivity ... ok BUILDSTDERR: htdigest: test non-string passwords are rejected ... ok BUILDSTDERR: htdigest: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: htdigest: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: htdigest: test known hashes ... ok BUILDSTDERR: htdigest: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: htdigest: test known config strings ... SKIP: hash has no settings BUILDSTDERR: htdigest: test known unidentifiably-mangled strings ... ok BUILDSTDERR: htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: htdigest: test known foreign hashes ... ok BUILDSTDERR: htdigest: test non-string hashes are rejected ... ok BUILDSTDERR: htdigest: fuzz testing -- random passwords and options ... ok BUILDSTDERR: htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword BUILDSTDERR: htdigest: test user case sensitivity ... ok BUILDSTDERR: htdigest: test user used as salt ... ok BUILDSTDERR: htdigest: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: htdigest: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: htdigest: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers BUILDSTDERR: ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_md5: validate required attributes ... ok BUILDSTDERR: ldap_md5: test basic config-string workflow ... ok BUILDSTDERR: ldap_md5: test basic using() workflow ... ok BUILDSTDERR: ldap_md5: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5: test password case sensitivity ... ok BUILDSTDERR: ldap_md5: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_md5: test known hashes ... ok BUILDSTDERR: ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_md5: test known config strings ... SKIP: hash has no settings BUILDSTDERR: ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_md5: test known foreign hashes ... ok BUILDSTDERR: ldap_md5: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: validate required attributes ... ok BUILDSTDERR: ldap_plaintext: test basic config-string workflow ... ok BUILDSTDERR: ldap_plaintext: test basic using() workflow ... ok BUILDSTDERR: ldap_plaintext: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_plaintext: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_plaintext: test password case sensitivity ... ok BUILDSTDERR: ldap_plaintext: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_plaintext: test known hashes ... ok BUILDSTDERR: ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_plaintext: test known config strings ... SKIP: hash has no settings BUILDSTDERR: ldap_plaintext: test known unidentifiably-mangled strings ... ok BUILDSTDERR: ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_plaintext: test known foreign hashes ... ok BUILDSTDERR: ldap_plaintext: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_plaintext: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_salted_md5: validate required attributes ... ok BUILDSTDERR: ldap_salted_md5: test basic config-string workflow ... ok BUILDSTDERR: ldap_salted_md5: test basic using() workflow ... ok BUILDSTDERR: ldap_salted_md5: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_salted_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_salted_md5: validate optional salt attributes ... ok BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_salted_md5: test hash() honors salt_chars ... ok BUILDSTDERR: ldap_salted_md5: test non-string salt values ... ok BUILDSTDERR: ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_md5: test password case sensitivity ... ok BUILDSTDERR: ldap_salted_md5: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_salted_md5: test known hashes ... ok BUILDSTDERR: ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_salted_md5: test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_salted_md5: test known identifiable-but-malformed strings ... ok BUILDSTDERR: ldap_salted_md5: test known foreign hashes ... ok BUILDSTDERR: ldap_salted_md5: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_salted_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_salted_md5: Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_salted_sha1: validate required attributes ... ok BUILDSTDERR: ldap_salted_sha1: test basic config-string workflow ... ok BUILDSTDERR: ldap_salted_sha1: test basic using() workflow ... ok BUILDSTDERR: ldap_salted_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_salted_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_salted_sha1: validate optional salt attributes ... ok BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_salted_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: ldap_salted_sha1: test non-string salt values ... ok BUILDSTDERR: ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_sha1: test password case sensitivity ... ok BUILDSTDERR: ldap_salted_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_salted_sha1: test known hashes ... ok BUILDSTDERR: ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_salted_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_salted_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: ldap_salted_sha1: test known foreign hashes ... ok BUILDSTDERR: ldap_salted_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_salted_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_salted_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: unneeded BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_sha1: validate required attributes ... ok BUILDSTDERR: ldap_sha1: test basic config-string workflow ... ok BUILDSTDERR: ldap_sha1: test basic using() workflow ... ok BUILDSTDERR: ldap_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1: test password case sensitivity ... ok BUILDSTDERR: ldap_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_sha1: test known hashes ... ok BUILDSTDERR: ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_sha1: test known config strings ... SKIP: hash has no settings BUILDSTDERR: ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_sha1: test known foreign hashes ... ok BUILDSTDERR: ldap_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: validate required attributes ... ok BUILDSTDERR: lmhash: test basic config-string workflow ... ok BUILDSTDERR: lmhash: test basic using() workflow ... ok BUILDSTDERR: lmhash: test basic hash-string workflow. ... ok BUILDSTDERR: lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: lmhash: test hashes can be unicode or bytes ... ok BUILDSTDERR: lmhash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: lmhash: test password case sensitivity ... ok BUILDSTDERR: lmhash: test non-string passwords are rejected ... ok BUILDSTDERR: lmhash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: lmhash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: lmhash: test known hashes ... ok BUILDSTDERR: lmhash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: lmhash: test known config strings ... SKIP: no config strings provided BUILDSTDERR: lmhash: test known unidentifiably-mangled strings ... ok BUILDSTDERR: lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: lmhash: test known foreign hashes ... ok BUILDSTDERR: lmhash: test non-string hashes are rejected ... ok BUILDSTDERR: lmhash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: lmhash: test lmhash.raw() method ... ok BUILDSTDERR: lmhash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: lmhash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: md5_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: md5_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: md5_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: md5_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: msdcc2: validate required attributes ... ok BUILDSTDERR: msdcc2: test basic config-string workflow ... ok BUILDSTDERR: msdcc2: test basic using() workflow ... ok BUILDSTDERR: msdcc2: test basic hash-string workflow. ... ok BUILDSTDERR: msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: msdcc2: test hashes can be unicode or bytes ... ok BUILDSTDERR: msdcc2: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc2: test password case sensitivity ... ok BUILDSTDERR: msdcc2: test non-string passwords are rejected ... ok BUILDSTDERR: msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: msdcc2: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: msdcc2: test known hashes ... ok BUILDSTDERR: msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: msdcc2: test known config strings ... SKIP: hash has no settings BUILDSTDERR: msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: msdcc2: test known foreign hashes ... ok BUILDSTDERR: msdcc2: test non-string hashes are rejected ... ok BUILDSTDERR: msdcc2: fuzz testing -- random passwords and options ... ok BUILDSTDERR: msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: msdcc2: test user context keyword ... ok BUILDSTDERR: msdcc2: test user case sensitivity ... ok BUILDSTDERR: msdcc2: test user used as salt ... ok BUILDSTDERR: msdcc2: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: msdcc2: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: msdcc2: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: validate required attributes ... ok BUILDSTDERR: msdcc: test basic config-string workflow ... ok BUILDSTDERR: msdcc: test basic using() workflow ... ok BUILDSTDERR: msdcc: test basic hash-string workflow. ... ok BUILDSTDERR: msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: msdcc: test hashes can be unicode or bytes ... ok BUILDSTDERR: msdcc: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc: test password case sensitivity ... ok BUILDSTDERR: msdcc: test non-string passwords are rejected ... ok BUILDSTDERR: msdcc: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: msdcc: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: msdcc: test known hashes ... ok BUILDSTDERR: msdcc: test known alternate hashes ... ok BUILDSTDERR: msdcc: test known config strings ... SKIP: hash has no settings BUILDSTDERR: msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: msdcc: test known foreign hashes ... ok BUILDSTDERR: msdcc: test non-string hashes are rejected ... ok BUILDSTDERR: msdcc: fuzz testing -- random passwords and options ... ok BUILDSTDERR: msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: msdcc: test user context keyword ... ok BUILDSTDERR: msdcc: test user case sensitivity ... ok BUILDSTDERR: msdcc: test user used as salt ... ok BUILDSTDERR: msdcc: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: msdcc: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: msdcc: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mssql2000: validate required attributes ... ok BUILDSTDERR: mssql2000: test basic config-string workflow ... ok BUILDSTDERR: mssql2000: test basic using() workflow ... ok BUILDSTDERR: mssql2000: test basic hash-string workflow. ... ok BUILDSTDERR: mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mssql2000: test hashes can be unicode or bytes ... ok BUILDSTDERR: mssql2000: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mssql2000: validate optional salt attributes ... ok BUILDSTDERR: mssql2000: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: mssql2000: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: mssql2000: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: mssql2000: test hash() honors salt_chars ... ok BUILDSTDERR: mssql2000: test non-string salt values ... ok BUILDSTDERR: mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2000: test password case sensitivity ... ok BUILDSTDERR: mssql2000: test non-string passwords are rejected ... ok BUILDSTDERR: mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mssql2000: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mssql2000: test known hashes ... ok BUILDSTDERR: mssql2000: test known alternate hashes ... ok BUILDSTDERR: mssql2000: test known config strings ... SKIP: no config strings provided BUILDSTDERR: mssql2000: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mssql2000: test known identifiable-but-malformed strings ... ok BUILDSTDERR: mssql2000: test known foreign hashes ... ok BUILDSTDERR: mssql2000: test non-string hashes are rejected ... ok BUILDSTDERR: mssql2000: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mssql2000: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mssql2000: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mssql2000: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mssql2000: Handler.using() -- default_salt_size ... ok BUILDSTDERR: mssql2005: validate required attributes ... ok BUILDSTDERR: mssql2005: test basic config-string workflow ... ok BUILDSTDERR: mssql2005: test basic using() workflow ... ok BUILDSTDERR: mssql2005: test basic hash-string workflow. ... ok BUILDSTDERR: mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mssql2005: test hashes can be unicode or bytes ... ok BUILDSTDERR: mssql2005: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mssql2005: validate optional salt attributes ... ok BUILDSTDERR: mssql2005: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: mssql2005: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: mssql2005: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: mssql2005: test hash() honors salt_chars ... ok BUILDSTDERR: mssql2005: test non-string salt values ... ok BUILDSTDERR: mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2005: test password case sensitivity ... ok BUILDSTDERR: mssql2005: test non-string passwords are rejected ... ok BUILDSTDERR: mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mssql2005: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mssql2005: test known hashes ... ok BUILDSTDERR: mssql2005: test known alternate hashes ... ok BUILDSTDERR: mssql2005: test known config strings ... SKIP: no config strings provided BUILDSTDERR: mssql2005: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mssql2005: test known identifiable-but-malformed strings ... ok BUILDSTDERR: mssql2005: test known foreign hashes ... ok BUILDSTDERR: mssql2005: test non-string hashes are rejected ... ok BUILDSTDERR: mssql2005: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mssql2005: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mssql2005: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mssql2005: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mssql2005: Handler.using() -- default_salt_size ... ok BUILDSTDERR: mysql323: validate required attributes ... ok BUILDSTDERR: mysql323: test basic config-string workflow ... ok BUILDSTDERR: mysql323: test basic using() workflow ... ok BUILDSTDERR: mysql323: test basic hash-string workflow. ... ok BUILDSTDERR: mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mysql323: test hashes can be unicode or bytes ... ok BUILDSTDERR: mysql323: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql323: test password case sensitivity ... ok BUILDSTDERR: mysql323: test non-string passwords are rejected ... ok BUILDSTDERR: mysql323: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mysql323: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mysql323: test known hashes ... ok BUILDSTDERR: mysql323: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: mysql323: test known config strings ... SKIP: hash has no settings BUILDSTDERR: mysql323: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: mysql323: test known foreign hashes ... ok BUILDSTDERR: mysql323: test non-string hashes are rejected ... ok BUILDSTDERR: mysql323: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mysql323: check whitespace is ignored per spec ... ok BUILDSTDERR: mysql323: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mysql323: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mysql323: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: validate required attributes ... ok BUILDSTDERR: mysql41: test basic config-string workflow ... ok BUILDSTDERR: mysql41: test basic using() workflow ... ok BUILDSTDERR: mysql41: test basic hash-string workflow. ... ok BUILDSTDERR: mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mysql41: test hashes can be unicode or bytes ... ok BUILDSTDERR: mysql41: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql41: test password case sensitivity ... ok BUILDSTDERR: mysql41: test non-string passwords are rejected ... ok BUILDSTDERR: mysql41: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mysql41: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mysql41: test known hashes ... ok BUILDSTDERR: mysql41: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: mysql41: test known config strings ... SKIP: hash has no settings BUILDSTDERR: mysql41: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: mysql41: test known foreign hashes ... ok BUILDSTDERR: mysql41: test non-string hashes are rejected ... ok BUILDSTDERR: mysql41: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mysql41: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mysql41: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mysql41: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: validate required attributes ... ok BUILDSTDERR: nthash: test basic config-string workflow ... ok BUILDSTDERR: nthash: test basic using() workflow ... ok BUILDSTDERR: nthash: test basic hash-string workflow. ... ok BUILDSTDERR: nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: nthash: test hashes can be unicode or bytes ... ok BUILDSTDERR: nthash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: nthash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: nthash: test password case sensitivity ... ok BUILDSTDERR: nthash: test non-string passwords are rejected ... ok BUILDSTDERR: nthash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: nthash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: nthash: test known hashes ... ok BUILDSTDERR: nthash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: nthash: test known config strings ... SKIP: hash has no settings BUILDSTDERR: nthash: test known unidentifiably-mangled strings ... ok BUILDSTDERR: nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: nthash: test known foreign hashes ... ok BUILDSTDERR: nthash: test non-string hashes are rejected ... ok BUILDSTDERR: nthash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: nthash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: nthash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: nthash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: validate required attributes ... ok BUILDSTDERR: oracle10: test basic config-string workflow ... ok BUILDSTDERR: oracle10: test basic using() workflow ... ok BUILDSTDERR: oracle10: test basic hash-string workflow. ... ok BUILDSTDERR: oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: oracle10: test hashes can be unicode or bytes ... ok BUILDSTDERR: oracle10: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle10: test password case sensitivity ... ok BUILDSTDERR: oracle10: test non-string passwords are rejected ... ok BUILDSTDERR: oracle10: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: oracle10: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: oracle10: test known hashes ... ok BUILDSTDERR: oracle10: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: oracle10: test known config strings ... SKIP: hash has no settings BUILDSTDERR: oracle10: test known unidentifiably-mangled strings ... ok BUILDSTDERR: oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: oracle10: test known foreign hashes ... ok BUILDSTDERR: oracle10: test non-string hashes are rejected ... ok BUILDSTDERR: oracle10: fuzz testing -- random passwords and options ... ok BUILDSTDERR: oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: oracle10: test user context keyword ... ok BUILDSTDERR: oracle10: test user case sensitivity ... ok BUILDSTDERR: oracle10: test user used as salt ... ok BUILDSTDERR: oracle10: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: oracle10: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: oracle10: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle11: validate required attributes ... ok BUILDSTDERR: oracle11: test basic config-string workflow ... ok BUILDSTDERR: oracle11: test basic using() workflow ... ok BUILDSTDERR: oracle11: test basic hash-string workflow. ... ok BUILDSTDERR: oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: oracle11: test hashes can be unicode or bytes ... ok BUILDSTDERR: oracle11: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: oracle11: validate optional salt attributes ... ok BUILDSTDERR: oracle11: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: oracle11: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: oracle11: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: oracle11: test hash() honors salt_chars ... ok BUILDSTDERR: oracle11: test non-string salt values ... ok BUILDSTDERR: oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle11: test password case sensitivity ... ok BUILDSTDERR: oracle11: test non-string passwords are rejected ... ok BUILDSTDERR: oracle11: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: oracle11: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: oracle11: test known hashes ... ok BUILDSTDERR: oracle11: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: oracle11: test known config strings ... SKIP: no config strings provided BUILDSTDERR: oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: oracle11: test known foreign hashes ... ok BUILDSTDERR: oracle11: test non-string hashes are rejected ... ok BUILDSTDERR: oracle11: fuzz testing -- random passwords and options ... ok BUILDSTDERR: oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: oracle11: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: oracle11: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: oracle11: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: oracle11: Handler.using() -- default_salt_size ... ok BUILDSTDERR: phpass: validate required attributes ... ok BUILDSTDERR: phpass: test basic config-string workflow ... ok BUILDSTDERR: phpass: test basic using() workflow ... ok BUILDSTDERR: phpass: test basic hash-string workflow. ... ok BUILDSTDERR: phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: phpass: test hashes can be unicode or bytes ... ok BUILDSTDERR: phpass: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: phpass: validate optional salt attributes ... ok BUILDSTDERR: phpass: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: phpass: test hash() honors salt_chars ... ok BUILDSTDERR: phpass: test non-string salt values ... ok BUILDSTDERR: phpass: validate optional rounds attributes ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: phpass: validate HasManyIdents configuration ... ok BUILDSTDERR: phpass: test password case sensitivity ... ok BUILDSTDERR: phpass: test non-string passwords are rejected ... ok BUILDSTDERR: phpass: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: phpass: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: phpass: test known hashes ... ok BUILDSTDERR: phpass: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: phpass: test known config strings ... SKIP: no config strings provided BUILDSTDERR: phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: phpass: test known identifiable-but-malformed strings ... ok BUILDSTDERR: phpass: test known foreign hashes ... ok BUILDSTDERR: phpass: test non-string hashes are rejected ... ok BUILDSTDERR: phpass: fuzz testing -- random passwords and options ... ok BUILDSTDERR: phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: phpass: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok BUILDSTDERR: phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: phpass: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: phpass: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: phpass: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: phpass: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: phpass: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: phpass: Handler.using() -- default_salt_size ... ok BUILDSTDERR: plaintext: validate required attributes ... ok BUILDSTDERR: plaintext: test basic config-string workflow ... ok BUILDSTDERR: plaintext: test basic using() workflow ... ok BUILDSTDERR: plaintext: test basic hash-string workflow. ... ok BUILDSTDERR: plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: plaintext: test hashes can be unicode or bytes ... ok BUILDSTDERR: plaintext: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: plaintext: test password case sensitivity ... ok BUILDSTDERR: plaintext: test non-string passwords are rejected ... ok BUILDSTDERR: plaintext: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: plaintext: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: plaintext: test known hashes ... ok BUILDSTDERR: plaintext: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: plaintext: test known config strings ... SKIP: hash has no settings BUILDSTDERR: plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: plaintext: test known foreign hashes ... SKIP: not applicable BUILDSTDERR: plaintext: test non-string hashes are rejected ... ok BUILDSTDERR: plaintext: fuzz testing -- random passwords and options ... ok BUILDSTDERR: plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: plaintext: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: plaintext: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: plaintext: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: validate required attributes ... ok BUILDSTDERR: postgres_md5: test basic config-string workflow ... ok BUILDSTDERR: postgres_md5: test basic using() workflow ... ok BUILDSTDERR: postgres_md5: test basic hash-string workflow. ... ok BUILDSTDERR: postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: postgres_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: postgres_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: postgres_md5: test password case sensitivity ... ok BUILDSTDERR: postgres_md5: test non-string passwords are rejected ... ok BUILDSTDERR: postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: postgres_md5: test known hashes ... ok BUILDSTDERR: postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: postgres_md5: test known config strings ... SKIP: hash has no settings BUILDSTDERR: postgres_md5: test known unidentifiably-mangled strings ... ok BUILDSTDERR: postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: postgres_md5: test known foreign hashes ... ok BUILDSTDERR: postgres_md5: test non-string hashes are rejected ... ok BUILDSTDERR: postgres_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: postgres_md5: test user context keyword ... ok BUILDSTDERR: postgres_md5: test user case sensitivity ... ok BUILDSTDERR: postgres_md5: test user used as salt ... ok BUILDSTDERR: postgres_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: postgres_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: sha1_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha1_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sha1_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux2' platform BUILDSTDERR: sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha256_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sha256_crypt (os_crypt backend): test known config strings ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sha256_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha512_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sha512_crypt (os_crypt backend): test known config strings ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sha512_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: sun_md5_crypt: validate required attributes ... ok BUILDSTDERR: sun_md5_crypt: test basic config-string workflow ... ok BUILDSTDERR: sun_md5_crypt: test basic using() workflow ... ok BUILDSTDERR: sun_md5_crypt: test basic hash-string workflow. ... ok BUILDSTDERR: sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sun_md5_crypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: sun_md5_crypt: validate optional salt attributes ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sun_md5_crypt: test hash() honors salt_chars ... ok BUILDSTDERR: sun_md5_crypt: test non-string salt values ... ok BUILDSTDERR: sun_md5_crypt: validate optional rounds attributes ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sun_md5_crypt: test password case sensitivity ... ok BUILDSTDERR: sun_md5_crypt: test non-string passwords are rejected ... ok BUILDSTDERR: sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: sun_md5_crypt: test known hashes ... ok BUILDSTDERR: sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sun_md5_crypt: test known config strings ... ok BUILDSTDERR: sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sun_md5_crypt: test known identifiable-but-malformed strings ... ok BUILDSTDERR: sun_md5_crypt: test known foreign hashes ... ok BUILDSTDERR: sun_md5_crypt: test non-string hashes are rejected ... ok BUILDSTDERR: sun_md5_crypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sun_md5_crypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: unix_disabled: validate required attributes ... ok BUILDSTDERR: unix_disabled: test basic config-string workflow ... ok BUILDSTDERR: unix_disabled: test basic using() workflow ... ok BUILDSTDERR: unix_disabled: test basic hash-string workflow. ... ok BUILDSTDERR: unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: unix_disabled: test hashes can be unicode or bytes ... ok BUILDSTDERR: unix_disabled: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_disabled: test password case sensitivity ... ok BUILDSTDERR: unix_disabled: test non-string passwords are rejected ... ok BUILDSTDERR: unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: unix_disabled: test known hashes ... ok BUILDSTDERR: unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: unix_disabled: test known config strings ... SKIP: no config strings provided BUILDSTDERR: unix_disabled: test known unidentifiably-mangled strings ... ok BUILDSTDERR: unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: unix_disabled: test known foreign hashes ... ok BUILDSTDERR: unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok BUILDSTDERR: unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable BUILDSTDERR: unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: unix_disabled: test marker option & special behavior ... ok BUILDSTDERR: unix_disabled: .disable() / .enable() methods ... ok BUILDSTDERR: unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: unix_disabled: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: validate required attributes ... ok BUILDSTDERR: unix_fallback: test basic config-string workflow ... ok BUILDSTDERR: unix_fallback: test basic using() workflow ... ok BUILDSTDERR: unix_fallback: test basic hash-string workflow. ... ok BUILDSTDERR: unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: unix_fallback: test hashes can be unicode or bytes ... ok BUILDSTDERR: unix_fallback: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_fallback: test password case sensitivity ... ok BUILDSTDERR: unix_fallback: test non-string passwords are rejected ... ok BUILDSTDERR: unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: unix_fallback: test known hashes ... ok BUILDSTDERR: unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: unix_fallback: test known config strings ... SKIP: hash has no settings BUILDSTDERR: unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: unix_fallback: test known foreign hashes ... SKIP: not applicable BUILDSTDERR: unix_fallback: test non-string hashes are rejected ... ok BUILDSTDERR: unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable BUILDSTDERR: unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: unix_fallback: test enable_wildcard flag ... ok BUILDSTDERR: unix_fallback: test preserves existing disabled hash ... ok BUILDSTDERR: unix_fallback: .disable() / .enable() methods ... ok BUILDSTDERR: unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: unix_fallback: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: validate required attributes ... ok BUILDSTDERR: cisco_asa: test basic config-string workflow ... ok BUILDSTDERR: cisco_asa: test basic using() workflow ... ok BUILDSTDERR: cisco_asa: test basic hash-string workflow. ... ok BUILDSTDERR: cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cisco_asa: test hashes can be unicode or bytes ... ok BUILDSTDERR: cisco_asa: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_asa: test password case sensitivity ... ok BUILDSTDERR: cisco_asa: test non-string passwords are rejected ... ok BUILDSTDERR: cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cisco_asa: test known hashes ... ok BUILDSTDERR: cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cisco_asa: test known config strings ... SKIP: hash has no settings BUILDSTDERR: cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cisco_asa: test known foreign hashes ... ok BUILDSTDERR: cisco_asa: test non-string hashes are rejected ... ok BUILDSTDERR: cisco_asa: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cisco_asa: test user context keyword ... ok BUILDSTDERR: cisco_asa: test user case sensitivity ... ok BUILDSTDERR: cisco_asa: test user used as salt ... ok BUILDSTDERR: cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok BUILDSTDERR: cisco_asa: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: cisco_asa: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: validate required attributes ... ok BUILDSTDERR: cisco_pix: test basic config-string workflow ... ok BUILDSTDERR: cisco_pix: test basic using() workflow ... ok BUILDSTDERR: cisco_pix: test basic hash-string workflow. ... ok BUILDSTDERR: cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cisco_pix: test hashes can be unicode or bytes ... ok BUILDSTDERR: cisco_pix: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_pix: test password case sensitivity ... ok BUILDSTDERR: cisco_pix: test non-string passwords are rejected ... ok BUILDSTDERR: cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cisco_pix: test known hashes ... ok BUILDSTDERR: cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cisco_pix: test known config strings ... SKIP: hash has no settings BUILDSTDERR: cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cisco_pix: test known foreign hashes ... ok BUILDSTDERR: cisco_pix: test non-string hashes are rejected ... ok BUILDSTDERR: cisco_pix: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cisco_pix: test user context keyword ... ok BUILDSTDERR: cisco_pix: test user case sensitivity ... ok BUILDSTDERR: cisco_pix: test user used as salt ... ok BUILDSTDERR: cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok BUILDSTDERR: cisco_pix: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: cisco_pix: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_type7: validate required attributes ... ok BUILDSTDERR: cisco_type7: test basic config-string workflow ... ok BUILDSTDERR: cisco_type7: test basic using() workflow ... ok BUILDSTDERR: cisco_type7: test basic hash-string workflow. ... ok BUILDSTDERR: cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cisco_type7: test hashes can be unicode or bytes ... ok BUILDSTDERR: cisco_type7: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test non-string salt values ... ok BUILDSTDERR: cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_type7: test password case sensitivity ... ok BUILDSTDERR: cisco_type7: test non-string passwords are rejected ... ok BUILDSTDERR: cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cisco_type7: test known hashes ... ok BUILDSTDERR: cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cisco_type7: test known config strings ... SKIP: no config strings provided BUILDSTDERR: cisco_type7: test known unidentifiably-mangled strings ... ok BUILDSTDERR: cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cisco_type7: test known foreign hashes ... ok BUILDSTDERR: cisco_type7: test non-string hashes are rejected ... ok BUILDSTDERR: cisco_type7: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cisco_type7: test cisco_type7.decode() ... ok BUILDSTDERR: cisco_type7: test salt value border cases ... ok BUILDSTDERR: cisco_type7: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: cisco_type7: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info BUILDSTDERR: django_des_crypt: validate required attributes ... ok BUILDSTDERR: django_des_crypt: test basic config-string workflow ... ok BUILDSTDERR: django_des_crypt: test basic using() workflow ... ok BUILDSTDERR: django_des_crypt: test basic hash-string workflow. ... ok BUILDSTDERR: django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_des_crypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_des_crypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_des_crypt: validate optional salt attributes ... ok BUILDSTDERR: django_des_crypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_des_crypt: test hash() honors salt_chars ... ok BUILDSTDERR: django_des_crypt: test non-string salt values ... ok BUILDSTDERR: django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_des_crypt: test password case sensitivity ... ok BUILDSTDERR: django_des_crypt: test non-string passwords are rejected ... ok BUILDSTDERR: django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_des_crypt: test known hashes ... ok BUILDSTDERR: django_des_crypt: test known alternate hashes ... ok BUILDSTDERR: django_des_crypt: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_des_crypt: test known unidentifiably-mangled strings ... ok BUILDSTDERR: django_des_crypt: test known identifiable-but-malformed strings ... ok BUILDSTDERR: django_des_crypt: test known foreign hashes ... ok BUILDSTDERR: django_des_crypt: test non-string hashes are rejected ... ok BUILDSTDERR: django_des_crypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: django_des_crypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_des_crypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_disabled: validate required attributes ... ok BUILDSTDERR: django_disabled: test basic config-string workflow ... ok BUILDSTDERR: django_disabled: test basic using() workflow ... ok BUILDSTDERR: django_disabled: test basic hash-string workflow. ... ok BUILDSTDERR: django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_disabled: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_disabled: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_disabled: test password case sensitivity ... ok BUILDSTDERR: django_disabled: test non-string passwords are rejected ... ok BUILDSTDERR: django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_disabled: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_disabled: test known hashes ... ok BUILDSTDERR: django_disabled: test known alternate hashes ... ok BUILDSTDERR: django_disabled: test known config strings ... SKIP: hash has no settings BUILDSTDERR: django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: django_disabled: test known foreign hashes ... ok BUILDSTDERR: django_disabled: test non-string hashes are rejected ... ok BUILDSTDERR: django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable BUILDSTDERR: django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_disabled: .disable() / .enable() methods ... ok BUILDSTDERR: django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_disabled: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_disabled: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: django_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: django_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: django_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: django_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: django_pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: django_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: django_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: django_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha256: validate required attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: test basic config-string workflow ... ok BUILDSTDERR: django_pbkdf2_sha256: test basic using() workflow ... ok BUILDSTDERR: django_pbkdf2_sha256: test basic hash-string workflow. ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_pbkdf2_sha256: validate optional salt attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() honors salt_chars ... ok BUILDSTDERR: django_pbkdf2_sha256: test non-string salt values ... ok BUILDSTDERR: django_pbkdf2_sha256: validate optional rounds attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha256: test password case sensitivity ... ok BUILDSTDERR: django_pbkdf2_sha256: test non-string passwords are rejected ... ok BUILDSTDERR: django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_pbkdf2_sha256: test known hashes ... ok BUILDSTDERR: django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: django_pbkdf2_sha256: test known foreign hashes ... ok BUILDSTDERR: django_pbkdf2_sha256: test non-string hashes are rejected ... ok BUILDSTDERR: django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_salted_md5: validate required attributes ... ok BUILDSTDERR: django_salted_md5: test basic config-string workflow ... ok BUILDSTDERR: django_salted_md5: test basic using() workflow ... ok BUILDSTDERR: django_salted_md5: test basic hash-string workflow. ... ok BUILDSTDERR: django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_salted_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_salted_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_salted_md5: validate optional salt attributes ... ok BUILDSTDERR: django_salted_md5: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_salted_md5: test hash() honors salt_chars ... ok BUILDSTDERR: django_salted_md5: test non-string salt values ... ok BUILDSTDERR: django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_md5: test password case sensitivity ... ok BUILDSTDERR: django_salted_md5: test non-string passwords are rejected ... ok BUILDSTDERR: django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_salted_md5: test known hashes ... ok BUILDSTDERR: django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_salted_md5: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_salted_md5: test known unidentifiably-mangled strings ... ok BUILDSTDERR: django_salted_md5: test known identifiable-but-malformed strings ... ok BUILDSTDERR: django_salted_md5: test known foreign hashes ... ok BUILDSTDERR: django_salted_md5: test non-string hashes are rejected ... ok BUILDSTDERR: django_salted_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_salted_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_salted_md5: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_salted_sha1: validate required attributes ... ok BUILDSTDERR: django_salted_sha1: test basic config-string workflow ... ok BUILDSTDERR: django_salted_sha1: test basic using() workflow ... ok BUILDSTDERR: django_salted_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_salted_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_salted_sha1: validate optional salt attributes ... ok BUILDSTDERR: django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_salted_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: django_salted_sha1: test non-string salt values ... ok BUILDSTDERR: django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_sha1: test password case sensitivity ... ok BUILDSTDERR: django_salted_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_salted_sha1: test known hashes ... ok BUILDSTDERR: django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_salted_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_salted_sha1: test known unidentifiably-mangled strings ... ok BUILDSTDERR: django_salted_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: django_salted_sha1: test known foreign hashes ... ok BUILDSTDERR: django_salted_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: django_salted_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_salted_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: atlassian_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: atlassian_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: atlassian_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: cta_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: cta_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cta_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: cta_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cta_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: cta_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cta_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cta_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: dlitz_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: dlitz_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: dlitz_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate required attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test basic config-string workflow ... ok BUILDSTDERR: grub_pbkdf2_sha512: test basic using() workflow ... ok BUILDSTDERR: grub_pbkdf2_sha512: test basic hash-string workflow. ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: grub_pbkdf2_sha512: validate optional salt attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() honors salt_chars ... ok BUILDSTDERR: grub_pbkdf2_sha512: test non-string salt values ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate optional rounds attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: grub_pbkdf2_sha512: test password case sensitivity ... ok BUILDSTDERR: grub_pbkdf2_sha512: test non-string passwords are rejected ... ok BUILDSTDERR: grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: grub_pbkdf2_sha512: test known hashes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided BUILDSTDERR: grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: grub_pbkdf2_sha512: test known foreign hashes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test non-string hashes are rejected ... ok BUILDSTDERR: grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok BUILDSTDERR: grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok BUILDSTDERR: test ldap pbkdf2 wrappers ... ok BUILDSTDERR: pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: pbkdf2_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: pbkdf2_sha256: validate required attributes ... ok BUILDSTDERR: pbkdf2_sha256: test basic config-string workflow ... ok BUILDSTDERR: pbkdf2_sha256: test basic using() workflow ... ok BUILDSTDERR: pbkdf2_sha256: test basic hash-string workflow. ... ok BUILDSTDERR: pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: pbkdf2_sha256: test hashes can be unicode or bytes ... ok BUILDSTDERR: pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: pbkdf2_sha256: validate optional salt attributes ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: pbkdf2_sha256: test hash() honors salt_chars ... ok BUILDSTDERR: pbkdf2_sha256: test non-string salt values ... ok BUILDSTDERR: pbkdf2_sha256: validate optional rounds attributes ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha256: test password case sensitivity ... ok BUILDSTDERR: pbkdf2_sha256: test non-string passwords are rejected ... ok BUILDSTDERR: pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: pbkdf2_sha256: test known hashes ... ok BUILDSTDERR: pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: pbkdf2_sha256: test known config strings ... SKIP: no config strings provided BUILDSTDERR: pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: pbkdf2_sha256: test known foreign hashes ... ok BUILDSTDERR: pbkdf2_sha256: test non-string hashes are rejected ... ok BUILDSTDERR: pbkdf2_sha256: fuzz testing -- random passwords and options ... ok BUILDSTDERR: pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: pbkdf2_sha256: Handler.using() -- default_salt_size ... ok BUILDSTDERR: pbkdf2_sha512: validate required attributes ... ok BUILDSTDERR: pbkdf2_sha512: test basic config-string workflow ... ok BUILDSTDERR: pbkdf2_sha512: test basic using() workflow ... ok BUILDSTDERR: pbkdf2_sha512: test basic hash-string workflow. ... ok BUILDSTDERR: pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: pbkdf2_sha512: test hashes can be unicode or bytes ... ok BUILDSTDERR: pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: pbkdf2_sha512: validate optional salt attributes ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: pbkdf2_sha512: test hash() honors salt_chars ... ok BUILDSTDERR: pbkdf2_sha512: test non-string salt values ... ok BUILDSTDERR: pbkdf2_sha512: validate optional rounds attributes ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha512: test password case sensitivity ... ok BUILDSTDERR: pbkdf2_sha512: test non-string passwords are rejected ... ok BUILDSTDERR: pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: pbkdf2_sha512: test known hashes ... ok BUILDSTDERR: pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: pbkdf2_sha512: test known config strings ... SKIP: no config strings provided BUILDSTDERR: pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: pbkdf2_sha512: test known foreign hashes ... ok BUILDSTDERR: pbkdf2_sha512: test non-string hashes are rejected ... ok BUILDSTDERR: pbkdf2_sha512: fuzz testing -- random passwords and options ... ok BUILDSTDERR: pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: pbkdf2_sha512: Handler.using() -- default_salt_size ... ok BUILDSTDERR: scram: validate required attributes ... ok BUILDSTDERR: scram: test basic config-string workflow ... ok BUILDSTDERR: scram: test basic using() workflow ... ok BUILDSTDERR: scram: test basic hash-string workflow. ... ok BUILDSTDERR: scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: scram: test hashes can be unicode or bytes ... ok BUILDSTDERR: scram: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: scram: validate optional salt attributes ... ok BUILDSTDERR: scram: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: scram: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: scram: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: scram: test hash() honors salt_chars ... ok BUILDSTDERR: scram: test non-string salt values ... ok BUILDSTDERR: scram: validate optional rounds attributes ... ok BUILDSTDERR: scram: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: scram: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: scram: test password case sensitivity ... ok BUILDSTDERR: scram: test non-string passwords are rejected ... ok BUILDSTDERR: scram: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: scram: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: scram: test known hashes ... ok BUILDSTDERR: scram: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: scram: test known config strings ... SKIP: no config strings provided BUILDSTDERR: scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: scram: test known identifiable-but-malformed strings ... ok BUILDSTDERR: scram: test known foreign hashes ... ok BUILDSTDERR: scram: test non-string hashes are rejected ... ok BUILDSTDERR: scram: fuzz testing -- random passwords and options ... ok BUILDSTDERR: scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: scram: test parsing of 'algs' setting ... ok BUILDSTDERR: scram: test internal parsing of 'checksum' keyword ... ok BUILDSTDERR: scram: test scram.extract_digest_info() ... ok BUILDSTDERR: scram: test scram.extract_digest_algs() ... ok BUILDSTDERR: scram: test scram.derive_digest() ... ok BUILDSTDERR: scram: needs_update() -- algs setting ... ok BUILDSTDERR: scram: test hash/verify use saslprep ... ok BUILDSTDERR: scram: using() -- 'algs' parameter ... ok BUILDSTDERR: scram: using() -- 'default_algs' parameter ... ok BUILDSTDERR: scram: test handling of 'algs' in context object ... ok BUILDSTDERR: scram: test verify(full=True) flag ... ok BUILDSTDERR: scram: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: scram: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: scram: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: scram: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: scram: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: scram: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: scram: Handler.using() -- default_salt_size ... ok BUILDSTDERR: scrypt (builtin backend): validate required attributes ... ok BUILDSTDERR: scrypt (builtin backend): test basic config-string workflow ... ok BUILDSTDERR: scrypt (builtin backend): test basic using() workflow ... ok BUILDSTDERR: scrypt (builtin backend): test basic hash-string workflow. ... ok BUILDSTDERR: scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: scrypt (builtin backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: scrypt (builtin backend): test multi-backend support ... ok BUILDSTDERR: scrypt (builtin backend): validate optional salt attributes ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: scrypt (builtin backend): test hash() honors salt_chars ... ok BUILDSTDERR: scrypt (builtin backend): test non-string salt values ... ok BUILDSTDERR: scrypt (builtin backend): validate optional rounds attributes ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: scrypt (builtin backend): validate HasManyIdents configuration ... ok BUILDSTDERR: scrypt (builtin backend): test password case sensitivity ... ok BUILDSTDERR: scrypt (builtin backend): test non-string passwords are rejected ... ok BUILDSTDERR: scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: scrypt (builtin backend): test known hashes ... ok BUILDSTDERR: scrypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: scrypt (builtin backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: scrypt (builtin backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: scrypt (builtin backend): test known foreign hashes ... ok BUILDSTDERR: scrypt (builtin backend): test non-string hashes are rejected ... ok BUILDSTDERR: scrypt (builtin backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: scrypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: scrypt (builtin backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok BUILDSTDERR: test_host_context (passlib.tests.test_hosts.HostsTest) ... ok BUILDSTDERR: test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok BUILDSTDERR: passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok BUILDSTDERR: passlib.pwd.genphrase(): general behavior ... ok BUILDSTDERR: passlib.pwd.genphrase(): 'returns' keyword ... ok BUILDSTDERR: passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok BUILDSTDERR: passlib.pwd: _self_info_rate() ... ok BUILDSTDERR: passlib.pwd.genword(): 'charset' & 'chars' options ... ok BUILDSTDERR: passlib.pwd.genword(): general behavior ... ok BUILDSTDERR: passlib.pwd.genword(): 'returns' keyword ... ok BUILDSTDERR: passlib.registry: test get_crypt_handler() ... ok BUILDSTDERR: passlib.registry: verify we have tests for all builtin handlers ... ok BUILDSTDERR: passlib.registry: test passlib.hash proxy object ... ok BUILDSTDERR: passlib.registry: test list_crypt_handlers() ... ok BUILDSTDERR: passlib.registry: test register_crypt_handler() ... ok BUILDSTDERR: passlib.registry: test register_crypt_handler_path() ... ok BUILDSTDERR: passlib.totp.AppWallet: .decrypt_key() ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok BUILDSTDERR: passlib.totp.AppWallet: verify cost parameter via timing ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: .encrypt_key() ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok BUILDSTDERR: passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok BUILDSTDERR: passlib.totp.TOTP: helper to iterate over test vectors. ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'alg' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'digits' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'label' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'new' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'period' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'size' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: from_dict() ... ok BUILDSTDERR: passlib.totp.TOTP: from_source() ... ok BUILDSTDERR: passlib.totp.TOTP: from_uri() ... ok BUILDSTDERR: passlib.totp.TOTP: generate() ... ok BUILDSTDERR: passlib.totp.TOTP: generate() -- reference vectors ... ok BUILDSTDERR: passlib.totp.TOTP: pretty_key() and .key attributes ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- reference vectors ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- 'skew' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- token normalization ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: normalize_time() ... ok BUILDSTDERR: passlib.totp.TOTP: normalize_token() -- class method ... ok BUILDSTDERR: passlib.totp.TOTP: normalize_token() -- instance method ... ok BUILDSTDERR: passlib.totp.TOTP: internal test -- randotp() ... ok BUILDSTDERR: passlib.totp.TOTP: to_dict() ... ok BUILDSTDERR: passlib.totp.TOTP: to_uri() ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- valid TotpMatch object ... ok BUILDSTDERR: passlib.totp.TOTP: generate() -- TotpToken() class ... ok BUILDSTDERR: passlib.totp.TOTP: using -- 'now' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: using() -- 'period' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: verify() ... ok BUILDSTDERR: ab64_decode() ... ok BUILDSTDERR: ab64_encode() ... ok BUILDSTDERR: b64s_decode() ... ok BUILDSTDERR: b64s_encode() ... ok BUILDSTDERR: test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok BUILDSTDERR: test b() helper, bytes and native str type ... ok BUILDSTDERR: test is_ascii_safe() ... ok BUILDSTDERR: test is_same_codec() ... ok BUILDSTDERR: test to_bytes() ... ok BUILDSTDERR: test to_native_str() ... ok BUILDSTDERR: test to_unicode() ... ok BUILDSTDERR: h64big codec: test encode_bytes/decode_bytes against random data ... ok BUILDSTDERR: h64big codec: test decode_bytes() against reference inputs ... ok BUILDSTDERR: h64big codec: test decode_bytes() with bad input ... ok BUILDSTDERR: h64big codec: test decode_bytes() ignores padding bits ... ok BUILDSTDERR: h64big codec: test decode_transposed_bytes() ... ok BUILDSTDERR: h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok BUILDSTDERR: h64big codec: test encode_bytes() against reference inputs ... ok BUILDSTDERR: h64big codec: test encode_bytes() with bad input ... ok BUILDSTDERR: h64big codec: test encode_transposed_bytes() ... ok BUILDSTDERR: h64big codec: test against reference integer encodings ... ok BUILDSTDERR: h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test repair_unused() ... ok BUILDSTDERR: h64 codec: test encode_bytes/decode_bytes against random data ... ok BUILDSTDERR: h64 codec: test decode_bytes() against reference inputs ... ok BUILDSTDERR: h64 codec: test decode_bytes() with bad input ... ok BUILDSTDERR: h64 codec: test decode_bytes() ignores padding bits ... ok BUILDSTDERR: h64 codec: test decode_transposed_bytes() ... ok BUILDSTDERR: h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok BUILDSTDERR: h64 codec: test encode_bytes() against reference inputs ... ok BUILDSTDERR: h64 codec: test encode_bytes() with bad input ... ok BUILDSTDERR: h64 codec: test encode_transposed_bytes() ... ok BUILDSTDERR: h64 codec: test against reference integer encodings ... ok BUILDSTDERR: h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test repair_unused() ... ok BUILDSTDERR: test_classproperty (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: test compat's lazymodule ... ok BUILDSTDERR: test consteq() ... ok BUILDSTDERR: test crypt.crypt() wrappers ... ok BUILDSTDERR: test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: generate_password() ... ok BUILDSTDERR: test genseed() ... ok BUILDSTDERR: getrandbytes() ... ok BUILDSTDERR: getrandstr() ... ok BUILDSTDERR: test is_crypt_context() ... ok BUILDSTDERR: test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: test saslprep() unicode normalizer ... ok BUILDSTDERR: test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: test PrefixWrapper lazy loading of handler ... ok BUILDSTDERR: test PrefixWrapper active loading of handler ... ok BUILDSTDERR: test PrefixWrapper with explicitly specified handler ... ok BUILDSTDERR: test_10_wrapped_attributes (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok BUILDSTDERR: test_11_wrapped_methods (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok BUILDSTDERR: test_12_ident (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok BUILDSTDERR: test repr() ... ok BUILDSTDERR: test orig_prefix sanity check ... ok BUILDSTDERR: salted_test_hash: validate required attributes ... ok BUILDSTDERR: salted_test_hash: test basic config-string workflow ... ok BUILDSTDERR: salted_test_hash: test basic using() workflow ... ok BUILDSTDERR: salted_test_hash: test basic hash-string workflow. ... ok BUILDSTDERR: salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: salted_test_hash: test hashes can be unicode or bytes ... ok BUILDSTDERR: salted_test_hash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: salted_test_hash: validate optional salt attributes ... ok BUILDSTDERR: salted_test_hash: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: salted_test_hash: test hash() honors salt_chars ... ok BUILDSTDERR: salted_test_hash: test non-string salt values ... ok BUILDSTDERR: salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: salted_test_hash: test password case sensitivity ... ok BUILDSTDERR: salted_test_hash: test non-string passwords are rejected ... ok BUILDSTDERR: salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: salted_test_hash: test known hashes ... ok BUILDSTDERR: salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: salted_test_hash: test known config strings ... SKIP: no config strings provided BUILDSTDERR: salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: salted_test_hash: test known foreign hashes ... ok BUILDSTDERR: salted_test_hash: test non-string hashes are rejected ... ok BUILDSTDERR: salted_test_hash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok BUILDSTDERR: salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: salted_test_hash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: salted_test_hash: Handler.using() -- default_salt_size ... ok BUILDSTDERR: test StaticHandler class ... ok BUILDSTDERR: test StaticHandler legacy attr ... ok BUILDSTDERR: test GenericHandler.identify() ... ok BUILDSTDERR: test GenericHandler checksum handling ... ok BUILDSTDERR: test GenericHandler + HasRawChecksum mixin ... ok BUILDSTDERR: test GenericHandler + HasSalt mixin ... ok BUILDSTDERR: test GenericHandler + HasRounds mixin ... ok BUILDSTDERR: test GenericHandler + HasManyBackends mixin ... ok BUILDSTDERR: test GenericHandler + HasManyBackends mixin (deprecated api) ... ok BUILDSTDERR: test GenericHandler + HasManyIdents ... ok BUILDSTDERR: test parsehash() ... ok BUILDSTDERR: test bitsize() ... ok BUILDSTDERR: unsalted_test_hash: validate required attributes ... ok BUILDSTDERR: unsalted_test_hash: test basic config-string workflow ... ok BUILDSTDERR: unsalted_test_hash: test basic using() workflow ... ok BUILDSTDERR: unsalted_test_hash: test basic hash-string workflow. ... ok BUILDSTDERR: unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: unsalted_test_hash: test hashes can be unicode or bytes ... ok BUILDSTDERR: unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unsalted_test_hash: test password case sensitivity ... ok BUILDSTDERR: unsalted_test_hash: test non-string passwords are rejected ... ok BUILDSTDERR: unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: unsalted_test_hash: test known hashes ... ok BUILDSTDERR: unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: unsalted_test_hash: test known config strings ... SKIP: hash has no settings BUILDSTDERR: unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: unsalted_test_hash: test known foreign hashes ... ok BUILDSTDERR: unsalted_test_hash: test non-string hashes are rejected ... ok BUILDSTDERR: unsalted_test_hash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok BUILDSTDERR: unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: passlib.utils.md4.md4(): informational attributes ... ok BUILDSTDERR: passlib.utils.md4.md4(): copy() method ... ok BUILDSTDERR: passlib.utils.md4.md4(): digest() method ... ok BUILDSTDERR: passlib.utils.md4.md4(): hexdigest() method ... ok BUILDSTDERR: passlib.utils.md4.md4(): update() method ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok BUILDSTDERR: passlib.utils.pbkdf2: norm_hash_name() ... ok BUILDSTDERR: test_lmhash (passlib.tests.test_win32.UtilTest) ... ok BUILDSTDERR: test_nthash (passlib.tests.test_win32.UtilTest) ... ok BUILDSTDERR: ---------------------------------------------------------------------- BUILDSTDERR: Ran 3020 tests in 149.192s BUILDSTDERR: OK (SKIP=1267) + nosetests-3.7 -v BUILDSTDERR: /builddir/build/BUILD/passlib-1.7.1/passlib/crypto/scrypt/__init__.py:127: PasslibSecurityWarning: Using builtin scrypt backend, which is 100x slower than is required for adequate security. Installing scrypt support (via 'pip install scrypt') is strongly recommended BUILDSTDERR: "is strongly recommended" % slowdown, exc.PasslibSecurityWarning) BUILDSTDERR: HtdigestFile: test constructor autoload ... ok BUILDSTDERR: HtdigestFile: test delete() ... ok BUILDSTDERR: HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok BUILDSTDERR: HtdigestFile: test update() ... ok BUILDSTDERR: HtdigestFile: test users() ... ok BUILDSTDERR: HtdigestFile: test check_password() ... ok BUILDSTDERR: HtdigestFile: test load() ... ok BUILDSTDERR: HtdigestFile: test save() ... ok BUILDSTDERR: HtdigestFile: test realms() & delete_realm() ... ok BUILDSTDERR: HtdigestFile: test get_hash() ... ok BUILDSTDERR: HtdigestFile: test encoding parameter ... ok BUILDSTDERR: HtdigestFile: test to_string() ... ok BUILDSTDERR: HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok BUILDSTDERR: HtpasswdFile: test constructor autoload ... ok BUILDSTDERR: HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test delete() ... ok BUILDSTDERR: HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test set_password() ... ok BUILDSTDERR: HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test set_password() -- default_scheme ... /builddir/build/BUILD/passlib-1.7.1/passlib/apache.py:717: PasslibSecurityWarning: HtpasswdFile: no bcrypt backends available, using fallback for default scheme 'portable' BUILDSTDERR: exc.PasslibSecurityWarning) BUILDSTDERR: ok BUILDSTDERR: HtpasswdFile: test users() ... ok BUILDSTDERR: HtpasswdFile: test check_password() ... ok BUILDSTDERR: HtpasswdFile: test load() ... ok BUILDSTDERR: HtpasswdFile: test save() ... ok BUILDSTDERR: HtpasswdFile: test 'encoding' kwd ... ok BUILDSTDERR: HtpasswdFile: test get_hash() ... ok BUILDSTDERR: HtpasswdFile: test to_string ... ok BUILDSTDERR: HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok BUILDSTDERR: HtpasswdFile: whitespace & comment handling ... ok BUILDSTDERR: test_custom_app_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_django16_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_django_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_ldap_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_ldap_mysql_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_ldap_nocrypt_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_master_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_phpbb3_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_phppass_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_postgres_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: test_roundup_context (passlib.tests.test_apps.AppsTest) ... ok BUILDSTDERR: CryptContext: test class constructor ... ok BUILDSTDERR: CryptContext: test from_string() constructor ... ok BUILDSTDERR: CryptContext: test from_path() constructor ... ok BUILDSTDERR: CryptContext: test copy() method ... ok BUILDSTDERR: CryptContext: test repr() ... ok BUILDSTDERR: CryptContext: test load() / load_path() method ... ok BUILDSTDERR: CryptContext: test load() errors restore old state ... ok BUILDSTDERR: CryptContext: test update() method ... ok BUILDSTDERR: CryptContext: test basic option parsing ... ok BUILDSTDERR: CryptContext: test 'schemes' context option parsing ... ok BUILDSTDERR: CryptContext: test 'deprecated' context option parsing ... ok BUILDSTDERR: CryptContext: test 'default' context option parsing ... ok BUILDSTDERR: CryptContext: test 'vary_rounds' hash option parsing ... ok BUILDSTDERR: CryptContext: test schemes() method ... ok BUILDSTDERR: CryptContext: test default_scheme() method ... ok BUILDSTDERR: CryptContext: test handler() method ... ok BUILDSTDERR: CryptContext: test internal _get_record_options() method ... ok BUILDSTDERR: CryptContext: test to_dict() method ... ok BUILDSTDERR: CryptContext: test to_string() method ... ok BUILDSTDERR: CryptContext: test basic hash/identify/verify functionality ... ok BUILDSTDERR: CryptContext: test genconfig() method ... ok BUILDSTDERR: CryptContext: test genhash() method ... ok BUILDSTDERR: CryptContext: test hash() method ... ok BUILDSTDERR: CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok BUILDSTDERR: CryptContext: test identify() border cases ... ok BUILDSTDERR: CryptContext: test verify() scheme kwd ... ok BUILDSTDERR: CryptContext: test needs_update() method ... ok BUILDSTDERR: CryptContext: test verify_and_update() ... ok BUILDSTDERR: CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok BUILDSTDERR: CryptContext: test rounds limits ... ok BUILDSTDERR: CryptContext: test linear vary rounds ... ok BUILDSTDERR: CryptContext: test log2 vary rounds ... ok BUILDSTDERR: CryptContext: test deprecated='auto' is handled correctly ... ok BUILDSTDERR: CryptContext: disabled hash support ... ok BUILDSTDERR: CryptContext: dummy_verify() method ... ok BUILDSTDERR: CryptContext: harden_verify -- parsing ... ok BUILDSTDERR: LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok BUILDSTDERR: LazyCryptContext: test plain kwds ... ok BUILDSTDERR: CryptContext: test constructor ... ok BUILDSTDERR: CryptContext: test replace() ... ok BUILDSTDERR: CryptContext: test no handlers ... ok BUILDSTDERR: CryptContext: test hash_needs_update() method ... ok BUILDSTDERR: CryptContext: test non-string hash values cause error ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_path() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_string() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_source() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.from_sources() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy.replace() constructor ... ok BUILDSTDERR: CryptPolicy: test CryptPolicy() forbidden kwds ... ok BUILDSTDERR: CryptPolicy: test has_schemes() method ... ok BUILDSTDERR: CryptPolicy: test iter_handlers() method ... ok BUILDSTDERR: CryptPolicy: test get_handler() method ... ok BUILDSTDERR: CryptPolicy: test get_options() method ... ok BUILDSTDERR: CryptPolicy: test handler_is_deprecated() method ... ok BUILDSTDERR: CryptPolicy: test get_min_verify_time() method ... ok BUILDSTDERR: CryptPolicy: test iter_config() method ... ok BUILDSTDERR: CryptPolicy: test to_dict() method ... ok BUILDSTDERR: CryptPolicy: test to_string() method ... ok BUILDSTDERR: LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok BUILDSTDERR: LazyCryptContext: test plain kwds ... ok BUILDSTDERR: passlib.crypto._md4.md4(): informational attributes ... ok BUILDSTDERR: passlib.crypto._md4.md4(): copy() method ... ok BUILDSTDERR: passlib.crypto._md4.md4(): digest() method ... ok BUILDSTDERR: passlib.crypto._md4.md4(): hexdigest() method ... ok BUILDSTDERR: passlib.crypto._md4.md4(): update() method ... ok BUILDSTDERR: hashlib.new('md4'): informational attributes ... ok BUILDSTDERR: hashlib.new('md4'): copy() method ... ok BUILDSTDERR: hashlib.new('md4'): digest() method ... ok BUILDSTDERR: hashlib.new('md4'): hexdigest() method ... ok BUILDSTDERR: hashlib.new('md4'): update() method ... ok BUILDSTDERR: passlib.crypto.des: expand_des_key() ... ok BUILDSTDERR: passlib.crypto.des: shrink_des_key() ... ok BUILDSTDERR: passlib.crypto.des: des_encrypt_block() ... ok BUILDSTDERR: passlib.crypto.des: des_encrypt_int_block() ... ok BUILDSTDERR: passlib.crypto.digest: lookup_hash() -- alternate types ... ok BUILDSTDERR: passlib.crypto.digest: lookup_hash() -- constructor ... ok BUILDSTDERR: passlib.crypto.digest: lookup_hash() -- metadata ... ok BUILDSTDERR: passlib.crypto.digest: norm_hash_name() ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf1: test border cases ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf1: test reference vectors ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : verify expected backends are present ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : test border cases ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : test keylen==None ... ok BUILDSTDERR: passlib.crypto.digest.pbkdf2_hmac() : test reference vectors ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : backend management ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'keylen' parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : backend management -- missing backend ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'n' (rounds) parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : compare output to other backends ... SKIP: no other backends found BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'p' (parallelism) parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'r' (block size) parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : reference vectors ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'salt' parameter ... ok BUILDSTDERR: passlib.utils.scrypt.scrypt() : 'secret' parameter ... ok BUILDSTDERR: passlib.crypto.scrypt._builtin: bmix() ... ok BUILDSTDERR: passlib.crypto.scrypt._builtin: salsa20() ... ok BUILDSTDERR: passlib.crypto.scrypt._builtin: smix() ... ok BUILDSTDERR: verify django behavior: test hashing interface ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG='' ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed BUILDSTDERR: passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed BUILDSTDERR: verify extension behavior: test hashing interface ... SKIP: Django not installed BUILDSTDERR: external django hasher tests ... SKIP: django not installed BUILDSTDERR: test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok BUILDSTDERR: apr_md5_crypt: validate required attributes ... ok BUILDSTDERR: apr_md5_crypt: test basic config-string workflow ... ok BUILDSTDERR: apr_md5_crypt: test basic using() workflow ... ok BUILDSTDERR: apr_md5_crypt: test basic hash-string workflow. ... ok BUILDSTDERR: apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: apr_md5_crypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: apr_md5_crypt: validate optional salt attributes ... ok BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: apr_md5_crypt: test hash() honors salt_chars ... /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:278: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working BUILDSTDERR: if isinstance(source, collections.Sequence): BUILDSTDERR: ok BUILDSTDERR: apr_md5_crypt: test non-string salt values ... ok BUILDSTDERR: apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: apr_md5_crypt: test password case sensitivity ... ok BUILDSTDERR: apr_md5_crypt: test non-string passwords are rejected ... ok BUILDSTDERR: apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: apr_md5_crypt: test known hashes ... ok BUILDSTDERR: apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: apr_md5_crypt: test known config strings ... SKIP: no config strings provided BUILDSTDERR: apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: apr_md5_crypt: test known identifiable-but-malformed strings ... ok BUILDSTDERR: apr_md5_crypt: test known foreign hashes ... ok BUILDSTDERR: apr_md5_crypt: test non-string hashes are rejected ... ok BUILDSTDERR: apr_md5_crypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: apr_md5_crypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: bigcrypt: validate required attributes ... ok BUILDSTDERR: bigcrypt: test basic config-string workflow ... ok BUILDSTDERR: bigcrypt: test basic using() workflow ... ok BUILDSTDERR: bigcrypt: test basic hash-string workflow. ... ok BUILDSTDERR: bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: bigcrypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: bigcrypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: bigcrypt: validate optional salt attributes ... ok BUILDSTDERR: bigcrypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: bigcrypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: bigcrypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: bigcrypt: test hash() honors salt_chars ... ok BUILDSTDERR: bigcrypt: test non-string salt values ... ok BUILDSTDERR: bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bigcrypt: test password case sensitivity ... ok BUILDSTDERR: bigcrypt: test non-string passwords are rejected ... ok BUILDSTDERR: bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: bigcrypt: test known hashes ... ok BUILDSTDERR: bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: bigcrypt: test known config strings ... SKIP: no config strings provided BUILDSTDERR: bigcrypt: test known unidentifiably-mangled strings ... ok BUILDSTDERR: bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: bigcrypt: test known foreign hashes ... ok BUILDSTDERR: bigcrypt: test non-string hashes are rejected ... ok BUILDSTDERR: bigcrypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok BUILDSTDERR: bigcrypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: bigcrypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: bigcrypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: bsd_nthash: validate required attributes ... ok BUILDSTDERR: bsd_nthash: test basic config-string workflow ... ok BUILDSTDERR: bsd_nthash: test basic using() workflow ... ok BUILDSTDERR: bsd_nthash: test basic hash-string workflow. ... ok BUILDSTDERR: bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: bsd_nthash: test hashes can be unicode or bytes ... ok BUILDSTDERR: bsd_nthash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsd_nthash: test password case sensitivity ... ok BUILDSTDERR: bsd_nthash: test non-string passwords are rejected ... ok BUILDSTDERR: bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: bsd_nthash: test known hashes ... ok BUILDSTDERR: bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: bsd_nthash: test known config strings ... SKIP: hash has no settings BUILDSTDERR: bsd_nthash: test known unidentifiably-mangled strings ... ok BUILDSTDERR: bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: bsd_nthash: test known foreign hashes ... ok BUILDSTDERR: bsd_nthash: test non-string hashes are rejected ... ok BUILDSTDERR: bsd_nthash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: bsd_nthash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: bsdi_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsdi_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: bsdi_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: bsdi_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: bsdi_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform BUILDSTDERR: bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: crypt16: validate required attributes ... ok BUILDSTDERR: crypt16: test basic config-string workflow ... ok BUILDSTDERR: crypt16: test basic using() workflow ... ok BUILDSTDERR: crypt16: test basic hash-string workflow. ... ok BUILDSTDERR: crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: crypt16: test hashes can be unicode or bytes ... ok BUILDSTDERR: crypt16: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: crypt16: validate optional salt attributes ... ok BUILDSTDERR: crypt16: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: crypt16: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: crypt16: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: crypt16: test hash() honors salt_chars ... ok BUILDSTDERR: crypt16: test non-string salt values ... ok BUILDSTDERR: crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: crypt16: test password case sensitivity ... ok BUILDSTDERR: crypt16: test non-string passwords are rejected ... ok BUILDSTDERR: crypt16: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: crypt16: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: crypt16: test known hashes ... ok BUILDSTDERR: crypt16: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: crypt16: test known config strings ... SKIP: no config strings provided BUILDSTDERR: crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: crypt16: test known foreign hashes ... ok BUILDSTDERR: crypt16: test non-string hashes are rejected ... ok BUILDSTDERR: crypt16: fuzz testing -- random passwords and options ... ok BUILDSTDERR: crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: crypt16: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: crypt16: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: crypt16: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: crypt16: Handler.using() -- default_salt_size ... ok BUILDSTDERR: des_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: des_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: des_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: des_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: des_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: des_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: des_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: des_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: des_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: des_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: des_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok BUILDSTDERR: des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: des_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: des_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: des_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: des_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: des_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: fshp: validate required attributes ... ok BUILDSTDERR: fshp: test basic config-string workflow ... ok BUILDSTDERR: fshp: test basic using() workflow ... ok BUILDSTDERR: fshp: test basic hash-string workflow. ... ok BUILDSTDERR: fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: fshp: test hashes can be unicode or bytes ... ok BUILDSTDERR: fshp: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: fshp: validate optional salt attributes ... ok BUILDSTDERR: fshp: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: fshp: test hash() honors salt_chars ... ok BUILDSTDERR: fshp: test non-string salt values ... ok BUILDSTDERR: fshp: validate optional rounds attributes ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: fshp: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: fshp: test password case sensitivity ... ok BUILDSTDERR: fshp: test non-string passwords are rejected ... ok BUILDSTDERR: fshp: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: fshp: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: fshp: test known hashes ... ok BUILDSTDERR: fshp: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: fshp: test known config strings ... SKIP: no config strings provided BUILDSTDERR: fshp: test known unidentifiably-mangled strings ... ok BUILDSTDERR: fshp: test known identifiable-but-malformed strings ... ok BUILDSTDERR: fshp: test known foreign hashes ... ok BUILDSTDERR: fshp: test non-string hashes are rejected ... ok BUILDSTDERR: fshp: fuzz testing -- random passwords and options ... ok BUILDSTDERR: fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: fshp: test variant keyword ... ok BUILDSTDERR: fshp: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: fshp: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: fshp: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- rounds ... ok BUILDSTDERR: fshp: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: fshp: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: fshp: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: fshp: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: fshp: Handler.using() -- default_salt_size ... ok BUILDSTDERR: hex_md4: validate required attributes ... ok BUILDSTDERR: hex_md4: test basic config-string workflow ... ok BUILDSTDERR: hex_md4: test basic using() workflow ... ok BUILDSTDERR: hex_md4: test basic hash-string workflow. ... ok BUILDSTDERR: hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_md4: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_md4: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md4: test password case sensitivity ... ok BUILDSTDERR: hex_md4: test non-string passwords are rejected ... ok BUILDSTDERR: hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_md4: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_md4: test known hashes ... ok BUILDSTDERR: hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_md4: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_md4: test known foreign hashes ... ok BUILDSTDERR: hex_md4: test non-string hashes are rejected ... ok BUILDSTDERR: hex_md4: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_md4: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_md4: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_md4: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: validate required attributes ... ok BUILDSTDERR: hex_md5: test basic config-string workflow ... ok BUILDSTDERR: hex_md5: test basic using() workflow ... ok BUILDSTDERR: hex_md5: test basic hash-string workflow. ... ok BUILDSTDERR: hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md5: test password case sensitivity ... ok BUILDSTDERR: hex_md5: test non-string passwords are rejected ... ok BUILDSTDERR: hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_md5: test known hashes ... ok BUILDSTDERR: hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_md5: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_md5: test known foreign hashes ... ok BUILDSTDERR: hex_md5: test non-string hashes are rejected ... ok BUILDSTDERR: hex_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: validate required attributes ... ok BUILDSTDERR: hex_sha1: test basic config-string workflow ... ok BUILDSTDERR: hex_sha1: test basic using() workflow ... ok BUILDSTDERR: hex_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha1: test password case sensitivity ... ok BUILDSTDERR: hex_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_sha1: test known hashes ... ok BUILDSTDERR: hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_sha1: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_sha1: test known foreign hashes ... ok BUILDSTDERR: hex_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: hex_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: validate required attributes ... ok BUILDSTDERR: hex_sha256: test basic config-string workflow ... ok BUILDSTDERR: hex_sha256: test basic using() workflow ... ok BUILDSTDERR: hex_sha256: test basic hash-string workflow. ... ok BUILDSTDERR: hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_sha256: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_sha256: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha256: test password case sensitivity ... ok BUILDSTDERR: hex_sha256: test non-string passwords are rejected ... ok BUILDSTDERR: hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_sha256: test known hashes ... ok BUILDSTDERR: hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_sha256: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_sha256: test known foreign hashes ... ok BUILDSTDERR: hex_sha256: test non-string hashes are rejected ... ok BUILDSTDERR: hex_sha256: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_sha256: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_sha256: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: validate required attributes ... ok BUILDSTDERR: hex_sha512: test basic config-string workflow ... ok BUILDSTDERR: hex_sha512: test basic using() workflow ... ok BUILDSTDERR: hex_sha512: test basic hash-string workflow. ... ok BUILDSTDERR: hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: hex_sha512: test hashes can be unicode or bytes ... ok BUILDSTDERR: hex_sha512: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha512: test password case sensitivity ... ok BUILDSTDERR: hex_sha512: test non-string passwords are rejected ... ok BUILDSTDERR: hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: hex_sha512: test known hashes ... ok BUILDSTDERR: hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: hex_sha512: test known config strings ... SKIP: hash has no settings BUILDSTDERR: hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: hex_sha512: test known foreign hashes ... ok BUILDSTDERR: hex_sha512: test non-string hashes are rejected ... ok BUILDSTDERR: hex_sha512: fuzz testing -- random passwords and options ... ok BUILDSTDERR: hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: hex_sha512: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: hex_sha512: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: validate required attributes ... ok BUILDSTDERR: htdigest: test basic config-string workflow ... ok BUILDSTDERR: htdigest: test basic using() workflow ... ok BUILDSTDERR: htdigest: test basic hash-string workflow. ... ok BUILDSTDERR: htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: htdigest: test hashes can be unicode or bytes ... ok BUILDSTDERR: htdigest: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: htdigest: test password case sensitivity ... ok BUILDSTDERR: htdigest: test non-string passwords are rejected ... ok BUILDSTDERR: htdigest: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: htdigest: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: htdigest: test known hashes ... ok BUILDSTDERR: htdigest: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: htdigest: test known config strings ... SKIP: hash has no settings BUILDSTDERR: htdigest: test known unidentifiably-mangled strings ... ok BUILDSTDERR: htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: htdigest: test known foreign hashes ... ok BUILDSTDERR: htdigest: test non-string hashes are rejected ... ok BUILDSTDERR: htdigest: fuzz testing -- random passwords and options ... ok BUILDSTDERR: htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword BUILDSTDERR: htdigest: test user case sensitivity ... ok BUILDSTDERR: htdigest: test user used as salt ... ok BUILDSTDERR: htdigest: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: htdigest: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: htdigest: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers BUILDSTDERR: ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_md5: validate required attributes ... ok BUILDSTDERR: ldap_md5: test basic config-string workflow ... ok BUILDSTDERR: ldap_md5: test basic using() workflow ... ok BUILDSTDERR: ldap_md5: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5: test password case sensitivity ... ok BUILDSTDERR: ldap_md5: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_md5: test known hashes ... ok BUILDSTDERR: ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_md5: test known config strings ... SKIP: hash has no settings BUILDSTDERR: ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_md5: test known foreign hashes ... ok BUILDSTDERR: ldap_md5: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: validate required attributes ... ok BUILDSTDERR: ldap_plaintext: test basic config-string workflow ... ok BUILDSTDERR: ldap_plaintext: test basic using() workflow ... ok BUILDSTDERR: ldap_plaintext: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_plaintext: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_plaintext: test password case sensitivity ... ok BUILDSTDERR: ldap_plaintext: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_plaintext: test known hashes ... ok BUILDSTDERR: ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_plaintext: test known config strings ... SKIP: hash has no settings BUILDSTDERR: ldap_plaintext: test known unidentifiably-mangled strings ... ok BUILDSTDERR: ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_plaintext: test known foreign hashes ... ok BUILDSTDERR: ldap_plaintext: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_plaintext: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_salted_md5: validate required attributes ... ok BUILDSTDERR: ldap_salted_md5: test basic config-string workflow ... ok BUILDSTDERR: ldap_salted_md5: test basic using() workflow ... ok BUILDSTDERR: ldap_salted_md5: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_salted_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_salted_md5: validate optional salt attributes ... ok BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_salted_md5: test hash() honors salt_chars ... ok BUILDSTDERR: ldap_salted_md5: test non-string salt values ... ok BUILDSTDERR: ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_md5: test password case sensitivity ... ok BUILDSTDERR: ldap_salted_md5: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_salted_md5: test known hashes ... ok BUILDSTDERR: ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_salted_md5: test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_salted_md5: test known identifiable-but-malformed strings ... ok BUILDSTDERR: ldap_salted_md5: test known foreign hashes ... ok BUILDSTDERR: ldap_salted_md5: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_salted_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_salted_md5: Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_salted_sha1: validate required attributes ... ok BUILDSTDERR: ldap_salted_sha1: test basic config-string workflow ... ok BUILDSTDERR: ldap_salted_sha1: test basic using() workflow ... ok BUILDSTDERR: ldap_salted_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_salted_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_salted_sha1: validate optional salt attributes ... ok BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_salted_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: ldap_salted_sha1: test non-string salt values ... ok BUILDSTDERR: ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_sha1: test password case sensitivity ... ok BUILDSTDERR: ldap_salted_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_salted_sha1: test known hashes ... ok BUILDSTDERR: ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_salted_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_salted_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: ldap_salted_sha1: test known foreign hashes ... ok BUILDSTDERR: ldap_salted_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_salted_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_salted_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: unneeded BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: ldap_sha1: validate required attributes ... ok BUILDSTDERR: ldap_sha1: test basic config-string workflow ... ok BUILDSTDERR: ldap_sha1: test basic using() workflow ... ok BUILDSTDERR: ldap_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: ldap_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: ldap_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1: test password case sensitivity ... ok BUILDSTDERR: ldap_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: ldap_sha1: test known hashes ... ok BUILDSTDERR: ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: ldap_sha1: test known config strings ... SKIP: hash has no settings BUILDSTDERR: ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: ldap_sha1: test known foreign hashes ... ok BUILDSTDERR: ldap_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: ldap_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: ldap_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: validate required attributes ... ok BUILDSTDERR: lmhash: test basic config-string workflow ... ok BUILDSTDERR: lmhash: test basic using() workflow ... ok BUILDSTDERR: lmhash: test basic hash-string workflow. ... ok BUILDSTDERR: lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: lmhash: test hashes can be unicode or bytes ... ok BUILDSTDERR: lmhash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: lmhash: test password case sensitivity ... ok BUILDSTDERR: lmhash: test non-string passwords are rejected ... ok BUILDSTDERR: lmhash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: lmhash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: lmhash: test known hashes ... ok BUILDSTDERR: lmhash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: lmhash: test known config strings ... SKIP: no config strings provided BUILDSTDERR: lmhash: test known unidentifiably-mangled strings ... ok BUILDSTDERR: lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: lmhash: test known foreign hashes ... ok BUILDSTDERR: lmhash: test non-string hashes are rejected ... ok BUILDSTDERR: lmhash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: lmhash: test lmhash.raw() method ... ok BUILDSTDERR: lmhash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: lmhash: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: lmhash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: md5_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: md5_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: md5_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: md5_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: msdcc2: validate required attributes ... ok BUILDSTDERR: msdcc2: test basic config-string workflow ... ok BUILDSTDERR: msdcc2: test basic using() workflow ... ok BUILDSTDERR: msdcc2: test basic hash-string workflow. ... ok BUILDSTDERR: msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: msdcc2: test hashes can be unicode or bytes ... ok BUILDSTDERR: msdcc2: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc2: test password case sensitivity ... ok BUILDSTDERR: msdcc2: test non-string passwords are rejected ... ok BUILDSTDERR: msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: msdcc2: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: msdcc2: test known hashes ... ok BUILDSTDERR: msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: msdcc2: test known config strings ... SKIP: hash has no settings BUILDSTDERR: msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: msdcc2: test known foreign hashes ... ok BUILDSTDERR: msdcc2: test non-string hashes are rejected ... ok BUILDSTDERR: msdcc2: fuzz testing -- random passwords and options ... ok BUILDSTDERR: msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: msdcc2: test user context keyword ... ok BUILDSTDERR: msdcc2: test user case sensitivity ... ok BUILDSTDERR: msdcc2: test user used as salt ... ok BUILDSTDERR: msdcc2: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: msdcc2: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: msdcc2: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: validate required attributes ... ok BUILDSTDERR: msdcc: test basic config-string workflow ... ok BUILDSTDERR: msdcc: test basic using() workflow ... ok BUILDSTDERR: msdcc: test basic hash-string workflow. ... ok BUILDSTDERR: msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: msdcc: test hashes can be unicode or bytes ... ok BUILDSTDERR: msdcc: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc: test password case sensitivity ... ok BUILDSTDERR: msdcc: test non-string passwords are rejected ... ok BUILDSTDERR: msdcc: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: msdcc: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: msdcc: test known hashes ... ok BUILDSTDERR: msdcc: test known alternate hashes ... ok BUILDSTDERR: msdcc: test known config strings ... SKIP: hash has no settings BUILDSTDERR: msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: msdcc: test known foreign hashes ... ok BUILDSTDERR: msdcc: test non-string hashes are rejected ... ok BUILDSTDERR: msdcc: fuzz testing -- random passwords and options ... ok BUILDSTDERR: msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: msdcc: test user context keyword ... ok BUILDSTDERR: msdcc: test user case sensitivity ... ok BUILDSTDERR: msdcc: test user used as salt ... ok BUILDSTDERR: msdcc: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: msdcc: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: msdcc: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mssql2000: validate required attributes ... ok BUILDSTDERR: mssql2000: test basic config-string workflow ... ok BUILDSTDERR: mssql2000: test basic using() workflow ... ok BUILDSTDERR: mssql2000: test basic hash-string workflow. ... ok BUILDSTDERR: mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mssql2000: test hashes can be unicode or bytes ... ok BUILDSTDERR: mssql2000: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mssql2000: validate optional salt attributes ... ok BUILDSTDERR: mssql2000: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: mssql2000: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: mssql2000: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: mssql2000: test hash() honors salt_chars ... ok BUILDSTDERR: mssql2000: test non-string salt values ... ok BUILDSTDERR: mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2000: test password case sensitivity ... ok BUILDSTDERR: mssql2000: test non-string passwords are rejected ... ok BUILDSTDERR: mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mssql2000: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mssql2000: test known hashes ... ok BUILDSTDERR: mssql2000: test known alternate hashes ... ok BUILDSTDERR: mssql2000: test known config strings ... SKIP: no config strings provided BUILDSTDERR: mssql2000: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mssql2000: test known identifiable-but-malformed strings ... ok BUILDSTDERR: mssql2000: test known foreign hashes ... ok BUILDSTDERR: mssql2000: test non-string hashes are rejected ... ok BUILDSTDERR: mssql2000: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mssql2000: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mssql2000: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mssql2000: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mssql2000: Handler.using() -- default_salt_size ... ok BUILDSTDERR: mssql2005: validate required attributes ... ok BUILDSTDERR: mssql2005: test basic config-string workflow ... ok BUILDSTDERR: mssql2005: test basic using() workflow ... ok BUILDSTDERR: mssql2005: test basic hash-string workflow. ... ok BUILDSTDERR: mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mssql2005: test hashes can be unicode or bytes ... ok BUILDSTDERR: mssql2005: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mssql2005: validate optional salt attributes ... ok BUILDSTDERR: mssql2005: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: mssql2005: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: mssql2005: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: mssql2005: test hash() honors salt_chars ... ok BUILDSTDERR: mssql2005: test non-string salt values ... ok BUILDSTDERR: mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2005: test password case sensitivity ... ok BUILDSTDERR: mssql2005: test non-string passwords are rejected ... ok BUILDSTDERR: mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mssql2005: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mssql2005: test known hashes ... ok BUILDSTDERR: mssql2005: test known alternate hashes ... ok BUILDSTDERR: mssql2005: test known config strings ... SKIP: no config strings provided BUILDSTDERR: mssql2005: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mssql2005: test known identifiable-but-malformed strings ... ok BUILDSTDERR: mssql2005: test known foreign hashes ... ok BUILDSTDERR: mssql2005: test non-string hashes are rejected ... ok BUILDSTDERR: mssql2005: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mssql2005: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mssql2005: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mssql2005: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mssql2005: Handler.using() -- default_salt_size ... ok BUILDSTDERR: mysql323: validate required attributes ... ok BUILDSTDERR: mysql323: test basic config-string workflow ... ok BUILDSTDERR: mysql323: test basic using() workflow ... ok BUILDSTDERR: mysql323: test basic hash-string workflow. ... ok BUILDSTDERR: mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mysql323: test hashes can be unicode or bytes ... ok BUILDSTDERR: mysql323: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql323: test password case sensitivity ... ok BUILDSTDERR: mysql323: test non-string passwords are rejected ... ok BUILDSTDERR: mysql323: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mysql323: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mysql323: test known hashes ... ok BUILDSTDERR: mysql323: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: mysql323: test known config strings ... SKIP: hash has no settings BUILDSTDERR: mysql323: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: mysql323: test known foreign hashes ... ok BUILDSTDERR: mysql323: test non-string hashes are rejected ... ok BUILDSTDERR: mysql323: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mysql323: check whitespace is ignored per spec ... ok BUILDSTDERR: mysql323: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mysql323: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mysql323: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: validate required attributes ... ok BUILDSTDERR: mysql41: test basic config-string workflow ... ok BUILDSTDERR: mysql41: test basic using() workflow ... ok BUILDSTDERR: mysql41: test basic hash-string workflow. ... ok BUILDSTDERR: mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: mysql41: test hashes can be unicode or bytes ... ok BUILDSTDERR: mysql41: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql41: test password case sensitivity ... ok BUILDSTDERR: mysql41: test non-string passwords are rejected ... ok BUILDSTDERR: mysql41: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: mysql41: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: mysql41: test known hashes ... ok BUILDSTDERR: mysql41: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: mysql41: test known config strings ... SKIP: hash has no settings BUILDSTDERR: mysql41: test known unidentifiably-mangled strings ... ok BUILDSTDERR: mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: mysql41: test known foreign hashes ... ok BUILDSTDERR: mysql41: test non-string hashes are rejected ... ok BUILDSTDERR: mysql41: fuzz testing -- random passwords and options ... ok BUILDSTDERR: mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: mysql41: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: mysql41: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: mysql41: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: validate required attributes ... ok BUILDSTDERR: nthash: test basic config-string workflow ... ok BUILDSTDERR: nthash: test basic using() workflow ... ok BUILDSTDERR: nthash: test basic hash-string workflow. ... ok BUILDSTDERR: nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: nthash: test hashes can be unicode or bytes ... ok BUILDSTDERR: nthash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: nthash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: nthash: test password case sensitivity ... ok BUILDSTDERR: nthash: test non-string passwords are rejected ... ok BUILDSTDERR: nthash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: nthash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: nthash: test known hashes ... ok BUILDSTDERR: nthash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: nthash: test known config strings ... SKIP: hash has no settings BUILDSTDERR: nthash: test known unidentifiably-mangled strings ... ok BUILDSTDERR: nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: nthash: test known foreign hashes ... ok BUILDSTDERR: nthash: test non-string hashes are rejected ... ok BUILDSTDERR: nthash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: nthash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: nthash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: nthash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: validate required attributes ... ok BUILDSTDERR: oracle10: test basic config-string workflow ... ok BUILDSTDERR: oracle10: test basic using() workflow ... ok BUILDSTDERR: oracle10: test basic hash-string workflow. ... ok BUILDSTDERR: oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: oracle10: test hashes can be unicode or bytes ... ok BUILDSTDERR: oracle10: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle10: test password case sensitivity ... ok BUILDSTDERR: oracle10: test non-string passwords are rejected ... ok BUILDSTDERR: oracle10: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: oracle10: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: oracle10: test known hashes ... ok BUILDSTDERR: oracle10: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: oracle10: test known config strings ... SKIP: hash has no settings BUILDSTDERR: oracle10: test known unidentifiably-mangled strings ... ok BUILDSTDERR: oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: oracle10: test known foreign hashes ... ok BUILDSTDERR: oracle10: test non-string hashes are rejected ... ok BUILDSTDERR: oracle10: fuzz testing -- random passwords and options ... ok BUILDSTDERR: oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: oracle10: test user context keyword ... ok BUILDSTDERR: oracle10: test user case sensitivity ... ok BUILDSTDERR: oracle10: test user used as salt ... ok BUILDSTDERR: oracle10: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: oracle10: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: oracle10: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: oracle11: validate required attributes ... ok BUILDSTDERR: oracle11: test basic config-string workflow ... ok BUILDSTDERR: oracle11: test basic using() workflow ... ok BUILDSTDERR: oracle11: test basic hash-string workflow. ... ok BUILDSTDERR: oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: oracle11: test hashes can be unicode or bytes ... ok BUILDSTDERR: oracle11: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: oracle11: validate optional salt attributes ... ok BUILDSTDERR: oracle11: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: oracle11: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: oracle11: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: oracle11: test hash() honors salt_chars ... ok BUILDSTDERR: oracle11: test non-string salt values ... ok BUILDSTDERR: oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle11: test password case sensitivity ... ok BUILDSTDERR: oracle11: test non-string passwords are rejected ... ok BUILDSTDERR: oracle11: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: oracle11: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: oracle11: test known hashes ... ok BUILDSTDERR: oracle11: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: oracle11: test known config strings ... SKIP: no config strings provided BUILDSTDERR: oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: oracle11: test known foreign hashes ... ok BUILDSTDERR: oracle11: test non-string hashes are rejected ... ok BUILDSTDERR: oracle11: fuzz testing -- random passwords and options ... ok BUILDSTDERR: oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: oracle11: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: oracle11: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: oracle11: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: oracle11: Handler.using() -- default_salt_size ... ok BUILDSTDERR: phpass: validate required attributes ... ok BUILDSTDERR: phpass: test basic config-string workflow ... ok BUILDSTDERR: phpass: test basic using() workflow ... ok BUILDSTDERR: phpass: test basic hash-string workflow. ... ok BUILDSTDERR: phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: phpass: test hashes can be unicode or bytes ... ok BUILDSTDERR: phpass: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: phpass: validate optional salt attributes ... ok BUILDSTDERR: phpass: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: phpass: test hash() honors salt_chars ... ok BUILDSTDERR: phpass: test non-string salt values ... ok BUILDSTDERR: phpass: validate optional rounds attributes ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: phpass: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: phpass: validate HasManyIdents configuration ... ok BUILDSTDERR: phpass: test password case sensitivity ... ok BUILDSTDERR: phpass: test non-string passwords are rejected ... ok BUILDSTDERR: phpass: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: phpass: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: phpass: test known hashes ... ok BUILDSTDERR: phpass: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: phpass: test known config strings ... SKIP: no config strings provided BUILDSTDERR: phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: phpass: test known identifiable-but-malformed strings ... ok BUILDSTDERR: phpass: test known foreign hashes ... ok BUILDSTDERR: phpass: test non-string hashes are rejected ... ok BUILDSTDERR: phpass: fuzz testing -- random passwords and options ... ok BUILDSTDERR: phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: phpass: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok BUILDSTDERR: phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: phpass: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: phpass: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- rounds ... ok BUILDSTDERR: phpass: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: phpass: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: phpass: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: phpass: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: phpass: Handler.using() -- default_salt_size ... ok BUILDSTDERR: plaintext: validate required attributes ... ok BUILDSTDERR: plaintext: test basic config-string workflow ... ok BUILDSTDERR: plaintext: test basic using() workflow ... ok BUILDSTDERR: plaintext: test basic hash-string workflow. ... ok BUILDSTDERR: plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: plaintext: test hashes can be unicode or bytes ... ok BUILDSTDERR: plaintext: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: plaintext: test password case sensitivity ... ok BUILDSTDERR: plaintext: test non-string passwords are rejected ... ok BUILDSTDERR: plaintext: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: plaintext: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: plaintext: test known hashes ... ok BUILDSTDERR: plaintext: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: plaintext: test known config strings ... SKIP: hash has no settings BUILDSTDERR: plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: plaintext: test known foreign hashes ... SKIP: not applicable BUILDSTDERR: plaintext: test non-string hashes are rejected ... ok BUILDSTDERR: plaintext: fuzz testing -- random passwords and options ... ok BUILDSTDERR: plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: plaintext: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: plaintext: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: plaintext: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: validate required attributes ... ok BUILDSTDERR: postgres_md5: test basic config-string workflow ... ok BUILDSTDERR: postgres_md5: test basic using() workflow ... ok BUILDSTDERR: postgres_md5: test basic hash-string workflow. ... ok BUILDSTDERR: postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: postgres_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: postgres_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: postgres_md5: test password case sensitivity ... ok BUILDSTDERR: postgres_md5: test non-string passwords are rejected ... ok BUILDSTDERR: postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: postgres_md5: test known hashes ... ok BUILDSTDERR: postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: postgres_md5: test known config strings ... SKIP: hash has no settings BUILDSTDERR: postgres_md5: test known unidentifiably-mangled strings ... ok BUILDSTDERR: postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: postgres_md5: test known foreign hashes ... ok BUILDSTDERR: postgres_md5: test non-string hashes are rejected ... ok BUILDSTDERR: postgres_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: postgres_md5: test user context keyword ... ok BUILDSTDERR: postgres_md5: test user case sensitivity ... ok BUILDSTDERR: postgres_md5: test user used as salt ... ok BUILDSTDERR: postgres_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: postgres_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: sha1_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha1_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sha1_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sha1_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform BUILDSTDERR: sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha256_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sha256_crypt (os_crypt backend): test known config strings ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sha256_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate required attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test basic config-string workflow ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test basic using() workflow ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test basic hash-string workflow. ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test multi-backend support ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate optional salt attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() honors salt_chars ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test non-string salt values ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate optional rounds attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha512_crypt (os_crypt backend): test password case sensitivity ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test non-string passwords are rejected ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known hashes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sha512_crypt (os_crypt backend): test known config strings ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test known foreign hashes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test non-string hashes are rejected ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sha512_crypt (os_crypt backend): test with faulty crypt() ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test per-call crypt() fallback ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: sun_md5_crypt: validate required attributes ... ok BUILDSTDERR: sun_md5_crypt: test basic config-string workflow ... ok BUILDSTDERR: sun_md5_crypt: test basic using() workflow ... ok BUILDSTDERR: sun_md5_crypt: test basic hash-string workflow. ... ok BUILDSTDERR: sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: sun_md5_crypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: sun_md5_crypt: validate optional salt attributes ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: sun_md5_crypt: test hash() honors salt_chars ... ok BUILDSTDERR: sun_md5_crypt: test non-string salt values ... ok BUILDSTDERR: sun_md5_crypt: validate optional rounds attributes ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sun_md5_crypt: test password case sensitivity ... ok BUILDSTDERR: sun_md5_crypt: test non-string passwords are rejected ... ok BUILDSTDERR: sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: sun_md5_crypt: test known hashes ... ok BUILDSTDERR: sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: sun_md5_crypt: test known config strings ... ok BUILDSTDERR: sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: sun_md5_crypt: test known identifiable-but-malformed strings ... ok BUILDSTDERR: sun_md5_crypt: test known foreign hashes ... ok BUILDSTDERR: sun_md5_crypt: test non-string hashes are rejected ... ok BUILDSTDERR: sun_md5_crypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- rounds ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: sun_md5_crypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: unix_disabled: validate required attributes ... ok BUILDSTDERR: unix_disabled: test basic config-string workflow ... ok BUILDSTDERR: unix_disabled: test basic using() workflow ... ok BUILDSTDERR: unix_disabled: test basic hash-string workflow. ... ok BUILDSTDERR: unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: unix_disabled: test hashes can be unicode or bytes ... ok BUILDSTDERR: unix_disabled: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_disabled: test password case sensitivity ... ok BUILDSTDERR: unix_disabled: test non-string passwords are rejected ... ok BUILDSTDERR: unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: unix_disabled: test known hashes ... ok BUILDSTDERR: unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: unix_disabled: test known config strings ... SKIP: no config strings provided BUILDSTDERR: unix_disabled: test known unidentifiably-mangled strings ... ok BUILDSTDERR: unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: unix_disabled: test known foreign hashes ... ok BUILDSTDERR: unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok BUILDSTDERR: unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable BUILDSTDERR: unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: unix_disabled: test marker option & special behavior ... ok BUILDSTDERR: unix_disabled: .disable() / .enable() methods ... ok BUILDSTDERR: unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: unix_disabled: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: validate required attributes ... ok BUILDSTDERR: unix_fallback: test basic config-string workflow ... ok BUILDSTDERR: unix_fallback: test basic using() workflow ... ok BUILDSTDERR: unix_fallback: test basic hash-string workflow. ... ok BUILDSTDERR: unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: unix_fallback: test hashes can be unicode or bytes ... ok BUILDSTDERR: unix_fallback: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_fallback: test password case sensitivity ... ok BUILDSTDERR: unix_fallback: test non-string passwords are rejected ... ok BUILDSTDERR: unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: unix_fallback: test known hashes ... ok BUILDSTDERR: unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: unix_fallback: test known config strings ... SKIP: hash has no settings BUILDSTDERR: unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: unix_fallback: test known foreign hashes ... SKIP: not applicable BUILDSTDERR: unix_fallback: test non-string hashes are rejected ... ok BUILDSTDERR: unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable BUILDSTDERR: unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: unix_fallback: test enable_wildcard flag ... ok BUILDSTDERR: unix_fallback: test preserves existing disabled hash ... ok BUILDSTDERR: unix_fallback: .disable() / .enable() methods ... ok BUILDSTDERR: unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: unix_fallback: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: validate required attributes ... ok BUILDSTDERR: cisco_asa: test basic config-string workflow ... ok BUILDSTDERR: cisco_asa: test basic using() workflow ... ok BUILDSTDERR: cisco_asa: test basic hash-string workflow. ... ok BUILDSTDERR: cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cisco_asa: test hashes can be unicode or bytes ... ok BUILDSTDERR: cisco_asa: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_asa: test password case sensitivity ... ok BUILDSTDERR: cisco_asa: test non-string passwords are rejected ... ok BUILDSTDERR: cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cisco_asa: test known hashes ... ok BUILDSTDERR: cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cisco_asa: test known config strings ... SKIP: hash has no settings BUILDSTDERR: cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cisco_asa: test known foreign hashes ... ok BUILDSTDERR: cisco_asa: test non-string hashes are rejected ... ok BUILDSTDERR: cisco_asa: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cisco_asa: test user context keyword ... ok BUILDSTDERR: cisco_asa: test user case sensitivity ... ok BUILDSTDERR: cisco_asa: test user used as salt ... ok BUILDSTDERR: cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok BUILDSTDERR: cisco_asa: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: cisco_asa: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: validate required attributes ... ok BUILDSTDERR: cisco_pix: test basic config-string workflow ... ok BUILDSTDERR: cisco_pix: test basic using() workflow ... ok BUILDSTDERR: cisco_pix: test basic hash-string workflow. ... ok BUILDSTDERR: cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cisco_pix: test hashes can be unicode or bytes ... ok BUILDSTDERR: cisco_pix: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_pix: test password case sensitivity ... ok BUILDSTDERR: cisco_pix: test non-string passwords are rejected ... ok BUILDSTDERR: cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cisco_pix: test known hashes ... ok BUILDSTDERR: cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cisco_pix: test known config strings ... SKIP: hash has no settings BUILDSTDERR: cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cisco_pix: test known foreign hashes ... ok BUILDSTDERR: cisco_pix: test non-string hashes are rejected ... ok BUILDSTDERR: cisco_pix: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cisco_pix: test user context keyword ... ok BUILDSTDERR: cisco_pix: test user case sensitivity ... ok BUILDSTDERR: cisco_pix: test user used as salt ... ok BUILDSTDERR: cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok BUILDSTDERR: cisco_pix: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: cisco_pix: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: cisco_type7: validate required attributes ... ok BUILDSTDERR: cisco_type7: test basic config-string workflow ... ok BUILDSTDERR: cisco_type7: test basic using() workflow ... ok BUILDSTDERR: cisco_type7: test basic hash-string workflow. ... ok BUILDSTDERR: cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cisco_type7: test hashes can be unicode or bytes ... ok BUILDSTDERR: cisco_type7: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info BUILDSTDERR: cisco_type7: test non-string salt values ... ok BUILDSTDERR: cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_type7: test password case sensitivity ... ok BUILDSTDERR: cisco_type7: test non-string passwords are rejected ... ok BUILDSTDERR: cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cisco_type7: test known hashes ... ok BUILDSTDERR: cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cisco_type7: test known config strings ... SKIP: no config strings provided BUILDSTDERR: cisco_type7: test known unidentifiably-mangled strings ... ok BUILDSTDERR: cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cisco_type7: test known foreign hashes ... ok BUILDSTDERR: cisco_type7: test non-string hashes are rejected ... ok BUILDSTDERR: cisco_type7: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cisco_type7: test cisco_type7.decode() ... ok BUILDSTDERR: cisco_type7: test salt value border cases ... ok BUILDSTDERR: cisco_type7: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: cisco_type7: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info BUILDSTDERR: django_des_crypt: validate required attributes ... ok BUILDSTDERR: django_des_crypt: test basic config-string workflow ... ok BUILDSTDERR: django_des_crypt: test basic using() workflow ... ok BUILDSTDERR: django_des_crypt: test basic hash-string workflow. ... ok BUILDSTDERR: django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_des_crypt: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_des_crypt: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_des_crypt: validate optional salt attributes ... ok BUILDSTDERR: django_des_crypt: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_des_crypt: test hash() honors salt_chars ... ok BUILDSTDERR: django_des_crypt: test non-string salt values ... ok BUILDSTDERR: django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_des_crypt: test password case sensitivity ... ok BUILDSTDERR: django_des_crypt: test non-string passwords are rejected ... ok BUILDSTDERR: django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_des_crypt: test known hashes ... ok BUILDSTDERR: django_des_crypt: test known alternate hashes ... ok BUILDSTDERR: django_des_crypt: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_des_crypt: test known unidentifiably-mangled strings ... ok BUILDSTDERR: django_des_crypt: test known identifiable-but-malformed strings ... ok BUILDSTDERR: django_des_crypt: test known foreign hashes ... ok BUILDSTDERR: django_des_crypt: test non-string hashes are rejected ... ok BUILDSTDERR: django_des_crypt: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok BUILDSTDERR: django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set BUILDSTDERR: django_des_crypt: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_des_crypt: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_disabled: validate required attributes ... ok BUILDSTDERR: django_disabled: test basic config-string workflow ... ok BUILDSTDERR: django_disabled: test basic using() workflow ... ok BUILDSTDERR: django_disabled: test basic hash-string workflow. ... ok BUILDSTDERR: django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_disabled: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_disabled: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_disabled: test password case sensitivity ... ok BUILDSTDERR: django_disabled: test non-string passwords are rejected ... ok BUILDSTDERR: django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_disabled: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_disabled: test known hashes ... ok BUILDSTDERR: django_disabled: test known alternate hashes ... ok BUILDSTDERR: django_disabled: test known config strings ... SKIP: hash has no settings BUILDSTDERR: django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: django_disabled: test known foreign hashes ... ok BUILDSTDERR: django_disabled: test non-string hashes are rejected ... ok BUILDSTDERR: django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable BUILDSTDERR: django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_disabled: .disable() / .enable() methods ... ok BUILDSTDERR: django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_disabled: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_disabled: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: django_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: django_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: django_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: django_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: django_pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: django_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: django_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: django_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha256: validate required attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: test basic config-string workflow ... ok BUILDSTDERR: django_pbkdf2_sha256: test basic using() workflow ... ok BUILDSTDERR: django_pbkdf2_sha256: test basic hash-string workflow. ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_pbkdf2_sha256: validate optional salt attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() honors salt_chars ... ok BUILDSTDERR: django_pbkdf2_sha256: test non-string salt values ... ok BUILDSTDERR: django_pbkdf2_sha256: validate optional rounds attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha256: test password case sensitivity ... ok BUILDSTDERR: django_pbkdf2_sha256: test non-string passwords are rejected ... ok BUILDSTDERR: django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_pbkdf2_sha256: test known hashes ... ok BUILDSTDERR: django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: django_pbkdf2_sha256: test known foreign hashes ... ok BUILDSTDERR: django_pbkdf2_sha256: test non-string hashes are rejected ... ok BUILDSTDERR: django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_salted_md5: validate required attributes ... ok BUILDSTDERR: django_salted_md5: test basic config-string workflow ... ok BUILDSTDERR: django_salted_md5: test basic using() workflow ... ok BUILDSTDERR: django_salted_md5: test basic hash-string workflow. ... ok BUILDSTDERR: django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_salted_md5: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_salted_md5: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_salted_md5: validate optional salt attributes ... ok BUILDSTDERR: django_salted_md5: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_salted_md5: test hash() honors salt_chars ... ok BUILDSTDERR: django_salted_md5: test non-string salt values ... ok BUILDSTDERR: django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_md5: test password case sensitivity ... ok BUILDSTDERR: django_salted_md5: test non-string passwords are rejected ... ok BUILDSTDERR: django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_salted_md5: test known hashes ... ok BUILDSTDERR: django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_salted_md5: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_salted_md5: test known unidentifiably-mangled strings ... ok BUILDSTDERR: django_salted_md5: test known identifiable-but-malformed strings ... ok BUILDSTDERR: django_salted_md5: test known foreign hashes ... ok BUILDSTDERR: django_salted_md5: test non-string hashes are rejected ... ok BUILDSTDERR: django_salted_md5: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_salted_md5: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_salted_md5: Handler.using() -- default_salt_size ... ok BUILDSTDERR: django_salted_sha1: validate required attributes ... ok BUILDSTDERR: django_salted_sha1: test basic config-string workflow ... ok BUILDSTDERR: django_salted_sha1: test basic using() workflow ... ok BUILDSTDERR: django_salted_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: django_salted_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: django_salted_sha1: validate optional salt attributes ... ok BUILDSTDERR: django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: django_salted_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: django_salted_sha1: test non-string salt values ... ok BUILDSTDERR: django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_sha1: test password case sensitivity ... ok BUILDSTDERR: django_salted_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: django_salted_sha1: test known hashes ... ok BUILDSTDERR: django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: django_salted_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: django_salted_sha1: test known unidentifiably-mangled strings ... ok BUILDSTDERR: django_salted_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: django_salted_sha1: test known foreign hashes ... ok BUILDSTDERR: django_salted_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: django_salted_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed BUILDSTDERR: django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: django_salted_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: atlassian_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: atlassian_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: atlassian_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: cta_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: cta_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: cta_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: cta_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cta_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: cta_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: cta_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: cta_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: cta_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: dlitz_pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: dlitz_pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: dlitz_pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: dlitz_pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate required attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test basic config-string workflow ... ok BUILDSTDERR: grub_pbkdf2_sha512: test basic using() workflow ... ok BUILDSTDERR: grub_pbkdf2_sha512: test basic hash-string workflow. ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: grub_pbkdf2_sha512: validate optional salt attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() honors salt_chars ... ok BUILDSTDERR: grub_pbkdf2_sha512: test non-string salt values ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate optional rounds attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: grub_pbkdf2_sha512: test password case sensitivity ... ok BUILDSTDERR: grub_pbkdf2_sha512: test non-string passwords are rejected ... ok BUILDSTDERR: grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: grub_pbkdf2_sha512: test known hashes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided BUILDSTDERR: grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: grub_pbkdf2_sha512: test known foreign hashes ... ok BUILDSTDERR: grub_pbkdf2_sha512: test non-string hashes are rejected ... ok BUILDSTDERR: grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok BUILDSTDERR: grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok BUILDSTDERR: test ldap pbkdf2 wrappers ... ok BUILDSTDERR: pbkdf2_sha1: validate required attributes ... ok BUILDSTDERR: pbkdf2_sha1: test basic config-string workflow ... ok BUILDSTDERR: pbkdf2_sha1: test basic using() workflow ... ok BUILDSTDERR: pbkdf2_sha1: test basic hash-string workflow. ... ok BUILDSTDERR: pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: pbkdf2_sha1: test hashes can be unicode or bytes ... ok BUILDSTDERR: pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: pbkdf2_sha1: validate optional salt attributes ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: pbkdf2_sha1: test hash() honors salt_chars ... ok BUILDSTDERR: pbkdf2_sha1: test non-string salt values ... ok BUILDSTDERR: pbkdf2_sha1: validate optional rounds attributes ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha1: test password case sensitivity ... ok BUILDSTDERR: pbkdf2_sha1: test non-string passwords are rejected ... ok BUILDSTDERR: pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: pbkdf2_sha1: test known hashes ... ok BUILDSTDERR: pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: pbkdf2_sha1: test known config strings ... SKIP: no config strings provided BUILDSTDERR: pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: pbkdf2_sha1: test known identifiable-but-malformed strings ... ok BUILDSTDERR: pbkdf2_sha1: test known foreign hashes ... ok BUILDSTDERR: pbkdf2_sha1: test non-string hashes are rejected ... ok BUILDSTDERR: pbkdf2_sha1: fuzz testing -- random passwords and options ... ok BUILDSTDERR: pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- rounds ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: pbkdf2_sha1: Handler.using() -- default_salt_size ... ok BUILDSTDERR: pbkdf2_sha256: validate required attributes ... ok BUILDSTDERR: pbkdf2_sha256: test basic config-string workflow ... ok BUILDSTDERR: pbkdf2_sha256: test basic using() workflow ... ok BUILDSTDERR: pbkdf2_sha256: test basic hash-string workflow. ... ok BUILDSTDERR: pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: pbkdf2_sha256: test hashes can be unicode or bytes ... ok BUILDSTDERR: pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: pbkdf2_sha256: validate optional salt attributes ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: pbkdf2_sha256: test hash() honors salt_chars ... ok BUILDSTDERR: pbkdf2_sha256: test non-string salt values ... ok BUILDSTDERR: pbkdf2_sha256: validate optional rounds attributes ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha256: test password case sensitivity ... ok BUILDSTDERR: pbkdf2_sha256: test non-string passwords are rejected ... ok BUILDSTDERR: pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: pbkdf2_sha256: test known hashes ... ok BUILDSTDERR: pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: pbkdf2_sha256: test known config strings ... SKIP: no config strings provided BUILDSTDERR: pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: pbkdf2_sha256: test known foreign hashes ... ok BUILDSTDERR: pbkdf2_sha256: test non-string hashes are rejected ... ok BUILDSTDERR: pbkdf2_sha256: fuzz testing -- random passwords and options ... ok BUILDSTDERR: pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- rounds ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: pbkdf2_sha256: Handler.using() -- default_salt_size ... ok BUILDSTDERR: pbkdf2_sha512: validate required attributes ... ok BUILDSTDERR: pbkdf2_sha512: test basic config-string workflow ... ok BUILDSTDERR: pbkdf2_sha512: test basic using() workflow ... ok BUILDSTDERR: pbkdf2_sha512: test basic hash-string workflow. ... ok BUILDSTDERR: pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: pbkdf2_sha512: test hashes can be unicode or bytes ... ok BUILDSTDERR: pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: pbkdf2_sha512: validate optional salt attributes ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: pbkdf2_sha512: test hash() honors salt_chars ... ok BUILDSTDERR: pbkdf2_sha512: test non-string salt values ... ok BUILDSTDERR: pbkdf2_sha512: validate optional rounds attributes ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha512: test password case sensitivity ... ok BUILDSTDERR: pbkdf2_sha512: test non-string passwords are rejected ... ok BUILDSTDERR: pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: pbkdf2_sha512: test known hashes ... ok BUILDSTDERR: pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: pbkdf2_sha512: test known config strings ... SKIP: no config strings provided BUILDSTDERR: pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: pbkdf2_sha512: test known foreign hashes ... ok BUILDSTDERR: pbkdf2_sha512: test non-string hashes are rejected ... ok BUILDSTDERR: pbkdf2_sha512: fuzz testing -- random passwords and options ... ok BUILDSTDERR: pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- rounds ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: pbkdf2_sha512: Handler.using() -- default_salt_size ... ok BUILDSTDERR: scram: validate required attributes ... ok BUILDSTDERR: scram: test basic config-string workflow ... ok BUILDSTDERR: scram: test basic using() workflow ... ok BUILDSTDERR: scram: test basic hash-string workflow. ... ok BUILDSTDERR: scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: scram: test hashes can be unicode or bytes ... ok BUILDSTDERR: scram: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: scram: validate optional salt attributes ... ok BUILDSTDERR: scram: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: scram: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: scram: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: scram: test hash() honors salt_chars ... ok BUILDSTDERR: scram: test non-string salt values ... ok BUILDSTDERR: scram: validate optional rounds attributes ... ok BUILDSTDERR: scram: test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: scram: test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: scram: test password case sensitivity ... ok BUILDSTDERR: scram: test non-string passwords are rejected ... ok BUILDSTDERR: scram: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: scram: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: scram: test known hashes ... ok BUILDSTDERR: scram: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: scram: test known config strings ... SKIP: no config strings provided BUILDSTDERR: scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: scram: test known identifiable-but-malformed strings ... ok BUILDSTDERR: scram: test known foreign hashes ... ok BUILDSTDERR: scram: test non-string hashes are rejected ... ok BUILDSTDERR: scram: fuzz testing -- random passwords and options ... ok BUILDSTDERR: scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: scram: test parsing of 'algs' setting ... ok BUILDSTDERR: scram: test internal parsing of 'checksum' keyword ... ok BUILDSTDERR: scram: test scram.extract_digest_info() ... ok BUILDSTDERR: scram: test scram.extract_digest_algs() ... ok BUILDSTDERR: scram: test scram.derive_digest() ... ok BUILDSTDERR: scram: needs_update() -- algs setting ... ok BUILDSTDERR: scram: test hash/verify use saslprep ... ok BUILDSTDERR: scram: using() -- 'algs' parameter ... ok BUILDSTDERR: scram: using() -- 'default_algs' parameter ... ok BUILDSTDERR: scram: test handling of 'algs' in context object ... ok BUILDSTDERR: scram: test verify(full=True) flag ... ok BUILDSTDERR: scram: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: scram: HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: scram: HasRounds.using() -- default_rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- rounds ... ok BUILDSTDERR: scram: HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: scram: HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: scram: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: scram: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: scram: Handler.using() -- default_salt_size ... ok BUILDSTDERR: scrypt (builtin backend): validate required attributes ... ok BUILDSTDERR: scrypt (builtin backend): test basic config-string workflow ... ok BUILDSTDERR: scrypt (builtin backend): test basic using() workflow ... ok BUILDSTDERR: scrypt (builtin backend): test basic hash-string workflow. ... ok BUILDSTDERR: scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: scrypt (builtin backend): test hashes can be unicode or bytes ... ok BUILDSTDERR: scrypt (builtin backend): test multi-backend support ... ok BUILDSTDERR: scrypt (builtin backend): validate optional salt attributes ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: scrypt (builtin backend): test hash() honors salt_chars ... ok BUILDSTDERR: scrypt (builtin backend): test non-string salt values ... ok BUILDSTDERR: scrypt (builtin backend): validate optional rounds attributes ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok BUILDSTDERR: scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok BUILDSTDERR: scrypt (builtin backend): validate HasManyIdents configuration ... ok BUILDSTDERR: scrypt (builtin backend): test password case sensitivity ... ok BUILDSTDERR: scrypt (builtin backend): test non-string passwords are rejected ... ok BUILDSTDERR: scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: scrypt (builtin backend): test known hashes ... ok BUILDSTDERR: scrypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: scrypt (builtin backend): test known config strings ... SKIP: no config strings provided BUILDSTDERR: scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: scrypt (builtin backend): test known identifiable-but-malformed strings ... ok BUILDSTDERR: scrypt (builtin backend): test known foreign hashes ... ok BUILDSTDERR: scrypt (builtin backend): test non-string hashes are rejected ... ok BUILDSTDERR: scrypt (builtin backend): fuzz testing -- random passwords and options ... ok BUILDSTDERR: scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: scrypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- default_rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- rounds ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok BUILDSTDERR: scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok BUILDSTDERR: scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: scrypt (builtin backend): Handler.using() -- default_salt_size ... ok BUILDSTDERR: test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok BUILDSTDERR: test_host_context (passlib.tests.test_hosts.HostsTest) ... ok BUILDSTDERR: test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok BUILDSTDERR: passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok BUILDSTDERR: passlib.pwd.genphrase(): general behavior ... ok BUILDSTDERR: passlib.pwd.genphrase(): 'returns' keyword ... ok BUILDSTDERR: passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok BUILDSTDERR: passlib.pwd: _self_info_rate() ... ok BUILDSTDERR: passlib.pwd.genword(): 'charset' & 'chars' options ... ok BUILDSTDERR: passlib.pwd.genword(): general behavior ... ok BUILDSTDERR: passlib.pwd.genword(): 'returns' keyword ... ok BUILDSTDERR: passlib.registry: test get_crypt_handler() ... ok BUILDSTDERR: passlib.registry: verify we have tests for all builtin handlers ... ok BUILDSTDERR: passlib.registry: test passlib.hash proxy object ... ok BUILDSTDERR: passlib.registry: test list_crypt_handlers() ... ok BUILDSTDERR: passlib.registry: test register_crypt_handler() ... ok BUILDSTDERR: passlib.registry: test register_crypt_handler_path() ... ok BUILDSTDERR: passlib.totp.AppWallet: .decrypt_key() ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok BUILDSTDERR: passlib.totp.AppWallet: verify cost parameter via timing ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: .encrypt_key() ... SKIP: 'cryptography' package not installed BUILDSTDERR: passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok BUILDSTDERR: passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok BUILDSTDERR: passlib.totp.TOTP: helper to iterate over test vectors. ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'alg' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'digits' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'label' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'new' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'period' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: constructor -- 'size' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: from_dict() ... ok BUILDSTDERR: passlib.totp.TOTP: from_source() ... ok BUILDSTDERR: passlib.totp.TOTP: from_uri() ... ok BUILDSTDERR: passlib.totp.TOTP: generate() ... ok BUILDSTDERR: passlib.totp.TOTP: generate() -- reference vectors ... ok BUILDSTDERR: passlib.totp.TOTP: pretty_key() and .key attributes ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- reference vectors ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- 'skew' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- token normalization ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok BUILDSTDERR: passlib.totp.TOTP: normalize_time() ... ok BUILDSTDERR: passlib.totp.TOTP: normalize_token() -- class method ... ok BUILDSTDERR: passlib.totp.TOTP: normalize_token() -- instance method ... ok BUILDSTDERR: passlib.totp.TOTP: internal test -- randotp() ... ok BUILDSTDERR: passlib.totp.TOTP: to_dict() ... ok BUILDSTDERR: passlib.totp.TOTP: to_uri() ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok BUILDSTDERR: passlib.totp.TOTP: match() -- valid TotpMatch object ... ok BUILDSTDERR: passlib.totp.TOTP: generate() -- TotpToken() class ... ok BUILDSTDERR: passlib.totp.TOTP: using -- 'now' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: using() -- 'period' parameter ... ok BUILDSTDERR: passlib.totp.TOTP: verify() ... ok BUILDSTDERR: ab64_decode() ... ok BUILDSTDERR: ab64_encode() ... ok BUILDSTDERR: b64s_decode() ... ok BUILDSTDERR: b64s_encode() ... ok BUILDSTDERR: test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok BUILDSTDERR: test b() helper, bytes and native str type ... ok BUILDSTDERR: test is_ascii_safe() ... ok BUILDSTDERR: test is_same_codec() ... ok BUILDSTDERR: test to_bytes() ... ok BUILDSTDERR: test to_native_str() ... ok BUILDSTDERR: test to_unicode() ... ok BUILDSTDERR: h64big codec: test encode_bytes/decode_bytes against random data ... ok BUILDSTDERR: h64big codec: test decode_bytes() against reference inputs ... ok BUILDSTDERR: h64big codec: test decode_bytes() with bad input ... ok BUILDSTDERR: h64big codec: test decode_bytes() ignores padding bits ... ok BUILDSTDERR: h64big codec: test decode_transposed_bytes() ... ok BUILDSTDERR: h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok BUILDSTDERR: h64big codec: test encode_bytes() against reference inputs ... ok BUILDSTDERR: h64big codec: test encode_bytes() with bad input ... ok BUILDSTDERR: h64big codec: test encode_transposed_bytes() ... ok BUILDSTDERR: h64big codec: test against reference integer encodings ... ok BUILDSTDERR: h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok BUILDSTDERR: h64big codec: test repair_unused() ... ok BUILDSTDERR: h64 codec: test encode_bytes/decode_bytes against random data ... ok BUILDSTDERR: h64 codec: test decode_bytes() against reference inputs ... ok BUILDSTDERR: h64 codec: test decode_bytes() with bad input ... ok BUILDSTDERR: h64 codec: test decode_bytes() ignores padding bits ... ok BUILDSTDERR: h64 codec: test decode_transposed_bytes() ... ok BUILDSTDERR: h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok BUILDSTDERR: h64 codec: test encode_bytes() against reference inputs ... ok BUILDSTDERR: h64 codec: test encode_bytes() with bad input ... ok BUILDSTDERR: h64 codec: test encode_transposed_bytes() ... ok BUILDSTDERR: h64 codec: test against reference integer encodings ... ok BUILDSTDERR: h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok BUILDSTDERR: h64 codec: test repair_unused() ... ok BUILDSTDERR: test_classproperty (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: test compat's lazymodule ... ok BUILDSTDERR: test consteq() ... ok BUILDSTDERR: test crypt.crypt() wrappers ... ok BUILDSTDERR: test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: generate_password() ... ok BUILDSTDERR: test genseed() ... /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead BUILDSTDERR: time.clock(), BUILDSTDERR: /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead BUILDSTDERR: time.clock(), BUILDSTDERR: /builddir/build/BUILD/passlib-1.7.1/passlib/utils/__init__.py:906: DeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead BUILDSTDERR: time.clock(), BUILDSTDERR: ok BUILDSTDERR: getrandbytes() ... ok BUILDSTDERR: getrandstr() ... ok BUILDSTDERR: test is_crypt_context() ... ok BUILDSTDERR: test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: test saslprep() unicode normalizer ... ok BUILDSTDERR: test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok BUILDSTDERR: test PrefixWrapper lazy loading of handler ... ok BUILDSTDERR: test PrefixWrapper active loading of handler ... ok BUILDSTDERR: test PrefixWrapper with explicitly specified handler ... ok BUILDSTDERR: test_10_wrapped_attributes (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok BUILDSTDERR: test_11_wrapped_methods (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok BUILDSTDERR: test_12_ident (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok BUILDSTDERR: test repr() ... ok BUILDSTDERR: test orig_prefix sanity check ... ok BUILDSTDERR: salted_test_hash: validate required attributes ... ok BUILDSTDERR: salted_test_hash: test basic config-string workflow ... ok BUILDSTDERR: salted_test_hash: test basic using() workflow ... ok BUILDSTDERR: salted_test_hash: test basic hash-string workflow. ... ok BUILDSTDERR: salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: salted_test_hash: test hashes can be unicode or bytes ... ok BUILDSTDERR: salted_test_hash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: salted_test_hash: validate optional salt attributes ... ok BUILDSTDERR: salted_test_hash: test hash() / genconfig() creates new salt each time ... ok BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok BUILDSTDERR: salted_test_hash: test hash() honors salt_chars ... ok BUILDSTDERR: salted_test_hash: test non-string salt values ... ok BUILDSTDERR: salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: salted_test_hash: test password case sensitivity ... ok BUILDSTDERR: salted_test_hash: test non-string passwords are rejected ... ok BUILDSTDERR: salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: salted_test_hash: test known hashes ... ok BUILDSTDERR: salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: salted_test_hash: test known config strings ... SKIP: no config strings provided BUILDSTDERR: salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: salted_test_hash: test known foreign hashes ... ok BUILDSTDERR: salted_test_hash: test non-string hashes are rejected ... ok BUILDSTDERR: salted_test_hash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok BUILDSTDERR: salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: salted_test_hash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: salted_test_hash: Handler.using() -- default_salt_size ... ok BUILDSTDERR: test StaticHandler class ... ok BUILDSTDERR: test StaticHandler legacy attr ... ok BUILDSTDERR: test GenericHandler.identify() ... ok BUILDSTDERR: test GenericHandler checksum handling ... ok BUILDSTDERR: test GenericHandler + HasRawChecksum mixin ... ok BUILDSTDERR: test GenericHandler + HasSalt mixin ... ok BUILDSTDERR: test GenericHandler + HasRounds mixin ... ok BUILDSTDERR: test GenericHandler + HasManyBackends mixin ... ok BUILDSTDERR: test GenericHandler + HasManyBackends mixin (deprecated api) ... ok BUILDSTDERR: test GenericHandler + HasManyIdents ... ok BUILDSTDERR: test parsehash() ... ok BUILDSTDERR: test bitsize() ... ok BUILDSTDERR: unsalted_test_hash: validate required attributes ... ok BUILDSTDERR: unsalted_test_hash: test basic config-string workflow ... ok BUILDSTDERR: unsalted_test_hash: test basic using() workflow ... ok BUILDSTDERR: unsalted_test_hash: test basic hash-string workflow. ... ok BUILDSTDERR: unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok BUILDSTDERR: unsalted_test_hash: test hashes can be unicode or bytes ... ok BUILDSTDERR: unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend BUILDSTDERR: unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt BUILDSTDERR: unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unsalted_test_hash: test password case sensitivity ... ok BUILDSTDERR: unsalted_test_hash: test non-string passwords are rejected ... ok BUILDSTDERR: unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok BUILDSTDERR: unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed BUILDSTDERR: unsalted_test_hash: test known hashes ... ok BUILDSTDERR: unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided BUILDSTDERR: unsalted_test_hash: test known config strings ... SKIP: hash has no settings BUILDSTDERR: unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided BUILDSTDERR: unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided BUILDSTDERR: unsalted_test_hash: test known foreign hashes ... ok BUILDSTDERR: unsalted_test_hash: test non-string hashes are rejected ... ok BUILDSTDERR: unsalted_test_hash: fuzz testing -- random passwords and options ... ok BUILDSTDERR: unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode BUILDSTDERR: unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok BUILDSTDERR: unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable BUILDSTDERR: unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes BUILDSTDERR: unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set BUILDSTDERR: unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok BUILDSTDERR: unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok BUILDSTDERR: unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt BUILDSTDERR: passlib.utils.md4.md4(): informational attributes ... ok BUILDSTDERR: passlib.utils.md4.md4(): copy() method ... ok BUILDSTDERR: passlib.utils.md4.md4(): digest() method ... ok BUILDSTDERR: passlib.utils.md4.md4(): hexdigest() method ... ok BUILDSTDERR: passlib.utils.md4.md4(): update() method ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok BUILDSTDERR: passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok BUILDSTDERR: passlib.utils.pbkdf2: norm_hash_name() ... ok BUILDSTDERR: test_lmhash (passlib.tests.test_win32.UtilTest) ... ok BUILDSTDERR: test_nthash (passlib.tests.test_win32.UtilTest) ... ok BUILDSTDERR: ---------------------------------------------------------------------- BUILDSTDERR: Ran 3020 tests in 180.182s BUILDSTDERR: OK (SKIP=1267) + exit 0 Processing files: python2-passlib-1.7.1-3.fc31.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.oZ3xdw + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + DOCDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python2-passlib + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python2-passlib + cp -pr README /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python2-passlib + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.JtDHyt + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + LICENSEDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python2-passlib + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python2-passlib + cp -pr LICENSE /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python2-passlib + exit 0 Provides: python-passlib = 1.7.1-3.fc31 python2-passlib = 1.7.1-3.fc31 python2.7dist(passlib) = 1.7.1 python2dist(passlib) = 1.7.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 2.7 Obsoletes: python-passlib < 1.6.5-1 python-passlib < 1.7.1-3.fc31 Processing files: python3-passlib-1.7.1-3.fc31.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.pOfazu + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + DOCDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python3-passlib + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python3-passlib + cp -pr README /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/doc/python3-passlib + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.7kB5Gv + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + LICENSEDIR=/builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python3-passlib + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python3-passlib + cp -pr LICENSE /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64/usr/share/licenses/python3-passlib + exit 0 Provides: python3-passlib = 1.7.1-3.fc31 python3.7dist(passlib) = 1.7.1 python3dist(passlib) = 1.7.1 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.7 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 Wrote: /builddir/build/RPMS/python2-passlib-1.7.1-3.fc31.noarch.rpm Wrote: /builddir/build/RPMS/python3-passlib-1.7.1-3.fc31.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.l9jyLv + umask 022 + cd /builddir/build/BUILD + cd passlib-1.7.1 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python-passlib-1.7.1-3.fc31.x86_64 + exit 0 Child return code was: 0