Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b006d8ba948bd25fa7489632364961d2@smtp.hushmail.com>
Date: Mon, 19 Oct 2015 23:40:12 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: db built from test vectors

On 2015-10-19 22:40, Solar Designer wrote:
> On Mon, Oct 19, 2015 at 12:57:10AM +0200, magnum wrote:
>> Since July, we always pass the real db to reset() if we have one. This
>> was added for Agnieszka. With the above we could pass the fake db when
>> we don't have any db. I guess we also need to pass db->salts in all
>> crypt_all() calls - or perhaps only in benchmark. If we do so in
>> self-test before a real crack run, we probably need to reset(fake db)
>> before self-tests and reset(real db) after it. But that may collide with
>> Agnieszka's needs, I'm not sure.
>
> This would be a change to how the formats interface is defined, as IIRC
> it would go against what the comments in formats.h currently say.

I think it wouldn't: Both for reset() and crypt_all(), it says "may" be 
NULL before self-test or benchmark. Though if we end up always passing a 
"fake db" before self-test, we should definitely say so for clarity.

>> Perhaps we should not change test/benchmark at all but instead use this
>> feature in format code as needed. Sayantan's formats could set a
>> format-global pointer to fake_db in reset(), and when crypt_all is
>> called with a NULL salt, we can use fake_db->salt instead.
>
> This might be a hack, but it does appear to avoid changing the formats
> interface definition.

We'll probably start with format-local hacks first anyway, and see how 
ugly it gets. I'll report or revisit this issue later as needed.


On a related note we now support "-test -mask" which results in a mask 
mode benchmark. It doesn't yet work for descrypt-opencl or lm-opencl but 
it works fine for most (maybe all) others. If you specify a mask 
(including a hybrid one) you will see how such a mask (eg. a short 
-mask:?d) will perform.
This "fake db" thing will make it easier to proceed, and eventually we 
should end up also self-testing with GPU-side mask active where needed. 
Right now, "-test -mask" implies "-skip-self-test" and real-crack runs 
with GPU-side mask will self-test without it (possibly letting bugs slip 
through).

Thanks,
magnum

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.