]> eyrie.org Git - kerberos/krb5-strength.git/log
kerberos/krb5-strength.git
10 years agoFix typo in the wordlist-sqlite-t test
Russ Allbery [Tue, 25 Mar 2014 22:28:17 +0000 (15:28 -0700)]
Fix typo in the wordlist-sqlite-t test

10 years agoRefactor krb5-strength-wordlist
Russ Allbery [Tue, 25 Mar 2014 20:06:37 +0000 (13:06 -0700)]
Refactor krb5-strength-wordlist

Separate the filter construction into a separate function and use
a hash for command-line arguments to make perlcritic happier with
the complexity of the main routine.

10 years agoFix perltidy error in wordlist-sqlite test
Russ Allbery [Tue, 25 Mar 2014 19:28:52 +0000 (12:28 -0700)]
Fix perltidy error in wordlist-sqlite test

10 years agoAdd test for krb5-strength-wordlist SQLite generation
Russ Allbery [Tue, 25 Mar 2014 18:40:17 +0000 (11:40 -0700)]
Add test for krb5-strength-wordlist SQLite generation

10 years agoSeparate krb5-strength-wordlist filtering to another test
Russ Allbery [Tue, 25 Mar 2014 18:21:34 +0000 (11:21 -0700)]
Separate krb5-strength-wordlist filtering to another test

Rather than merging the wordlist filtering test with the CDB test,
move it to a different unit test program.  This is probably overkill
for the tiny test that we do, but oh well.  It will make adding more
tests later somewhat easier if we ever do.

10 years agoAdd stopword for heimdal-strength documentation
Russ Allbery [Tue, 25 Mar 2014 18:20:28 +0000 (11:20 -0700)]
Add stopword for heimdal-strength documentation

10 years agoDocument the SQLite requirements in README
Russ Allbery [Tue, 25 Mar 2014 08:11:35 +0000 (01:11 -0700)]
Document the SQLite requirements in README

10 years agoAdd real Autoconf probing for SQLite
Russ Allbery [Tue, 25 Mar 2014 08:07:27 +0000 (01:07 -0700)]
Add real Autoconf probing for SQLite

Change all the defines to look for HAVE_SQLITE instead of
HAVE_SQLITE3, since non-v3 versions are so old that I'm not going
to worry about the naming.  Add an Autoconf probe for SQLite that
tries pkg-config first and falls back on library probing.

10 years agoAdd a full complement of edit distance one SQLite checks
Russ Allbery [Tue, 25 Mar 2014 07:42:29 +0000 (00:42 -0700)]
Add a full complement of edit distance one SQLite checks

Fix one logic error uncovered by the more complete tests, which
produced the wrong result when the edit involved a sequence of
repeated characters.

10 years agoAdd support for SQLite dictionaries
Russ Allbery [Tue, 25 Mar 2014 07:09:39 +0000 (00:09 -0700)]
Add support for SQLite dictionaries

The krb5-strength plugin and heimdal-strength program now support a
SQLite password dictionary.  This format of dictionary can detect any
password within edit distance one of a dictionary word, meaning that
the dictionary word can be formed by adding, removing, or changing a
single character in the password.  A SQLite password dictionary can be
used alone or in combination with any of the other supported
dictionary types.  SQLite dictionary support is based on work by David
Mazières.

10 years agoFix minor perlcritic errors in krb5-strength-wordlist
Russ Allbery [Tue, 25 Mar 2014 06:48:26 +0000 (23:48 -0700)]
Fix minor perlcritic errors in krb5-strength-wordlist

Add a missing stopword for spell checking and ignore the literal
newlines in the SQL code constants.

10 years agoFix CDB krb5-strength-wordlist check for no overwrite behavior
Russ Allbery [Tue, 25 Mar 2014 05:58:07 +0000 (22:58 -0700)]
Fix CDB krb5-strength-wordlist check for no overwrite behavior

We now decline to overwrite an existing file, so adjust the test
suite to remove the generated file between tests.

10 years agoRename cdbmake-wordlist and add SQLite support
Russ Allbery [Tue, 25 Mar 2014 02:16:12 +0000 (19:16 -0700)]
Rename cdbmake-wordlist and add SQLite support

cdbmake-wordlist has been renamed to krb5-strength-wordlist.
Generating CDB dictionaries now requires the -c option; see the
documentation for more information.  A SQLite database of dictionary
words can now be created instead, using the -s option.

10 years agoWipe password copies before freeing them
Russ Allbery [Thu, 6 Mar 2014 19:45:24 +0000 (11:45 -0800)]
Wipe password copies before freeing them

We make a copy of the user's password in several places when doing
checks for passwords based on the user's principal.  Be sure to
wipe those copies with memset before freeing them.

10 years agoUpdate to rra-c-util 5.3 and C TAP Harness 3.0
Russ Allbery [Thu, 6 Mar 2014 03:49:23 +0000 (19:49 -0800)]
Update to rra-c-util 5.3 and C TAP Harness 3.0

Update to rra-c-util 5.3:

* Fix portable/krb5.h build with a C++ compiler.

Update to C TAP Harness 3.0:

* Reopen standard input to /dev/null when running a test list.
* Don't leak extraneous file descriptors to tests.

