|
Message-ID: <2C5E01D3E9D14AB2986B6E1384614E04@D9VGLK61> Date: Sat, 7 May 2011 14:54:33 -0500 From: "JimF" <jfoug@....net> To: <john-dev@...ts.openwall.com> Subject: Re: Plumbing changes [moved from john-users] From: "magnum" Sent: Saturday, May 07, 2011 1:59 PM Subject: Re: [john-dev] Plumbing changes [moved from john-users] > On 2011-05-07 20:14, jfoug wrote: >> I wonder if this could be done: >> > > That's a cool idea. Just drop a new format file named *_fmt.c in the src > directory and rebuild. It doesn't even sound too hard to accomplish. I did not figure this would be 'too' hard. However, there are a couple gotcha's along the way. There may be certain order dependancies (md5_gen has to be init() prior to any thin format using it). Also, the order they are init, is the 'precendence' used for finding which hash's valid is the one used, if the user does not supply a -format=X param. Thus, we would want to keep some form of consistancy (at least where it matters). It may also be that the buildin's are in the code, and the make rule only builds format declarations and definitions for non-core formats. It may be that a true script is the best way to go about building these code include files. Likely, the formats would have to have certain 'core' values, in code in certain 'exact' ways. Like #define FORMAT_NAME "name" might be one of them. We may also want to do things like have: #define FORMAT_LEVEL "CORE" #define FORMAT_LEVEL "STABLE" #define FORMAT_LEVEL "EXPERIMENTAL" #define FORMAT_LEVEL "PRIVATE_BUILDER_NAME" Then, only proper formats could be included in the build. Thus, experimentals could be in the source tree, but if the user only wants a 'stable' release, then only the core and stable formats would be included. Again, I think it is ./configure which usually does stuff like this (with -enable=xyz -disable=yzx ...), but this would give us some of this, with not to huge of a change. > For Makefile, listing object files is easy: > $ ls -1 *_fmt.c | sed 's/\.c$/.o/' > AFS_fmt.o > BFEgg_fmt.o > BF_fmt.o > ... > > For the "extern struct fmt_main" and "john_register_one()", this rough > example line catches all 51 formats I had there: > $ grep struct *_fmt.c|grep =|grep fmt_main|grep -v pFmt|awk '{print $3}' > fmt_AFS > fmt_BFEgg > fmt_BF > ...
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.