puppetlabs/puppet — pull request #306 by glarizza (2012-01-05 22:17:25+00:00)
Title: (11293) Set/get passwords from OS X 10.7

OS X version 10.7 implemented a new methodology for storing passwords. Every user now has a plist file in /var/db/dslocal/nodes/Default/users/.plist. This binary plist has a key called 'ShadowHashData' whose value is a binary plist. This nested binary plist in turn has a key called 'SALTED-SHA512' that contains a salted-SHA512 password hash stored in a base64 encoded string. To get/set the password, we need to access this string.

This series of commits implements the methodology for accessing and setting this salted-SHA512 password hash, and also implements spec tests to ensure that functionality isn't broken with future commits.