Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 20 Jun 2012 06:22:35 +0400
From: Solar Designer <>
Subject: Re: Record Loaded hashes/salts with current interface

On Tue, Jun 19, 2012 at 09:56:53PM -0400, wrote:
> 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. 

Yes, I do recall why we had introduced that pointer to object thing.

> 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. 

OK.  I think I'll call it reset().
> > > 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 ;) 

Yet I think you can store the pointer in init() and use it in reset(),
without having it as a parameter to reset().  The "thin" formats will
have their (shared) init() called one by one, so the global pointer
should be right at the time of reset().  No?


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.