Russ Allbery [Fri, 13 Dec 2013 01:34:28 +0000 (17:34 -0800)]
Use Perl6::Slurp instead of File::Slurp
One utility was using Perl6::Slurp and another was using
File::Slurp. Perl6::Slurp is nicer, so just use that, and
update the documentation. Also document the bootstrap
requirements imposed by make-c-data.
Russ Allbery [Fri, 13 Dec 2013 01:28:09 +0000 (17:28 -0800)]
Update README with more details about new checking rules
The description section didn't mention the non-CrackLib capabilities,
and README never spelled out how CDB dictionaries were checked.
Fix both of those oversights.
Russ Allbery [Fri, 13 Dec 2013 01:22:39 +0000 (17:22 -0800)]
Flesh out heimdal-strength documentation
Add full documentation for the supported krb5.conf configuration
options to the heimdal-strength POD documentation. Also slightly
update the BLURB section of README.
Russ Allbery [Fri, 13 Dec 2013 01:08:46 +0000 (17:08 -0800)]
Add class requirement documentation and length ranges
Add support for qualifying a character class restriction with the
range of lengths of password to which it applies. Add documentation
and a NEWS entry for the new configuration.
Russ Allbery [Fri, 13 Dec 2013 00:25:03 +0000 (16:25 -0800)]
Fix various character class check mistakes, add test suite
This is the first working version of the character class checking,
which is now plugged into the module initialization. It also adds
a test suite for the external password check utility, although not
the embedded modules yet.
Russ Allbery [Thu, 12 Dec 2013 06:01:49 +0000 (22:01 -0800)]
Rename the class test set to letter
Next is to add support for full character class rules, which will
reuse a similar name, so move the simplistic character class rules
to the name letter.json.
Russ Allbery [Mon, 4 Nov 2013 21:16:54 +0000 (13:16 -0800)]
Add wordlist filter mode to cdbmake-wordlist
Add a new -o (--output) option that applies any configured filtering
and writes out a new wordlist file instead of creating a CDB file.
Refactor the script to avoid adding too much complexity with this
feature.
Russ Allbery [Mon, 4 Nov 2013 19:16:56 +0000 (11:16 -0800)]
Support filtering wordlists by regex in cdbmake-wordlist
Add a new option, -x or --exclude, that excludes words from the
resulting CDB database by regular expression. This option may
be given repeatedly to filter out multiple regular expressions.
Russ Allbery [Tue, 8 Oct 2013 19:10:55 +0000 (12:10 -0700)]
Update some of the password rejection error messages
Refer to "list of common passwords" when rejecting passwords due
to presence in a CDB dictionary, and say that passwords based on
the principal are based on "username or principal" to be more
technically accurate.
Russ Allbery [Tue, 8 Oct 2013 18:32:52 +0000 (11:32 -0700)]
Fix compilation without TinyCDB
The build without TinyCDB support was apparently not retested
after some refactoring, so some functions had the wrong signatures
or were not properly prototyped.
Russ Allbery [Tue, 8 Oct 2013 00:08:21 +0000 (17:08 -0700)]
Flesh out build dependencies for testing
Add cracklib-runtime and tinycdb to the build dependencies to
support the test suite. Add a ton of Perl modules to support the
tests written in Perl and the tests of the Perl scripts in the
package.
Russ Allbery [Mon, 7 Oct 2013 23:41:36 +0000 (16:41 -0700)]
Merge krb5-strength and heimdal-strength, revise description
* Eliminate the heimdal-strength package. krb5-strength now builds a
single binary package of the same name including the MIT plugin and
the Heimdal external password quality program. The Heimdal plugin is
not built by the Debian packaging because Heimdal prefers external
programs. The plugin can be added later as a separate package if
there is demand.
* Revise the package long description for the merger of krb5-strength
and heimdal-strength and the new capabilities in 2.0.
* Recommend cracklib-runtime and tinycdb since they are required to
build dictionaries. Downgrade krb5-admin-server to Enhances and add
heimdal-kdc.
Russ Allbery [Mon, 7 Oct 2013 19:40:13 +0000 (12:40 -0700)]
Fix distribution contents for the release
It's been a while and a lot of changes, so there were various
places where the contents of the distribution as defined by
Makefile.am were out of date.
Russ Allbery [Mon, 7 Oct 2013 19:46:33 +0000 (12:46 -0700)]
Adjust the test suite for being run with a weird umask
If the test suite is run with a read-only source distribution, we
create files that aren't writable and then various things go awry.
Force permissions in a few key places to correct the problem.
Russ Allbery [Thu, 3 Oct 2013 04:05:56 +0000 (21:05 -0700)]
Add additional checks for passwords based on principals
The check for passwords based on the principal now check for passwords
formed by reversing or adding numbers before and after each separate
component of the principal. This will catch passwords based on the
realm or components of the realm, which will often catch passwords
based on the name of the local institution.
Russ Allbery [Thu, 3 Oct 2013 02:53:29 +0000 (19:53 -0700)]
Refactor checking for passwords based on principals
Move this code into a separate file in preparation for expanding
the nature of the checks, and following the general principal of
putting each type of check in a separate file.
Russ Allbery [Thu, 3 Oct 2013 02:40:58 +0000 (19:40 -0700)]
Clean up and refactor configuration handling
Each "module" (CDB and CrackLib) now handles its own configuration
and setup, and the internal APIs are more straightforward and
simpler.
The plugin can now be configured without a dictionary, in which case
only the simpler checks available through the new configuration
variables are done. This mode is mostly useful for testing, since
such simple checking can more easily be done via less complex password
strength configurations.
Russ Allbery [Thu, 3 Oct 2013 01:55:51 +0000 (18:55 -0700)]
Separate Kerberos configuration handling into a separate file
Provide a cleaner interface and hard-code the section values to
reduce the number of required arguments. Factor out the realm
handling and properly free the default realms, avoiding memory
leaks.
Russ Allbery [Wed, 2 Oct 2013 06:33:20 +0000 (23:33 -0700)]
Refactor error handling inside the plugin
Add a set of generic functions for setting the error message in
the Kerberos context, move some of the error message strings out
where they can be easily manipulated, and use a similar error
message for CDB matches as the other password error messages.
Russ Allbery [Wed, 2 Oct 2013 05:27:47 +0000 (22:27 -0700)]
Clean up error handling in the Heimdal plugin
Move the code to convert the Kerberos error to an error string
into a separate function and use that to simplify the error
reporting. Remove an unnecessary prefix to the error for
initializing the password strength checking.