]> eyrie.org Git - kerberos/krb5-strength.git/log
kerberos/krb5-strength.git
10 years agoUpdate to rra-c-util 4.12 and C TAP Harness 2.3
Russ Allbery [Mon, 16 Dec 2013 21:35:00 +0000 (13:35 -0800)]
Update to rra-c-util 4.12 and C TAP Harness 2.3

Update to rra-c-util 4.12:

* Properly check the return status of snprintf and friends.

Update to C TAP Harness 2.3:

* Suppress lazy plans and test summaries if the test failed with bail.
* Add warn_unused_result gcc attributes to relevant functions.

10 years agoAdd some (unnecessary) checks to unconfuse clang
Russ Allbery [Mon, 16 Dec 2013 21:14:58 +0000 (13:14 -0800)]
Add some (unnecessary) checks to unconfuse clang

When parsing character class configuration, check for NULL explicitly
so that clang knows that the NULL case is handled properly.

10 years agoFree the plugin in the Heimdal test as well
Russ Allbery [Fri, 13 Dec 2013 23:31:14 +0000 (15:31 -0800)]
Free the plugin in the Heimdal test as well

10 years agoClose file descriptor and memory leak in CrackLib
Russ Allbery [Fri, 13 Dec 2013 21:53:27 +0000 (13:53 -0800)]
Close file descriptor and memory leak in CrackLib

Close a file descriptor and memory leak in the included version of
CrackLib.  This problem was already fixed in CrackLib 2.9.0.

10 years agoRestructure MIT test code to allow for dlclose
Russ Allbery [Fri, 13 Dec 2013 21:51:25 +0000 (13:51 -0800)]
Restructure MIT test code to allow for dlclose

We weren't closing the handle after completion of testing, which
caused noise in valgrind.

10 years agoFree character class restrictions on shutdown
Russ Allbery [Fri, 13 Dec 2013 21:50:51 +0000 (13:50 -0800)]
Free character class restrictions on shutdown

We weren't freeing the new structures for complex character class
restrictions when shutting the module down.

10 years agoAdd rules for running the test suite under valgrind
Russ Allbery [Fri, 13 Dec 2013 21:50:32 +0000 (13:50 -0800)]
Add rules for running the test suite under valgrind

10 years agoAdd tests for configuration syntax errors
Russ Allbery [Fri, 13 Dec 2013 20:50:41 +0000 (12:50 -0800)]
Add tests for configuration syntax errors

This should really be abstracted out into data, but we'll get to
that at some later date.

10 years agoUse Perl6::Slurp instead of File::Slurp
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.

10 years agoUpdate README with more details about new checking rules
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.

10 years agoFlesh out heimdal-strength documentation
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.

10 years agoAdd class requirement documentation and length ranges
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.

10 years agoFix various character class check mistakes, add test suite
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.

10 years agoFirst pass at support for character class rules
Russ Allbery [Thu, 12 Dec 2013 06:10:27 +0000 (22:10 -0800)]
First pass at support for character class rules

This compiles, but it's not tested yet.  It supports a list of
required character classes, but not the restriction to particular
password lengths yet.

10 years agoRename the class test set to letter
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.

10 years agoPut F<> around krb5.conf in heimdal-strength docs
Russ Allbery [Thu, 12 Dec 2013 05:53:06 +0000 (21:53 -0800)]
Put F<> around krb5.conf in heimdal-strength docs

Test::Spelling doesn't let me use stopwords to remove it from the
failures, and this is arguably more correct anyway.

10 years agoMinor coding style fix to the heimdal-strength test
Russ Allbery [Sat, 7 Dec 2013 20:01:45 +0000 (12:01 -0800)]
Minor coding style fix to the heimdal-strength test

10 years agoDon't use sysbail to report libdl errors in test suite
Russ Allbery [Thu, 5 Dec 2013 01:50:58 +0000 (17:50 -0800)]
Don't use sysbail to report libdl errors in test suite

10 years agoFix alphabetization in Kerberos function probes
Russ Allbery [Thu, 5 Dec 2013 01:39:33 +0000 (17:39 -0800)]
Fix alphabetization in Kerberos function probes

