====
Todo
====

Internal Changes
----------------
* C extensions to speed up some implementations
* py3k support

Other Hash Formats
------------------
* Mac OSX hash formats

* SCrypt
  http://www.tarsnap.com/scrypt.html
  https://bitbucket.org/mhallin/py-scrypt/src

Notes on various hash formats
=============================

Cisco PIX
---------
sample hashes found - http://www.freerainbowtables.com/phpBB3/viewtopic.php?f=2&t=1441

  8Ry2YjIyt7RRXU24 ''
  2KFQnbNIdI.2KYOU 'cisco'
  hN7LzeyYjw12FSIU 'john'/'cisco'
  7DrfeZ7cyOj/PslD 'jack'/'cisco'

alg
  secret+user
  truncate/pad-right-null to 16 bytes
  md5().digest()
  h64 encode

todo: get some samples w/ passwords longer than 16 chars to verify

Mac OSX
-------
Summary of info from http://www.dribin.org/dave/blog/archives/2006/04/28/os_x_passwords_2/

osx < 10.2 used /etc/passwd w/ DES-CRYPT

osx 10.3 hash file (passwd "macintosh")

D47F3AF827A48F7DFA4F2C1F12D68CD6 <-- nthash
08460EB13C5CA0C4CA9516712F7FED95 <-- lmhash
01424f955c11f92efef0b79d7fa3fb6be56a9f99 <-- sha1

osx 10.4 hash file (passwd "macintosh")
00000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
000000000E6A48F765D0FFFFF6247FA80D748E615F91DD0C7431E4D9000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000000000000000\
0000000000000000000000000000000000000000

offset 0-64 - nt hash + lm hash OR all zeros
offset 64 - 40 chars - raw sha1 password OR all zeroes (if from upgraded from 10.3)
offset 169-216 ( 48 chars) - salted sha1 hash - unhex first 8 chars + password | sha1 -> hexdigest
