Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 5 Mar 2011 21:35:24 -0600
From: "jfoug" <>
To: <>
Subject: RE: welcome


Thanks for the welcome. This list has been needed for a while.  I will list
the items that I am working on, and the stage of them.

I have made some of the final changes to early md5-gen.  I am now sort of
waiting on the jumbo-13 or the next major version release.  2 of the changes
I have are pretty deep into the john core code.

1. Added several new flags.  

2. Got User name working (one issue that caused me to make some of the other
larger changes to john.

3. Changed md5-gen from a single 'thin' format, into a format that changes
into multiple 'normal' formats.  This was a very large change.  It touched
each format, since to properly pull it off in C, interface changes were
needed in the format.salt() and format.valid() functions.  I had to pass in
a pointer to the object in each of those functions (if this was C++ this
would have been trivial, but in c we had to give a little 'this' help.  This
meant that every format required touching, simply to add the new params to
the valid (and optional salt) function.  The other major changes were to
bench.c and formats.c (the benching and the sanity checking code).

4. Added another new function to the format.  This format is called
'prepare'  In it, this function is passed an array of strings.   This array
is the exact set taken from the passwd file (or any 'input' file).  The
format will then return the ciphertext string.  It can do things like add
user name, domain, etc.  It 'builds' the cihpertext properly FOR the format.
Before, this code was scattered ALL over the loader.c code, and was very
convoluted.  Also, to do things like add user name, domain, etc to a format,
you had to tie your format into one of a couple of places in loader.c code.
Now, each format can be in charge of what data is 'pulled' from the line.
This prepare function is called right before the valid.  The prepare (if
called), returns a char * that is the ciphertext.  By 'default', the
elemnt[1] is returned (the ciphertext). Also if there is only 1 string, and
it is over 13 bytes, it is returned (as was in a recent change to john  to
handle a file of only hash strings)  There were a dozen of so formats I
built a 'prepare' function for. This is how I ended up doing the 'raw' hash
working with md5-gen (as it is also done in NT format, etc).  Also, there
will be the ability to rip any 'part' of the line, and use it (such as
userID, etc).

I am also working on a program which will 'generate' proper md5-gen scripts
(to put into john.conf).  But I have not completed this project yet.  When
done, it will be a stand alone 'linkage' back into john, such as the unique
program is.

All of these changes are things I would like to see get built into the
jumbo, or into john proper (whichever Aleex feels is the best fit).

It would be nice if others who had john patches/upgrades, whether just a
plan actually started, or working, would share just what changes they were
working on.  It would be nice to have an idea what areas are getting worked


>-----Original Message-----
>From: Solar Designer []
>This is our new mailing list for John the Ripper development topics.
> ......

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.