10 years agoFix leading comment in tests/data/make-krb5-conf
Russ Allbery [Thu, 5 Dec 2013 01:33:01 +0000 (17:33 -0800)]
Fix leading comment in tests/data/make-krb5-conf

It wasn't correctly describing the new capability for adding
arbitrary key/value pairs.

10 years agoSwitch to LT_INIT from AC_PROG_LIBTOOL
Russ Allbery [Sat, 16 Nov 2013 00:20:16 +0000 (16:20 -0800)]
Switch to LT_INIT from AC_PROG_LIBTOOL

The latter is deprecated.

10 years agoRecenter maintainer line in README
Russ Allbery [Mon, 4 Nov 2013 21:19:04 +0000 (13:19 -0800)]
Recenter maintainer line in README

10 years agoAdd NEWS entry for cdbmake-wordlist improvements
Russ Allbery [Mon, 4 Nov 2013 21:18:49 +0000 (13:18 -0800)]
Add NEWS entry for cdbmake-wordlist improvements

10 years agoAdd wordlist filter mode to cdbmake-wordlist
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.

10 years agoSupport filtering wordlists by regex in cdbmake-wordlist
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.

10 years agoSupport a maximum word length in cdbmake-wordlist
Russ Allbery [Mon, 4 Nov 2013 18:59:19 +0000 (10:59 -0800)]
Support a maximum word length in cdbmake-wordlist

Add a new -L (--max-length) option that filters out words longer
than a particular length.

10 years agoChange my email address to eagle@eyrie.org
Russ Allbery [Mon, 4 Nov 2013 18:50:13 +0000 (10:50 -0800)]
Change my email address to eagle@eyrie.org

10 years agoFix typo in some of the copyright notices
Russ Allbery [Tue, 8 Oct 2013 05:32:30 +0000 (22:32 -0700)]
Fix typo in some of the copyright notices

10 years agoRelease 2.1 release/2.1
Russ Allbery [Fri, 11 Oct 2013 00:06:30 +0000 (17:06 -0700)]
Release 2.1

10 years agoAdd NEWS entries for TinyCDB build fixes
Russ Allbery [Tue, 8 Oct 2013 19:12:30 +0000 (12:12 -0700)]
Add NEWS entries for TinyCDB build fixes

10 years agoUpdate some of the password rejection error messages
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.

10 years agoSimplify TinyCDB Autoconf probes
Russ Allbery [Tue, 8 Oct 2013 18:33:40 +0000 (11:33 -0700)]
Simplify TinyCDB Autoconf probes

Refactor common code and ensure that rra_use_CDB is always set
properly.

10 years agoFix compilation without TinyCDB
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.

10 years agoFix handling of --with-tinycdb
Russ Allbery [Tue, 8 Oct 2013 18:19:40 +0000 (11:19 -0700)]
Fix handling of --with-tinycdb

Avoid adding -Lyes/lib and -Iyes/include to flags when given
--with-tinydb.  All this should do is make building with TinyCDB
mandatory.

10 years agoFlesh out test suite requirements in README
Russ Allbery [Tue, 8 Oct 2013 18:04:42 +0000 (11:04 -0700)]
Flesh out test suite requirements in README

10 years agoUpdate BLURB in README based on the new Debian description
Russ Allbery [Tue, 8 Oct 2013 05:23:26 +0000 (22:23 -0700)]
Update BLURB in README based on the new Debian description

The previous version was rather outdated and didn't talk about
all of the plugin's capabilities.

10 years agoFix distribution contents for the release release/2.0
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.

10 years agoRemove now-unneeded strlcat and strlcpy .gitignore entries
Russ Allbery [Mon, 7 Oct 2013 23:15:13 +0000 (16:15 -0700)]
Remove now-unneeded strlcat and strlcpy .gitignore entries

These tests are no longer included.

10 years agoFix logic to find the test CDB database
Russ Allbery [Mon, 7 Oct 2013 23:09:35 +0000 (16:09 -0700)]
Fix logic to find the test CDB database

This is in the source package, not built dynamically as part of
the test suite, so we need to use test_file_path to find it.

10 years agoAdjust the test suite for being run with a weird umask
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.

10 years agoRelease 2.0
Russ Allbery [Mon, 7 Oct 2013 19:37:24 +0000 (12:37 -0700)]
Release 2.0

