|
|
Message-ID: <20150513163721.GA26714@openwall.com>
Date: Wed, 13 May 2015 19:37:21 +0300
From: Aleksey Cherepanov <lyosha@...nwall.com>
To: john-dev@...ts.openwall.com
Subject: Re: get_binary_*() and get_hash_*() methods
On Thu, May 07, 2015 at 05:39:45PM +0300, Solar Designer wrote:
> Aleksey,
>
> I'll skip commenting on things that I think you already figured out.
>
> On Thu, May 07, 2015 at 12:50:33PM +0300, Aleksey Cherepanov wrote:
> > It looks like crypt_all() gets struct db_salt *salt? Is it the whole
> > db? The salt was set up by set_salt() so it should be the db, right?
>
> It's the portion of db corresponding to the current salt.
>
> > Is the db intended to be checked by crypt_all()?
>
> For fast hashes and/or with delegation to another device (such as a
> GPU), it may be.
>
> You can see a dirty hack like this here:
>
> git show 9a6f4f6f69903763e664f03d2adee97486eca9de DES_bs_b.c
I tried to perform lookup in crypt_all() to exit earlier not finishing
the computations. I tried it against raw-sha512, scalar implementation
with 2 instructions reversed (endianity altering and addition of the
state), I compared h variable (it should be the closest result). Also
I replaced salt->index(index) with var & 0xfff (salt->hash_size == 2).
salt argument is 0 in self tests, so I tested it with
--skip-self-tests:
5g 0:00:01:27 3/3 0.05721g/s 1351Kp/s 1351Kc/s 20274KC/s gok3sb
5g 0:00:01:27 3/3 0.05747g/s 1295Kp/s 1295Kc/s 19426KC/s 159518*
#1 is with early exit, #2 without that additional check.
The difference (3%) may be a fluctuation.
Is there any solution to not skip self tests?
There is in opencl_rawmd4_fmt_plug.c :
if (salt != NULL && num_loaded_hashes != salt->count)
load_hash(salt);
How does it pass self tests?
Also there is
pw = salt -> list;
i = 0;
do {
bin = (unsigned int *)pw -> binary;
// Potential segfault if removed
if(bin != NULL) {
[...]
}
} while ((pw = pw -> next)) ;
I had such problem too. Why is there 0 in binary field? Should not
such entries be removed? Is it due to multithreading?
Thanks!
--
Regards,
Aleksey Cherepanov
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.