Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 19 Jun 2012 21:56:53 -0400
From:  <jfoug@....net>
To: john-dev@...ts.openwall.com
Cc: Solar Designer <solar@...nwall.com>
Subject: Re: Record Loaded hashes/salts with current interface


---- Solar Designer <solar@...nwall.com> wrote: 
> On Tue, Jun 19, 2012 at 09:25:49PM -0400, jfoug@....net wrote:
> > ---- Solar Designer <solar@...nwall.com> wrote: 
> > 
> > > Maybe I should introduce a clear_cache() format method along with my
> > > other formats interface changes.  It would then be called right before
> > > cracking start.
> > 
> > I like this A LOT.  I just spent some time today working partway through (still some to go), some issues in the dynamic, where I really need something like this.
> 
> What would you use it for?  Maybe your description will affect what I
> call it. ;-)
> 
Within dynamic (which is a really a polymorphic format), if there is no 
-format=dynamic_XXX used, then init is called for every type dynamic, every 
dynamic within the dynamic.conf, and for each 'thin' format.    The format 
itself requires information ABOUT the exact instance of the format structure.  
This instance is stored into a data object within the code of the format, so it 
knows specifics about HOW it is supposed to run. 
 
The problem stems from the 'thin' formats. Within these formats, they call 
init() to properly link into the 'real' underlying format. 
 
However, this leaves the full dynamic format in a bad state (or it can leave it 
in a bad state).  A call such as this, after JtR figures out exactly which 
single format IS going to be used, would eliminate the issues I am having. 
 
 
> > If you do it, PLEASE pass in an pointer to the format object, like in 
valid(), prepare(), init(). 
> 
> Why pass that pointer?  This method would only be callable after init() 
> anyway, so your code for it could use the pointer recorded from init() 
 
i.e. as explained above, 'which' pointer, there are 50 or so of them ;) 
 
> if desired - much like you can do from any other method except for init() 
> and valid().  These two are the only ones that may be called before a 
> preceding call to init().  ...Oh, in jumbo this also applies to prepare(). 
> 
> Well, I do see some value in having the pointer readily available in all 
> format methods, 
 
So do I, but that is because I code in C++ 
 
> but it's not worth the overhead (considering that you 
> can simply store the pointer from init() if you need it elsewhere) and 
> I'd rather not single out clear_cache(). 
> 
> Alexander 

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