10 years agoRewrite LICENSE in Debian copyright-format 1.0
Russ Allbery [Thu, 3 Oct 2013 04:33:10 +0000 (21:33 -0700)]
Rewrite LICENSE in Debian copyright-format 1.0

10 years agoFix copyright dates and cracklib/LICENCE reference in README
Russ Allbery [Thu, 3 Oct 2013 04:32:52 +0000 (21:32 -0700)]
Fix copyright dates and cracklib/LICENCE reference in README

10 years agoRemove a cdbmake-wordlist comment that confused build-license
Russ Allbery [Thu, 3 Oct 2013 04:32:31 +0000 (21:32 -0700)]
Remove a cdbmake-wordlist comment that confused build-license

One copyright statemnet per file works better.

10 years agoAdd a license statement to the heimdal-strength documentation
Russ Allbery [Thu, 3 Oct 2013 04:32:21 +0000 (21:32 -0700)]
Add a license statement to the heimdal-strength documentation

10 years agoAdd more standard sections to README
Russ Allbery [Thu, 3 Oct 2013 04:20:35 +0000 (21:20 -0700)]
Add more standard sections to README

Add SUPPORT, SOURCE REPOSITORY, and LICENSE sections.

10 years agoFix a clang analysis error in the CDB code
Russ Allbery [Thu, 3 Oct 2013 04:09:45 +0000 (21:09 -0700)]
Fix a clang analysis error in the CDB code

The code was actually safe, but it wasn't clear enough for clang.
Add an explicit initialization to make the code clearer.

10 years agoAdd additional checks for passwords based on principals
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.

10 years agoRename generic tests to principal tests
Russ Allbery [Thu, 3 Oct 2013 03:07:08 +0000 (20:07 -0700)]
Rename generic tests to principal tests

They're actually tests for passwords based on a principal, so name
them accordingly.

10 years agoDocument that checking against the principal is always done
Russ Allbery [Thu, 3 Oct 2013 02:58:17 +0000 (19:58 -0700)]
Document that checking against the principal is always done

Even if there are no dictionaries configured, we still check whether
the password is based on the principal.

10 years agoChange strength_check to take a saner argument order
Russ Allbery [Thu, 3 Oct 2013 02:56:58 +0000 (19:56 -0700)]
Change strength_check to take a saner argument order

It makes more sense to pass in the principal before the password.
Change all the internal APIs to use that order.

10 years agoRefactor checking for passwords based on principals
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.

10 years agoClean up and refactor configuration handling
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.

10 years agoUse krb5_xfree for krb5_free_default_realm on Heimdal
Russ Allbery [Thu, 3 Oct 2013 02:00:34 +0000 (19:00 -0700)]
Use krb5_xfree for krb5_free_default_realm on Heimdal

The documentation says to use free, but this doesn't make sense
since the memory is allocated inside the Kerberos library.

10 years agoSeparate Kerberos configuration handling into a separate file
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.

10 years agoRemove unnecessary includes in plugin/cracklib.c
Russ Allbery [Thu, 3 Oct 2013 01:55:41 +0000 (18:55 -0700)]
Remove unnecessary includes in plugin/cracklib.c

10 years agoRefactor the CrackLib code into a separate source file
Russ Allbery [Thu, 3 Oct 2013 01:17:12 +0000 (18:17 -0700)]
Refactor the CrackLib code into a separate source file

Also rename api.c to general.c, which more accurately reflects the
current contents of that file.

10 years agoMove CDB initialization into plugin/cdb.c
Russ Allbery [Wed, 2 Oct 2013 06:43:40 +0000 (23:43 -0700)]
Move CDB initialization into plugin/cdb.c

Move a bit farther down the path of having the different portions
of strength checking properly separated out.

10 years agoRemove duplicate definition of KADM5_PASS_Q_GENERIC
Russ Allbery [Wed, 2 Oct 2013 06:35:57 +0000 (23:35 -0700)]
Remove duplicate definition of KADM5_PASS_Q_GENERIC

This is now handled by portable/kadmin.h.

10 years agoRefactor error handling inside the plugin
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.

10 years agoClean up error handling in the Heimdal plugin
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.

