Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130515083551.Y0VOL.236728.root@eastrmwml105>
Date: Wed, 15 May 2013 8:35:51 -0400
From:  <jfoug@....net>
To: john-dev@...ts.openwall.com
Subject: Dynamic speed increases, RIPEMD speed up and new Dynamic functions

In the ripemd code (probably in all the sph code), the 'Final' function calls in Init_ctx() after done.  This is a security thing, IF producing code where the results should not be able to be sniffed.  However, for JtR, this is simply wasteful work.  These are now commented out in ripemd_plug.c.  One other small tweak to ripemd320.

In dyna, I added 2 new primitive functions.   These allow input1+=Input1 and input2+=input2.  Before we could do input1+=input2 and input2+=input1 but they could not append themselves. This was useful for functions like gost(gost($p).gost($p)) (which I made 1 of each for the large hash types).  In that case, the format gets the KEYS_IN_INPUT flag, so the keys are in input1, and the large hashes can only do a crypt with output to some input buffer.  So we do a crypt1_output_to_input2.  That needed to be doubled, but there was no way to do that, without using input1 buffer.  If I would have used input1 buffer, then the KEYS_IN_INPUT could not be used, and it would require at least 2 additional buffer copies and clears.  So, in this case, I can keep the keys in input1, crypt with output to input2, then call the input2+=input2 to double it, then the final crypt of input2 to the crypt_out1.

The DYNAMIC document also updated, and pass_gen.pl updated with 'preloads' for all the new hash(hash($p).hash($p)) format types.

Jim.
Download attachment "JtR-bleeding_Dynamic_speed_gains_and_new_functions.patch" of type "application/octet-stream" (67274 bytes)

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.