10 years agoAdd a test suite for heimdal-history
Russ Allbery [Thu, 27 Feb 2014 06:31:42 +0000 (22:31 -0800)]
Add a test suite for heimdal-history

10 years agoFix POD stopwords for heimdal-history
Russ Allbery [Thu, 27 Feb 2014 06:31:30 +0000 (22:31 -0800)]
Fix POD stopwords for heimdal-history

10 years agoFix the -s flag to heimdal-history (alternate quality checker)
Russ Allbery [Thu, 27 Feb 2014 06:22:48 +0000 (22:22 -0800)]
Fix the -s flag to heimdal-history (alternate quality checker)

heimdal-history claimed to support an -s option that specified a
different path to the quality check program to run, but it didn't
actually work.  Add support for it.

10 years agoSupport -q option to heimdal-history to suppress syslog
Russ Allbery [Thu, 27 Feb 2014 06:22:15 +0000 (22:22 -0800)]
Support -q option to heimdal-history to suppress syslog

The -q option to heimdal-history will prevent it from logging to
syslog.  This is needed for the test suite to avoid spamming the
local syslog log.

10 years agoSkip Perl strictness testing if module prereqs are missing
Russ Allbery [Thu, 27 Feb 2014 04:04:54 +0000 (20:04 -0800)]
Skip Perl strictness testing if module prereqs are missing

Modify the standard Perl strictness test, which also checks Perl
scripts for syntax errors, to support a list of prerequisite
modules.  Skip the test if any of those modules can't be loaded,
since they'll otherwise cause failures.  This makes the testing
more robust given that we have some scripts that require a bunch
of Perl modules not needed by the main package.

10 years agoAdd minimum_different configuration option
Russ Allbery [Thu, 27 Feb 2014 02:52:21 +0000 (18:52 -0800)]
Add minimum_different configuration option

A new configuration option, minimum_different, can be set to require
that passwords contain at least that many unique characters.  This can
be used to reject long strings of identical characters or short
patterns, which may pass other checks but still be too easy to guess.

10 years agoRevert "In CDB checks, check all passwords within edit distance one"
Russ Allbery [Wed, 26 Feb 2014 23:15:37 +0000 (15:15 -0800)]
Revert "In CDB checks, check all passwords within edit distance one"

This reverts commit 578cb7d0e48ce43da9785751387614dfc8101b73.
Completing the reversion.

10 years agoRevert "Fix edit distance checking and add a test suite"
Russ Allbery [Wed, 26 Feb 2014 23:15:10 +0000 (15:15 -0800)]
Revert "Fix edit distance checking and add a test suite"

This reverts commit feb69b10461b4dca5d439ace7aaf58640000d8bd.
This is too slow to be usable.  We will be adding an new password
dictionary back-end that will do this check.

10 years agoFix edit distance checking and add a test suite
Russ Allbery [Wed, 12 Feb 2014 04:33:38 +0000 (20:33 -0800)]
Fix edit distance checking and add a test suite

Several errors in the previous implementation caused edit distance
checking to not work properly.  Actually iterate through the
possible characters correctly.

10 years agoIn CDB checks, check all passwords within edit distance one
Russ Allbery [Fri, 7 Feb 2014 23:44:44 +0000 (15:44 -0800)]
In CDB checks, check all passwords within edit distance one

When checking a password against a CDB dictionary, the dictionary will
be checked for all printable ASCII passwords within edit distance one,
in addition to checking the password with first and last characters,
first two characters, and last two characters removed.

10 years agoAdd hash benchmarking support to heimdal-history
Russ Allbery [Fri, 7 Feb 2014 22:25:20 +0000 (14:25 -0800)]
Add hash benchmarking support to heimdal-history

Add an option to benchmark the hash function and find an interation
count that takes a particular amount of time.  Adjust the default
iteration count to match benchmarking done on relatively recent
hardware.

10 years agoAdd password history implementation for Heimdal
Russ Allbery [Wed, 5 Feb 2014 01:30:39 +0000 (17:30 -0800)]
Add password history implementation for Heimdal

A password history implementation for Heimdal is now included.  This
is a separate Perl program, heimdal-history, that stacks with the
external program implementation of strength checking.  It is not
available in the form of a plugin, only as a Heimdal external password
quality check.  (MIT Kerberos provides its own password history
mechanism.)  This program has more extensive Perl module dependencies
than the other programs in this distribution.

10 years agoImported Upstream version 2.2 upstream/2.2
Russ Allbery [Mon, 16 Dec 2013 21:49:53 +0000 (13:49 -0800)]
Imported Upstream version 2.2

10 years agoAdd valgrind.supp to the distribution release/2.2
Russ Allbery [Mon, 16 Dec 2013 21:44:01 +0000 (13:44 -0800)]
Add valgrind.supp to the distribution

10 years agoRelease 2.2
Russ Allbery [Mon, 16 Dec 2013 21:40:06 +0000 (13:40 -0800)]
Release 2.2

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 agoImported Upstream version 2.1 upstream/2.1
Russ Allbery [Fri, 11 Oct 2013 00:09:00 +0000 (17:09 -0700)]
Imported Upstream version 2.1

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 agoImported Upstream version 2.0 upstream/2.0
Russ Allbery [Mon, 7 Oct 2013 23:21:06 +0000 (16:21 -0700)]
Imported Upstream version 2.0

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.