10 years agoRename the internal plugin functions
Russ Allbery [Wed, 2 Oct 2013 05:15:24 +0000 (22:15 -0700)]
Rename the internal plugin functions

Use a standard prefix of strength_ rather than pwcheck_.  This
matches the name of the plugin and is somewhat more informative.

10 years agoChange the default plugin install path and name
Russ Allbery [Wed, 2 Oct 2013 05:02:33 +0000 (22:02 -0700)]
Change the default plugin install path and name

The default installation path for this plugin is now
/usr/local/lib/krb5/plugins/pwqual/strength.so (for both MIT and
Heimdal), assuming a --libdir setting of /usr/local/lib.  This may
require updates to the Kerberos KDC configuration or moving the plugin
when upgrading from earlier versions.

10 years agoFix Heimdal pwcheck header probing
Russ Allbery [Wed, 2 Oct 2013 04:44:40 +0000 (21:44 -0700)]
Fix Heimdal pwcheck header probing

The configure probe was never going to work properly.  Fix that by
adding the correct includes.  Drop the fallback for versions of
Heimdal without the include file installed, which is not required
for Debian squeeze and later.

10 years agoHide internal functions
Russ Allbery [Wed, 2 Oct 2013 04:34:39 +0000 (21:34 -0700)]
Hide internal functions

Mark all the internal plugin functions and all the CrackLib functions
as hidden.

10 years agoMark the portable_dummy symbol as hidden
Russ Allbery [Wed, 2 Oct 2013 04:33:31 +0000 (21:33 -0700)]
Mark the portable_dummy symbol as hidden

This was leaking out of shared libraries that used libportable.
Whoops.

10 years agoRemove strlcat and strlcpy portable replacements
Russ Allbery [Wed, 2 Oct 2013 04:23:38 +0000 (21:23 -0700)]
Remove strlcat and strlcpy portable replacements

I no longer use either function in this package, so there's no
need to include the replacements and the code to test them.

10 years agoReorganize the plugin tests
Russ Allbery [Wed, 2 Oct 2013 04:20:36 +0000 (21:20 -0700)]
Reorganize the plugin tests

Make the organization of the test suite reflect the organization
of the source code.

10 years agoUpdate EXTRA_DIST for file changes
Russ Allbery [Wed, 2 Oct 2013 04:16:17 +0000 (21:16 -0700)]
Update EXTRA_DIST for file changes

Various things have been moved around and a bunch of new files
added.  Update EXTRA_DIST accordingly.

10 years agoMove heimdal-strength test
Russ Allbery [Wed, 2 Oct 2013 04:15:58 +0000 (21:15 -0700)]
Move heimdal-strength test

Now that the program is in tools, move the test accordingly.

10 years agoRename plugin/api.h to plugin/internal.h
Russ Allbery [Wed, 2 Oct 2013 04:09:29 +0000 (21:09 -0700)]
Rename plugin/api.h to plugin/internal.h

This no longer defines the default API, since that is now an
internal implementation detail.  Rename the header file to match
the sort of thing I do with other projects.

10 years agoUse krb5_free_string to free krb5_appdefault_string results
Russ Allbery [Wed, 2 Oct 2013 04:04:13 +0000 (21:04 -0700)]
Use krb5_free_string to free krb5_appdefault_string results

After parsing a numeric setting, free the string returned by
krb5_appdefault_string with krb5_free_string instead of free.

10 years agoAdd configurable checks for ASCII and for non-letters
Russ Allbery [Wed, 2 Oct 2013 03:51:55 +0000 (20:51 -0700)]
Add configurable checks for ASCII and for non-letters

New boolean settings require_ascii_printable and require_non_letter
are supported in the krb5-strength setting of [appdefaults] in
krb5.conf.  The former rejects passwords containing characters other
than printable ASCII characters (including space), and the latter
requires that passwords contain at least one character that is not a
letter (upper or lower case) or a space.

10 years agoSupport UTF-8 data in password test cases
Russ Allbery [Wed, 2 Oct 2013 03:43:41 +0000 (20:43 -0700)]
Support UTF-8 data in password test cases

In make-c-data, when generating C source from the JSON data,
properly encode UTF-8 strings.  This still requires a C compiler
that can handle raw UTF-8 input, but hopefully that won't be a
serious portability issue.

