Mock Version: 3.0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-passlib.spec'], chrootPath='/var/lib/mock/centos+epel-7-x86_64-1652815003.362693/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7efc81ccd5a0>timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.31yk2zmv:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True)
Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.31yk2zmv:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '004c05fa4b334f66b5ba90e96262a332', '-D', '/var/lib/mock/centos+epel-7-x86_64-1652815003.362693/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.31yk2zmv:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--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;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', '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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: x86_64
Building for target x86_64
Wrote: /builddir/build/SRPMS/python-passlib-1.7.4-6.el7.src.rpm
Child return code was: 0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/python-passlib.spec'], chrootPath='/var/lib/mock/centos+epel-7-x86_64-1652815003.362693/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7efc81ccd5a0>timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.31yk2zmv:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True)
Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.31yk2zmv:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'c04029d6c97f46a3bbb9596c2acf3d54', '-D', '/var/lib/mock/centos+epel-7-x86_64-1652815003.362693/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.31yk2zmv:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--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;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', '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;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.C74I0X
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf passlib-1.7.4
+ /usr/bin/tar -xf -
+ /usr/bin/gzip -dc /builddir/build/SOURCES/passlib-1.7.4.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd passlib-1.7.4
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ rm -fr passlib.egg-info
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.AZadNK
+ umask 022
+ cd /builddir/build/BUILD
+ cd passlib-1.7.4
+ CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic'
+ LDFLAGS='-Wl,-z,relro '
+ /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s'
running build
running build_py
creating build
creating build/lib
creating build/lib/passlib
copying passlib/win32.py -> build/lib/passlib
copying passlib/totp.py -> build/lib/passlib
copying passlib/registry.py -> build/lib/passlib
copying passlib/pwd.py -> build/lib/passlib
copying passlib/ifc.py -> build/lib/passlib
copying passlib/hosts.py -> build/lib/passlib
copying passlib/hash.py -> build/lib/passlib
copying passlib/exc.py -> build/lib/passlib
copying passlib/context.py -> build/lib/passlib
copying passlib/apps.py -> build/lib/passlib
copying passlib/apache.py -> build/lib/passlib
copying passlib/__init__.py -> build/lib/passlib
creating build/lib/passlib/utils
copying passlib/utils/pbkdf2.py -> build/lib/passlib/utils
copying passlib/utils/md4.py -> build/lib/passlib/utils
copying passlib/utils/handlers.py -> build/lib/passlib/utils
copying passlib/utils/des.py -> build/lib/passlib/utils
copying passlib/utils/decor.py -> build/lib/passlib/utils
copying passlib/utils/binary.py -> build/lib/passlib/utils
copying passlib/utils/__init__.py -> build/lib/passlib/utils
creating build/lib/passlib/tests
copying passlib/tests/utils.py -> build/lib/passlib/tests
copying passlib/tests/tox_support.py -> build/lib/passlib/tests
copying passlib/tests/test_win32.py -> build/lib/passlib/tests
copying passlib/tests/test_utils_pbkdf2.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_utils.py -> build/lib/passlib/tests
copying passlib/tests/test_totp.py -> build/lib/passlib/tests
copying passlib/tests/test_registry.py -> build/lib/passlib/tests
copying passlib/tests/test_pwd.py -> build/lib/passlib/tests
copying passlib/tests/test_hosts.py -> build/lib/passlib/tests
copying passlib/tests/test_handlers_scrypt.py -> build/lib/passlib/tests
copying passlib/tests/test_handlers_pbkdf2.py -> build/lib/passlib/tests
copying passlib/tests/test_handlers_django.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_handlers.py -> build/lib/passlib/tests
copying passlib/tests/test_ext_django_source.py -> build/lib/passlib/tests
copying passlib/tests/test_ext_django.py -> build/lib/passlib/tests
copying passlib/tests/test_crypto_scrypt.py -> build/lib/passlib/tests
copying passlib/tests/test_crypto_digest.py -> build/lib/passlib/tests
copying passlib/tests/test_crypto_des.py -> build/lib/passlib/tests
copying passlib/tests/test_crypto_builtin_md4.py -> build/lib/passlib/tests
copying passlib/tests/test_context_deprecated.py -> build/lib/passlib/tests
copying passlib/tests/test_context.py -> build/lib/passlib/tests
copying passlib/tests/test_apps.py -> build/lib/passlib/tests
copying passlib/tests/test_apache.py -> build/lib/passlib/tests
copying passlib/tests/backports.py -> build/lib/passlib/tests
copying passlib/tests/_test_bad_register.py -> build/lib/passlib/tests
copying passlib/tests/__main__.py -> build/lib/passlib/tests
copying passlib/tests/__init__.py -> build/lib/passlib/tests
creating build/lib/passlib/handlers
copying passlib/handlers/windows.py -> build/lib/passlib/handlers
copying passlib/handlers/sun_md5_crypt.py -> build/lib/passlib/handlers
copying passlib/handlers/sha2_crypt.py -> build/lib/passlib/handlers
copying passlib/handlers/sha1_crypt.py -> build/lib/passlib/handlers
copying passlib/handlers/scrypt.py -> build/lib/passlib/handlers
copying passlib/handlers/scram.py -> build/lib/passlib/handlers
copying passlib/handlers/roundup.py -> build/lib/passlib/handlers
copying passlib/handlers/postgres.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/oracle.py -> build/lib/passlib/handlers
copying passlib/handlers/mysql.py -> build/lib/passlib/handlers
copying passlib/handlers/mssql.py -> build/lib/passlib/handlers
copying passlib/handlers/misc.py -> build/lib/passlib/handlers
copying passlib/handlers/md5_crypt.py -> build/lib/passlib/handlers
copying passlib/handlers/ldap_digests.py -> build/lib/passlib/handlers
copying passlib/handlers/fshp.py -> build/lib/passlib/handlers
copying passlib/handlers/django.py -> build/lib/passlib/handlers
copying passlib/handlers/digests.py -> build/lib/passlib/handlers
copying passlib/handlers/des_crypt.py -> build/lib/passlib/handlers
copying passlib/handlers/cisco.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/__init__.py -> build/lib/passlib/handlers
creating build/lib/passlib/ext
copying passlib/ext/__init__.py -> build/lib/passlib/ext
creating build/lib/passlib/crypto
copying passlib/crypto/digest.py -> build/lib/passlib/crypto
copying passlib/crypto/des.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/_setup
copying passlib/_setup/stamp.py -> build/lib/passlib/_setup
copying passlib/_setup/__init__.py -> build/lib/passlib/_setup
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/ext/django
copying passlib/ext/django/utils.py -> build/lib/passlib/ext/django
copying passlib/ext/django/models.py -> build/lib/passlib/ext/django
copying passlib/ext/django/__init__.py -> build/lib/passlib/ext/django
creating build/lib/passlib/crypto/scrypt
copying passlib/crypto/scrypt/_salsa.py -> 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/__init__.py -> build/lib/passlib/crypto/scrypt
creating 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/_gen_files.py -> build/lib/passlib/crypto/_blowfish
copying passlib/crypto/_blowfish/__init__.py -> build/lib/passlib/crypto/_blowfish
creating build/lib/passlib/_data
creating build/lib/passlib/_data/wordsets
copying passlib/_data/wordsets/eff_short.txt -> build/lib/passlib/_data/wordsets
copying passlib/_data/wordsets/eff_prefixed.txt -> 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/tests/sample_config_1s.cfg -> build/lib/passlib/tests
copying passlib/tests/sample1c.cfg -> build/lib/passlib/tests
copying passlib/tests/sample1b.cfg -> build/lib/passlib/tests
copying passlib/tests/sample1.cfg -> build/lib/passlib/tests
+ sleep 1
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.4BylFB
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64 '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64
++ dirname /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64
+ cd passlib-1.7.4
+ export PASSLIB_SETUP_TAG_RELEASE=no
+ PASSLIB_SETUP_TAG_RELEASE=no
+ CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic'
+ LDFLAGS='-Wl,-z,relro '
+ /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64
running install
running install_lib
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_data
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_data/wordsets
copying build/lib/passlib/_data/wordsets/bip39.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_data/wordsets
copying build/lib/passlib/_data/wordsets/eff_long.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_data/wordsets
copying build/lib/passlib/_data/wordsets/eff_prefixed.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_data/wordsets
copying build/lib/passlib/_data/wordsets/eff_short.txt -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_data/wordsets
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_setup
copying build/lib/passlib/_setup/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_setup
copying build/lib/passlib/_setup/stamp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_setup
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish
copying build/lib/passlib/crypto/_blowfish/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish
copying build/lib/passlib/crypto/_blowfish/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish
copying build/lib/passlib/crypto/_blowfish/base.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish
copying build/lib/passlib/crypto/_blowfish/unrolled.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt
copying build/lib/passlib/crypto/scrypt/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt
copying build/lib/passlib/crypto/scrypt/_builtin.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt
copying build/lib/passlib/crypto/scrypt/_gen_files.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt
copying build/lib/passlib/crypto/scrypt/_salsa.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt
copying build/lib/passlib/crypto/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto
copying build/lib/passlib/crypto/_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto
copying build/lib/passlib/crypto/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto
copying build/lib/passlib/crypto/digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/django
copying build/lib/passlib/ext/django/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/django
copying build/lib/passlib/ext/django/models.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/django
copying build/lib/passlib/ext/django/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/django
copying build/lib/passlib/ext/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/des_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/fshp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/ldap_digests.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/misc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/mssql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/mysql.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/oracle.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/phpass.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/postgres.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/roundup.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/scram.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/sha1_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/sha2_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/sun_md5_crypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
copying build/lib/passlib/handlers/windows.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/sample1.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/sample1b.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/sample1c.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/sample_config_1s.cfg -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/__main__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/_test_bad_register.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/backports.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_context_deprecated.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_crypto_builtin_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_crypto_des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_crypto_digest.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_crypto_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_ext_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_ext_django_source.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_handlers_argon2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_handlers_bcrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_handlers_cisco.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_handlers_django.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_handlers_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_handlers_scrypt.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_utils_handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_utils_md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_utils_pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/test_win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/tox_support.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
copying build/lib/passlib/tests/utils.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
creating /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/compat
copying build/lib/passlib/utils/compat/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/compat
copying build/lib/passlib/utils/compat/_ordered_dict.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/compat
copying build/lib/passlib/utils/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
copying build/lib/passlib/utils/binary.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
copying build/lib/passlib/utils/decor.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
copying build/lib/passlib/utils/des.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
copying build/lib/passlib/utils/handlers.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
copying build/lib/passlib/utils/md4.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
copying build/lib/passlib/utils/pbkdf2.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils
copying build/lib/passlib/__init__.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/apache.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/apps.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/context.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/exc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/hash.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/hosts.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/ifc.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/pwd.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/registry.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/totp.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
copying build/lib/passlib/win32.py -> /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_setup/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/_setup/stamp.py to stamp.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish/_gen_files.py to _gen_files.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish/base.py to base.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_blowfish/unrolled.py to unrolled.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt/_builtin.py to _builtin.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt/_gen_files.py to _gen_files.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/scrypt/_salsa.py to _salsa.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/_md4.py to _md4.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/des.py to des.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/crypto/digest.py to digest.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/django/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/django/models.py to models.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/django/utils.py to utils.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ext/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/argon2.py to argon2.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/bcrypt.py to bcrypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/cisco.py to cisco.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/des_crypt.py to des_crypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/digests.py to digests.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/django.py to django.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/fshp.py to fshp.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/ldap_digests.py to ldap_digests.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/md5_crypt.py to md5_crypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/misc.py to misc.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/mssql.py to mssql.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/mysql.py to mysql.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/oracle.py to oracle.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/pbkdf2.py to pbkdf2.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/phpass.py to phpass.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/postgres.py to postgres.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/roundup.py to roundup.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/scram.py to scram.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/scrypt.py to scrypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/sha1_crypt.py to sha1_crypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/sha2_crypt.py to sha2_crypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/sun_md5_crypt.py to sun_md5_crypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/handlers/windows.py to windows.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/__main__.py to __main__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/_test_bad_register.py to _test_bad_register.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/backports.py to backports.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_apache.py to test_apache.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_apps.py to test_apps.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_context.py to test_context.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_context_deprecated.py to test_context_deprecated.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_crypto_builtin_md4.py to test_crypto_builtin_md4.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_crypto_des.py to test_crypto_des.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_crypto_digest.py to test_crypto_digest.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_crypto_scrypt.py to test_crypto_scrypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_ext_django.py to test_ext_django.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_ext_django_source.py to test_ext_django_source.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_handlers.py to test_handlers.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_handlers_argon2.py to test_handlers_argon2.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_handlers_bcrypt.py to test_handlers_bcrypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_handlers_cisco.py to test_handlers_cisco.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_handlers_django.py to test_handlers_django.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_handlers_pbkdf2.py to test_handlers_pbkdf2.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_handlers_scrypt.py to test_handlers_scrypt.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_hosts.py to test_hosts.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_pwd.py to test_pwd.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_registry.py to test_registry.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_totp.py to test_totp.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_utils.py to test_utils.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_utils_handlers.py to test_utils_handlers.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_utils_md4.py to test_utils_md4.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_utils_pbkdf2.py to test_utils_pbkdf2.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/test_win32.py to test_win32.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/tox_support.py to tox_support.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/tests/utils.py to utils.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/compat/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/compat/_ordered_dict.py to _ordered_dict.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/binary.py to binary.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/decor.py to decor.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/des.py to des.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/handlers.py to handlers.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/md4.py to md4.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/utils/pbkdf2.py to pbkdf2.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/__init__.py to __init__.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/apache.py to apache.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/apps.py to apps.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/context.py to context.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/exc.py to exc.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/hash.py to hash.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/hosts.py to hosts.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/ifc.py to ifc.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/pwd.py to pwd.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/registry.py to registry.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/totp.py to totp.cpython-36.pyc
byte-compiling /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib/win32.py to win32.cpython-36.pyc
writing byte-compilation script '/tmp/tmp8vim0xbf.py'
/usr/bin/python3 /tmp/tmp8vim0xbf.py
removing /tmp/tmp8vim0xbf.py
running install_egg_info
running egg_info
creating passlib.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
writing manifest file 'passlib.egg-info/SOURCES.txt'
reading manifest file 'passlib.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
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.4-6.el7.x86_64/usr/lib/python3.6/site-packages/passlib-1.7.4-py3.6.egg-info
running install_scripts
+ /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 /builddir/build/BUILD/passlib-1.7.4
/usr/lib/rpm/sepdebugcrcfix: Updated 0 CRC32s, 0 CRC32s did match.
find: 'debug': No such file or directory
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
Bytecompiling .py files below /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/lib/python3.6 using /usr/bin/python3.6
+ /usr/lib/rpm/redhat/brp-python-hardlink
+ /usr/lib/rpm/redhat/brp-java-repack-jars
Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.GAyyjx
+ umask 022
+ cd /builddir/build/BUILD
+ cd passlib-1.7.4
+ nosetests-3.6 -v
/builddir/build/BUILD/passlib-1.7.4/passlib/crypto/scrypt/__init__.py:165: 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
  "is strongly recommended" % slowdown, exc.PasslibSecurityWarning)
