/usr/lib/python3/dist-packages/passlib/hosts.py is in python3-passlib 1.5.3-0ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | """passlib.hosts"""
#=========================================================
#imports
#=========================================================
#core
import sys
from warnings import warn
#pkg
from passlib.context import LazyCryptContext
from passlib.registry import get_crypt_handler
from passlib.utils import os_crypt, unix_crypt_schemes
#local
__all__ = [
"linux_context", "linux2_context",
"openbsd_context",
"netbsd_context",
"freebsd_context",
"host_context",
]
#=========================================================
#linux support
#=========================================================
#known platform names - linux2
linux_context = linux2_context = LazyCryptContext(
schemes = [ "sha512_crypt", "sha256_crypt", "md5_crypt",
"des_crypt", "unix_fallback" ],
deprecated = [ "des_crypt" ],
)
#=========================================================
#bsd support
#=========================================================
#known platform names -
# freebsd2
# freebsd3
# freebsd4
# freebsd5
# freebsd6
# freebsd7
#
# netbsd1
#referencing source via -http://fxr.googlebit.com
# freebsd 6,7,8 - des, md5, bcrypt, nthash
# netbsd - des, ext, md5, bcrypt, sha1
# openbsd - des, ext, md5, bcrypt
freebsd_context = LazyCryptContext([ "bcrypt", "md5_crypt", "nthash", "des_crypt", "unix_fallback" ])
openbsd_context = LazyCryptContext([ "bcrypt", "md5_crypt", "bsdi_crypt", "des_crypt", "unix_fallback" ])
netbsd_context = LazyCryptContext([ "bcrypt", "sha1_crypt", "md5_crypt", "bsdi_crypt", "des_crypt", "unix_fallback" ])
#=========================================================
#current host
#=========================================================
if os_crypt:
#NOTE: this is basically mimicing the output of os crypt(),
#except that it uses passlib's (usually stronger) defaults settings,
#and can be introspected and used much more flexibly.
def _iter_os_crypt_schemes():
"helper which iterates over supported os_crypt schemes"
found = False
for name in unix_crypt_schemes:
handler = get_crypt_handler(name)
if handler.has_backend("os_crypt"):
found = True
yield name
if found:
#only offer fallback if there's another scheme in front,
#as this can't actually hash any passwords
yield "unix_fallback"
else:
#no idea what OS this could happen on, but just in case...
warn("crypt.crypt() function is present, but doesn't support any formats known to passlib!")
host_context = LazyCryptContext(_iter_os_crypt_schemes())
#=========================================================
#other platforms
#=========================================================
#known platform strings -
#aix3
#aix4
#atheos
#beos5
#darwin
#generic
#hp-ux11
#irix5
#irix6
#mac
#next3
#os2emx
#riscos
#sunos5
#unixware7
#=========================================================
#eof
#=========================================================
|