10 years agoAdd support for enforcing a minimum password length
Russ Allbery [Wed, 2 Oct 2013 00:55:30 +0000 (17:55 -0700)]
Add support for enforcing a minimum password length

This is configured using the minimum_length setting in krb5.conf
in the krb5-strength section of [appdefaults].  This length check
is independent of CrackLib's checks.

10 years agoProbe for setrlimit for the xmalloc tests
Russ Allbery [Wed, 2 Oct 2013 00:27:45 +0000 (17:27 -0700)]
Probe for setrlimit for the xmalloc tests

Testing the xmalloc utility library requires knowing whether
setrlimit exists.  Add the check to configure.

10 years agoSeparate generic tests from CrackLib tests
Russ Allbery [Tue, 1 Oct 2013 22:03:03 +0000 (15:03 -0700)]
Separate generic tests from CrackLib tests

Move the generic password tests into a separate file so that
they can be run independent from the CrackLib tests, and run
them for both CrackLib and CDB configurations.

10 years agoMove password test data into a subdirectory
Russ Allbery [Tue, 1 Oct 2013 21:21:09 +0000 (14:21 -0700)]
Move password test data into a subdirectory

The number of files is only going to grow, so move it into a
subdirectory and use a loop in autogen to generate C versions of
every file to make it easier to add new blocks of test data.

10 years agoAdd Perl testing from rra-c-util
Russ Allbery [Tue, 1 Oct 2013 21:07:11 +0000 (14:07 -0700)]
Add Perl testing from rra-c-util

Delete the old, simple POD tests that only looked at the docs for
heimdal-strength and add full POD and Perl testing using the
generic tests from rra-c-util.

10 years agoAdd missing POD spelling stopword for cdbmake-wordlist
Russ Allbery [Tue, 1 Oct 2013 21:06:53 +0000 (14:06 -0700)]
Add missing POD spelling stopword for cdbmake-wordlist

10 years agoFix style problems in the heimdal/external test
Russ Allbery [Tue, 1 Oct 2013 21:06:26 +0000 (14:06 -0700)]
Fix style problems in the heimdal/external test

Some style and formatting issues crept in via various rewrites.
Clean those up again.

10 years agoFix naming of cdbmake-wordlist test
Russ Allbery [Tue, 1 Oct 2013 20:58:03 +0000 (13:58 -0700)]
Fix naming of cdbmake-wordlist test

We've been using -t instead of .t since this is an Automake
project.  Be consistent.

10 years agoAdd test suite for util/messages-krb5
Russ Allbery [Tue, 1 Oct 2013 20:52:30 +0000 (13:52 -0700)]
Add test suite for util/messages-krb5

10 years agoMove heimdal-strength to the tools directory
Russ Allbery [Tue, 1 Oct 2013 20:49:35 +0000 (13:49 -0700)]
Move heimdal-strength to the tools directory

Try to keep the proliferation of directories to a minimum and put
all the command-line tools in the same directory.

10 years agoRenamed cdb.m4 to tinycdb.m4
Russ Allbery [Tue, 1 Oct 2013 06:19:58 +0000 (23:19 -0700)]
Renamed cdb.m4 to tinycdb.m4

Reflect the contents more accurately in the name.

10 years agoAdd support for checking against a CDB database
Russ Allbery [Tue, 1 Oct 2013 06:15:51 +0000 (23:15 -0700)]
Add support for checking against a CDB database

Add support for building with TinyCDB and then checking passwords
against a CDB database.  There is a new password_dictionary_cdb
krb5.conf configuration setting that configures a CDB directory to
use.  The tests with a CDB dictionary are much simpler: passwords are
rejected if found in the dictionary either literally, with one or two
characters removed from the start or end, or with one character
removed from both the start and the end.  Both a CrackLib and a CDB
dictionary can be specified to check both dictionaries.

10 years agoInclude strerror results in Kerberos error messages
Russ Allbery [Tue, 1 Oct 2013 03:46:40 +0000 (20:46 -0700)]
Include strerror results in Kerberos error messages

When reporting a Kerberos error message from a system call failure,
include the strerror results in the message.

