Skip to content

split() vs. prepare()

magnum edited this page Nov 14, 2015 · 13 revisions

Should they be in prepare, or in split? What are the nuances and differences?

http://www.openwall.com/lists/john-dev/2014/06/24/1 http://www.openwall.com/lists/john-dev/2011/07/06/8

Some key differences (apart from the crucial fact prepare() is the only one function that can see other input file fields than "ciphertext"):

  • pot file lines doesn't go through prepare(). However, they DO go through split() even though it might seem unnecessary. Among other things, this means if you add a tag to bare hashes in prepare(), untagged hashes from a pot file will not be recognized. If you do it in split(), they will.
  • if things are converted in prepare(), valid() only needs to accept the canonical format.
  • If things are converted in split(), valid() needs to accept both/all formats