Page MenuHomeFreeBSD

pwd_mkdb: retire legacy v3 db support (-l option)
ClosedPublic

Authored by emaste on Apr 20 2018, 6:41 PM.

Details

Summary

pwd_mkdb has emitted v4 password database records since 2003 (rS113596) in addition to v3, and as of rS283981 by default it emitted only v4. As described in rS283981, retire the -l legacy option.

Additionally, set the db hash to be in network byte order (big-endian) as with other integers in the database. The db(3) functions work with a hash of either endianness. Using a fixed endianness allows us to create a password database that's reproducible regardless of host endianness.

The -B and -L options were originally added to set the endianness of v3 records emitted by pwd_mkdb, but they also set the db hash endiannes and so have been retained temporarily.

Mentioned on the FreeBSD-Current and FreeBSD-Stable lists
https://lists.freebsd.org/pipermail/freebsd-stable/2018-April/088782.html

Diff Detail

Repository
rS FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

emaste created this revision.Apr 20 2018, 6:41 PM
emaste added inline comments.Apr 20 2018, 6:45 PM
usr.sbin/pwd_mkdb/pwd_mkdb.8
31 ↗(On Diff #41698)

Bump .Dd upon commit

usr.sbin/pwd_mkdb/pwd_mkdb.c
129 ↗(On Diff #41698)

Will add a deprecation warning in B and L cases.

delphij accepted this revision.Apr 21 2018, 5:57 AM
This revision is now accepted and ready to land.Apr 21 2018, 5:57 AM
rgrimes accepted this revision.Apr 21 2018, 9:04 AM
lidl accepted this revision.Apr 21 2018, 12:08 PM

Thanks for review. My plan:

  • commit the change to default to BIG_ENDIAN hashes (rS332902)
  • merge deprecation notice in the program, in man page, and the rS332902 BIG_ENDIAN change to stable/11 in the next few of days (with Relnotes: yes)
  • commit this change (additionally with deprecation notice in -B / -L) to HEAD (with Relnotes: yes)
  • remove -B and -L in a few months (with Relnotes: yes)
This revision was automatically updated to reflect the committed changes.