Date: Wed, 20 Jun 2012 06:22:35 +0400 From: Solar Designer <solar@...nwall.com> To: john-dev@...ts.openwall.com Subject: Re: Record Loaded hashes/salts with current interface On Tue, Jun 19, 2012 at 09:56:53PM -0400, jfoug@....net 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? Alexander
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.