HtdigestFile: test constructor autoload ... ok
HtdigestFile: test delete() ... ok
HtdigestFile: test_01_delete_autosave (passlib.tests.test_apache.HtdigestFileTest) ... ok
HtdigestFile: test update() ... ok
HtdigestFile: test users() ... ok
HtdigestFile: test check_password() ... ok
HtdigestFile: test load() ... ok
HtdigestFile: test save() ... ok
HtdigestFile: test realms() & delete_realm() ... ok
HtdigestFile: test get_hash() ... ok
HtdigestFile: test encoding parameter ... ok
HtdigestFile: test to_string() ... ok
HtdigestFile: test_11_malformed (passlib.tests.test_apache.HtdigestFileTest) ... ok
HtpasswdFile: test constructor autoload ... ok
HtpasswdFile: test_00_from_path (passlib.tests.test_apache.HtpasswdFileTest) ... ok
HtpasswdFile: test delete() ... ok
HtpasswdFile: test_01_delete_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok
HtpasswdFile: test set_password() ... ok
HtpasswdFile: test_02_set_password_autosave (passlib.tests.test_apache.HtpasswdFileTest) ... ok
HtpasswdFile: test set_password() -- default_scheme ... ok
HtpasswdFile: test users() ... ok
HtpasswdFile: test check_password() ... ok
HtpasswdFile: test load() ... ok
HtpasswdFile: test save() ... ok
HtpasswdFile: test 'encoding' kwd ... ok
HtpasswdFile: test get_hash() ... ok
HtpasswdFile: test to_string ... ok
HtpasswdFile: test_10_repr (passlib.tests.test_apache.HtpasswdFileTest) ... ok
HtpasswdFile: test_11_malformed (passlib.tests.test_apache.HtpasswdFileTest) ... ok
HtpasswdFile: test_12_from_string (passlib.tests.test_apache.HtpasswdFileTest) ... ok
HtpasswdFile: whitespace & comment handling ... ok
HtpasswdFile: verify "htpasswd" command can read output ... SKIP: requires `htpasswd` cmdline tool
HtpasswdFile: verify "htpasswd" command can read bcrypt format ... SKIP: requires `htpasswd` cmdline tool
test_custom_app_context (passlib.tests.test_apps.AppsTest) ... ok
test_django16_context (passlib.tests.test_apps.AppsTest) ... ok
test_django_context (passlib.tests.test_apps.AppsTest) ... ok
test_ldap_context (passlib.tests.test_apps.AppsTest) ... ok
test_ldap_mysql_context (passlib.tests.test_apps.AppsTest) ... ok
test_ldap_nocrypt_context (passlib.tests.test_apps.AppsTest) ... ok
test_master_context (passlib.tests.test_apps.AppsTest) ... ok
test_phpbb3_context (passlib.tests.test_apps.AppsTest) ... ok
test_phppass_context (passlib.tests.test_apps.AppsTest) ... ok
test_postgres_context (passlib.tests.test_apps.AppsTest) ... ok
test_roundup_context (passlib.tests.test_apps.AppsTest) ... ok
CryptContext: test class constructor ... ok
CryptContext: test from_string() constructor ... ok
CryptContext: test from_path() constructor ... ok
CryptContext: test copy() method ... ok
CryptContext: test repr() ... ok
CryptContext: test load() / load_path() method ... ok
CryptContext: test load() errors restore old state ... ok
CryptContext: test update() method ... ok
CryptContext: test basic option parsing ... ok
CryptContext: test 'schemes' context option parsing ... ok
CryptContext: test 'deprecated' context option parsing ... ok
CryptContext: test 'default' context option parsing ... ok
CryptContext: test 'vary_rounds' hash option parsing ... ok
CryptContext: test schemes() method ... ok
CryptContext: test default_scheme() method ... ok
CryptContext: test handler() method ... ok
CryptContext: test internal _get_record_options() method ... ok
CryptContext: test to_dict() method ... ok
CryptContext: test to_string() method ... ok
CryptContext: test basic hash/identify/verify functionality ... ok
CryptContext: test genconfig() method ... ok
CryptContext: test genhash() method ... ok
CryptContext: test hash() method ... ok
CryptContext: test hash() method -- legacy 'scheme' and settings keywords ... ok
CryptContext: test identify() border cases ... ok
CryptContext: test verify() scheme kwd ... ok
CryptContext: test needs_update() method ... ok
CryptContext: test verify_and_update() ... ok
CryptContext: hash(), verify(), and verify_and_update() -- discard unused context keywords ... ok
CryptContext: test rounds limits ... ok
CryptContext: test linear vary rounds ... ok
CryptContext: test log2 vary rounds ... ok
CryptContext: test deprecated='auto' is handled correctly ... ok
CryptContext: disabled hash support ... ok
CryptContext: dummy_verify() method ... ok
CryptContext: harden_verify -- parsing ... ok
LazyCryptContext: test_callable_constructor (passlib.tests.test_context.LazyCryptContextTest) ... ok
LazyCryptContext: test plain kwds ... ok
CryptContext: test constructor ... ok
CryptContext: test replace() ... ok
CryptContext: test no handlers ... ok
CryptContext: test hash_needs_update() method ... ok
CryptContext: test non-string hash values cause error ... ok
CryptPolicy: test CryptPolicy() constructor ... ok
CryptPolicy: test CryptPolicy.from_path() constructor with encodings ... ok
CryptPolicy: test CryptPolicy.from_path() constructor ... ok
CryptPolicy: test CryptPolicy.from_string() constructor ... ok
CryptPolicy: test CryptPolicy.from_source() constructor ... ok
CryptPolicy: test CryptPolicy.from_sources() constructor ... ok
CryptPolicy: test CryptPolicy.replace() constructor ... ok
CryptPolicy: test CryptPolicy() forbidden kwds ... ok
CryptPolicy: test has_schemes() method ... ok
CryptPolicy: test iter_handlers() method ... ok
CryptPolicy: test get_handler() method ... ok
CryptPolicy: test get_options() method ... ok
CryptPolicy: test handler_is_deprecated() method ... ok
CryptPolicy: test get_min_verify_time() method ... ok
CryptPolicy: test iter_config() method ... ok
CryptPolicy: test to_dict() method ... ok
CryptPolicy: test to_string() method ... ok
LazyCryptContext: test create_policy() hook, returning CryptPolicy ... ok
LazyCryptContext: test plain kwds ... ok
passlib.crypto._md4.md4(): informational attributes ... ok
passlib.crypto._md4.md4(): copy() method ... ok
passlib.crypto._md4.md4(): digest() method ... ok
passlib.crypto._md4.md4(): hexdigest() method ... ok
passlib.crypto._md4.md4(): update() method ... ok
hashlib.new('md4'): informational attributes ... ok
hashlib.new('md4'): copy() method ... ok
hashlib.new('md4'): digest() method ... ok
hashlib.new('md4'): hexdigest() method ... ok
hashlib.new('md4'): update() method ... ok
passlib.crypto.des: expand_des_key() ... ok
passlib.crypto.des: shrink_des_key() ... ok
passlib.crypto.des: des_encrypt_block() ... ok
passlib.crypto.des: des_encrypt_int_block() ... ok
passlib.crypto.digest: lookup_hash() -- alternate types ... ok
passlib.crypto.digest: lookup_hash() -- constructor ... ok
passlib.crypto.digest: lookup_hash() -- metadata ... ok
passlib.crypto.digest: lookup_hash() -- unknown hash name ... ok
passlib.crypto.digest: lookup_hash() -- test set_mock_fips_mode() ... ok
passlib.crypto.digest: norm_hash_name() ... ok
passlib.crypto.digest.pbkdf1: test border cases ... ok
passlib.crypto.digest.pbkdf1: test reference vectors ... ok
passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: verify expected backends are present ... ok
passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: test border cases ... ok
passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: test keylen==None ... ok
passlib.crypto.digest.pbkdf2_hmac() <backends: hashlib-ssl, builtin-from-bytes>: test reference vectors ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: backend management ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: 'keylen' parameter ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: backend management -- missing backend ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: 'n' (rounds) parameter ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: compare output to other backends ... SKIP: no other backends found
passlib.utils.scrypt.scrypt() <builtin backend>: 'p' (parallelism) parameter ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: 'r' (block size) parameter ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: reference vectors ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: 'salt' parameter ... ok
passlib.utils.scrypt.scrypt() <builtin backend>: 'secret' parameter ... ok
passlib.crypto.scrypt._builtin: bmix() ... ok
passlib.crypto.scrypt._builtin: salsa20() ... ok
passlib.crypto.scrypt._builtin: smix() ... ok
verify django behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed
verify django behavior: test django's default algorithm ... SKIP: Django not installed
verify django behavior: test how methods handle empty string as hash value ... SKIP: Django not installed
verify django behavior: test how methods handle empty string as password ... SKIP: Django not installed
verify django behavior: test extension config is loaded correctly ... SKIP: Django not installed
verify django behavior: test how methods handle invalid hash values. ... SKIP: Django not installed
verify django behavior: test how methods handle None as hash value ... SKIP: Django not installed
verify django behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed
passlib.ext.django plugin: test set_django_password_context patch/unpatch ... SKIP: Django not installed
passlib.ext.django plugin: test detection of foreign monkeypatching ... SKIP: Django not installed
passlib.ext.django plugin: test Hasher-compatible handler wrappers ... SKIP: Django not installed
passlib.ext.django plugin: test PASSLIB_CONFIG='disabled' ... SKIP: Django not installed
passlib.ext.django plugin: test PASSLIB_CONFIG='<preset>' ... SKIP: Django not installed
passlib.ext.django plugin: test PASSLIB_CONFIG default behavior ... SKIP: Django not installed
passlib.ext.django plugin: test PASSLIB_CONFIG type checks ... SKIP: Django not installed
passlib.ext.django plugin: test PASSLIB_GET_CATEGORY parameter ... SKIP: Django not installed
verify extension behavior: run a bunch of subtests for each hasher available in the default django setup ... SKIP: Django not installed
verify extension behavior: test django's default algorithm ... SKIP: Django not installed
verify extension behavior: test how methods handle empty string as hash value ... SKIP: Django not installed
verify extension behavior: test how methods handle empty string as password ... SKIP: Django not installed
verify extension behavior: test extension config is loaded correctly ... SKIP: Django not installed
verify extension behavior: test how methods handle invalid hash values. ... SKIP: Django not installed
verify extension behavior: test how methods handle None as hash value ... SKIP: Django not installed
verify extension behavior: test how methods handle 'unusable flag' in hash ... SKIP: Django not installed
external django hasher tests ... SKIP: django not installed
test_pairs (passlib.tests.test_handlers.RoundupTest) ... ok
apr_md5_crypt: validate required attributes ... ok
apr_md5_crypt: test basic config-string workflow ... ok
apr_md5_crypt: test basic using() workflow ... ok
apr_md5_crypt: test basic hash-string workflow. ... ok
apr_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
apr_md5_crypt: test hashes can be unicode or bytes ... ok
apr_md5_crypt: test multi-backend support ... SKIP: handler only has one backend
apr_md5_crypt: validate optional salt attributes ... ok
apr_md5_crypt: test hash() / genconfig() creates new salt each time ... ok
apr_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok
apr_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok
apr_md5_crypt: test hash() honors salt_chars ... ok
apr_md5_crypt: test non-string salt values ... ok
apr_md5_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
apr_md5_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
apr_md5_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
apr_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
apr_md5_crypt: test password case sensitivity ... ok
apr_md5_crypt: test non-string passwords are rejected ... ok
apr_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok
apr_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed
apr_md5_crypt: test known hashes ... ok
apr_md5_crypt: parsehash() ... ok
apr_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided
apr_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present
apr_md5_crypt: test known config strings ... SKIP: no config strings provided
apr_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
apr_md5_crypt: test known identifiable-but-malformed strings ... ok
apr_md5_crypt: test known foreign hashes ... ok
apr_md5_crypt: test non-string hashes are rejected ... ok
apr_md5_crypt: fuzz testing -- random passwords and options ... ok
apr_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
apr_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable
apr_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
apr_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
apr_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
apr_md5_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
apr_md5_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
apr_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
apr_md5_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
apr_md5_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
apr_md5_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
apr_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
apr_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok
apr_md5_crypt: validate 'truncate_error' setting & related attributes ... ok
apr_md5_crypt: Handler.using() -- default_salt_size ... ok
bigcrypt: validate required attributes ... ok
bigcrypt: test basic config-string workflow ... ok
bigcrypt: test basic using() workflow ... ok
bigcrypt: test basic hash-string workflow. ... ok
bigcrypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
bigcrypt: test hashes can be unicode or bytes ... ok
bigcrypt: test multi-backend support ... SKIP: handler only has one backend
bigcrypt: validate optional salt attributes ... ok
bigcrypt: test hash() / genconfig() creates new salt each time ... ok
bigcrypt: test hash() / genconfig() honors min_salt_size ... ok
bigcrypt: test hash() / genconfig() honors max_salt_size ... ok
bigcrypt: test hash() honors salt_chars ... ok
bigcrypt: test non-string salt values ... ok
bigcrypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
bigcrypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
bigcrypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
bigcrypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
bigcrypt: test password case sensitivity ... ok
bigcrypt: test non-string passwords are rejected ... ok
bigcrypt: test MAX_PASSWORD_SIZE is enforced ... ok
bigcrypt: test forbidden characters not allowed in password ... SKIP: none listed
bigcrypt: test known hashes ... ok
bigcrypt: parsehash() ... ok
bigcrypt: test known alternate hashes ... SKIP: no alternate hashes provided
bigcrypt: parsehash() -- known outputs ... SKIP: no samples present
bigcrypt: test known config strings ... SKIP: no config strings provided
bigcrypt: test known unidentifiably-mangled strings ... ok
bigcrypt: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
bigcrypt: test known foreign hashes ... ok
bigcrypt: test non-string hashes are rejected ... ok
bigcrypt: fuzz testing -- random passwords and options ... ok
bigcrypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
bigcrypt: test_90_internal (passlib.tests.test_handlers.bigcrypt_test) ... ok
bigcrypt: .disable() / .enable() methods ... SKIP: not applicable
bigcrypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
bigcrypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
bigcrypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
bigcrypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
bigcrypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
bigcrypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
bigcrypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
bigcrypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
bigcrypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
bigcrypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
bigcrypt: test no password size limits enforced (if truncate_size=None) ... ok
bigcrypt: validate 'truncate_error' setting & related attributes ... ok
bigcrypt: Handler.using() -- default_salt_size ... ok
bsd_nthash: validate required attributes ... ok
bsd_nthash: test basic config-string workflow ... ok
bsd_nthash: test basic using() workflow ... ok
bsd_nthash: test basic hash-string workflow. ... ok
bsd_nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
bsd_nthash: test hashes can be unicode or bytes ... ok
bsd_nthash: test multi-backend support ... SKIP: handler only has one backend
bsd_nthash: validate optional salt attributes ... SKIP: handler doesn't have salt
bsd_nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
bsd_nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
bsd_nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
bsd_nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt
bsd_nthash: test non-string salt values ... SKIP: handler doesn't have salt
bsd_nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
bsd_nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
bsd_nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
bsd_nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
bsd_nthash: test password case sensitivity ... ok
bsd_nthash: test non-string passwords are rejected ... ok
bsd_nthash: test MAX_PASSWORD_SIZE is enforced ... ok
bsd_nthash: test forbidden characters not allowed in password ... SKIP: none listed
bsd_nthash: test known hashes ... ok
bsd_nthash: parsehash() ... SKIP: parsehash() not implemented
bsd_nthash: test known alternate hashes ... SKIP: no alternate hashes provided
bsd_nthash: parsehash() -- known outputs ... SKIP: parsehash() not implemented
bsd_nthash: test known config strings ... SKIP: hash has no settings
bsd_nthash: test known unidentifiably-mangled strings ... ok
bsd_nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
bsd_nthash: test known foreign hashes ... ok
bsd_nthash: test non-string hashes are rejected ... ok
bsd_nthash: fuzz testing -- random passwords and options ... ok
bsd_nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
bsd_nthash: .disable() / .enable() methods ... SKIP: not applicable
bsd_nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
bsd_nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
bsd_nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
bsd_nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
bsd_nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
bsd_nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
bsd_nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
bsd_nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
bsd_nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
bsd_nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
bsd_nthash: test no password size limits enforced (if truncate_size=None) ... ok
bsd_nthash: validate 'truncate_error' setting & related attributes ... ok
bsd_nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
bsdi_crypt (builtin backend): validate required attributes ... ok
bsdi_crypt (builtin backend): test basic config-string workflow ... ok
bsdi_crypt (builtin backend): test basic using() workflow ... ok
bsdi_crypt (builtin backend): test basic hash-string workflow. ... ok
bsdi_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
bsdi_crypt (builtin backend): test hashes can be unicode or bytes ... ok
bsdi_crypt (builtin backend): test multi-backend support ... ok
bsdi_crypt (builtin backend): validate optional salt attributes ... ok
bsdi_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok
bsdi_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok
bsdi_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok
bsdi_crypt (builtin backend): test hash() honors salt_chars ... ok
bsdi_crypt (builtin backend): test non-string salt values ... ok
bsdi_crypt (builtin backend): validate optional rounds attributes ... ok
bsdi_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok
bsdi_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok
bsdi_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
bsdi_crypt (builtin backend): test password case sensitivity ... ok
bsdi_crypt (builtin backend): test non-string passwords are rejected ... ok
bsdi_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok
bsdi_crypt (builtin backend): test forbidden characters not allowed in password ... ok
bsdi_crypt (builtin backend): test known hashes ... ok
bsdi_crypt (builtin backend): parsehash() ... ok
bsdi_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided
bsdi_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present
bsdi_crypt (builtin backend): test known config strings ... SKIP: no config strings provided
bsdi_crypt (builtin backend): test known unidentifiably-mangled strings ... ok
bsdi_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
bsdi_crypt (builtin backend): test known foreign hashes ... ok
bsdi_crypt (builtin backend): test non-string hashes are rejected ... ok
bsdi_crypt (builtin backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_builtin_test) ... ok
bsdi_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
bsdi_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable
bsdi_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
bsdi_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
bsdi_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
bsdi_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok
bsdi_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok
bsdi_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
bsdi_crypt (builtin backend): HasRounds.using() -- rounds ... ok
bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok
bsdi_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok
bsdi_crypt (builtin backend): needs_update() should flag even rounds ... ok
bsdi_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
bsdi_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok
bsdi_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok
bsdi_crypt (builtin backend): Handler.using() -- default_salt_size ... ok
bsdi_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.bsdi_crypt_os_crypt_test) ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = False)
bsdi_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): needs_update() should flag even rounds ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bsdi_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
crypt16: validate required attributes ... ok
crypt16: test basic config-string workflow ... ok
crypt16: test basic using() workflow ... ok
crypt16: test basic hash-string workflow. ... ok
crypt16: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
crypt16: test hashes can be unicode or bytes ... ok
crypt16: test multi-backend support ... SKIP: handler only has one backend
crypt16: validate optional salt attributes ... ok
crypt16: test hash() / genconfig() creates new salt each time ... ok
crypt16: test hash() / genconfig() honors min_salt_size ... ok
crypt16: test hash() / genconfig() honors max_salt_size ... ok
crypt16: test hash() honors salt_chars ... ok
crypt16: test non-string salt values ... ok
crypt16: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
crypt16: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
crypt16: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
crypt16: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
crypt16: test password case sensitivity ... ok
crypt16: test non-string passwords are rejected ... ok
crypt16: test MAX_PASSWORD_SIZE is enforced ... ok
crypt16: test forbidden characters not allowed in password ... SKIP: none listed
crypt16: test known hashes ... ok
crypt16: parsehash() ... ok
crypt16: test known alternate hashes ... SKIP: no alternate hashes provided
crypt16: parsehash() -- known outputs ... SKIP: no samples present
crypt16: test known config strings ... SKIP: no config strings provided
crypt16: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
crypt16: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
crypt16: test known foreign hashes ... ok
crypt16: test non-string hashes are rejected ... ok
crypt16: fuzz testing -- random passwords and options ... ok
crypt16: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
crypt16: .disable() / .enable() methods ... SKIP: not applicable
crypt16: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
crypt16: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
crypt16: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
crypt16: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
crypt16: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
crypt16: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
crypt16: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
crypt16: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
crypt16: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
crypt16: test password size limits raise truncate_error (if appropriate) ... ok
crypt16: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
crypt16: validate 'truncate_error' setting & related attributes ... ok
crypt16: Handler.using() -- default_salt_size ... ok
des_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested
des_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested
des_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested
des_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
des_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested
des_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
des_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested
des_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
des_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
des_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
des_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested
des_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
des_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
des_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
des_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested
des_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested
des_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested
des_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
des_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested
des_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
des_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
des_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested
des_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
des_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
des_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
des_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
des_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
des_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
des_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
des_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
des_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
des_crypt (os_crypt backend): validate required attributes ... ok
des_crypt (os_crypt backend): test basic config-string workflow ... ok
des_crypt (os_crypt backend): test basic using() workflow ... ok
des_crypt (os_crypt backend): test basic hash-string workflow. ... ok
des_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
des_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok
des_crypt (os_crypt backend): test multi-backend support ... ok
des_crypt (os_crypt backend): validate optional salt attributes ... ok
des_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok
des_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok
des_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok
des_crypt (os_crypt backend): test hash() honors salt_chars ... ok
des_crypt (os_crypt backend): test non-string salt values ... ok
des_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
des_crypt (os_crypt backend): test password case sensitivity ... ok
des_crypt (os_crypt backend): test non-string passwords are rejected ... ok
des_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
des_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok
des_crypt (os_crypt backend): test known hashes ... ok
des_crypt (os_crypt backend): parsehash() ... ok
des_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
des_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present
des_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided
des_crypt (os_crypt backend): test known unidentifiably-mangled strings ... ok
des_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
des_crypt (os_crypt backend): test known foreign hashes ... ok
des_crypt (os_crypt backend): test non-string hashes are rejected ... ok
des_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok
des_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
des_crypt (os_crypt backend): test with faulty crypt() ... ok
des_crypt (os_crypt backend): test per-call crypt() fallback ... ok
des_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok
des_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable
des_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
des_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
des_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... ok
des_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
des_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok
des_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok
fshp: validate required attributes ... ok
fshp: test basic config-string workflow ... ok
fshp: test basic using() workflow ... ok
fshp: test basic hash-string workflow. ... ok
fshp: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
fshp: test hashes can be unicode or bytes ... ok
fshp: test multi-backend support ... SKIP: handler only has one backend
fshp: validate optional salt attributes ... ok
fshp: test hash() / genconfig() creates new salt each time ... ok
fshp: test hash() / genconfig() honors min_salt_size ... ok
fshp: test hash() / genconfig() honors max_salt_size ... ok
fshp: test hash() honors salt_chars ... ok
fshp: test non-string salt values ... ok
fshp: validate optional rounds attributes ... ok
fshp: test hash() / genconfig() honors min_rounds ... ok
fshp: test hash() / genconfig() honors max_rounds ... ok
fshp: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
fshp: test password case sensitivity ... ok
fshp: test non-string passwords are rejected ... ok
fshp: test MAX_PASSWORD_SIZE is enforced ... ok
fshp: test forbidden characters not allowed in password ... SKIP: none listed
fshp: test known hashes ... ok
fshp: parsehash() ... ok
fshp: test known alternate hashes ... SKIP: no alternate hashes provided
fshp: parsehash() -- known outputs ... SKIP: no samples present
fshp: test known config strings ... SKIP: no config strings provided
fshp: test known unidentifiably-mangled strings ... ok
fshp: test known identifiable-but-malformed strings ... ok
fshp: test known foreign hashes ... ok
fshp: test non-string hashes are rejected ... ok
fshp: fuzz testing -- random passwords and options ... ok
fshp: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
fshp: test variant keyword ... ok
fshp: .disable() / .enable() methods ... SKIP: not applicable
fshp: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
fshp: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
fshp: HasRounds.using() -- desired_rounds + needs_update() ... ok
fshp: HasRounds.using() -- sanity check test harness ... ok
fshp: HasRounds.using() -- default_rounds ... ok
fshp: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
fshp: HasRounds.using() -- rounds ... ok
fshp: HasRounds.using() -- vary_rounds generation ... ok
fshp: HasRounds.using() -- vary_rounds parsing ... ok
fshp: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
fshp: test no password size limits enforced (if truncate_size=None) ... ok
fshp: validate 'truncate_error' setting & related attributes ... ok
fshp: Handler.using() -- default_salt_size ... ok
hex_md4: validate required attributes ... ok
hex_md4: test basic config-string workflow ... ok
hex_md4: test basic using() workflow ... ok
hex_md4: test basic hash-string workflow. ... ok
hex_md4: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
hex_md4: test hashes can be unicode or bytes ... ok
hex_md4: test multi-backend support ... SKIP: handler only has one backend
hex_md4: validate optional salt attributes ... SKIP: handler doesn't have salt
hex_md4: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
hex_md4: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
hex_md4: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
hex_md4: test hash() honors salt_chars ... SKIP: handler doesn't have salt
hex_md4: test non-string salt values ... SKIP: handler doesn't have salt
hex_md4: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
hex_md4: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
hex_md4: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
hex_md4: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
hex_md4: test password case sensitivity ... ok
hex_md4: test non-string passwords are rejected ... ok
hex_md4: test MAX_PASSWORD_SIZE is enforced ... ok
hex_md4: test forbidden characters not allowed in password ... SKIP: none listed
hex_md4: test known hashes ... ok
hex_md4: parsehash() ... ok
hex_md4: test known alternate hashes ... SKIP: no alternate hashes provided
hex_md4: parsehash() -- known outputs ... SKIP: no samples present
hex_md4: test known config strings ... SKIP: hash has no settings
hex_md4: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
hex_md4: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
hex_md4: test known foreign hashes ... ok
hex_md4: test non-string hashes are rejected ... ok
hex_md4: fuzz testing -- random passwords and options ... ok
hex_md4: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
hex_md4: .disable() / .enable() methods ... SKIP: not applicable
hex_md4: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
hex_md4: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
hex_md4: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
hex_md4: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
hex_md4: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
hex_md4: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
hex_md4: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
hex_md4: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
hex_md4: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
hex_md4: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
hex_md4: test no password size limits enforced (if truncate_size=None) ... ok
hex_md4: validate 'truncate_error' setting & related attributes ... ok
hex_md4: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
hex_md5: validate required attributes ... ok
hex_md5: test basic config-string workflow ... ok
hex_md5: test basic using() workflow ... ok
hex_md5: test basic hash-string workflow. ... ok
hex_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
hex_md5: test hashes can be unicode or bytes ... ok
hex_md5: test multi-backend support ... SKIP: handler only has one backend
hex_md5: validate optional salt attributes ... SKIP: handler doesn't have salt
hex_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
hex_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
hex_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
hex_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt
hex_md5: test non-string salt values ... SKIP: handler doesn't have salt
hex_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
hex_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
hex_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
hex_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
hex_md5: test password case sensitivity ... ok
hex_md5: test non-string passwords are rejected ... ok
hex_md5: test MAX_PASSWORD_SIZE is enforced ... ok
hex_md5: test forbidden characters not allowed in password ... SKIP: none listed
hex_md5: test known hashes ... ok
hex_md5: parsehash() ... ok
hex_md5: test known alternate hashes ... SKIP: no alternate hashes provided
hex_md5: parsehash() -- known outputs ... SKIP: no samples present
hex_md5: test known config strings ... SKIP: hash has no settings
hex_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
hex_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
hex_md5: test known foreign hashes ... ok
hex_md5: test non-string hashes are rejected ... ok
hex_md5: fuzz testing -- random passwords and options ... ok
hex_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
hex_md5: .disable() / .enable() methods ... SKIP: not applicable
hex_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
hex_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
hex_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
hex_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
hex_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
hex_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
hex_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
hex_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
hex_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
hex_md5: if md5 isn't available, a dummy instance should be created. ... ok
hex_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
hex_md5: test no password size limits enforced (if truncate_size=None) ... ok
hex_md5: validate 'truncate_error' setting & related attributes ... ok
hex_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
hex_sha1: validate required attributes ... ok
hex_sha1: test basic config-string workflow ... ok
hex_sha1: test basic using() workflow ... ok
hex_sha1: test basic hash-string workflow. ... ok
hex_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
hex_sha1: test hashes can be unicode or bytes ... ok
hex_sha1: test multi-backend support ... SKIP: handler only has one backend
hex_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt
hex_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
hex_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
hex_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
hex_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt
hex_sha1: test non-string salt values ... SKIP: handler doesn't have salt
hex_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
hex_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
hex_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
hex_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
hex_sha1: test password case sensitivity ... ok
hex_sha1: test non-string passwords are rejected ... ok
hex_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
hex_sha1: test forbidden characters not allowed in password ... SKIP: none listed
hex_sha1: test known hashes ... ok
hex_sha1: parsehash() ... ok
hex_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
hex_sha1: parsehash() -- known outputs ... SKIP: no samples present
hex_sha1: test known config strings ... SKIP: hash has no settings
hex_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
hex_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
hex_sha1: test known foreign hashes ... ok
hex_sha1: test non-string hashes are rejected ... ok
hex_sha1: fuzz testing -- random passwords and options ... ok
hex_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
hex_sha1: .disable() / .enable() methods ... SKIP: not applicable
hex_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
hex_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
hex_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
hex_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
hex_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
hex_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
hex_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
hex_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
hex_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
hex_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
hex_sha1: test no password size limits enforced (if truncate_size=None) ... ok
hex_sha1: validate 'truncate_error' setting & related attributes ... ok
hex_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
hex_sha256: validate required attributes ... ok
hex_sha256: test basic config-string workflow ... ok
hex_sha256: test basic using() workflow ... ok
hex_sha256: test basic hash-string workflow. ... ok
hex_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
hex_sha256: test hashes can be unicode or bytes ... ok
hex_sha256: test multi-backend support ... SKIP: handler only has one backend
hex_sha256: validate optional salt attributes ... SKIP: handler doesn't have salt
hex_sha256: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
hex_sha256: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
hex_sha256: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
hex_sha256: test hash() honors salt_chars ... SKIP: handler doesn't have salt
hex_sha256: test non-string salt values ... SKIP: handler doesn't have salt
hex_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
hex_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
hex_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
hex_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
hex_sha256: test password case sensitivity ... ok
hex_sha256: test non-string passwords are rejected ... ok
hex_sha256: test MAX_PASSWORD_SIZE is enforced ... ok
hex_sha256: test forbidden characters not allowed in password ... SKIP: none listed
hex_sha256: test known hashes ... ok
hex_sha256: parsehash() ... ok
hex_sha256: test known alternate hashes ... SKIP: no alternate hashes provided
hex_sha256: parsehash() -- known outputs ... SKIP: no samples present
hex_sha256: test known config strings ... SKIP: hash has no settings
hex_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
hex_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
hex_sha256: test known foreign hashes ... ok
hex_sha256: test non-string hashes are rejected ... ok
hex_sha256: fuzz testing -- random passwords and options ... ok
hex_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
hex_sha256: .disable() / .enable() methods ... SKIP: not applicable
hex_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
hex_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
hex_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
hex_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
hex_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
hex_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
hex_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
hex_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
hex_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
hex_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
hex_sha256: test no password size limits enforced (if truncate_size=None) ... ok
hex_sha256: validate 'truncate_error' setting & related attributes ... ok
hex_sha256: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
hex_sha512: validate required attributes ... ok
hex_sha512: test basic config-string workflow ... ok
hex_sha512: test basic using() workflow ... ok
hex_sha512: test basic hash-string workflow. ... ok
hex_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
hex_sha512: test hashes can be unicode or bytes ... ok
hex_sha512: test multi-backend support ... SKIP: handler only has one backend
hex_sha512: validate optional salt attributes ... SKIP: handler doesn't have salt
hex_sha512: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
hex_sha512: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
hex_sha512: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
hex_sha512: test hash() honors salt_chars ... SKIP: handler doesn't have salt
hex_sha512: test non-string salt values ... SKIP: handler doesn't have salt
hex_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
hex_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
hex_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
hex_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
hex_sha512: test password case sensitivity ... ok
hex_sha512: test non-string passwords are rejected ... ok
hex_sha512: test MAX_PASSWORD_SIZE is enforced ... ok
hex_sha512: test forbidden characters not allowed in password ... SKIP: none listed
hex_sha512: test known hashes ... ok
hex_sha512: parsehash() ... ok
hex_sha512: test known alternate hashes ... SKIP: no alternate hashes provided
hex_sha512: parsehash() -- known outputs ... SKIP: no samples present
hex_sha512: test known config strings ... SKIP: hash has no settings
hex_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
hex_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
hex_sha512: test known foreign hashes ... ok
hex_sha512: test non-string hashes are rejected ... ok
hex_sha512: fuzz testing -- random passwords and options ... ok
hex_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
hex_sha512: .disable() / .enable() methods ... SKIP: not applicable
hex_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
hex_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
hex_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
hex_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
hex_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
hex_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
hex_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
hex_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
hex_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
hex_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
hex_sha512: test no password size limits enforced (if truncate_size=None) ... ok
hex_sha512: validate 'truncate_error' setting & related attributes ... ok
hex_sha512: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
htdigest: validate required attributes ... ok
htdigest: test basic config-string workflow ... ok
htdigest: test basic using() workflow ... ok
htdigest: test basic hash-string workflow. ... ok
htdigest: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
htdigest: test hashes can be unicode or bytes ... ok
htdigest: test multi-backend support ... SKIP: handler only has one backend
htdigest: validate optional salt attributes ... SKIP: handler doesn't have salt
htdigest: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
htdigest: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
htdigest: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
htdigest: test hash() honors salt_chars ... SKIP: handler doesn't have salt
htdigest: test non-string salt values ... SKIP: handler doesn't have salt
htdigest: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
htdigest: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
htdigest: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
htdigest: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
htdigest: test password case sensitivity ... ok
htdigest: test non-string passwords are rejected ... ok
htdigest: test MAX_PASSWORD_SIZE is enforced ... ok
htdigest: test forbidden characters not allowed in password ... SKIP: none listed
htdigest: test known hashes ... ok
htdigest: parsehash() ... SKIP: parsehash() not implemented
htdigest: test known alternate hashes ... SKIP: no alternate hashes provided
htdigest: parsehash() -- known outputs ... SKIP: parsehash() not implemented
htdigest: test known config strings ... SKIP: hash has no settings
htdigest: test known unidentifiably-mangled strings ... ok
htdigest: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
htdigest: test known foreign hashes ... ok
htdigest: test non-string hashes are rejected ... ok
htdigest: fuzz testing -- random passwords and options ... ok
htdigest: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
htdigest: test_80_user (passlib.tests.test_handlers.htdigest_test) ... SKIP: test case doesn't support 'realm' keyword
htdigest: test user case sensitivity ... ok
htdigest: test user used as salt ... ok
htdigest: .disable() / .enable() methods ... SKIP: not applicable
htdigest: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
htdigest: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
htdigest: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
htdigest: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
htdigest: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
htdigest: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
htdigest: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
htdigest: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
htdigest: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
htdigest: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
htdigest: test no password size limits enforced (if truncate_size=None) ... ok
htdigest: validate 'truncate_error' setting & related attributes ... ok
htdigest: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
ldap_md5_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
ldap_md5_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
ldap_md5_crypt (os_crypt backend): validate required attributes ... ok
ldap_md5_crypt (os_crypt backend): test basic config-string workflow ... ok
ldap_md5_crypt (os_crypt backend): test basic using() workflow ... ok
ldap_md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok
ldap_md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok
ldap_md5_crypt (os_crypt backend): test multi-backend support ... ok
ldap_md5_crypt (os_crypt backend): validate optional salt attributes ... ok
ldap_md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok
ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok
ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok
ldap_md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok
ldap_md5_crypt (os_crypt backend): test non-string salt values ... ok
ldap_md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_md5_crypt (os_crypt backend): test password case sensitivity ... ok
ldap_md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok
ldap_md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
ldap_md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok
ldap_md5_crypt (os_crypt backend): test known hashes ... ok
ldap_md5_crypt (os_crypt backend): parsehash() ... SKIP: parsehash() not implemented
ldap_md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
ldap_md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented
ldap_md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided
ldap_md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
ldap_md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok
ldap_md5_crypt (os_crypt backend): test known foreign hashes ... ok
ldap_md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok
ldap_md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok
ldap_md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_md5_crypt (os_crypt backend): test with faulty crypt() ... ok
ldap_md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok
ldap_md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers
ldap_md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable
ldap_md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok
ldap_md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok
ldap_md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok
ldap_md5: validate required attributes ... ok
ldap_md5: test basic config-string workflow ... ok
ldap_md5: test basic using() workflow ... ok
ldap_md5: test basic hash-string workflow. ... ok
ldap_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_md5: test hashes can be unicode or bytes ... ok
ldap_md5: test multi-backend support ... SKIP: handler only has one backend
ldap_md5: validate optional salt attributes ... SKIP: handler doesn't have salt
ldap_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
ldap_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
ldap_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
ldap_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt
ldap_md5: test non-string salt values ... SKIP: handler doesn't have salt
ldap_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_md5: test password case sensitivity ... ok
ldap_md5: test non-string passwords are rejected ... ok
ldap_md5: test MAX_PASSWORD_SIZE is enforced ... ok
ldap_md5: test forbidden characters not allowed in password ... SKIP: none listed
ldap_md5: test known hashes ... ok
ldap_md5: parsehash() ... ok
ldap_md5: test known alternate hashes ... SKIP: no alternate hashes provided
ldap_md5: parsehash() -- known outputs ... SKIP: no samples present
ldap_md5: test known config strings ... SKIP: hash has no settings
ldap_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
ldap_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
ldap_md5: test known foreign hashes ... ok
ldap_md5: test non-string hashes are rejected ... ok
ldap_md5: fuzz testing -- random passwords and options ... ok
ldap_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_md5: .disable() / .enable() methods ... SKIP: not applicable
ldap_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_md5: test no password size limits enforced (if truncate_size=None) ... ok
ldap_md5: validate 'truncate_error' setting & related attributes ... ok
ldap_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
ldap_plaintext: validate required attributes ... ok
ldap_plaintext: test basic config-string workflow ... ok
ldap_plaintext: test basic using() workflow ... ok
ldap_plaintext: test basic hash-string workflow. ... ok
ldap_plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_plaintext: test hashes can be unicode or bytes ... ok
ldap_plaintext: test multi-backend support ... SKIP: handler only has one backend
ldap_plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt
ldap_plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
ldap_plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
ldap_plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
ldap_plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt
ldap_plaintext: test non-string salt values ... SKIP: handler doesn't have salt
ldap_plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_plaintext: test password case sensitivity ... ok
ldap_plaintext: test non-string passwords are rejected ... ok
ldap_plaintext: test MAX_PASSWORD_SIZE is enforced ... ok
ldap_plaintext: test forbidden characters not allowed in password ... SKIP: none listed
ldap_plaintext: test known hashes ... ok
ldap_plaintext: parsehash() ... SKIP: parsehash() not implemented
ldap_plaintext: test known alternate hashes ... SKIP: no alternate hashes provided
ldap_plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented
ldap_plaintext: test known config strings ... SKIP: hash has no settings
ldap_plaintext: test known unidentifiably-mangled strings ... ok
ldap_plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
ldap_plaintext: test known foreign hashes ... ok
ldap_plaintext: test non-string hashes are rejected ... ok
ldap_plaintext: fuzz testing -- random passwords and options ... ok
ldap_plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_plaintext: .disable() / .enable() methods ... SKIP: not applicable
ldap_plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_plaintext: test no password size limits enforced (if truncate_size=None) ... ok
ldap_plaintext: validate 'truncate_error' setting & related attributes ... ok
ldap_plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
ldap_salted_md5: validate required attributes ... ok
ldap_salted_md5: test basic config-string workflow ... ok
ldap_salted_md5: test basic using() workflow ... ok
ldap_salted_md5: test basic hash-string workflow. ... ok
ldap_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_salted_md5: test hashes can be unicode or bytes ... ok
ldap_salted_md5: test multi-backend support ... SKIP: handler only has one backend
ldap_salted_md5: validate optional salt attributes ... ok
ldap_salted_md5: test hash() / genconfig() creates new salt each time ... ok
ldap_salted_md5: test hash() / genconfig() honors min_salt_size ... ok
ldap_salted_md5: test hash() / genconfig() honors max_salt_size ... ok
ldap_salted_md5: test hash() honors salt_chars ... ok
ldap_salted_md5: test non-string salt values ... ok
ldap_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_md5: test password case sensitivity ... ok
ldap_salted_md5: test non-string passwords are rejected ... ok
ldap_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok
ldap_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed
ldap_salted_md5: test known hashes ... ok
ldap_salted_md5: parsehash() ... ok
ldap_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided
ldap_salted_md5: parsehash() -- known outputs ... SKIP: no samples present
ldap_salted_md5: test known config strings ... SKIP: no config strings provided
ldap_salted_md5: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
ldap_salted_md5: test known identifiable-but-malformed strings ... ok
ldap_salted_md5: test known foreign hashes ... ok
ldap_salted_md5: test non-string hashes are rejected ... ok
ldap_salted_md5: fuzz testing -- random passwords and options ... ok
ldap_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_salted_md5: .disable() / .enable() methods ... SKIP: not applicable
ldap_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok
ldap_salted_md5: validate 'truncate_error' setting & related attributes ... ok
ldap_salted_md5: Handler.using() -- default_salt_size ... ok
ldap_salted_sha1: validate required attributes ... ok
ldap_salted_sha1: test basic config-string workflow ... ok
ldap_salted_sha1: test basic using() workflow ... ok
ldap_salted_sha1: test basic hash-string workflow. ... ok
ldap_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_salted_sha1: test hashes can be unicode or bytes ... ok
ldap_salted_sha1: test multi-backend support ... SKIP: handler only has one backend
ldap_salted_sha1: validate optional salt attributes ... ok
ldap_salted_sha1: test hash() / genconfig() creates new salt each time ... ok
ldap_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok
ldap_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok
ldap_salted_sha1: test hash() honors salt_chars ... ok
ldap_salted_sha1: test non-string salt values ... ok
ldap_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_sha1: test password case sensitivity ... ok
ldap_salted_sha1: test non-string passwords are rejected ... ok
ldap_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
ldap_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed
ldap_salted_sha1: test known hashes ... ok
ldap_salted_sha1: parsehash() ... ok
ldap_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
ldap_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present
ldap_salted_sha1: test known config strings ... SKIP: no config strings provided
ldap_salted_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
ldap_salted_sha1: test known identifiable-but-malformed strings ... ok
ldap_salted_sha1: test known foreign hashes ... ok
ldap_salted_sha1: test non-string hashes are rejected ... ok
ldap_salted_sha1: fuzz testing -- random passwords and options ... ok
ldap_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable
ldap_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok
ldap_salted_sha1: validate 'truncate_error' setting & related attributes ... ok
ldap_salted_sha1: Handler.using() -- default_salt_size ... ok
ldap_salted_sha256: validate required attributes ... ok
ldap_salted_sha256: test basic config-string workflow ... ok
ldap_salted_sha256: test basic using() workflow ... ok
ldap_salted_sha256: test basic hash-string workflow. ... ok
ldap_salted_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_salted_sha256: test hashes can be unicode or bytes ... ok
ldap_salted_sha256: test multi-backend support ... SKIP: handler only has one backend
ldap_salted_sha256: validate optional salt attributes ... ok
ldap_salted_sha256: test hash() / genconfig() creates new salt each time ... ok
ldap_salted_sha256: test hash() / genconfig() honors min_salt_size ... ok
ldap_salted_sha256: test hash() / genconfig() honors max_salt_size ... ok
ldap_salted_sha256: test hash() honors salt_chars ... ok
ldap_salted_sha256: test non-string salt values ... ok
ldap_salted_sha256: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_sha256: test password case sensitivity ... ok
ldap_salted_sha256: test non-string passwords are rejected ... ok
ldap_salted_sha256: test MAX_PASSWORD_SIZE is enforced ... ok
ldap_salted_sha256: test forbidden characters not allowed in password ... SKIP: none listed
ldap_salted_sha256: test known hashes ... ok
ldap_salted_sha256: parsehash() ... ok
ldap_salted_sha256: test known alternate hashes ... SKIP: no alternate hashes provided
ldap_salted_sha256: parsehash() -- known outputs ... SKIP: no samples present
ldap_salted_sha256: test known config strings ... SKIP: no config strings provided
ldap_salted_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
ldap_salted_sha256: test known identifiable-but-malformed strings ... ok
ldap_salted_sha256: test known foreign hashes ... ok
ldap_salted_sha256: test non-string hashes are rejected ... ok
ldap_salted_sha256: fuzz testing -- random passwords and options ... ok
ldap_salted_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_salted_sha256: .disable() / .enable() methods ... SKIP: not applicable
ldap_salted_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_salted_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_salted_sha256: test no password size limits enforced (if truncate_size=None) ... ok
ldap_salted_sha256: validate 'truncate_error' setting & related attributes ... ok
ldap_salted_sha256: Handler.using() -- default_salt_size ... ok
ldap_salted_sha512: validate required attributes ... ok
ldap_salted_sha512: test basic config-string workflow ... ok
ldap_salted_sha512: test basic using() workflow ... ok
ldap_salted_sha512: test basic hash-string workflow. ... ok
ldap_salted_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_salted_sha512: test hashes can be unicode or bytes ... ok
ldap_salted_sha512: test multi-backend support ... SKIP: handler only has one backend
ldap_salted_sha512: validate optional salt attributes ... ok
ldap_salted_sha512: test hash() / genconfig() creates new salt each time ... ok
ldap_salted_sha512: test hash() / genconfig() honors min_salt_size ... ok
ldap_salted_sha512: test hash() / genconfig() honors max_salt_size ... ok
ldap_salted_sha512: test hash() honors salt_chars ... ok
ldap_salted_sha512: test non-string salt values ... ok
ldap_salted_sha512: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_sha512: test password case sensitivity ... ok
ldap_salted_sha512: test non-string passwords are rejected ... ok
ldap_salted_sha512: test MAX_PASSWORD_SIZE is enforced ... ok
ldap_salted_sha512: test forbidden characters not allowed in password ... SKIP: none listed
ldap_salted_sha512: test known hashes ... ok
ldap_salted_sha512: parsehash() ... ok
ldap_salted_sha512: test known alternate hashes ... SKIP: no alternate hashes provided
ldap_salted_sha512: parsehash() -- known outputs ... SKIP: no samples present
ldap_salted_sha512: test known config strings ... SKIP: no config strings provided
ldap_salted_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
ldap_salted_sha512: test known identifiable-but-malformed strings ... ok
ldap_salted_sha512: test known foreign hashes ... ok
ldap_salted_sha512: test non-string hashes are rejected ... ok
ldap_salted_sha512: fuzz testing -- random passwords and options ... ok
ldap_salted_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_salted_sha512: .disable() / .enable() methods ... SKIP: not applicable
ldap_salted_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_salted_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_salted_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_salted_sha512: test no password size limits enforced (if truncate_size=None) ... ok
ldap_salted_sha512: validate 'truncate_error' setting & related attributes ... ok
ldap_salted_sha512: Handler.using() -- default_salt_size ... ok
ldap_sha1_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test_77_fuzz_input (passlib.tests.test_handlers.ldap_sha1_crypt_os_crypt_test) ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: not applicable to wrappers
ldap_sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
ldap_sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
ldap_sha1: validate required attributes ... ok
ldap_sha1: test basic config-string workflow ... ok
ldap_sha1: test basic using() workflow ... ok
ldap_sha1: test basic hash-string workflow. ... ok
ldap_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
ldap_sha1: test hashes can be unicode or bytes ... ok
ldap_sha1: test multi-backend support ... SKIP: handler only has one backend
ldap_sha1: validate optional salt attributes ... SKIP: handler doesn't have salt
ldap_sha1: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
ldap_sha1: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
ldap_sha1: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
ldap_sha1: test hash() honors salt_chars ... SKIP: handler doesn't have salt
ldap_sha1: test non-string salt values ... SKIP: handler doesn't have salt
ldap_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
ldap_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
ldap_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
ldap_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
ldap_sha1: test password case sensitivity ... ok
ldap_sha1: test non-string passwords are rejected ... ok
ldap_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
ldap_sha1: test forbidden characters not allowed in password ... SKIP: none listed
ldap_sha1: test known hashes ... ok
ldap_sha1: parsehash() ... ok
ldap_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
ldap_sha1: parsehash() -- known outputs ... SKIP: no samples present
ldap_sha1: test known config strings ... SKIP: hash has no settings
ldap_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
ldap_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
ldap_sha1: test known foreign hashes ... ok
ldap_sha1: test non-string hashes are rejected ... ok
ldap_sha1: fuzz testing -- random passwords and options ... ok
ldap_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
ldap_sha1: .disable() / .enable() methods ... SKIP: not applicable
ldap_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
ldap_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
ldap_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
ldap_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
ldap_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
ldap_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
ldap_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
ldap_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
ldap_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
ldap_sha1: test no password size limits enforced (if truncate_size=None) ... ok
ldap_sha1: validate 'truncate_error' setting & related attributes ... ok
ldap_sha1: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
lmhash: validate required attributes ... ok
lmhash: test basic config-string workflow ... ok
lmhash: test basic using() workflow ... ok
lmhash: test basic hash-string workflow. ... ok
lmhash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
lmhash: test hashes can be unicode or bytes ... ok
lmhash: test multi-backend support ... SKIP: handler only has one backend
lmhash: validate optional salt attributes ... SKIP: handler doesn't have salt
lmhash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
lmhash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
lmhash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
lmhash: test hash() honors salt_chars ... SKIP: handler doesn't have salt
lmhash: test non-string salt values ... SKIP: handler doesn't have salt
lmhash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
lmhash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
lmhash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
lmhash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
lmhash: test password case sensitivity ... ok
lmhash: test non-string passwords are rejected ... ok
lmhash: test MAX_PASSWORD_SIZE is enforced ... ok
lmhash: test forbidden characters not allowed in password ... SKIP: none listed
lmhash: test known hashes ... ok
lmhash: parsehash() ... ok
lmhash: test known alternate hashes ... SKIP: no alternate hashes provided
lmhash: parsehash() -- known outputs ... SKIP: no samples present
lmhash: test known config strings ... SKIP: no config strings provided
lmhash: test known unidentifiably-mangled strings ... ok
lmhash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
lmhash: test known foreign hashes ... ok
lmhash: test non-string hashes are rejected ... ok
lmhash: fuzz testing -- random passwords and options ... ok
lmhash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
lmhash: test lmhash.raw() method ... ok
lmhash: .disable() / .enable() methods ... SKIP: not applicable
lmhash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
lmhash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
lmhash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
lmhash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
lmhash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
lmhash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
lmhash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
lmhash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
lmhash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
lmhash: test password size limits raise truncate_error (if appropriate) ... ok
lmhash: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
lmhash: validate 'truncate_error' setting & related attributes ... ok
lmhash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
md5_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested
md5_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested
md5_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
md5_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
md5_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
md5_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
md5_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
md5_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
md5_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
md5_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
md5_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
md5_crypt (os_crypt backend): validate required attributes ... ok
md5_crypt (os_crypt backend): test basic config-string workflow ... ok
md5_crypt (os_crypt backend): test basic using() workflow ... ok
md5_crypt (os_crypt backend): test basic hash-string workflow. ... ok
md5_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
md5_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok
md5_crypt (os_crypt backend): test multi-backend support ... ok
md5_crypt (os_crypt backend): validate optional salt attributes ... ok
md5_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok
md5_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok
md5_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok
md5_crypt (os_crypt backend): test hash() honors salt_chars ... ok
md5_crypt (os_crypt backend): test non-string salt values ... ok
md5_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
md5_crypt (os_crypt backend): test password case sensitivity ... ok
md5_crypt (os_crypt backend): test non-string passwords are rejected ... ok
md5_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
md5_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok
md5_crypt (os_crypt backend): test known hashes ... ok
md5_crypt (os_crypt backend): parsehash() ... ok
md5_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
md5_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present
md5_crypt (os_crypt backend): test known config strings ... SKIP: no config strings provided
md5_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
md5_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok
md5_crypt (os_crypt backend): test known foreign hashes ... ok
md5_crypt (os_crypt backend): test non-string hashes are rejected ... ok
md5_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok
md5_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
md5_crypt (os_crypt backend): test with faulty crypt() ... ok
md5_crypt (os_crypt backend): test per-call crypt() fallback ... ok
md5_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok
md5_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable
md5_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
md5_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
md5_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
md5_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok
md5_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok
md5_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok
msdcc2: validate required attributes ... ok
msdcc2: test basic config-string workflow ... ok
msdcc2: test basic using() workflow ... ok
msdcc2: test basic hash-string workflow. ... ok
msdcc2: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
msdcc2: test hashes can be unicode or bytes ... ok
msdcc2: test multi-backend support ... SKIP: handler only has one backend
msdcc2: validate optional salt attributes ... SKIP: handler doesn't have salt
msdcc2: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
msdcc2: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
msdcc2: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
msdcc2: test hash() honors salt_chars ... SKIP: handler doesn't have salt
msdcc2: test non-string salt values ... SKIP: handler doesn't have salt
msdcc2: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
msdcc2: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
msdcc2: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
msdcc2: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
msdcc2: test password case sensitivity ... ok
msdcc2: test non-string passwords are rejected ... ok
msdcc2: test MAX_PASSWORD_SIZE is enforced ... ok
msdcc2: test forbidden characters not allowed in password ... SKIP: none listed
msdcc2: test known hashes ... ok
msdcc2: parsehash() ... ok
msdcc2: test known alternate hashes ... SKIP: no alternate hashes provided
msdcc2: parsehash() -- known outputs ... SKIP: no samples present
msdcc2: test known config strings ... SKIP: hash has no settings
msdcc2: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
msdcc2: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
msdcc2: test known foreign hashes ... ok
msdcc2: test non-string hashes are rejected ... ok
msdcc2: fuzz testing -- random passwords and options ... ok
msdcc2: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
msdcc2: test user context keyword ... ok
msdcc2: test user case sensitivity ... ok
msdcc2: test user used as salt ... ok
msdcc2: .disable() / .enable() methods ... SKIP: not applicable
msdcc2: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
msdcc2: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
msdcc2: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
msdcc2: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
msdcc2: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
msdcc2: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
msdcc2: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
msdcc2: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
msdcc2: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
msdcc2: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
msdcc2: test no password size limits enforced (if truncate_size=None) ... ok
msdcc2: validate 'truncate_error' setting & related attributes ... ok
msdcc2: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
msdcc: validate required attributes ... ok
msdcc: test basic config-string workflow ... ok
msdcc: test basic using() workflow ... ok
msdcc: test basic hash-string workflow. ... ok
msdcc: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
msdcc: test hashes can be unicode or bytes ... ok
msdcc: test multi-backend support ... SKIP: handler only has one backend
msdcc: validate optional salt attributes ... SKIP: handler doesn't have salt
msdcc: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
msdcc: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
msdcc: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
msdcc: test hash() honors salt_chars ... SKIP: handler doesn't have salt
msdcc: test non-string salt values ... SKIP: handler doesn't have salt
msdcc: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
msdcc: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
msdcc: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
msdcc: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
msdcc: test password case sensitivity ... ok
msdcc: test non-string passwords are rejected ... ok
msdcc: test MAX_PASSWORD_SIZE is enforced ... ok
msdcc: test forbidden characters not allowed in password ... SKIP: none listed
msdcc: test known hashes ... ok
msdcc: parsehash() ... ok
msdcc: test known alternate hashes ... ok
msdcc: parsehash() -- known outputs ... SKIP: no samples present
msdcc: test known config strings ... SKIP: hash has no settings
msdcc: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
msdcc: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
msdcc: test known foreign hashes ... ok
msdcc: test non-string hashes are rejected ... ok
msdcc: fuzz testing -- random passwords and options ... ok
msdcc: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
msdcc: test user context keyword ... ok
msdcc: test user case sensitivity ... ok
msdcc: test user used as salt ... ok
msdcc: .disable() / .enable() methods ... SKIP: not applicable
msdcc: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
msdcc: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
msdcc: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
msdcc: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
msdcc: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
msdcc: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
msdcc: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
msdcc: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
msdcc: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
msdcc: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
msdcc: test no password size limits enforced (if truncate_size=None) ... ok
msdcc: validate 'truncate_error' setting & related attributes ... ok
msdcc: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
mssql2000: validate required attributes ... ok
mssql2000: test basic config-string workflow ... ok
mssql2000: test basic using() workflow ... ok
mssql2000: test basic hash-string workflow. ... ok
mssql2000: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
mssql2000: test hashes can be unicode or bytes ... ok
mssql2000: test multi-backend support ... SKIP: handler only has one backend
mssql2000: validate optional salt attributes ... ok
mssql2000: test hash() / genconfig() creates new salt each time ... ok
mssql2000: test hash() / genconfig() honors min_salt_size ... ok
mssql2000: test hash() / genconfig() honors max_salt_size ... ok
mssql2000: test hash() honors salt_chars ... ok
mssql2000: test non-string salt values ... ok
mssql2000: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
mssql2000: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
mssql2000: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
mssql2000: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
mssql2000: test password case sensitivity ... ok
mssql2000: test non-string passwords are rejected ... ok
mssql2000: test MAX_PASSWORD_SIZE is enforced ... ok
mssql2000: test forbidden characters not allowed in password ... SKIP: none listed
mssql2000: test known hashes ... ok
mssql2000: parsehash() ... ok
mssql2000: test known alternate hashes ... ok
mssql2000: parsehash() -- known outputs ... SKIP: no samples present
mssql2000: test known config strings ... SKIP: no config strings provided
mssql2000: test known unidentifiably-mangled strings ... ok
mssql2000: test known identifiable-but-malformed strings ... ok
mssql2000: test known foreign hashes ... ok
mssql2000: test non-string hashes are rejected ... ok
mssql2000: fuzz testing -- random passwords and options ... ok
mssql2000: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
mssql2000: .disable() / .enable() methods ... SKIP: not applicable
mssql2000: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
mssql2000: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
mssql2000: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
mssql2000: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
mssql2000: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
mssql2000: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
mssql2000: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
mssql2000: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
mssql2000: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
mssql2000: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
mssql2000: test no password size limits enforced (if truncate_size=None) ... ok
mssql2000: validate 'truncate_error' setting & related attributes ... ok
mssql2000: Handler.using() -- default_salt_size ... ok
mssql2005: validate required attributes ... ok
mssql2005: test basic config-string workflow ... ok
mssql2005: test basic using() workflow ... ok
mssql2005: test basic hash-string workflow. ... ok
mssql2005: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
mssql2005: test hashes can be unicode or bytes ... ok
mssql2005: test multi-backend support ... SKIP: handler only has one backend
mssql2005: validate optional salt attributes ... ok
mssql2005: test hash() / genconfig() creates new salt each time ... ok
mssql2005: test hash() / genconfig() honors min_salt_size ... ok
mssql2005: test hash() / genconfig() honors max_salt_size ... ok
mssql2005: test hash() honors salt_chars ... ok
mssql2005: test non-string salt values ... ok
mssql2005: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
mssql2005: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
mssql2005: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
mssql2005: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
mssql2005: test password case sensitivity ... ok
mssql2005: test non-string passwords are rejected ... ok
mssql2005: test MAX_PASSWORD_SIZE is enforced ... ok
mssql2005: test forbidden characters not allowed in password ... SKIP: none listed
mssql2005: test known hashes ... ok
mssql2005: parsehash() ... ok
mssql2005: test known alternate hashes ... ok
mssql2005: parsehash() -- known outputs ... SKIP: no samples present
mssql2005: test known config strings ... SKIP: no config strings provided
mssql2005: test known unidentifiably-mangled strings ... ok
mssql2005: test known identifiable-but-malformed strings ... ok
mssql2005: test known foreign hashes ... ok
mssql2005: test non-string hashes are rejected ... ok
mssql2005: fuzz testing -- random passwords and options ... ok
mssql2005: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
mssql2005: .disable() / .enable() methods ... SKIP: not applicable
mssql2005: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
mssql2005: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
mssql2005: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
mssql2005: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
mssql2005: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
mssql2005: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
mssql2005: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
mssql2005: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
mssql2005: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
mssql2005: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
mssql2005: test no password size limits enforced (if truncate_size=None) ... ok
mssql2005: validate 'truncate_error' setting & related attributes ... ok
mssql2005: Handler.using() -- default_salt_size ... ok
mysql323: validate required attributes ... ok
mysql323: test basic config-string workflow ... ok
mysql323: test basic using() workflow ... ok
mysql323: test basic hash-string workflow. ... ok
mysql323: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
mysql323: test hashes can be unicode or bytes ... ok
mysql323: test multi-backend support ... SKIP: handler only has one backend
mysql323: validate optional salt attributes ... SKIP: handler doesn't have salt
mysql323: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
mysql323: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
mysql323: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
mysql323: test hash() honors salt_chars ... SKIP: handler doesn't have salt
mysql323: test non-string salt values ... SKIP: handler doesn't have salt
mysql323: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
mysql323: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
mysql323: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
mysql323: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
mysql323: test password case sensitivity ... ok
mysql323: test non-string passwords are rejected ... ok
mysql323: test MAX_PASSWORD_SIZE is enforced ... ok
mysql323: test forbidden characters not allowed in password ... SKIP: none listed
mysql323: test known hashes ... ok
mysql323: parsehash() ... ok
mysql323: test known alternate hashes ... SKIP: no alternate hashes provided
mysql323: parsehash() -- known outputs ... SKIP: no samples present
mysql323: test known config strings ... SKIP: hash has no settings
mysql323: test known unidentifiably-mangled strings ... ok
mysql323: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
mysql323: test known foreign hashes ... ok
mysql323: test non-string hashes are rejected ... ok
mysql323: fuzz testing -- random passwords and options ... ok
mysql323: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
mysql323: check whitespace is ignored per spec ... ok
mysql323: .disable() / .enable() methods ... SKIP: not applicable
mysql323: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
mysql323: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
mysql323: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
mysql323: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
mysql323: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
mysql323: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
mysql323: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
mysql323: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
mysql323: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
mysql323: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
mysql323: test no password size limits enforced (if truncate_size=None) ... ok
mysql323: validate 'truncate_error' setting & related attributes ... ok
mysql323: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
mysql41: validate required attributes ... ok
mysql41: test basic config-string workflow ... ok
mysql41: test basic using() workflow ... ok
mysql41: test basic hash-string workflow. ... ok
mysql41: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
mysql41: test hashes can be unicode or bytes ... ok
mysql41: test multi-backend support ... SKIP: handler only has one backend
mysql41: validate optional salt attributes ... SKIP: handler doesn't have salt
mysql41: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
mysql41: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
mysql41: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
mysql41: test hash() honors salt_chars ... SKIP: handler doesn't have salt
mysql41: test non-string salt values ... SKIP: handler doesn't have salt
mysql41: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
mysql41: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
mysql41: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
mysql41: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
mysql41: test password case sensitivity ... ok
mysql41: test non-string passwords are rejected ... ok
mysql41: test MAX_PASSWORD_SIZE is enforced ... ok
mysql41: test forbidden characters not allowed in password ... SKIP: none listed
mysql41: test known hashes ... ok
mysql41: parsehash() ... ok
mysql41: test known alternate hashes ... SKIP: no alternate hashes provided
mysql41: parsehash() -- known outputs ... SKIP: no samples present
mysql41: test known config strings ... SKIP: hash has no settings
mysql41: test known unidentifiably-mangled strings ... ok
mysql41: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
mysql41: test known foreign hashes ... ok
mysql41: test non-string hashes are rejected ... ok
mysql41: fuzz testing -- random passwords and options ... ok
mysql41: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
mysql41: .disable() / .enable() methods ... SKIP: not applicable
mysql41: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
mysql41: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
mysql41: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
mysql41: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
mysql41: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
mysql41: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
mysql41: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
mysql41: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
mysql41: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
mysql41: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
mysql41: test no password size limits enforced (if truncate_size=None) ... ok
mysql41: validate 'truncate_error' setting & related attributes ... ok
mysql41: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
nthash: validate required attributes ... ok
nthash: test basic config-string workflow ... ok
nthash: test basic using() workflow ... ok
nthash: test basic hash-string workflow. ... ok
nthash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
nthash: test hashes can be unicode or bytes ... ok
nthash: test multi-backend support ... SKIP: handler only has one backend
nthash: validate optional salt attributes ... SKIP: handler doesn't have salt
nthash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
nthash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
nthash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
nthash: test hash() honors salt_chars ... SKIP: handler doesn't have salt
nthash: test non-string salt values ... SKIP: handler doesn't have salt
nthash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
nthash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
nthash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
nthash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
nthash: test password case sensitivity ... ok
nthash: test non-string passwords are rejected ... ok
nthash: test MAX_PASSWORD_SIZE is enforced ... ok
nthash: test forbidden characters not allowed in password ... SKIP: none listed
nthash: test known hashes ... ok
nthash: parsehash() ... ok
nthash: test known alternate hashes ... SKIP: no alternate hashes provided
nthash: parsehash() -- known outputs ... SKIP: no samples present
nthash: test known config strings ... SKIP: hash has no settings
nthash: test known unidentifiably-mangled strings ... ok
nthash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
nthash: test known foreign hashes ... ok
nthash: test non-string hashes are rejected ... ok
nthash: fuzz testing -- random passwords and options ... ok
nthash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
nthash: .disable() / .enable() methods ... SKIP: not applicable
nthash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
nthash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
nthash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
nthash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
nthash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
nthash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
nthash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
nthash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
nthash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
nthash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
nthash: test no password size limits enforced (if truncate_size=None) ... ok
nthash: validate 'truncate_error' setting & related attributes ... ok
nthash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
oracle10: validate required attributes ... ok
oracle10: test basic config-string workflow ... ok
oracle10: test basic using() workflow ... ok
oracle10: test basic hash-string workflow. ... ok
oracle10: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
oracle10: test hashes can be unicode or bytes ... ok
oracle10: test multi-backend support ... SKIP: handler only has one backend
oracle10: validate optional salt attributes ... SKIP: handler doesn't have salt
oracle10: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
oracle10: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
oracle10: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
oracle10: test hash() honors salt_chars ... SKIP: handler doesn't have salt
oracle10: test non-string salt values ... SKIP: handler doesn't have salt
oracle10: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
oracle10: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
oracle10: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
oracle10: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
oracle10: test password case sensitivity ... ok
oracle10: test non-string passwords are rejected ... ok
oracle10: test MAX_PASSWORD_SIZE is enforced ... ok
oracle10: test forbidden characters not allowed in password ... SKIP: none listed
oracle10: test known hashes ... ok
oracle10: parsehash() ... ok
oracle10: test known alternate hashes ... SKIP: no alternate hashes provided
oracle10: parsehash() -- known outputs ... SKIP: no samples present
oracle10: test known config strings ... SKIP: hash has no settings
oracle10: test known unidentifiably-mangled strings ... ok
oracle10: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
oracle10: test known foreign hashes ... ok
oracle10: test non-string hashes are rejected ... ok
oracle10: fuzz testing -- random passwords and options ... ok
oracle10: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
oracle10: test user context keyword ... ok
oracle10: test user case sensitivity ... ok
oracle10: test user used as salt ... ok
oracle10: .disable() / .enable() methods ... SKIP: not applicable
oracle10: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
oracle10: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
oracle10: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
oracle10: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
oracle10: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
oracle10: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
oracle10: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
oracle10: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
oracle10: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
oracle10: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
oracle10: test no password size limits enforced (if truncate_size=None) ... ok
oracle10: validate 'truncate_error' setting & related attributes ... ok
oracle10: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
oracle11: validate required attributes ... ok
oracle11: test basic config-string workflow ... ok
oracle11: test basic using() workflow ... ok
oracle11: test basic hash-string workflow. ... ok
oracle11: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
oracle11: test hashes can be unicode or bytes ... ok
oracle11: test multi-backend support ... SKIP: handler only has one backend
oracle11: validate optional salt attributes ... ok
oracle11: test hash() / genconfig() creates new salt each time ... ok
oracle11: test hash() / genconfig() honors min_salt_size ... ok
oracle11: test hash() / genconfig() honors max_salt_size ... ok
oracle11: test hash() honors salt_chars ... ok
oracle11: test non-string salt values ... ok
oracle11: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
oracle11: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
oracle11: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
oracle11: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
oracle11: test password case sensitivity ... ok
oracle11: test non-string passwords are rejected ... ok
oracle11: test MAX_PASSWORD_SIZE is enforced ... ok
oracle11: test forbidden characters not allowed in password ... SKIP: none listed
oracle11: test known hashes ... ok
oracle11: parsehash() ... ok
oracle11: test known alternate hashes ... SKIP: no alternate hashes provided
oracle11: parsehash() -- known outputs ... SKIP: no samples present
oracle11: test known config strings ... SKIP: no config strings provided
oracle11: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
oracle11: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
oracle11: test known foreign hashes ... ok
oracle11: test non-string hashes are rejected ... ok
oracle11: fuzz testing -- random passwords and options ... ok
oracle11: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
oracle11: .disable() / .enable() methods ... SKIP: not applicable
oracle11: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
oracle11: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
oracle11: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
oracle11: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
oracle11: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
oracle11: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
oracle11: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
oracle11: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
oracle11: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
oracle11: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
oracle11: test no password size limits enforced (if truncate_size=None) ... ok
oracle11: validate 'truncate_error' setting & related attributes ... ok
oracle11: Handler.using() -- default_salt_size ... ok
phpass: validate required attributes ... ok
phpass: test basic config-string workflow ... ok
phpass: test basic using() workflow ... ok
phpass: test basic hash-string workflow. ... ok
phpass: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
phpass: test hashes can be unicode or bytes ... ok
phpass: test multi-backend support ... SKIP: handler only has one backend
phpass: validate optional salt attributes ... ok
phpass: test hash() / genconfig() creates new salt each time ... ok
phpass: test hash() / genconfig() honors min_salt_size ... ok
phpass: test hash() / genconfig() honors max_salt_size ... ok
phpass: test hash() honors salt_chars ... ok
phpass: test non-string salt values ... ok
phpass: validate optional rounds attributes ... ok
phpass: test hash() / genconfig() honors min_rounds ... ok
phpass: test hash() / genconfig() honors max_rounds ... ok
phpass: validate HasManyIdents configuration ... ok
phpass: test password case sensitivity ... ok
phpass: test non-string passwords are rejected ... ok
phpass: test MAX_PASSWORD_SIZE is enforced ... ok
phpass: test forbidden characters not allowed in password ... SKIP: none listed
phpass: test known hashes ... ok
phpass: parsehash() ... ok
phpass: test known alternate hashes ... SKIP: no alternate hashes provided
phpass: parsehash() -- known outputs ... SKIP: no samples present
phpass: test known config strings ... SKIP: no config strings provided
phpass: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
phpass: test known identifiable-but-malformed strings ... ok
phpass: test known foreign hashes ... ok
phpass: test non-string hashes are rejected ... ok
phpass: fuzz testing -- random passwords and options ... ok
phpass: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
phpass: .disable() / .enable() methods ... SKIP: not applicable
phpass: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok
phpass: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
phpass: HasRounds.using() -- desired_rounds + needs_update() ... ok
phpass: HasRounds.using() -- sanity check test harness ... ok
phpass: HasRounds.using() -- default_rounds ... ok
phpass: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
phpass: HasRounds.using() -- rounds ... ok
phpass: HasRounds.using() -- vary_rounds generation ... ok
phpass: HasRounds.using() -- vary_rounds parsing ... ok
phpass: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
phpass: test no password size limits enforced (if truncate_size=None) ... ok
phpass: validate 'truncate_error' setting & related attributes ... ok
phpass: Handler.using() -- default_salt_size ... ok
plaintext: validate required attributes ... ok
plaintext: test basic config-string workflow ... ok
plaintext: test basic using() workflow ... ok
plaintext: test basic hash-string workflow. ... ok
plaintext: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
plaintext: test hashes can be unicode or bytes ... ok
plaintext: test multi-backend support ... SKIP: handler only has one backend
plaintext: validate optional salt attributes ... SKIP: handler doesn't have salt
plaintext: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
plaintext: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
plaintext: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
plaintext: test hash() honors salt_chars ... SKIP: handler doesn't have salt
plaintext: test non-string salt values ... SKIP: handler doesn't have salt
plaintext: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
plaintext: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
plaintext: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
plaintext: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
plaintext: test password case sensitivity ... ok
plaintext: test non-string passwords are rejected ... ok
plaintext: test MAX_PASSWORD_SIZE is enforced ... ok
plaintext: test forbidden characters not allowed in password ... SKIP: none listed
plaintext: test known hashes ... ok
plaintext: parsehash() ... SKIP: parsehash() not implemented
plaintext: test known alternate hashes ... SKIP: no alternate hashes provided
plaintext: parsehash() -- known outputs ... SKIP: parsehash() not implemented
plaintext: test known config strings ... SKIP: hash has no settings
plaintext: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
plaintext: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
plaintext: test known foreign hashes ... SKIP: not applicable
plaintext: test non-string hashes are rejected ... ok
plaintext: fuzz testing -- random passwords and options ... ok
plaintext: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
plaintext: .disable() / .enable() methods ... SKIP: not applicable
plaintext: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
plaintext: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
plaintext: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
plaintext: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
plaintext: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
plaintext: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
plaintext: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
plaintext: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
plaintext: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
plaintext: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
plaintext: test no password size limits enforced (if truncate_size=None) ... ok
plaintext: validate 'truncate_error' setting & related attributes ... ok
plaintext: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
postgres_md5: validate required attributes ... ok
postgres_md5: test basic config-string workflow ... ok
postgres_md5: test basic using() workflow ... ok
postgres_md5: test basic hash-string workflow. ... ok
postgres_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
postgres_md5: test hashes can be unicode or bytes ... ok
postgres_md5: test multi-backend support ... SKIP: handler only has one backend
postgres_md5: validate optional salt attributes ... SKIP: handler doesn't have salt
postgres_md5: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
postgres_md5: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
postgres_md5: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
postgres_md5: test hash() honors salt_chars ... SKIP: handler doesn't have salt
postgres_md5: test non-string salt values ... SKIP: handler doesn't have salt
postgres_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
postgres_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
postgres_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
postgres_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
postgres_md5: test password case sensitivity ... ok
postgres_md5: test non-string passwords are rejected ... ok
postgres_md5: test MAX_PASSWORD_SIZE is enforced ... ok
postgres_md5: test forbidden characters not allowed in password ... SKIP: none listed
postgres_md5: test known hashes ... ok
postgres_md5: parsehash() ... ok
postgres_md5: test known alternate hashes ... SKIP: no alternate hashes provided
postgres_md5: parsehash() -- known outputs ... SKIP: no samples present
postgres_md5: test known config strings ... SKIP: hash has no settings
postgres_md5: test known unidentifiably-mangled strings ... ok
postgres_md5: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
postgres_md5: test known foreign hashes ... ok
postgres_md5: test non-string hashes are rejected ... ok
postgres_md5: fuzz testing -- random passwords and options ... ok
postgres_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
postgres_md5: test user context keyword ... ok
postgres_md5: test user case sensitivity ... ok
postgres_md5: test user used as salt ... ok
postgres_md5: .disable() / .enable() methods ... SKIP: not applicable
postgres_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
postgres_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
postgres_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
postgres_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
postgres_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
postgres_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
postgres_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
postgres_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
postgres_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
postgres_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
postgres_md5: test no password size limits enforced (if truncate_size=None) ... ok
postgres_md5: validate 'truncate_error' setting & related attributes ... ok
postgres_md5: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
sha1_crypt (builtin backend): validate required attributes ... ok
sha1_crypt (builtin backend): test basic config-string workflow ... ok
sha1_crypt (builtin backend): test basic using() workflow ... ok
sha1_crypt (builtin backend): test basic hash-string workflow. ... ok
sha1_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
sha1_crypt (builtin backend): test hashes can be unicode or bytes ... ok
sha1_crypt (builtin backend): test multi-backend support ... ok
sha1_crypt (builtin backend): validate optional salt attributes ... ok
sha1_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok
sha1_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok
sha1_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok
sha1_crypt (builtin backend): test hash() honors salt_chars ... ok
sha1_crypt (builtin backend): test non-string salt values ... ok
sha1_crypt (builtin backend): validate optional rounds attributes ... ok
sha1_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok
sha1_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok
sha1_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
sha1_crypt (builtin backend): test password case sensitivity ... ok
sha1_crypt (builtin backend): test non-string passwords are rejected ... ok
sha1_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok
sha1_crypt (builtin backend): test forbidden characters not allowed in password ... ok
sha1_crypt (builtin backend): test known hashes ... ok
sha1_crypt (builtin backend): parsehash() ... ok
sha1_crypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided
sha1_crypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present
sha1_crypt (builtin backend): test known config strings ... SKIP: no config strings provided
sha1_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
sha1_crypt (builtin backend): test known identifiable-but-malformed strings ... ok
sha1_crypt (builtin backend): test known foreign hashes ... ok
sha1_crypt (builtin backend): test non-string hashes are rejected ... ok
sha1_crypt (builtin backend): fuzz testing -- random passwords and options ... ok
sha1_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
sha1_crypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable
sha1_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
sha1_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
sha1_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
sha1_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok
sha1_crypt (builtin backend): HasRounds.using() -- default_rounds ... ok
sha1_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
sha1_crypt (builtin backend): HasRounds.using() -- rounds ... ok
sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok
sha1_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok
sha1_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
sha1_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok
sha1_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok
sha1_crypt (builtin backend): Handler.using() -- default_salt_size ... ok
sha1_crypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = False)
sha1_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
sha1_crypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
sha256_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
sha256_crypt (os_crypt backend): validate required attributes ... ok
sha256_crypt (os_crypt backend): test basic config-string workflow ... ok
sha256_crypt (os_crypt backend): test basic using() workflow ... ok
sha256_crypt (os_crypt backend): test basic hash-string workflow. ... ok
sha256_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
sha256_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok
sha256_crypt (os_crypt backend): test multi-backend support ... ok
sha256_crypt (os_crypt backend): validate optional salt attributes ... ok
sha256_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok
sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok
sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok
sha256_crypt (os_crypt backend): test hash() honors salt_chars ... ok
sha256_crypt (os_crypt backend): test non-string salt values ... ok
sha256_crypt (os_crypt backend): validate optional rounds attributes ... ok
sha256_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok
sha256_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok
sha256_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
sha256_crypt (os_crypt backend): test password case sensitivity ... ok
sha256_crypt (os_crypt backend): test non-string passwords are rejected ... ok
sha256_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
sha256_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok
sha256_crypt (os_crypt backend): test known hashes ... ok
sha256_crypt (os_crypt backend): parsehash() ... ok
sha256_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
sha256_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present
sha256_crypt (os_crypt backend): test known config strings ... ok
sha256_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
sha256_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok
sha256_crypt (os_crypt backend): test known foreign hashes ... ok
sha256_crypt (os_crypt backend): test non-string hashes are rejected ... ok
sha256_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok
sha256_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
sha256_crypt (os_crypt backend): test with faulty crypt() ... ok
sha256_crypt (os_crypt backend): test per-call crypt() fallback ... ok
sha256_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok
sha256_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable
sha256_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
sha256_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
sha256_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
sha256_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok
sha256_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok
sha256_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
sha256_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok
sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok
sha256_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok
sha256_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
sha256_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok
sha256_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok
sha256_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok
sha512_crypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test known hashes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): parsehash() ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test known config strings ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
sha512_crypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
sha512_crypt (os_crypt backend): validate required attributes ... ok
sha512_crypt (os_crypt backend): test basic config-string workflow ... ok
sha512_crypt (os_crypt backend): test basic using() workflow ... ok
sha512_crypt (os_crypt backend): test basic hash-string workflow. ... ok
sha512_crypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
sha512_crypt (os_crypt backend): test hashes can be unicode or bytes ... ok
sha512_crypt (os_crypt backend): test multi-backend support ... ok
sha512_crypt (os_crypt backend): validate optional salt attributes ... ok
sha512_crypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... ok
sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... ok
sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... ok
sha512_crypt (os_crypt backend): test hash() honors salt_chars ... ok
sha512_crypt (os_crypt backend): test non-string salt values ... ok
sha512_crypt (os_crypt backend): validate optional rounds attributes ... ok
sha512_crypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... ok
sha512_crypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... ok
sha512_crypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
sha512_crypt (os_crypt backend): test password case sensitivity ... ok
sha512_crypt (os_crypt backend): test non-string passwords are rejected ... ok
sha512_crypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
sha512_crypt (os_crypt backend): test forbidden characters not allowed in password ... ok
sha512_crypt (os_crypt backend): test known hashes ... ok
sha512_crypt (os_crypt backend): parsehash() ... ok
sha512_crypt (os_crypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
sha512_crypt (os_crypt backend): parsehash() -- known outputs ... SKIP: no samples present
sha512_crypt (os_crypt backend): test known config strings ... ok
sha512_crypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
sha512_crypt (os_crypt backend): test known identifiable-but-malformed strings ... ok
sha512_crypt (os_crypt backend): test known foreign hashes ... ok
sha512_crypt (os_crypt backend): test non-string hashes are rejected ... ok
sha512_crypt (os_crypt backend): fuzz testing -- random passwords and options ... ok
sha512_crypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
sha512_crypt (os_crypt backend): test with faulty crypt() ... ok
sha512_crypt (os_crypt backend): test per-call crypt() fallback ... ok
sha512_crypt (os_crypt backend): test platform-specific crypt() support detection ... ok
sha512_crypt (os_crypt backend): .disable() / .enable() methods ... SKIP: not applicable
sha512_crypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
sha512_crypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
sha512_crypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
sha512_crypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... ok
sha512_crypt (os_crypt backend): HasRounds.using() -- default_rounds ... ok
sha512_crypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
sha512_crypt (os_crypt backend): HasRounds.using() -- rounds ... ok
sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... ok
sha512_crypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... ok
sha512_crypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
sha512_crypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... ok
sha512_crypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... ok
sha512_crypt (os_crypt backend): Handler.using() -- default_salt_size ... ok
sun_md5_crypt: validate required attributes ... ok
sun_md5_crypt: test basic config-string workflow ... ok
sun_md5_crypt: test basic using() workflow ... ok
sun_md5_crypt: test basic hash-string workflow. ... ok
sun_md5_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
sun_md5_crypt: test hashes can be unicode or bytes ... ok
sun_md5_crypt: test multi-backend support ... SKIP: handler only has one backend
sun_md5_crypt: validate optional salt attributes ... ok
sun_md5_crypt: test hash() / genconfig() creates new salt each time ... ok
sun_md5_crypt: test hash() / genconfig() honors min_salt_size ... ok
sun_md5_crypt: test hash() / genconfig() honors max_salt_size ... ok
sun_md5_crypt: test hash() honors salt_chars ... ok
sun_md5_crypt: test non-string salt values ... ok
sun_md5_crypt: validate optional rounds attributes ... ok
sun_md5_crypt: test hash() / genconfig() honors min_rounds ... ok
sun_md5_crypt: test hash() / genconfig() honors max_rounds ... ok
sun_md5_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
sun_md5_crypt: test password case sensitivity ... ok
sun_md5_crypt: test non-string passwords are rejected ... ok
sun_md5_crypt: test MAX_PASSWORD_SIZE is enforced ... ok
sun_md5_crypt: test forbidden characters not allowed in password ... SKIP: none listed
sun_md5_crypt: test known hashes ... ok
sun_md5_crypt: parsehash() ... ok
sun_md5_crypt: test known alternate hashes ... SKIP: no alternate hashes provided
sun_md5_crypt: parsehash() -- known outputs ... SKIP: no samples present
sun_md5_crypt: test known config strings ... ok
sun_md5_crypt: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
sun_md5_crypt: test known identifiable-but-malformed strings ... ok
sun_md5_crypt: test known foreign hashes ... ok
sun_md5_crypt: test non-string hashes are rejected ... ok
sun_md5_crypt: fuzz testing -- random passwords and options ... ok
sun_md5_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
sun_md5_crypt: .disable() / .enable() methods ... SKIP: not applicable
sun_md5_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
sun_md5_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
sun_md5_crypt: HasRounds.using() -- desired_rounds + needs_update() ... ok
sun_md5_crypt: HasRounds.using() -- sanity check test harness ... ok
sun_md5_crypt: HasRounds.using() -- default_rounds ... ok
sun_md5_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
sun_md5_crypt: HasRounds.using() -- rounds ... ok
sun_md5_crypt: HasRounds.using() -- vary_rounds generation ... ok
sun_md5_crypt: HasRounds.using() -- vary_rounds parsing ... ok
sun_md5_crypt: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
sun_md5_crypt: test no password size limits enforced (if truncate_size=None) ... ok
sun_md5_crypt: validate 'truncate_error' setting & related attributes ... ok
sun_md5_crypt: Handler.using() -- default_salt_size ... ok
unix_disabled: validate required attributes ... ok
unix_disabled: test basic config-string workflow ... ok
unix_disabled: test basic using() workflow ... ok
unix_disabled: test basic hash-string workflow. ... ok
unix_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
unix_disabled: test hashes can be unicode or bytes ... ok
unix_disabled: test multi-backend support ... SKIP: handler only has one backend
unix_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt
unix_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
unix_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
unix_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
unix_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt
unix_disabled: test non-string salt values ... SKIP: handler doesn't have salt
unix_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
unix_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
unix_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
unix_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
unix_disabled: test password case sensitivity ... ok
unix_disabled: test non-string passwords are rejected ... ok
unix_disabled: test MAX_PASSWORD_SIZE is enforced ... ok
unix_disabled: test forbidden characters not allowed in password ... SKIP: none listed
unix_disabled: test known hashes ... ok
unix_disabled: parsehash() ... SKIP: parsehash() not implemented
unix_disabled: test known alternate hashes ... SKIP: no alternate hashes provided
unix_disabled: parsehash() -- known outputs ... SKIP: parsehash() not implemented
unix_disabled: test known config strings ... SKIP: no config strings provided
unix_disabled: test known unidentifiably-mangled strings ... ok
unix_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
unix_disabled: test known foreign hashes ... ok
unix_disabled: test_76_hash_border (passlib.tests.test_handlers.unix_disabled_test) ... ok
unix_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable
unix_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
unix_disabled: test marker option & special behavior ... ok
unix_disabled: .disable() / .enable() methods ... ok
unix_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
unix_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
unix_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
unix_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
unix_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
unix_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
unix_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
unix_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
unix_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
unix_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
unix_disabled: test no password size limits enforced (if truncate_size=None) ... ok
unix_disabled: validate 'truncate_error' setting & related attributes ... ok
unix_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
unix_fallback: validate required attributes ... ok
unix_fallback: test basic config-string workflow ... ok
unix_fallback: test basic using() workflow ... ok
unix_fallback: test basic hash-string workflow. ... ok
unix_fallback: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
unix_fallback: test hashes can be unicode or bytes ... ok
unix_fallback: test multi-backend support ... SKIP: handler only has one backend
unix_fallback: validate optional salt attributes ... SKIP: handler doesn't have salt
unix_fallback: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
unix_fallback: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
unix_fallback: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
unix_fallback: test hash() honors salt_chars ... SKIP: handler doesn't have salt
unix_fallback: test non-string salt values ... SKIP: handler doesn't have salt
unix_fallback: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
unix_fallback: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
unix_fallback: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
unix_fallback: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
unix_fallback: test password case sensitivity ... ok
unix_fallback: test non-string passwords are rejected ... ok
unix_fallback: test MAX_PASSWORD_SIZE is enforced ... ok
unix_fallback: test forbidden characters not allowed in password ... SKIP: none listed
unix_fallback: test known hashes ... ok
unix_fallback: parsehash() ... ok
unix_fallback: test known alternate hashes ... SKIP: no alternate hashes provided
unix_fallback: parsehash() -- known outputs ... SKIP: no samples present
unix_fallback: test known config strings ... SKIP: hash has no settings
unix_fallback: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
unix_fallback: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
unix_fallback: test known foreign hashes ... SKIP: not applicable
unix_fallback: test non-string hashes are rejected ... ok
unix_fallback: fuzz testing -- random passwords and options ... SKIP: not applicable
unix_fallback: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
unix_fallback: test enable_wildcard flag ... ok
unix_fallback: test preserves existing disabled hash ... ok
unix_fallback: .disable() / .enable() methods ... ok
unix_fallback: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
unix_fallback: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
unix_fallback: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
unix_fallback: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
unix_fallback: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
unix_fallback: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
unix_fallback: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
unix_fallback: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
unix_fallback: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
unix_fallback: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
unix_fallback: test no password size limits enforced (if truncate_size=None) ... ok
unix_fallback: validate 'truncate_error' setting & related attributes ... ok
unix_fallback: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
argon2 (argon2_cffi backend): validate required attributes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test basic config-string workflow ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test basic using() workflow ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test multi-backend support ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): validate optional salt attributes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test non-string salt values ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): validate optional rounds attributes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test password case sensitivity ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test known hashes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): parsehash() ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test known alternate hashes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test known config strings ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test known foreign hashes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2_cffi_test) ... SKIP: only default backend is being tested
argon2 (argon2_cffi backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
argon2 (argon2pure backend): validate required attributes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test basic config-string workflow ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test basic using() workflow ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_03_legacy_hash_workflow (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test multi-backend support ... SKIP: only default backend is being tested
argon2 (argon2pure backend): validate optional salt attributes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test non-string salt values ... SKIP: only default backend is being tested
argon2 (argon2pure backend): validate optional rounds attributes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
argon2 (argon2pure backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test password case sensitivity ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test known hashes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): parsehash() ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test known alternate hashes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test known config strings ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test known foreign hashes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
argon2 (argon2pure backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
argon2 (argon2pure backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
argon2 (argon2pure backend): verify we're using right base64 encoding for argon2 ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_data_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
argon2 (argon2pure backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_keyid_and_data_parameters (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_keyid_parameter (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_needs_update_w_type (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_needs_update_w_version (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_type_kwd (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): test_type_using (passlib.tests.test_handlers_argon2.argon2_argon2pure_test) ... SKIP: only default backend is being tested
argon2 (argon2pure backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt (bcrypt backend): validate required attributes ... ok
bcrypt (bcrypt backend): test basic config-string workflow ... ok
bcrypt (bcrypt backend): test basic using() workflow ... ok
bcrypt (bcrypt backend): test basic hash-string workflow. ... ok
bcrypt (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
bcrypt (bcrypt backend): test hashes can be unicode or bytes ... ok
bcrypt (bcrypt backend): test multi-backend support ... ok
bcrypt (bcrypt backend): validate optional salt attributes ... ok
bcrypt (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok
bcrypt (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok
bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok
bcrypt (bcrypt backend): test hash() honors salt_chars ... ok
bcrypt (bcrypt backend): test non-string salt values ... ok
bcrypt (bcrypt backend): validate optional rounds attributes ... ok
bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok
bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok
bcrypt (bcrypt backend): validate HasManyIdents configuration ... ok
bcrypt (bcrypt backend): test password case sensitivity ... ok
bcrypt (bcrypt backend): test non-string passwords are rejected ... ok
bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
bcrypt (bcrypt backend): test forbidden characters not allowed in password ... ok
bcrypt (bcrypt backend): test known hashes ... ok
bcrypt (bcrypt backend): parsehash() ... ok
bcrypt (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present
bcrypt (bcrypt backend): test known config strings ... ok
bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... ok
bcrypt (bcrypt backend): test known identifiable-but-malformed strings ... ok
bcrypt (bcrypt backend): test known foreign hashes ... ok
bcrypt (bcrypt backend): test non-string hashes are rejected ... ok
bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... ok
bcrypt (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
bcrypt (bcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: requires >= 'full' test mode
bcrypt (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable
bcrypt (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok
bcrypt (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
bcrypt (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
bcrypt (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok
bcrypt (bcrypt backend): HasRounds.using() -- default_rounds ... ok
bcrypt (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
bcrypt (bcrypt backend): HasRounds.using() -- rounds ... ok
bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok
bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok
bcrypt (bcrypt backend): needs_update corrects bcrypt padding ... ok
bcrypt (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... ok
bcrypt (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
bcrypt (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok
bcrypt (bcrypt backend): Handler.using() -- default_salt_size ... ok
bcrypt (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test known hashes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): parsehash() ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test known config strings ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt (builtin backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt (builtin backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt (builtin backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt (builtin backend): test known hashes ... SKIP: only default backend is being tested
bcrypt (builtin backend): parsehash() ... SKIP: only default backend is being tested
bcrypt (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt (builtin backend): test known config strings ... SKIP: only default backend is being tested
bcrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt (builtin backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested
bcrypt (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt (builtin backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested
bcrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test known hashes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): parsehash() ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test known config strings ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test platform-specific crypt() support detection ... SKIP: varied support on 'linux' platform (current host support = False)
bcrypt (os_crypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test passlib correctly handles bcrypt padding bits ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): needs_update corrects bcrypt padding ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (bcrypt backend): validate required attributes ... ok
bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... ok
bcrypt_sha256 (bcrypt backend): test basic using() workflow ... ok
bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... ok
bcrypt_sha256 (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
bcrypt_sha256 (bcrypt backend): test hashes can be unicode or bytes ... ok
bcrypt_sha256 (bcrypt backend): test multi-backend support ... ok
bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... ok
bcrypt_sha256 (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok
bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok
bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok
bcrypt_sha256 (bcrypt backend): test hash() honors salt_chars ... ok
bcrypt_sha256 (bcrypt backend): test non-string salt values ... ok
bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... ok
bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok
bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok
bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... SKIP: multiple idents not supported
bcrypt_sha256 (bcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... ok
bcrypt_sha256 (bcrypt backend): test password case sensitivity ... ok
bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... ok
bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
bcrypt_sha256 (bcrypt backend): test forbidden characters not allowed in password ... SKIP: none listed
bcrypt_sha256 (bcrypt backend): test known hashes ... ok
bcrypt_sha256 (bcrypt backend): parsehash() ... ok
bcrypt_sha256 (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
bcrypt_sha256 (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present
bcrypt_sha256 (bcrypt backend): test known config strings ... ok
bcrypt_sha256 (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
bcrypt_sha256 (bcrypt backend): test known identifiable-but-malformed strings ... ok
bcrypt_sha256 (bcrypt backend): test known foreign hashes ... ok
bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... ok
bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... ok
bcrypt_sha256 (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
bcrypt_sha256 (bcrypt backend): test digest calc v2 matches bcrypt() ... ok
bcrypt_sha256 (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable
bcrypt_sha256 (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: multiple idents not supported
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- default_rounds ... ok
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- rounds ... ok
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok
bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok
bcrypt_sha256 (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
bcrypt_sha256 (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... ok
bcrypt_sha256 (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok
bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... ok
bcrypt_sha256 (bcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcrypt_test) ... ok
bcrypt_sha256 (bcryptor backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test known hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): parsehash() ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test known config strings ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (bcryptor backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_bcryptor_test) ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test known hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): parsehash() ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test known config strings ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (builtin backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_builtin_test) ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test known hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): parsehash() ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test known config strings ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test with faulty crypt() ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test per-call crypt() fallback ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test platform-specific crypt() support detection ... SKIP: no data for 'linux' platform (current host support = False)
bcrypt_sha256 (os_crypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (os_crypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_os_crypt_test) ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): validate required attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test basic using() workflow ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test multi-backend support ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test non-string salt values ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test_30_HasOneIdent (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test password case sensitivity ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test known hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): parsehash() ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test known alternate hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test known config strings ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test known foreign hashes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test digest calc v2 matches bcrypt() ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
bcrypt_sha256 (pybcrypt backend): test_using_version (passlib.tests.test_handlers_bcrypt.bcrypt_sha256_pybcrypt_test) ... SKIP: only default backend is being tested
cisco_asa: validate required attributes ... ok
cisco_asa: test basic config-string workflow ... ok
cisco_asa: test basic using() workflow ... ok
cisco_asa: test basic hash-string workflow. ... ok
cisco_asa: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
cisco_asa: test hashes can be unicode or bytes ... ok
cisco_asa: test multi-backend support ... SKIP: handler only has one backend
cisco_asa: validate optional salt attributes ... SKIP: handler doesn't have salt
cisco_asa: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
cisco_asa: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
cisco_asa: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
cisco_asa: test hash() honors salt_chars ... SKIP: handler doesn't have salt
cisco_asa: test non-string salt values ... SKIP: handler doesn't have salt
cisco_asa: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
cisco_asa: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
cisco_asa: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
cisco_asa: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
cisco_asa: test password case sensitivity ... ok
cisco_asa: test non-string passwords are rejected ... ok
cisco_asa: test MAX_PASSWORD_SIZE is enforced ... ok
cisco_asa: test forbidden characters not allowed in password ... SKIP: none listed
cisco_asa: test known hashes ... ok
cisco_asa: parsehash() ... ok
cisco_asa: test known alternate hashes ... SKIP: no alternate hashes provided
cisco_asa: parsehash() -- known outputs ... SKIP: no samples present
cisco_asa: test known config strings ... SKIP: hash has no settings
cisco_asa: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
cisco_asa: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
cisco_asa: test known foreign hashes ... ok
cisco_asa: test non-string hashes are rejected ... ok
cisco_asa: fuzz testing -- random passwords and options ... ok
cisco_asa: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
cisco_asa: test user context keyword ... ok
cisco_asa: test user case sensitivity ... ok
cisco_asa: test user used as salt ... ok
cisco_asa: _calc_checksum() -- spoil oversize passwords during verify ... ok
cisco_asa: .disable() / .enable() methods ... SKIP: not applicable
cisco_asa: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
cisco_asa: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
cisco_asa: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
cisco_asa: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
cisco_asa: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
cisco_asa: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
cisco_asa: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
cisco_asa: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
cisco_asa: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
cisco_asa: test password size limits raise truncate_error (if appropriate) ... ok
cisco_asa: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
cisco_asa: validate 'truncate_error' setting & related attributes ... ok
cisco_asa: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
cisco_pix: validate required attributes ... ok
cisco_pix: test basic config-string workflow ... ok
cisco_pix: test basic using() workflow ... ok
cisco_pix: test basic hash-string workflow. ... ok
cisco_pix: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
cisco_pix: test hashes can be unicode or bytes ... ok
cisco_pix: test multi-backend support ... SKIP: handler only has one backend
cisco_pix: validate optional salt attributes ... SKIP: handler doesn't have salt
cisco_pix: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
cisco_pix: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
cisco_pix: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
cisco_pix: test hash() honors salt_chars ... SKIP: handler doesn't have salt
cisco_pix: test non-string salt values ... SKIP: handler doesn't have salt
cisco_pix: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
cisco_pix: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
cisco_pix: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
cisco_pix: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
cisco_pix: test password case sensitivity ... ok
cisco_pix: test non-string passwords are rejected ... ok
cisco_pix: test MAX_PASSWORD_SIZE is enforced ... ok
cisco_pix: test forbidden characters not allowed in password ... SKIP: none listed
cisco_pix: test known hashes ... ok
cisco_pix: parsehash() ... ok
cisco_pix: test known alternate hashes ... SKIP: no alternate hashes provided
cisco_pix: parsehash() -- known outputs ... SKIP: no samples present
cisco_pix: test known config strings ... SKIP: hash has no settings
cisco_pix: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
cisco_pix: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
cisco_pix: test known foreign hashes ... ok
cisco_pix: test non-string hashes are rejected ... ok
cisco_pix: fuzz testing -- random passwords and options ... ok
cisco_pix: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
cisco_pix: test user context keyword ... ok
cisco_pix: test user case sensitivity ... ok
cisco_pix: test user used as salt ... ok
cisco_pix: _calc_checksum() -- spoil oversize passwords during verify ... ok
cisco_pix: .disable() / .enable() methods ... SKIP: not applicable
cisco_pix: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
cisco_pix: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
cisco_pix: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
cisco_pix: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
cisco_pix: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
cisco_pix: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
cisco_pix: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
cisco_pix: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
cisco_pix: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
cisco_pix: test password size limits raise truncate_error (if appropriate) ... ok
cisco_pix: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
cisco_pix: validate 'truncate_error' setting & related attributes ... ok
cisco_pix: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
cisco_type7: validate required attributes ... ok
cisco_type7: test basic config-string workflow ... ok
cisco_type7: test basic using() workflow ... ok
cisco_type7: test basic hash-string workflow. ... ok
cisco_type7: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
cisco_type7: test hashes can be unicode or bytes ... ok
cisco_type7: test multi-backend support ... SKIP: handler only has one backend
cisco_type7: validate optional salt attributes ... SKIP: handler doesn't provide salt info
cisco_type7: test hash() / genconfig() creates new salt each time ... ok
cisco_type7: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't provide salt info
cisco_type7: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't provide salt info
cisco_type7: test hash() honors salt_chars ... SKIP: handler doesn't provide salt info
cisco_type7: test non-string salt values ... ok
cisco_type7: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
cisco_type7: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
cisco_type7: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
cisco_type7: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
cisco_type7: test password case sensitivity ... ok
cisco_type7: test non-string passwords are rejected ... ok
cisco_type7: test MAX_PASSWORD_SIZE is enforced ... ok
cisco_type7: test forbidden characters not allowed in password ... SKIP: none listed
cisco_type7: test known hashes ... ok
cisco_type7: parsehash() ... ok
cisco_type7: test known alternate hashes ... SKIP: no alternate hashes provided
cisco_type7: parsehash() -- known outputs ... SKIP: no samples present
cisco_type7: test known config strings ... SKIP: no config strings provided
cisco_type7: test known unidentifiably-mangled strings ... ok
cisco_type7: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
cisco_type7: test known foreign hashes ... ok
cisco_type7: test non-string hashes are rejected ... ok
cisco_type7: fuzz testing -- random passwords and options ... ok
cisco_type7: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
cisco_type7: test cisco_type7.decode() ... ok
cisco_type7: test salt value border cases ... ok
cisco_type7: .disable() / .enable() methods ... SKIP: not applicable
cisco_type7: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
cisco_type7: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
cisco_type7: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
cisco_type7: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
cisco_type7: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
cisco_type7: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
cisco_type7: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
cisco_type7: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
cisco_type7: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
cisco_type7: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
cisco_type7: test no password size limits enforced (if truncate_size=None) ... ok
cisco_type7: validate 'truncate_error' setting & related attributes ... ok
cisco_type7: Handler.using() -- default_salt_size ... SKIP: handler doesn't provide salt info
django_bcrypt_sha256 (bcrypt backend): validate required attributes ... ok
django_bcrypt_sha256 (bcrypt backend): test basic config-string workflow ... ok
django_bcrypt_sha256 (bcrypt backend): test basic using() workflow ... ok
django_bcrypt_sha256 (bcrypt backend): test basic hash-string workflow. ... ok
django_bcrypt_sha256 (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_bcrypt_sha256 (bcrypt backend): test hashes can be unicode or bytes ... ok
django_bcrypt_sha256 (bcrypt backend): test multi-backend support ... ok
django_bcrypt_sha256 (bcrypt backend): validate optional salt attributes ... ok
django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok
django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok
django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok
django_bcrypt_sha256 (bcrypt backend): test hash() honors salt_chars ... ok
django_bcrypt_sha256 (bcrypt backend): test non-string salt values ... ok
django_bcrypt_sha256 (bcrypt backend): validate optional rounds attributes ... ok
django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok
django_bcrypt_sha256 (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok
django_bcrypt_sha256 (bcrypt backend): validate HasManyIdents configuration ... ok
django_bcrypt_sha256 (bcrypt backend): test password case sensitivity ... ok
django_bcrypt_sha256 (bcrypt backend): test non-string passwords are rejected ... ok
django_bcrypt_sha256 (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
django_bcrypt_sha256 (bcrypt backend): test forbidden characters not allowed in password ... SKIP: none listed
django_bcrypt_sha256 (bcrypt backend): test known hashes ... ok
django_bcrypt_sha256 (bcrypt backend): parsehash() ... ok
django_bcrypt_sha256 (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
django_bcrypt_sha256 (bcrypt backend): parsehash() -- known outputs ... SKIP: no samples present
django_bcrypt_sha256 (bcrypt backend): test known config strings ... SKIP: no config strings provided
django_bcrypt_sha256 (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
django_bcrypt_sha256 (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
django_bcrypt_sha256 (bcrypt backend): test known foreign hashes ... ok
django_bcrypt_sha256 (bcrypt backend): test non-string hashes are rejected ... ok
django_bcrypt_sha256 (bcrypt backend): fuzz testing -- random passwords and options ... ok
django_bcrypt_sha256 (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_bcrypt_sha256 (bcrypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed
django_bcrypt_sha256 (bcrypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed
django_bcrypt_sha256 (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable
django_bcrypt_sha256 (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- default_rounds ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- rounds ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok
django_bcrypt_sha256 (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok
django_bcrypt_sha256 (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
django_bcrypt_sha256 (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... ok
django_bcrypt_sha256 (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok
django_bcrypt_sha256 (bcrypt backend): Handler.using() -- default_salt_size ... ok
django_bcrypt (bcrypt backend): validate required attributes ... ok
django_bcrypt (bcrypt backend): test basic config-string workflow ... ok
django_bcrypt (bcrypt backend): test basic using() workflow ... ok
django_bcrypt (bcrypt backend): test basic hash-string workflow. ... ok
django_bcrypt (bcrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_bcrypt (bcrypt backend): test hashes can be unicode or bytes ... ok
django_bcrypt (bcrypt backend): test multi-backend support ... ok
django_bcrypt (bcrypt backend): validate optional salt attributes ... ok
django_bcrypt (bcrypt backend): test hash() / genconfig() creates new salt each time ... ok
django_bcrypt (bcrypt backend): test hash() / genconfig() honors min_salt_size ... ok
django_bcrypt (bcrypt backend): test hash() / genconfig() honors max_salt_size ... ok
django_bcrypt (bcrypt backend): test hash() honors salt_chars ... ok
django_bcrypt (bcrypt backend): test non-string salt values ... ok
django_bcrypt (bcrypt backend): validate optional rounds attributes ... ok
django_bcrypt (bcrypt backend): test hash() / genconfig() honors min_rounds ... ok
django_bcrypt (bcrypt backend): test hash() / genconfig() honors max_rounds ... ok
django_bcrypt (bcrypt backend): validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
django_bcrypt (bcrypt backend): test password case sensitivity ... ok
django_bcrypt (bcrypt backend): test non-string passwords are rejected ... ok
django_bcrypt (bcrypt backend): test MAX_PASSWORD_SIZE is enforced ... ok
django_bcrypt (bcrypt backend): test forbidden characters not allowed in password ... ok
django_bcrypt (bcrypt backend): test known hashes ... ok
django_bcrypt (bcrypt backend): parsehash() ... SKIP: parsehash() not implemented
django_bcrypt (bcrypt backend): test known alternate hashes ... SKIP: no alternate hashes provided
django_bcrypt (bcrypt backend): parsehash() -- known outputs ... SKIP: parsehash() not implemented
django_bcrypt (bcrypt backend): test known config strings ... SKIP: no config strings provided
django_bcrypt (bcrypt backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
django_bcrypt (bcrypt backend): test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
django_bcrypt (bcrypt backend): test known foreign hashes ... ok
django_bcrypt (bcrypt backend): test non-string hashes are rejected ... ok
django_bcrypt (bcrypt backend): fuzz testing -- random passwords and options ... ok
django_bcrypt (bcrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_bcrypt (bcrypt backend): run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed
django_bcrypt (bcrypt backend): test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed
django_bcrypt (bcrypt backend): .disable() / .enable() methods ... SKIP: not applicable
django_bcrypt (bcrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
django_bcrypt (bcrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
django_bcrypt (bcrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
django_bcrypt (bcrypt backend): HasRounds.using() -- sanity check test harness ... ok
django_bcrypt (bcrypt backend): HasRounds.using() -- default_rounds ... ok
django_bcrypt (bcrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
django_bcrypt (bcrypt backend): HasRounds.using() -- rounds ... ok
django_bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds generation ... ok
django_bcrypt (bcrypt backend): HasRounds.using() -- vary_rounds parsing ... ok
django_bcrypt (bcrypt backend): test password size limits raise truncate_error (if appropriate) ... ok
django_bcrypt (bcrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
django_bcrypt (bcrypt backend): validate 'truncate_error' setting & related attributes ... ok
django_bcrypt (bcrypt backend): Handler.using() -- default_salt_size ... ok
django_des_crypt: validate required attributes ... ok
django_des_crypt: test basic config-string workflow ... ok
django_des_crypt: test basic using() workflow ... ok
django_des_crypt: test basic hash-string workflow. ... ok
django_des_crypt: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_des_crypt: test hashes can be unicode or bytes ... ok
django_des_crypt: test multi-backend support ... SKIP: handler only has one backend
django_des_crypt: validate optional salt attributes ... ok
django_des_crypt: test hash() / genconfig() creates new salt each time ... ok
django_des_crypt: test hash() / genconfig() honors min_salt_size ... ok
django_des_crypt: test hash() / genconfig() honors max_salt_size ... ok
django_des_crypt: test hash() honors salt_chars ... ok
django_des_crypt: test non-string salt values ... ok
django_des_crypt: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
django_des_crypt: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
django_des_crypt: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
django_des_crypt: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
django_des_crypt: test password case sensitivity ... ok
django_des_crypt: test non-string passwords are rejected ... ok
django_des_crypt: test MAX_PASSWORD_SIZE is enforced ... ok
django_des_crypt: test forbidden characters not allowed in password ... SKIP: none listed
django_des_crypt: test known hashes ... ok
django_des_crypt: parsehash() ... ok
django_des_crypt: test known alternate hashes ... ok
django_des_crypt: parsehash() -- known outputs ... SKIP: no samples present
django_des_crypt: test known config strings ... SKIP: no config strings provided
django_des_crypt: test known unidentifiably-mangled strings ... ok
django_des_crypt: test known identifiable-but-malformed strings ... ok
django_des_crypt: test known foreign hashes ... ok
django_des_crypt: test non-string hashes are rejected ... ok
django_des_crypt: fuzz testing -- random passwords and options ... ok
django_des_crypt: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_des_crypt: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed
django_des_crypt: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed
django_des_crypt: .disable() / .enable() methods ... SKIP: not applicable
django_des_crypt: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
django_des_crypt: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
django_des_crypt: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
django_des_crypt: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
django_des_crypt: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
django_des_crypt: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
django_des_crypt: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
django_des_crypt: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
django_des_crypt: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
django_des_crypt: test password size limits raise truncate_error (if appropriate) ... ok
django_des_crypt: test no password size limits enforced (if truncate_size=None) ... SKIP: truncate_size is set
django_des_crypt: validate 'truncate_error' setting & related attributes ... ok
django_des_crypt: Handler.using() -- default_salt_size ... ok
django_disabled: validate required attributes ... ok
django_disabled: test basic config-string workflow ... ok
django_disabled: test basic using() workflow ... ok
django_disabled: test basic hash-string workflow. ... ok
django_disabled: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_disabled: test hashes can be unicode or bytes ... ok
django_disabled: test multi-backend support ... SKIP: handler only has one backend
django_disabled: validate optional salt attributes ... SKIP: handler doesn't have salt
django_disabled: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
django_disabled: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
django_disabled: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
django_disabled: test hash() honors salt_chars ... SKIP: handler doesn't have salt
django_disabled: test non-string salt values ... SKIP: handler doesn't have salt
django_disabled: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
django_disabled: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
django_disabled: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
django_disabled: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
django_disabled: test password case sensitivity ... ok
django_disabled: test non-string passwords are rejected ... ok
django_disabled: test MAX_PASSWORD_SIZE is enforced ... ok
django_disabled: test forbidden characters not allowed in password ... SKIP: none listed
django_disabled: test known hashes ... ok
django_disabled: parsehash() ... ok
django_disabled: test known alternate hashes ... ok
django_disabled: parsehash() -- known outputs ... SKIP: no samples present
django_disabled: test known config strings ... SKIP: hash has no settings
django_disabled: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
django_disabled: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
django_disabled: test known foreign hashes ... ok
django_disabled: test non-string hashes are rejected ... ok
django_disabled: fuzz testing -- random passwords and options ... SKIP: not applicable
django_disabled: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_disabled: .disable() / .enable() methods ... ok
django_disabled: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
django_disabled: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
django_disabled: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
django_disabled: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
django_disabled: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
django_disabled: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
django_disabled: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
django_disabled: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
django_disabled: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
django_disabled: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
django_disabled: test no password size limits enforced (if truncate_size=None) ... ok
django_disabled: validate 'truncate_error' setting & related attributes ... ok
django_disabled: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
django_pbkdf2_sha1: validate required attributes ... ok
django_pbkdf2_sha1: test basic config-string workflow ... ok
django_pbkdf2_sha1: test basic using() workflow ... ok
django_pbkdf2_sha1: test basic hash-string workflow. ... ok
django_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_pbkdf2_sha1: test hashes can be unicode or bytes ... ok
django_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend
django_pbkdf2_sha1: validate optional salt attributes ... ok
django_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok
django_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok
django_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok
django_pbkdf2_sha1: test hash() honors salt_chars ... ok
django_pbkdf2_sha1: test non-string salt values ... ok
django_pbkdf2_sha1: validate optional rounds attributes ... ok
django_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok
django_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok
django_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
django_pbkdf2_sha1: test password case sensitivity ... ok
django_pbkdf2_sha1: test non-string passwords are rejected ... ok
django_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
django_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed
django_pbkdf2_sha1: test known hashes ... ok
django_pbkdf2_sha1: parsehash() ... ok
django_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
django_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present
django_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided
django_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
django_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
django_pbkdf2_sha1: test known foreign hashes ... ok
django_pbkdf2_sha1: test non-string hashes are rejected ... ok
django_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok
django_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_pbkdf2_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed
django_pbkdf2_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed
django_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable
django_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
django_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
django_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok
django_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok
django_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok
django_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
django_pbkdf2_sha1: HasRounds.using() -- rounds ... ok
django_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok
django_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok
django_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
django_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok
django_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok
django_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok
django_pbkdf2_sha256: validate required attributes ... ok
django_pbkdf2_sha256: test basic config-string workflow ... ok
django_pbkdf2_sha256: test basic using() workflow ... ok
django_pbkdf2_sha256: test basic hash-string workflow. ... ok
django_pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_pbkdf2_sha256: test hashes can be unicode or bytes ... ok
django_pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend
django_pbkdf2_sha256: validate optional salt attributes ... ok
django_pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok
django_pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok
django_pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok
django_pbkdf2_sha256: test hash() honors salt_chars ... ok
django_pbkdf2_sha256: test non-string salt values ... ok
django_pbkdf2_sha256: validate optional rounds attributes ... ok
django_pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok
django_pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok
django_pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
django_pbkdf2_sha256: test password case sensitivity ... ok
django_pbkdf2_sha256: test non-string passwords are rejected ... ok
django_pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok
django_pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed
django_pbkdf2_sha256: test known hashes ... ok
django_pbkdf2_sha256: parsehash() ... ok
django_pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided
django_pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present
django_pbkdf2_sha256: test known config strings ... SKIP: no config strings provided
django_pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
django_pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
django_pbkdf2_sha256: test known foreign hashes ... ok
django_pbkdf2_sha256: test non-string hashes are rejected ... ok
django_pbkdf2_sha256: fuzz testing -- random passwords and options ... ok
django_pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_pbkdf2_sha256: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed
django_pbkdf2_sha256: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed
django_pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable
django_pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
django_pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
django_pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok
django_pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok
django_pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok
django_pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
django_pbkdf2_sha256: HasRounds.using() -- rounds ... ok
django_pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok
django_pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok
django_pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
django_pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok
django_pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok
django_pbkdf2_sha256: Handler.using() -- default_salt_size ... ok
django_salted_md5: validate required attributes ... ok
django_salted_md5: test basic config-string workflow ... ok
django_salted_md5: test basic using() workflow ... ok
django_salted_md5: test basic hash-string workflow. ... ok
django_salted_md5: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_salted_md5: test hashes can be unicode or bytes ... ok
django_salted_md5: test multi-backend support ... SKIP: handler only has one backend
django_salted_md5: validate optional salt attributes ... ok
django_salted_md5: test hash() / genconfig() creates new salt each time ... ok
django_salted_md5: test hash() / genconfig() honors min_salt_size ... ok
django_salted_md5: test hash() / genconfig() honors max_salt_size ... ok
django_salted_md5: test hash() honors salt_chars ... ok
django_salted_md5: test non-string salt values ... ok
django_salted_md5: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
django_salted_md5: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
django_salted_md5: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
django_salted_md5: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
django_salted_md5: test password case sensitivity ... ok
django_salted_md5: test non-string passwords are rejected ... ok
django_salted_md5: test MAX_PASSWORD_SIZE is enforced ... ok
django_salted_md5: test forbidden characters not allowed in password ... SKIP: none listed
django_salted_md5: test known hashes ... ok
django_salted_md5: parsehash() ... ok
django_salted_md5: test known alternate hashes ... SKIP: no alternate hashes provided
django_salted_md5: parsehash() -- known outputs ... SKIP: no samples present
django_salted_md5: test known config strings ... SKIP: no config strings provided
django_salted_md5: test known unidentifiably-mangled strings ... ok
django_salted_md5: test known identifiable-but-malformed strings ... ok
django_salted_md5: test known foreign hashes ... ok
django_salted_md5: test non-string hashes are rejected ... ok
django_salted_md5: fuzz testing -- random passwords and options ... ok
django_salted_md5: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_salted_md5: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed
django_salted_md5: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed
django_salted_md5: .disable() / .enable() methods ... SKIP: not applicable
django_salted_md5: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
django_salted_md5: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
django_salted_md5: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
django_salted_md5: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
django_salted_md5: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
django_salted_md5: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
django_salted_md5: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
django_salted_md5: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
django_salted_md5: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
django_salted_md5: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
django_salted_md5: test no password size limits enforced (if truncate_size=None) ... ok
django_salted_md5: validate 'truncate_error' setting & related attributes ... ok
django_salted_md5: Handler.using() -- default_salt_size ... ok
django_salted_sha1: validate required attributes ... ok
django_salted_sha1: test basic config-string workflow ... ok
django_salted_sha1: test basic using() workflow ... ok
django_salted_sha1: test basic hash-string workflow. ... ok
django_salted_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
django_salted_sha1: test hashes can be unicode or bytes ... ok
django_salted_sha1: test multi-backend support ... SKIP: handler only has one backend
django_salted_sha1: validate optional salt attributes ... ok
django_salted_sha1: test hash() / genconfig() creates new salt each time ... ok
django_salted_sha1: test hash() / genconfig() honors min_salt_size ... ok
django_salted_sha1: test hash() / genconfig() honors max_salt_size ... ok
django_salted_sha1: test hash() honors salt_chars ... ok
django_salted_sha1: test non-string salt values ... ok
django_salted_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
django_salted_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
django_salted_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
django_salted_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
django_salted_sha1: test password case sensitivity ... ok
django_salted_sha1: test non-string passwords are rejected ... ok
django_salted_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
django_salted_sha1: test forbidden characters not allowed in password ... SKIP: none listed
django_salted_sha1: test known hashes ... ok
django_salted_sha1: parsehash() ... ok
django_salted_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
django_salted_sha1: parsehash() -- known outputs ... SKIP: no samples present
django_salted_sha1: test known config strings ... SKIP: no config strings provided
django_salted_sha1: test known unidentifiably-mangled strings ... ok
django_salted_sha1: test known identifiable-but-malformed strings ... ok
django_salted_sha1: test known foreign hashes ... ok
django_salted_sha1: test non-string hashes are rejected ... ok
django_salted_sha1: fuzz testing -- random passwords and options ... ok
django_salted_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
django_salted_sha1: run known correct hashes through Django's check_password() ... SKIP: Django >= 1.8 not installed
django_salted_sha1: test against output of Django's make_password() ... SKIP: Django >= 1.8 not installed
django_salted_sha1: .disable() / .enable() methods ... SKIP: not applicable
django_salted_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
django_salted_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
django_salted_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
django_salted_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
django_salted_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
django_salted_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
django_salted_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
django_salted_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
django_salted_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
django_salted_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
django_salted_sha1: test no password size limits enforced (if truncate_size=None) ... ok
django_salted_sha1: validate 'truncate_error' setting & related attributes ... ok
django_salted_sha1: Handler.using() -- default_salt_size ... ok
atlassian_pbkdf2_sha1: validate required attributes ... ok
atlassian_pbkdf2_sha1: test basic config-string workflow ... ok
atlassian_pbkdf2_sha1: test basic using() workflow ... ok
atlassian_pbkdf2_sha1: test basic hash-string workflow. ... ok
atlassian_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
atlassian_pbkdf2_sha1: test hashes can be unicode or bytes ... ok
atlassian_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend
atlassian_pbkdf2_sha1: validate optional salt attributes ... ok
atlassian_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok
atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok
atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok
atlassian_pbkdf2_sha1: test hash() honors salt_chars ... ok
atlassian_pbkdf2_sha1: test non-string salt values ... ok
atlassian_pbkdf2_sha1: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
atlassian_pbkdf2_sha1: test password case sensitivity ... ok
atlassian_pbkdf2_sha1: test non-string passwords are rejected ... ok
atlassian_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
atlassian_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed
atlassian_pbkdf2_sha1: test known hashes ... ok
atlassian_pbkdf2_sha1: parsehash() ... ok
atlassian_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
atlassian_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present
atlassian_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided
atlassian_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
atlassian_pbkdf2_sha1: test known identifiable-but-malformed strings ... ok
atlassian_pbkdf2_sha1: test known foreign hashes ... ok
atlassian_pbkdf2_sha1: test non-string hashes are rejected ... ok
atlassian_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok
atlassian_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
atlassian_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable
atlassian_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
atlassian_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
atlassian_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
atlassian_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok
atlassian_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok
atlassian_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok
cta_pbkdf2_sha1: validate required attributes ... ok
cta_pbkdf2_sha1: test basic config-string workflow ... ok
cta_pbkdf2_sha1: test basic using() workflow ... ok
cta_pbkdf2_sha1: test basic hash-string workflow. ... ok
cta_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
cta_pbkdf2_sha1: test hashes can be unicode or bytes ... ok
cta_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend
cta_pbkdf2_sha1: validate optional salt attributes ... ok
cta_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok
cta_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok
cta_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok
cta_pbkdf2_sha1: test hash() honors salt_chars ... ok
cta_pbkdf2_sha1: test non-string salt values ... ok
cta_pbkdf2_sha1: validate optional rounds attributes ... ok
cta_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok
cta_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok
cta_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
cta_pbkdf2_sha1: test password case sensitivity ... ok
cta_pbkdf2_sha1: test non-string passwords are rejected ... ok
cta_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
cta_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed
cta_pbkdf2_sha1: test known hashes ... ok
cta_pbkdf2_sha1: parsehash() ... ok
cta_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
cta_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present
cta_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided
cta_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
cta_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
cta_pbkdf2_sha1: test known foreign hashes ... ok
cta_pbkdf2_sha1: test non-string hashes are rejected ... ok
cta_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok
cta_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
cta_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable
cta_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
cta_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
cta_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok
cta_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok
cta_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok
cta_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
cta_pbkdf2_sha1: HasRounds.using() -- rounds ... ok
cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok
cta_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok
cta_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
cta_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok
cta_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok
cta_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok
dlitz_pbkdf2_sha1: validate required attributes ... ok
dlitz_pbkdf2_sha1: test basic config-string workflow ... ok
dlitz_pbkdf2_sha1: test basic using() workflow ... ok
dlitz_pbkdf2_sha1: test basic hash-string workflow. ... ok
dlitz_pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
dlitz_pbkdf2_sha1: test hashes can be unicode or bytes ... ok
dlitz_pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend
dlitz_pbkdf2_sha1: validate optional salt attributes ... ok
dlitz_pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok
dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok
dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok
dlitz_pbkdf2_sha1: test hash() honors salt_chars ... ok
dlitz_pbkdf2_sha1: test non-string salt values ... ok
dlitz_pbkdf2_sha1: validate optional rounds attributes ... ok
dlitz_pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok
dlitz_pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok
dlitz_pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
dlitz_pbkdf2_sha1: test password case sensitivity ... ok
dlitz_pbkdf2_sha1: test non-string passwords are rejected ... ok
dlitz_pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
dlitz_pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed
dlitz_pbkdf2_sha1: test known hashes ... ok
dlitz_pbkdf2_sha1: parsehash() ... ok
dlitz_pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
dlitz_pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present
dlitz_pbkdf2_sha1: test known config strings ... SKIP: no config strings provided
dlitz_pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
dlitz_pbkdf2_sha1: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
dlitz_pbkdf2_sha1: test known foreign hashes ... ok
dlitz_pbkdf2_sha1: test non-string hashes are rejected ... ok
dlitz_pbkdf2_sha1: fuzz testing -- random passwords and options ... ok
dlitz_pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
dlitz_pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable
dlitz_pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
dlitz_pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
dlitz_pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok
dlitz_pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok
dlitz_pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok
dlitz_pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
dlitz_pbkdf2_sha1: HasRounds.using() -- rounds ... ok
dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok
dlitz_pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok
dlitz_pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
dlitz_pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok
dlitz_pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok
dlitz_pbkdf2_sha1: Handler.using() -- default_salt_size ... ok
grub_pbkdf2_sha512: validate required attributes ... ok
grub_pbkdf2_sha512: test basic config-string workflow ... ok
grub_pbkdf2_sha512: test basic using() workflow ... ok
grub_pbkdf2_sha512: test basic hash-string workflow. ... ok
grub_pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
grub_pbkdf2_sha512: test hashes can be unicode or bytes ... ok
grub_pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend
grub_pbkdf2_sha512: validate optional salt attributes ... ok
grub_pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok
grub_pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok
grub_pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok
grub_pbkdf2_sha512: test hash() honors salt_chars ... ok
grub_pbkdf2_sha512: test non-string salt values ... ok
grub_pbkdf2_sha512: validate optional rounds attributes ... ok
grub_pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok
grub_pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok
grub_pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
grub_pbkdf2_sha512: test password case sensitivity ... ok
grub_pbkdf2_sha512: test non-string passwords are rejected ... ok
grub_pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok
grub_pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed
grub_pbkdf2_sha512: test known hashes ... ok
grub_pbkdf2_sha512: parsehash() ... ok
grub_pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided
grub_pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present
grub_pbkdf2_sha512: test known config strings ... SKIP: no config strings provided
grub_pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
grub_pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
grub_pbkdf2_sha512: test known foreign hashes ... ok
grub_pbkdf2_sha512: test non-string hashes are rejected ... ok
grub_pbkdf2_sha512: fuzz testing -- random passwords and options ... ok
grub_pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
grub_pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable
grub_pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
grub_pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
grub_pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok
grub_pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok
grub_pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok
grub_pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
grub_pbkdf2_sha512: HasRounds.using() -- rounds ... ok
grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok
grub_pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok
grub_pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
grub_pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok
grub_pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok
grub_pbkdf2_sha512: Handler.using() -- default_salt_size ... ok
test ldap pbkdf2 wrappers ... ok
pbkdf2_sha1: validate required attributes ... ok
pbkdf2_sha1: test basic config-string workflow ... ok
pbkdf2_sha1: test basic using() workflow ... ok
pbkdf2_sha1: test basic hash-string workflow. ... ok
pbkdf2_sha1: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
pbkdf2_sha1: test hashes can be unicode or bytes ... ok
pbkdf2_sha1: test multi-backend support ... SKIP: handler only has one backend
pbkdf2_sha1: validate optional salt attributes ... ok
pbkdf2_sha1: test hash() / genconfig() creates new salt each time ... ok
pbkdf2_sha1: test hash() / genconfig() honors min_salt_size ... ok
pbkdf2_sha1: test hash() / genconfig() honors max_salt_size ... ok
pbkdf2_sha1: test hash() honors salt_chars ... ok
pbkdf2_sha1: test non-string salt values ... ok
pbkdf2_sha1: validate optional rounds attributes ... ok
pbkdf2_sha1: test hash() / genconfig() honors min_rounds ... ok
pbkdf2_sha1: test hash() / genconfig() honors max_rounds ... ok
pbkdf2_sha1: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
pbkdf2_sha1: test password case sensitivity ... ok
pbkdf2_sha1: test non-string passwords are rejected ... ok
pbkdf2_sha1: test MAX_PASSWORD_SIZE is enforced ... ok
pbkdf2_sha1: test forbidden characters not allowed in password ... SKIP: none listed
pbkdf2_sha1: test known hashes ... ok
pbkdf2_sha1: parsehash() ... ok
pbkdf2_sha1: test known alternate hashes ... SKIP: no alternate hashes provided
pbkdf2_sha1: parsehash() -- known outputs ... SKIP: no samples present
pbkdf2_sha1: test known config strings ... SKIP: no config strings provided
pbkdf2_sha1: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
pbkdf2_sha1: test known identifiable-but-malformed strings ... ok
pbkdf2_sha1: test known foreign hashes ... ok
pbkdf2_sha1: test non-string hashes are rejected ... ok
pbkdf2_sha1: fuzz testing -- random passwords and options ... ok
pbkdf2_sha1: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
pbkdf2_sha1: .disable() / .enable() methods ... SKIP: not applicable
pbkdf2_sha1: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
pbkdf2_sha1: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
pbkdf2_sha1: HasRounds.using() -- desired_rounds + needs_update() ... ok
pbkdf2_sha1: HasRounds.using() -- sanity check test harness ... ok
pbkdf2_sha1: HasRounds.using() -- default_rounds ... ok
pbkdf2_sha1: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
pbkdf2_sha1: HasRounds.using() -- rounds ... ok
pbkdf2_sha1: HasRounds.using() -- vary_rounds generation ... ok
pbkdf2_sha1: HasRounds.using() -- vary_rounds parsing ... ok
pbkdf2_sha1: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
pbkdf2_sha1: test no password size limits enforced (if truncate_size=None) ... ok
pbkdf2_sha1: validate 'truncate_error' setting & related attributes ... ok
pbkdf2_sha1: Handler.using() -- default_salt_size ... ok
pbkdf2_sha256: validate required attributes ... ok
pbkdf2_sha256: test basic config-string workflow ... ok
pbkdf2_sha256: test basic using() workflow ... ok
pbkdf2_sha256: test basic hash-string workflow. ... ok
pbkdf2_sha256: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
pbkdf2_sha256: test hashes can be unicode or bytes ... ok
pbkdf2_sha256: test multi-backend support ... SKIP: handler only has one backend
pbkdf2_sha256: validate optional salt attributes ... ok
pbkdf2_sha256: test hash() / genconfig() creates new salt each time ... ok
pbkdf2_sha256: test hash() / genconfig() honors min_salt_size ... ok
pbkdf2_sha256: test hash() / genconfig() honors max_salt_size ... ok
pbkdf2_sha256: test hash() honors salt_chars ... ok
pbkdf2_sha256: test non-string salt values ... ok
pbkdf2_sha256: validate optional rounds attributes ... ok
pbkdf2_sha256: test hash() / genconfig() honors min_rounds ... ok
pbkdf2_sha256: test hash() / genconfig() honors max_rounds ... ok
pbkdf2_sha256: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
pbkdf2_sha256: test password case sensitivity ... ok
pbkdf2_sha256: test non-string passwords are rejected ... ok
pbkdf2_sha256: test MAX_PASSWORD_SIZE is enforced ... ok
pbkdf2_sha256: test forbidden characters not allowed in password ... SKIP: none listed
pbkdf2_sha256: test known hashes ... ok
pbkdf2_sha256: parsehash() ... ok
pbkdf2_sha256: test known alternate hashes ... SKIP: no alternate hashes provided
pbkdf2_sha256: parsehash() -- known outputs ... SKIP: no samples present
pbkdf2_sha256: test known config strings ... SKIP: no config strings provided
pbkdf2_sha256: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
pbkdf2_sha256: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
pbkdf2_sha256: test known foreign hashes ... ok
pbkdf2_sha256: test non-string hashes are rejected ... ok
pbkdf2_sha256: fuzz testing -- random passwords and options ... ok
pbkdf2_sha256: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
pbkdf2_sha256: .disable() / .enable() methods ... SKIP: not applicable
pbkdf2_sha256: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
pbkdf2_sha256: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
pbkdf2_sha256: HasRounds.using() -- desired_rounds + needs_update() ... ok
pbkdf2_sha256: HasRounds.using() -- sanity check test harness ... ok
pbkdf2_sha256: HasRounds.using() -- default_rounds ... ok
pbkdf2_sha256: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
pbkdf2_sha256: HasRounds.using() -- rounds ... ok
pbkdf2_sha256: HasRounds.using() -- vary_rounds generation ... ok
pbkdf2_sha256: HasRounds.using() -- vary_rounds parsing ... ok
pbkdf2_sha256: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
pbkdf2_sha256: test no password size limits enforced (if truncate_size=None) ... ok
pbkdf2_sha256: validate 'truncate_error' setting & related attributes ... ok
pbkdf2_sha256: Handler.using() -- default_salt_size ... ok
pbkdf2_sha512: validate required attributes ... ok
pbkdf2_sha512: test basic config-string workflow ... ok
pbkdf2_sha512: test basic using() workflow ... ok
pbkdf2_sha512: test basic hash-string workflow. ... ok
pbkdf2_sha512: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
pbkdf2_sha512: test hashes can be unicode or bytes ... ok
pbkdf2_sha512: test multi-backend support ... SKIP: handler only has one backend
pbkdf2_sha512: validate optional salt attributes ... ok
pbkdf2_sha512: test hash() / genconfig() creates new salt each time ... ok
pbkdf2_sha512: test hash() / genconfig() honors min_salt_size ... ok
pbkdf2_sha512: test hash() / genconfig() honors max_salt_size ... ok
pbkdf2_sha512: test hash() honors salt_chars ... ok
pbkdf2_sha512: test non-string salt values ... ok
pbkdf2_sha512: validate optional rounds attributes ... ok
pbkdf2_sha512: test hash() / genconfig() honors min_rounds ... ok
pbkdf2_sha512: test hash() / genconfig() honors max_rounds ... ok
pbkdf2_sha512: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
pbkdf2_sha512: test password case sensitivity ... ok
pbkdf2_sha512: test non-string passwords are rejected ... ok
pbkdf2_sha512: test MAX_PASSWORD_SIZE is enforced ... ok
pbkdf2_sha512: test forbidden characters not allowed in password ... SKIP: none listed
pbkdf2_sha512: test known hashes ... ok
pbkdf2_sha512: parsehash() ... ok
pbkdf2_sha512: test known alternate hashes ... SKIP: no alternate hashes provided
pbkdf2_sha512: parsehash() -- known outputs ... SKIP: no samples present
pbkdf2_sha512: test known config strings ... SKIP: no config strings provided
pbkdf2_sha512: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
pbkdf2_sha512: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
pbkdf2_sha512: test known foreign hashes ... ok
pbkdf2_sha512: test non-string hashes are rejected ... ok
pbkdf2_sha512: fuzz testing -- random passwords and options ... ok
pbkdf2_sha512: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
pbkdf2_sha512: .disable() / .enable() methods ... SKIP: not applicable
pbkdf2_sha512: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
pbkdf2_sha512: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
pbkdf2_sha512: HasRounds.using() -- desired_rounds + needs_update() ... ok
pbkdf2_sha512: HasRounds.using() -- sanity check test harness ... ok
pbkdf2_sha512: HasRounds.using() -- default_rounds ... ok
pbkdf2_sha512: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
pbkdf2_sha512: HasRounds.using() -- rounds ... ok
pbkdf2_sha512: HasRounds.using() -- vary_rounds generation ... ok
pbkdf2_sha512: HasRounds.using() -- vary_rounds parsing ... ok
pbkdf2_sha512: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
pbkdf2_sha512: test no password size limits enforced (if truncate_size=None) ... ok
pbkdf2_sha512: validate 'truncate_error' setting & related attributes ... ok
pbkdf2_sha512: Handler.using() -- default_salt_size ... ok
scram: validate required attributes ... ok
scram: test basic config-string workflow ... ok
scram: test basic using() workflow ... ok
scram: test basic hash-string workflow. ... ok
scram: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
scram: test hashes can be unicode or bytes ... ok
scram: test multi-backend support ... SKIP: handler only has one backend
scram: validate optional salt attributes ... ok
scram: test hash() / genconfig() creates new salt each time ... ok
scram: test hash() / genconfig() honors min_salt_size ... ok
scram: test hash() / genconfig() honors max_salt_size ... ok
scram: test hash() honors salt_chars ... ok
scram: test non-string salt values ... ok
scram: validate optional rounds attributes ... ok
scram: test hash() / genconfig() honors min_rounds ... ok
scram: test hash() / genconfig() honors max_rounds ... ok
scram: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
scram: test password case sensitivity ... ok
scram: test non-string passwords are rejected ... ok
scram: test MAX_PASSWORD_SIZE is enforced ... ok
scram: test forbidden characters not allowed in password ... SKIP: none listed
scram: test known hashes ... ok
scram: parsehash() ... ok
scram: test known alternate hashes ... SKIP: no alternate hashes provided
scram: parsehash() -- known outputs ... SKIP: no samples present
scram: test known config strings ... SKIP: no config strings provided
scram: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
scram: test known identifiable-but-malformed strings ... ok
scram: test known foreign hashes ... ok
scram: test non-string hashes are rejected ... ok
scram: fuzz testing -- random passwords and options ... ok
scram: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
scram: test parsing of 'algs' setting ... ok
scram: test internal parsing of 'checksum' keyword ... ok
scram: test scram.extract_digest_info() ... ok
scram: test scram.extract_digest_algs() ... ok
scram: test scram.derive_digest() ... ok
scram: needs_update() -- algs setting ... ok
scram: test hash/verify use saslprep ... ok
scram: using() -- 'algs' parameter ... ok
scram: using() -- 'default_algs' parameter ... ok
scram: test handling of 'algs' in context object ... ok
scram: test verify(full=True) flag ... ok
scram: .disable() / .enable() methods ... SKIP: not applicable
scram: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
scram: HasRounds.using() -- max_rounds / max_desired_rounds ... ok
scram: HasRounds.using() -- desired_rounds + needs_update() ... ok
scram: HasRounds.using() -- sanity check test harness ... ok
scram: HasRounds.using() -- default_rounds ... ok
scram: HasRounds.using() -- min_rounds / min_desired_rounds ... ok
scram: HasRounds.using() -- rounds ... ok
scram: HasRounds.using() -- vary_rounds generation ... ok
scram: HasRounds.using() -- vary_rounds parsing ... ok
scram: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
scram: test no password size limits enforced (if truncate_size=None) ... ok
scram: validate 'truncate_error' setting & related attributes ... ok
scram: Handler.using() -- default_salt_size ... ok
scrypt (builtin backend): validate required attributes ... ok
scrypt (builtin backend): test basic config-string workflow ... ok
scrypt (builtin backend): test basic using() workflow ... ok
scrypt (builtin backend): test basic hash-string workflow. ... ok
scrypt (builtin backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
scrypt (builtin backend): test hashes can be unicode or bytes ... ok
scrypt (builtin backend): test multi-backend support ... ok
scrypt (builtin backend): validate optional salt attributes ... ok
scrypt (builtin backend): test hash() / genconfig() creates new salt each time ... ok
scrypt (builtin backend): test hash() / genconfig() honors min_salt_size ... ok
scrypt (builtin backend): test hash() / genconfig() honors max_salt_size ... ok
scrypt (builtin backend): test hash() honors salt_chars ... ok
scrypt (builtin backend): test non-string salt values ... ok
scrypt (builtin backend): validate optional rounds attributes ... ok
scrypt (builtin backend): test hash() / genconfig() honors min_rounds ... ok
scrypt (builtin backend): test hash() / genconfig() honors max_rounds ... ok
scrypt (builtin backend): validate HasManyIdents configuration ... ok
scrypt (builtin backend): test password case sensitivity ... ok
scrypt (builtin backend): test non-string passwords are rejected ... ok
scrypt (builtin backend): test MAX_PASSWORD_SIZE is enforced ... ok
scrypt (builtin backend): test forbidden characters not allowed in password ... SKIP: none listed
scrypt (builtin backend): test known hashes ... ok
scrypt (builtin backend): parsehash() ... ok
scrypt (builtin backend): test known alternate hashes ... SKIP: no alternate hashes provided
scrypt (builtin backend): parsehash() -- known outputs ... SKIP: no samples present
scrypt (builtin backend): test known config strings ... SKIP: no config strings provided
scrypt (builtin backend): test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
scrypt (builtin backend): test known identifiable-but-malformed strings ... ok
scrypt (builtin backend): test known foreign hashes ... ok
scrypt (builtin backend): test non-string hashes are rejected ... ok
scrypt (builtin backend): fuzz testing -- random passwords and options ... ok
scrypt (builtin backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
scrypt (builtin backend): .disable() / .enable() methods ... SKIP: not applicable
scrypt (builtin backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... ok
scrypt (builtin backend): HasRounds.using() -- max_rounds / max_desired_rounds ... ok
scrypt (builtin backend): HasRounds.using() -- desired_rounds + needs_update() ... ok
scrypt (builtin backend): HasRounds.using() -- sanity check test harness ... ok
scrypt (builtin backend): HasRounds.using() -- default_rounds ... ok
scrypt (builtin backend): HasRounds.using() -- min_rounds / min_desired_rounds ... ok
scrypt (builtin backend): HasRounds.using() -- rounds ... ok
scrypt (builtin backend): HasRounds.using() -- vary_rounds generation ... ok
scrypt (builtin backend): HasRounds.using() -- vary_rounds parsing ... ok
scrypt (builtin backend): test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
scrypt (builtin backend): test no password size limits enforced (if truncate_size=None) ... ok
scrypt (builtin backend): validate 'truncate_error' setting & related attributes ... ok
scrypt (builtin backend): Handler.using() -- default_salt_size ... ok
scrypt (scrypt backend): validate required attributes ... SKIP: only default backend is being tested
scrypt (scrypt backend): test basic config-string workflow ... SKIP: only default backend is being tested
scrypt (scrypt backend): test basic using() workflow ... SKIP: only default backend is being tested
scrypt (scrypt backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
scrypt (scrypt backend): test multi-backend support ... SKIP: only default backend is being tested
scrypt (scrypt backend): validate optional salt attributes ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
scrypt (scrypt backend): test non-string salt values ... SKIP: only default backend is being tested
scrypt (scrypt backend): validate optional rounds attributes ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
scrypt (scrypt backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
scrypt (scrypt backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
scrypt (scrypt backend): test password case sensitivity ... SKIP: only default backend is being tested
scrypt (scrypt backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
scrypt (scrypt backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
scrypt (scrypt backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
scrypt (scrypt backend): test known hashes ... SKIP: only default backend is being tested
scrypt (scrypt backend): parsehash() ... SKIP: only default backend is being tested
scrypt (scrypt backend): test known alternate hashes ... SKIP: only default backend is being tested
scrypt (scrypt backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
scrypt (scrypt backend): test known config strings ... SKIP: only default backend is being tested
scrypt (scrypt backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
scrypt (scrypt backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
scrypt (scrypt backend): test known foreign hashes ... SKIP: only default backend is being tested
scrypt (scrypt backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
scrypt (scrypt backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
scrypt (scrypt backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
scrypt (scrypt backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
scrypt (scrypt backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
scrypt (scrypt backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
scrypt (scrypt backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
scrypt (scrypt backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
scrypt (scrypt backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
scrypt (stdlib backend): validate required attributes ... SKIP: only default backend is being tested
scrypt (stdlib backend): test basic config-string workflow ... SKIP: only default backend is being tested
scrypt (stdlib backend): test basic using() workflow ... SKIP: only default backend is being tested
scrypt (stdlib backend): test basic hash-string workflow. ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hash-string workflow with legacy .encrypt() & .genhash() methods ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hashes can be unicode or bytes ... SKIP: only default backend is being tested
scrypt (stdlib backend): test multi-backend support ... SKIP: only default backend is being tested
scrypt (stdlib backend): validate optional salt attributes ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hash() / genconfig() creates new salt each time ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hash() / genconfig() honors min_salt_size ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hash() / genconfig() honors max_salt_size ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hash() honors salt_chars ... SKIP: only default backend is being tested
scrypt (stdlib backend): test non-string salt values ... SKIP: only default backend is being tested
scrypt (stdlib backend): validate optional rounds attributes ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hash() / genconfig() honors min_rounds ... SKIP: only default backend is being tested
scrypt (stdlib backend): test hash() / genconfig() honors max_rounds ... SKIP: only default backend is being tested
scrypt (stdlib backend): validate HasManyIdents configuration ... SKIP: only default backend is being tested
scrypt (stdlib backend): test password case sensitivity ... SKIP: only default backend is being tested
scrypt (stdlib backend): test non-string passwords are rejected ... SKIP: only default backend is being tested
scrypt (stdlib backend): test MAX_PASSWORD_SIZE is enforced ... SKIP: only default backend is being tested
scrypt (stdlib backend): test forbidden characters not allowed in password ... SKIP: only default backend is being tested
scrypt (stdlib backend): test known hashes ... SKIP: only default backend is being tested
scrypt (stdlib backend): parsehash() ... SKIP: only default backend is being tested
scrypt (stdlib backend): test known alternate hashes ... SKIP: only default backend is being tested
scrypt (stdlib backend): parsehash() -- known outputs ... SKIP: only default backend is being tested
scrypt (stdlib backend): test known config strings ... SKIP: only default backend is being tested
scrypt (stdlib backend): test known unidentifiably-mangled strings ... SKIP: only default backend is being tested
scrypt (stdlib backend): test known identifiable-but-malformed strings ... SKIP: only default backend is being tested
scrypt (stdlib backend): test known foreign hashes ... SKIP: only default backend is being tested
scrypt (stdlib backend): test non-string hashes are rejected ... SKIP: only default backend is being tested
scrypt (stdlib backend): fuzz testing -- random passwords and options ... SKIP: only default backend is being tested
scrypt (stdlib backend): multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: only default backend is being tested
scrypt (stdlib backend): .disable() / .enable() methods ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- desired_rounds + needs_update() ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- sanity check test harness ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- default_rounds ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- rounds ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- vary_rounds generation ... SKIP: only default backend is being tested
scrypt (stdlib backend): HasRounds.using() -- vary_rounds parsing ... SKIP: only default backend is being tested
scrypt (stdlib backend): test password size limits raise truncate_error (if appropriate) ... SKIP: only default backend is being tested
scrypt (stdlib backend): test no password size limits enforced (if truncate_size=None) ... SKIP: only default backend is being tested
scrypt (stdlib backend): validate 'truncate_error' setting & related attributes ... SKIP: only default backend is being tested
scrypt (stdlib backend): Handler.using() -- default_salt_size ... SKIP: only default backend is being tested
test_bsd_contexts (passlib.tests.test_hosts.HostsTest) ... ok
test_host_context (passlib.tests.test_hosts.HostsTest) ... ok
test_linux_context (passlib.tests.test_hosts.HostsTest) ... ok
passlib.pwd.genphrase(): 'length' & 'entropy' keywords ... ok
passlib.pwd.genphrase(): general behavior ... ok
passlib.pwd.genphrase(): 'returns' keyword ... ok
passlib.pwd.genphrase(): 'wordset' & 'words' options ... ok
passlib.pwd: _self_info_rate() ... ok
passlib.pwd.genword(): 'charset' & 'chars' options ... ok
passlib.pwd.genword(): general behavior ... ok
passlib.pwd.genword(): 'returns' keyword ... ok
passlib.registry: test get_crypt_handler() ... ok
passlib.registry: verify we have tests for all builtin handlers ... ok
passlib.registry: test passlib.hash proxy object ... ok
passlib.registry: test list_crypt_handlers() ... ok
passlib.registry: test register_crypt_handler() ... ok
passlib.registry: test register_crypt_handler_path() ... ok
passlib.totp.AppWallet: .decrypt_key() ... SKIP: 'cryptography' package not installed
passlib.totp.AppWallet: .decrypt_key() -- needs_recrypt flag ... SKIP: 'cryptography' package not installed
passlib.totp.AppWallet: constructor -- 'default_tag' param ... ok
passlib.totp.AppWallet: verify cost parameter via timing ... SKIP: 'cryptography' package not installed
passlib.totp.AppWallet: .encrypt_key() ... SKIP: 'cryptography' package not installed
passlib.totp.AppWallet: constructor -- 'secrets' param -- tag/value normalization ... ok
passlib.totp.AppWallet: constructor -- 'secrets' param -- input types ... ok
passlib.totp.TOTP: helper to iterate over test vectors. ... ok
passlib.totp.TOTP: constructor -- 'alg' parameter ... ok
passlib.totp.TOTP: constructor -- 'digits' parameter ... ok
passlib.totp.TOTP: constructor -- 'issuer' parameter ... ok
passlib.totp.TOTP: constructor -- 'key' and 'format' parameters ... ok
passlib.totp.TOTP: constructor -- 'label' parameter ... ok
passlib.totp.TOTP: constructor -- 'new'  parameter ... ok
passlib.totp.TOTP: constructor -- 'period' parameter ... ok
passlib.totp.TOTP: constructor -- 'size'  parameter ... ok
passlib.totp.TOTP: from_dict() ... ok
passlib.totp.TOTP: from_source() ... ok
passlib.totp.TOTP: from_uri() ... ok
passlib.totp.TOTP: generate() ... ok
passlib.totp.TOTP: generate() -- reference vectors ... ok
passlib.totp.TOTP: pretty_key() and .key attributes ... ok
passlib.totp.TOTP: match() -- reference vectors ... ok
passlib.totp.TOTP: match() -- 'reuse' and 'last_counter' parameters ... ok
passlib.totp.TOTP: match() -- 'skew' parameters ... ok
passlib.totp.TOTP: match() -- token normalization ... ok
passlib.totp.TOTP: match() -- 'time' and 'window' parameters ... ok
passlib.totp.TOTP: normalize_time() ... ok
passlib.totp.TOTP: normalize_token() -- class method ... ok
passlib.totp.TOTP: normalize_token() -- instance method ... ok
passlib.totp.TOTP: internal test -- randotp() ... ok
passlib.totp.TOTP: to_dict() ... ok
passlib.totp.TOTP: to_uri() ... ok
passlib.totp.TOTP: match() -- invalid TotpMatch object ... ok
passlib.totp.TOTP: match() -- valid TotpMatch object with past token ... ok
passlib.totp.TOTP: match() -- valid TotpMatch object with future token ... ok
passlib.totp.TOTP: match() -- valid TotpMatch object ... ok
passlib.totp.TOTP: generate() -- TotpToken() class ... ok
passlib.totp.TOTP: using -- 'now' parameter ... ok
passlib.totp.TOTP: using() -- 'period' parameter ... ok
passlib.totp.TOTP: verify() ... ok
ab64_decode() ... ok
ab64_encode() ... ok
b64s_decode() ... ok
b64s_encode() ... ok
test_constructor (passlib.tests.test_utils.Base64EngineTest) ... ok
test b() helper, bytes and native str type ... ok
test is_ascii_safe() ... ok
test is_same_codec() ... ok
test to_bytes() ... ok
test to_native_str() ... ok
test to_unicode() ... ok
h64big codec: test encode_bytes/decode_bytes against random data ... ok
h64big codec: test decode_bytes() against reference inputs ... ok
h64big codec: test decode_bytes() with bad input ... ok
h64big codec: test decode_bytes() ignores padding bits ... ok
h64big codec: test decode_transposed_bytes() ... ok
h64big codec: test decode_transposed_bytes() fails if map is a one-way ... ok
h64big codec: test encode_bytes() against reference inputs ... ok
h64big codec: test encode_bytes() with bad input ... ok
h64big codec: test encode_transposed_bytes() ... ok
h64big codec: test against reference integer encodings ... ok
h64big codec: test_int12 (passlib.tests.test_utils.H64Big_Test) ... ok
h64big codec: test_int24 (passlib.tests.test_utils.H64Big_Test) ... ok
h64big codec: test_int6 (passlib.tests.test_utils.H64Big_Test) ... ok
h64big codec: test_int64 (passlib.tests.test_utils.H64Big_Test) ... ok
h64big codec: test repair_unused() ... ok
h64 codec: test encode_bytes/decode_bytes against random data ... ok
h64 codec: test decode_bytes() against reference inputs ... ok
h64 codec: test decode_bytes() with bad input ... ok
h64 codec: test decode_bytes() ignores padding bits ... ok
h64 codec: test decode_transposed_bytes() ... ok
h64 codec: test decode_transposed_bytes() fails if map is a one-way ... ok
h64 codec: test encode_bytes() against reference inputs ... ok
h64 codec: test encode_bytes() with bad input ... ok
h64 codec: test encode_transposed_bytes() ... ok
h64 codec: test against reference integer encodings ... ok
h64 codec: test_int12 (passlib.tests.test_utils.H64_Test) ... ok
h64 codec: test_int24 (passlib.tests.test_utils.H64_Test) ... ok
h64 codec: test_int6 (passlib.tests.test_utils.H64_Test) ... ok
h64 codec: test_int64 (passlib.tests.test_utils.H64_Test) ... ok
h64 codec: test repair_unused() ... ok
test_classproperty (passlib.tests.test_utils.MiscTest) ... ok
test compat's lazymodule ... ok
test consteq() ... ok
test crypt.crypt() wrappers ... ok
test_deprecated_function (passlib.tests.test_utils.MiscTest) ... ok
generate_password() ... ok
test genseed() ... ok
getrandbytes() ... ok
getrandstr() ... ok
test is_crypt_context() ... ok
test_memoized_property (passlib.tests.test_utils.MiscTest) ... ok
test saslprep() unicode normalizer ... ok
test_splitcomma (passlib.tests.test_utils.MiscTest) ... ok
utf8_truncate() ... ok
test PrefixWrapper lazy loading of handler ... ok
test PrefixWrapper active loading of handler ... ok
test PrefixWrapper with explicitly specified handler ... ok
test_10_wrapped_attributes (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok
test_11_wrapped_methods (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok
test_12_ident (passlib.tests.test_utils_handlers.PrefixWrapperTest) ... ok
test repr() ... ok
test orig_prefix sanity check ... ok
salted_test_hash: validate required attributes ... ok
salted_test_hash: test basic config-string workflow ... ok
salted_test_hash: test basic using() workflow ... ok
salted_test_hash: test basic hash-string workflow. ... ok
salted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
salted_test_hash: test hashes can be unicode or bytes ... ok
salted_test_hash: test multi-backend support ... SKIP: handler only has one backend
salted_test_hash: validate optional salt attributes ... ok
salted_test_hash: test hash() / genconfig() creates new salt each time ... ok
salted_test_hash: test hash() / genconfig() honors min_salt_size ... ok
salted_test_hash: test hash() / genconfig() honors max_salt_size ... ok
salted_test_hash: test hash() honors salt_chars ... ok
salted_test_hash: test non-string salt values ... ok
salted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
salted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
salted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
salted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
salted_test_hash: test password case sensitivity ... ok
salted_test_hash: test non-string passwords are rejected ... ok
salted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok
salted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed
salted_test_hash: test known hashes ... ok
salted_test_hash: parsehash() ... ok
salted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided
salted_test_hash: parsehash() -- known outputs ... SKIP: no samples present
salted_test_hash: test known config strings ... SKIP: no config strings provided
salted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
salted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
salted_test_hash: test known foreign hashes ... ok
salted_test_hash: test non-string hashes are rejected ... ok
salted_test_hash: fuzz testing -- random passwords and options ... ok
salted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
salted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.SaltedHashTest) ... ok
salted_test_hash: .disable() / .enable() methods ... SKIP: not applicable
salted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
salted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
salted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
salted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
salted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
salted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
salted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
salted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
salted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
salted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
salted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok
salted_test_hash: validate 'truncate_error' setting & related attributes ... ok
salted_test_hash: Handler.using() -- default_salt_size ... ok
test StaticHandler class ... ok
test StaticHandler legacy attr ... ok
test GenericHandler.identify() ... ok
test GenericHandler checksum handling ... ok
test GenericHandler + HasRawChecksum mixin ... ok
test GenericHandler + HasSalt mixin ... ok
test GenericHandler + HasRounds mixin ... ok
test GenericHandler + HasManyBackends mixin ... ok
test GenericHandler + HasManyBackends mixin (deprecated api) ... ok
test GenericHandler + HasManyIdents ... ok
test parsehash() ... ok
test bitsize() ... ok
unsalted_test_hash: validate required attributes ... ok
unsalted_test_hash: test basic config-string workflow ... ok
unsalted_test_hash: test basic using() workflow ... ok
unsalted_test_hash: test basic hash-string workflow. ... ok
unsalted_test_hash: test hash-string workflow with legacy .encrypt() & .genhash() methods ... ok
unsalted_test_hash: test hashes can be unicode or bytes ... ok
unsalted_test_hash: test multi-backend support ... SKIP: handler only has one backend
unsalted_test_hash: validate optional salt attributes ... SKIP: handler doesn't have salt
unsalted_test_hash: test hash() / genconfig() creates new salt each time ... SKIP: handler doesn't have salt
unsalted_test_hash: test hash() / genconfig() honors min_salt_size ... SKIP: handler doesn't have salt
unsalted_test_hash: test hash() / genconfig() honors max_salt_size ... SKIP: handler doesn't have salt
unsalted_test_hash: test hash() honors salt_chars ... SKIP: handler doesn't have salt
unsalted_test_hash: test non-string salt values ... SKIP: handler doesn't have salt
unsalted_test_hash: validate optional rounds attributes ... SKIP: handler lacks rounds attributes
unsalted_test_hash: test hash() / genconfig() honors min_rounds ... SKIP: handler lacks rounds attributes
unsalted_test_hash: test hash() / genconfig() honors max_rounds ... SKIP: handler lacks rounds attributes
unsalted_test_hash: validate HasManyIdents configuration ... SKIP: handler doesn't derive from HasManyIdents
unsalted_test_hash: test password case sensitivity ... ok
unsalted_test_hash: test non-string passwords are rejected ... ok
unsalted_test_hash: test MAX_PASSWORD_SIZE is enforced ... ok
unsalted_test_hash: test forbidden characters not allowed in password ... SKIP: none listed
unsalted_test_hash: test known hashes ... ok
unsalted_test_hash: parsehash() ... ok
unsalted_test_hash: test known alternate hashes ... SKIP: no alternate hashes provided
unsalted_test_hash: parsehash() -- known outputs ... SKIP: no samples present
unsalted_test_hash: test known config strings ... SKIP: hash has no settings
unsalted_test_hash: test known unidentifiably-mangled strings ... SKIP: no unidentified hashes provided
unsalted_test_hash: test known identifiable-but-malformed strings ... SKIP: no malformed hashes provided
unsalted_test_hash: test known foreign hashes ... ok
unsalted_test_hash: test non-string hashes are rejected ... ok
unsalted_test_hash: fuzz testing -- random passwords and options ... ok
unsalted_test_hash: multithreaded fuzz testing -- random password & options using multiple threads ... SKIP: requires >= 'full' test mode
unsalted_test_hash: test_bad_kwds (passlib.tests.test_utils_handlers.UnsaltedHashTest) ... ok
unsalted_test_hash: .disable() / .enable() methods ... SKIP: not applicable
unsalted_test_hash: HasManyIdents.using() -- 'default_ident' and 'ident' keywords ... SKIP: handler doesn't derive from HasManyIdents
unsalted_test_hash: HasRounds.using() -- max_rounds / max_desired_rounds ... SKIP: handler lacks rounds attributes
unsalted_test_hash: HasRounds.using() -- desired_rounds + needs_update() ... SKIP: handler lacks rounds attributes
unsalted_test_hash: HasRounds.using() -- sanity check test harness ... SKIP: handler lacks rounds attributes
unsalted_test_hash: HasRounds.using() -- default_rounds ... SKIP: handler lacks rounds attributes
unsalted_test_hash: HasRounds.using() -- min_rounds / min_desired_rounds ... SKIP: handler lacks rounds attributes
unsalted_test_hash: HasRounds.using() -- rounds ... SKIP: handler lacks rounds attributes
unsalted_test_hash: HasRounds.using() -- vary_rounds generation ... SKIP: handler lacks rounds attributes
unsalted_test_hash: HasRounds.using() -- vary_rounds parsing ... SKIP: handler lacks rounds attributes
unsalted_test_hash: test password size limits raise truncate_error (if appropriate) ... SKIP: truncate_size not set
unsalted_test_hash: test no password size limits enforced (if truncate_size=None) ... ok
unsalted_test_hash: validate 'truncate_error' setting & related attributes ... ok
unsalted_test_hash: Handler.using() -- default_salt_size ... SKIP: handler doesn't have salt
passlib.utils.md4.md4(): informational attributes ... ok
passlib.utils.md4.md4(): copy() method ... ok
passlib.utils.md4.md4(): digest() method ... ok
passlib.utils.md4.md4(): hexdigest() method ... ok
passlib.utils.md4.md4(): update() method ... ok
passlib.utils.pbkdf2.pbkdf1(): test border cases ... ok
passlib.utils.pbkdf2.pbkdf1(): test reference vectors ... ok
passlib.utils.pbkdf2.pbkdf2(): test border cases ... ok
passlib.utils.pbkdf2.pbkdf2(): test custom prf function ... ok
passlib.utils.pbkdf2.pbkdf2(): test keylen==None ... ok
passlib.utils.pbkdf2.pbkdf2(): test reference vectors ... ok
passlib.utils.pbkdf2: norm_hash_name() ... ok
test_lmhash (passlib.tests.test_win32.UtilTest) ... ok
test_nthash (passlib.tests.test_win32.UtilTest) ... ok
----------------------------------------------------------------------
Ran 4362 tests in 177.225s
OK (SKIP=2390)
+ exit 0
Processing files: python3-passlib-1.7.4-6.el7.noarch
Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.6BEn1O
+ umask 022
+ cd /builddir/build/BUILD
+ cd passlib-1.7.4
+ DOCDIR=/builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/share/doc/python3-passlib-1.7.4
+ export DOCDIR
+ /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/share/doc/python3-passlib-1.7.4
+ cp -pr README /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/share/doc/python3-passlib-1.7.4
+ exit 0
Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.ik5SJ6
+ umask 022
+ cd /builddir/build/BUILD
+ cd passlib-1.7.4
+ LICENSEDIR=/builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/share/licenses/python3-passlib-1.7.4
+ export LICENSEDIR
+ /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/share/licenses/python3-passlib-1.7.4
+ cp -pr LICENSE /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64/usr/share/licenses/python3-passlib-1.7.4
+ exit 0
Provides: python3-passlib = 1.7.4-6.el7 python3.6dist(passlib) = 1.7.4 python36-passlib = 1.7.4-6.el7
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: python(abi) = 3.6
Obsoletes: python36-passlib < 1.7.4-6.el7
Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64
Wrote: /builddir/build/RPMS/python3-passlib-1.7.4-6.el7.noarch.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.SlAkoS
+ umask 022
+ cd /builddir/build/BUILD
+ cd passlib-1.7.4
+ /usr/bin/rm -rf /builddir/build/BUILDROOT/python-passlib-1.7.4-6.el7.x86_64
+ exit 0
Child return code was: 0