File: hosts.py

package info (click to toggle)
python-passlib 1.9.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,184 kB
  • sloc: python: 26,132; makefile: 7
file content (85 lines) | stat: -rw-r--r-- 2,002 bytes parent folder | download
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
from passlib import registry
from passlib.context import LazyCryptContext

# local
__all__ = [
    "linux_context",
    "linux2_context",
    "openbsd_context",
    "netbsd_context",
    "freebsd_context",
    "host_context",
]


# known platform names - linux2

linux_context = linux2_context = LazyCryptContext(
    schemes=["sha512_crypt", "sha256_crypt", "md5_crypt", "des_crypt", "unix_disabled"],
    deprecated=["des_crypt"],
)


# known platform names -
#   freebsd2
#   freebsd3
#   freebsd4
#   freebsd5
#   freebsd6
#   freebsd7
#
#   netbsd1

# referencing source via -http://fxr.googlebit.com
# freebsd 6,7,8 - des, md5, bcrypt, bsd_nthash
# netbsd - des, ext, md5, bcrypt, sha1
# openbsd - des, ext, md5, bcrypt

freebsd_context = LazyCryptContext(
    ["bcrypt", "md5_crypt", "bsd_nthash", "des_crypt", "unix_disabled"]
)

openbsd_context = LazyCryptContext(
    ["bcrypt", "md5_crypt", "bsdi_crypt", "des_crypt", "unix_disabled"]
)

netbsd_context = LazyCryptContext(
    ["bcrypt", "sha1_crypt", "md5_crypt", "bsdi_crypt", "des_crypt", "unix_disabled"]
)

# XXX: include darwin in this list? it's got a BSD crypt variant,
# but that's not what it uses for user passwords.

if registry.os_crypt_present:
    # NOTE: this is basically mimicing the output of os crypt(),
    # except that it uses passlib's (usually stronger) defaults settings,
    # and can be inspected and used much more flexibly.

    def _iter_os_crypt_schemes():
        """helper which iterates over supported os_crypt schemes"""
        out = registry.get_supported_os_crypt_schemes()
        if out:
            # only offer disabled handler if there's another scheme in front,
            # as this can't actually hash any passwords
            out += ("unix_disabled",)
        return out

    host_context = LazyCryptContext(_iter_os_crypt_schemes())


# known platform strings -
# aix3
# aix4
# atheos
# beos5
# darwin
# generic
# hp-ux11
# irix5
# irix6
# mac
# next3
# os2emx
# riscos
# sunos5
# unixware7