10 years agoAdd cdbmake-wordlist test to the default test suite
Russ Allbery [Tue, 1 Oct 2013 03:46:23 +0000 (20:46 -0700)]
Add cdbmake-wordlist test to the default test suite

10 years agoAdd a test suite for cdbmake-wordlist
Russ Allbery [Tue, 1 Oct 2013 02:17:56 +0000 (19:17 -0700)]
Add a test suite for cdbmake-wordlist

10 years agoAdd initial version of cdbmake-wordlist tool
Russ Allbery [Tue, 1 Oct 2013 01:38:26 +0000 (18:38 -0700)]
Add initial version of cdbmake-wordlist tool

This creates a *.cdb file from a wordlist and will be used for the
new cdb support coming to krb5-strength.  For right now, there's no
test suite.

10 years agoRemove appdefaults realm support for MIT from TODO
Russ Allbery [Sat, 28 Sep 2013 18:47:40 +0000 (11:47 -0700)]
Remove appdefaults realm support for MIT from TODO

This was completed.

10 years agoUse the Kerberos context to set the error message
Russ Allbery [Fri, 27 Sep 2013 05:21:35 +0000 (22:21 -0700)]
Use the Kerberos context to set the error message

The plugin now sets the Kerberos error message in the context to pass
error information, resulting in higher-quality error reporting in the
MIT Kerberos plugin.

10 years agoUse die_krb5 in the external password checker
Russ Allbery [Fri, 27 Sep 2013 04:36:31 +0000 (21:36 -0700)]
Use die_krb5 in the external password checker

This is pointless at the moment, since we're only using it for
failures in krb5_init_context, but it will be more useful later.

10 years agoMove krb5.conf configuration into the plugin
Russ Allbery [Wed, 25 Sep 2013 06:59:02 +0000 (23:59 -0700)]
Move krb5.conf configuration into the plugin

Load the configuration inside the plugin when we initialize it,
and pass in a Kerberos context to the plugin so that this is
possible.  Obtain or pass in an existing Kerberos context in the
places where we weren't already doing so.

This loses some more detailed error reporting, particularly around
non-existent configured dictionaries, which will be restored later
by using the Kerberos error message.

10 years agoFix memory management in the MIT plugin test
Russ Allbery [Wed, 25 Sep 2013 06:58:40 +0000 (23:58 -0700)]
Fix memory management in the MIT plugin test

We were freeing one of our testing paths before using it again.

10 years agoRemove some reachable leaks, static data in cracklib, tests
Russ Allbery [Wed, 25 Sep 2013 06:00:44 +0000 (23:00 -0700)]
Remove some reachable leaks, static data in cracklib, tests

Don't attempt an optimization where we keep the last block of
the dictionary in memory to answer questions, since each call
may use a different dictionary.  Close the password dictionary
after each lookup (although this doesn't recover all of the
memory due to more static data elsewhere).

Free more memory at the end of the MIT plugin test.

10 years agoUse standard CrackLib tools when not using embedded
Russ Allbery [Wed, 25 Sep 2013 04:43:36 +0000 (21:43 -0700)]
Use standard CrackLib tools when not using embedded

When building with the system CrackLib, use the standard tools to
build the test dictionary instead of building the embedded code
just to use the packer.

Also use the tools to build the dictionary so that the word list
in the test suite doesn't have to be sorted.

10 years agoRemove explicit CPPFLAGS setting for the plugin
Russ Allbery [Wed, 25 Sep 2013 02:27:57 +0000 (19:27 -0700)]
Remove explicit CPPFLAGS setting for the plugin

This is handled by the global setting.

10 years agoUpdate EXTRA_DIST and libportable sources
Russ Allbery [Wed, 25 Sep 2013 02:27:25 +0000 (19:27 -0700)]
Update EXTRA_DIST and libportable sources

Add the new header files to libportable so that they're included
in the distribution, and remove obsolete files from EXTRA_DIST.

10 years agoMake the way too short error consistent with CrackLib
Russ Allbery [Wed, 25 Sep 2013 02:26:21 +0000 (19:26 -0700)]
Make the way too short error consistent with CrackLib

Current CrackLib returns "it is WAY too short" rather than
"it's WAY too short".  Be consistent so that more of the test
suite will pass correctly.