summaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* docs: cleanupsEli Collins2016-06-101-4/+8
|
* passlib.handlers.scrypt: created scrypt hash handler, complete with UTs and docsEli Collins2016-06-104-13/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | * scrypt kdf code - relocated scrypt kdf code to passlib.crypto.scrypt - py3 compat fixes - split UTs out into separate file - removed "non-power of 2" support, not needed. - added wrapper which can toggle between builtin backend, and extenrnal scrypt package. - factored out n/r/p validation code so it can be used independantly of calling kdf itself. * passlib.handlers.scrypt: added scrypt handler which wraps the kdf. - added some custom test strings, as well as adapted some reference values from the scrypt whitepaper. - added documentation page - integrated scrypt kdf wrapper w/ hash's HasManyBackends api
* docs: minor changesEli Collins2016-06-101-2/+5
|
* passlib.utils.handlers / HasRounds: the 'rounds' keyword is now treatedEli Collins2016-06-101-0/+15
| | | | | | | | | | | as a fallback for 'default_rounds', 'min_rounds', and 'max_rounds'. this makes it easier to specify a django-style policy of "deprecate all hashes which have a differing rounds value". * removed special handling from 'rounds' from CryptContext parser * tweaked affected CryptContext serialization tests * added test for new behavior
* passlib.context: deprecating the 'all' preset scheme --Eli Collins2016-06-101-0/+5
| | | | | | | | | | only legitimate use was for 'vary_rounds' option, which is being phased out, and other uses like 'min_rounds' were a security issue. * fixed CryptContext() tests to stop uses "all" kwds * issue dep warning if "all" scheme is used * issue config warning if anything but "vary_rounds" is used, since config needs to be changed (regardless of passlib version)
* deprecating the 'vary_rounds' option -- *very* little security benefit,Eli Collins2016-06-103-11/+10
| | | | | | | and not worth the amount of code it requires to support it. * stripped out vary_rounds from all internal presets * added deprecation warning if it's ever used
* .encrypt() method renamed to .hash(), other api cleanupsEli Collins2016-06-1036-108/+149
| | | | | | | | | | | | | | | | .encrypt() ---------- hash.encrypt() & context.encrypt() have been renamed to .hash(). this should take care of the long-standing issue 21 (the poor naming of .encrypt). per docs, legacy aliases will remain in place until passlib 2.0. .genhash() / .genconfig() ------------------------- taking advantage of this reorganization to also deprecate .genconfig() and .genhash() -- they're not really useful in a modern system, nor as needed for historical support as initially thought: .genconfig() will be retired completely in passlib 2.0; .genhash() is rolled into the new .hash() method along with .encrypt().
* changes: updated 1.7 TODO list, reformatted some itemsEli Collins2016-02-111-0/+1
|
* passlib.pwd: big cleanup pass, removing code that won't be ready for releaseEli Collins2016-02-111-29/+5
| | | | | | | | | | | | | | | | | | | | | | | * split generate() into genword() & genphrase() -- APIs are just too different to keep combined. * renamed internal calc funcs to better reflect their purpose. * commented out PhraseGenerator's min_chars code, can't confirm it's doing correct thing. * commented out password strength estimator, too half-baked. * tried to simplify SequenceGenerator attributes. * genword(): defined some base charsets to work with * genphrase(): wordsets now stored uncompressed (not really that big, and .whl will compress everything for transport). * fleshed out UTs for genword() & genphrase() * updated docs
* added reference for cisco_asa algorithmEli Collins2016-02-101-0/+3
|
* relocated many of the crypto routes inside passlib.utils,Eli Collins2016-02-1014-54/+91
| | | | | | | | | | | | | | | | | | | and moved them to a separate passlib.crypto subpackage. along with this move, made a few api cleanups: * unified all code that's looking up hashes to use new passlib.crypto.lookup_hash() wrapper, which takes care of hash name normalization, loading fallback implementations, and alg metadata inspection, all hidden behind a memoized function. * deprecated pbkdf2() in favor of pbkdf2_hmac() -- only real use, and new signature matches stdlib function. additionally, this version is a bit faster, due to some assumptions that can be made due to the PRF always being HMAC based. * added compile_hmac() helper which does an even more efficient job of pre-compiling a keyed HMAC function; this helped speed up pbkdf2 a bit more.
* passlib.ext.django: dropped support for django 1.6-1.7, per passlib 1.6.6 ↵Eli Collins2016-02-091-2/+4
| | | | | | | | | announcement motivation is that django hashers framework has matured greatly as of django 1.8, and dropping all prior versions not only eases support burden, but opens up opportunity for integration via less invasive method in a future passlib release, using django 1.8 as a common base.
* Merge with stableEli Collins2016-02-092-0/+3
|\
| * Fix typoYuval Langer2015-12-301-1/+1
| | | | | | | | (grafted from 147ca054691e1cc798faec622d8509502d7c37f9)
| * Fix typoYuval Langer2015-12-301-1/+1
| | | | | | | | (grafted from da9beaf8d08dc0139430124ea1cf494242f14f5c)
| * CryptContext: callers can now provider contextual keywords for any hash in ↵Eli Collins2016-02-082-0/+3
| | | | | | | | | | | | the context, and they will only be passed on for the hashes that support them (fixes issue 63).
* | Fix typoYuval Langer2015-12-301-1/+1
| |
* | Fix typoYuval Langer2015-12-301-1/+1
| |
* | Merge from stableEli Collins2015-08-041-1/+1
|\ \ | |/
| * bumped to 1.6.5; updated (c) years in a few places1.6.5Eli Collins2015-08-041-1/+1
| |
* | Merge from stableEli Collins2015-07-254-5/+11
|\ \ | |/
| * retuned/updated default rounds settings for all hashesEli Collins2015-07-251-2/+2
| |
| * updated issue tracker url to point to bitbucketEli Collins2015-07-251-1/+1
| |
| * clarified behavior doc textEli Collins2015-07-251-2/+2
| |
| * added warning about cisco_pix ASA 7.0 compatibilityEli Collins2015-07-251-0/+6
| |
* | forgot additional doc file from previous cisco_asa commitEli Collins2015-07-251-0/+14
| |
* | cisco asa tweaksEli Collins2015-07-252-20/+39
| | | | | | | | | | | | | | | | | | | | | | | | * split cisco ASA 7.0 code out into separate 'cisco_asa' class, some minor reformatting of the internals (no alg changes). * updated documentation to reflect the two different classes, added to changelog. * added some reference vectors generated by current implementation -- vectors chosen to verify thresholds around various if/thens in the ASA alg. added note that these still need to be verified by official implementation.
* | MergeEli Collins2015-07-2515-89/+228
|\ \
| * | wow, can't get right requirement name :)Eli Collins2015-07-231-1/+1
| | |
| * | tweaked rtd requirements.txtEli Collins2015-07-231-1/+1
| | |
| * | added sphinxcontrib for rtd scriptEli Collins2015-07-231-0/+1
| | |
| * | Merge from stableEli Collins2015-07-231-2/+2
| |\ \ | | |/
| | * updated project urlsEli Collins2015-07-231-4/+3
| | |
| * | docs switched to use 'fulltoc' in sidebar; may reverse this later.Eli Collins2015-07-231-8/+12
| | |
| * | updated logoEli Collins2015-07-232-19/+23
| | |
| * | updated project urls & readmeEli Collins2015-07-231-5/+4
| | |
| * | Merge from stableEli Collins2015-07-227-32/+79
| |\ \ | | |/
| | * doc updatesEli Collins2015-07-223-19/+14
| | |
| | * updates changelog & other docs to reflect upcoming 1.6.3 changesEli Collins2015-07-211-1/+1
| | |
| | * bunch of bcrypt updates, centered around the bsd wraparound bug.Eli Collins2015-07-214-17/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bcrypt ------ * added support & UT for $2b$ hash format. not making it the default yet, for backward compat. * large refactor of how bcrypt backends are loaded: instead of per-backend workarounds within each _calc_checksum_<backend>() function: now using runtime detection of specific capabilities & workarounds, that runs whenever set_backend() is called, combined with consolidated workaround code within _calc_checksum(), controlled by the flags set by set_backend(). this detection now looks for: - the 8bit bug: throws a PasslibSecurityError - the wraparound bug: issues warning, sets flag enabling a workaround. - support for 2/2y/2b: if backend lacks support for particular variants, sets flag enabling workaround to add support. * os_crypt backend now just issues error if it can't handle a password encoding; rather than trying fallbacks first -- edge case anyways, and likely to not have any fallbacks when it does happen. simplifies backend code. * added UTs to make sure wraparound-vulnerable passwords are hashed correctly (as a 72char string, not a 1-3 char string that's repeated). * internal blowfish code's ident parsing clarified. other ----- * added exc.PasslibSecurityError for fatal runtime errors. * test framework: os_crypt backends no longer expected to use *any* backend as fallback, just ones with lower priority than os_crypt. * test framework: crypt_stub() wrapper now subclasses the handler, so it can use an independant backend, instead of changing global backend for duration of call (made parallel testing hard) docs ---- * added entry to bcrypt page, writing down wraparound bug details, and how passlib is handling it. * all versions of pybcrypt & bcryptor seem to be vulnerable to wraparound bug. starting process of deprecating these backends: marked bcrypt backend as 'preferred' throughout the documentation.
| | * HtpasswdFile's default context now recognized bcrypt, sha256_crypt (fixes ↵Eli Collins2015-07-201-0/+9
| | | | | | | | | | | | | | | | | | issue 55); also added default_scheme="portable" to ease transition to passlib 1.7's new default behavior.
| * | Merge from stableEli Collins2015-01-271-1/+1
| |\ \ | | |/
| | * documentation config change (trying to change RTD config)Eli Collins2015-01-111-1/+1
| | |
| * | a few bits of cleanup from min_verify_timeEli Collins2015-01-271-2/+5
| | |
| * | docs config tweakEli Collins2015-01-111-0/+1
| | |
| * | stripped out compatibility shims for django 0.9 - 1.3;Eli Collins2015-01-101-4/+3
| | | | | | | | | | | | now requiring django >= 1.4
| * | removed a LOT of compatibility shims -- dropped python 2.5, 3.0, and 3.1 ↵Eli Collins2015-01-101-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | support; as well as PyPy 1.x and Jython 2.5. shims removed ------------- * b() shim replaced with b'' (py25) * 'bytes' alias no longer needed (py25) * callable() shim no longer needed (py30,31) * PY_MIN_32 flag replaced with PY3 flag (py30,31) * removed 'abc' module stub used by passlib.ifc (py25) * removed chain_from_iterable() backport (py25) * tests: removed catch_warnings() backport, replaced refs with real warnings.catch_warnings() (py25) * tests: removed unittest2 backports (py25, py30, py31) -- now throw hard error if unittest2 not present under py26 (the only release remaining which lacks the unittest2 features) * removed SUPPORTS_DIR_METHOD conditional (py25, pypy 1.x) * some other minor workarounds other ----- * added check in passlib.compat which now throws error telling user version isn't supported (to prevent spurious errors later)
| * | TOTP implementation mostly finalizeEli Collins2015-01-095-7/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TOTP module reworked drastically. Should have committed this a long time ago. Now have what is (hopefully) the final API for the TOTP module. * Supports TOTP & HOTP * Supports URI rendering & parsing * Highlevel methods to handle state management, client clock skew estimation, etc. * Unittests mostly complete (a few edge cases) * Persistent serialization supports encrypting secrets with a password, to mitigate exposure of storage medium. * Basic API documentation. Should be suitable for following use-cases: * lowlevel methods for implementing HOTP/TOTP on server * highlevel methods for implementing HOTP/TOTP on server, and letting them handle details of tracking client state. * methods for implementing an HOTP / TOTP client.
* | | Update documentation for PIX/ASA to reflect full algorithmDarrel Clute2014-06-031-7/+12
|/ /
* | comment & doc updates, removed some extraneous try/except clauses from ↵Eli Collins2013-12-286-2/+942
| | | | | | | | des_crypt code