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