This file is indexed.

/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
#=========================================================