Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Wed, 28 Aug 2013 22:01:20 +0200
From: magnum <john.magnum@...hmail.com>
To: john-dev@...ts.openwall.com
Subject: Re: sha1 opencl bug fixed in bleeding-jumbo

On 28 Aug, 2013, at 20:40 , Sayantan Datta <std2048@...il.com> wrote:
> There were some weird compiler bugs in most cases. I have a workaround in place for all the above formats. However nt-opencl may have some other issues along with compiler bugs.

I'm not sure it was compiler bugs - they were seen on totally different platforms. I do not understand the workarounds you made and more importantly they just made things worse on my gear (Apple/Nvidia).

BTW you should add either 'static' or 'inline' to all non-kernel functions, I get warnings for them now. You can enable printing of non-fatal warnings using -verb=4 or higher, like this:

$ ../run/john -t -form:raw-md5-opencl -verb=4
Device 1: GeForce GT 650M 
Options used: -I ../run/kernels  -DDEVICE_INFO=130 -DAPPLE -cl-strict-aliasing -cl-mad-enable
Build log: <program source>:59:6: warning: no previous prototype for function 'raw_md5_encrypt'
void raw_md5_encrypt(__private uint *W, __private uint4 *hash, int len) {
     ^
<program source>:140:7: warning: no previous prototype for function 'cmp'
 void cmp(__global const uint *loaded_hashes,
      ^
<program source>:225:7: warning: unused variable 'num_keys'
        uint num_keys = get_global_size(0);
             ^
<program source>:336:17: warning: comparison of integers of different signs: 'int' and 'uint' (aka 'unsigned int')
                for (i = 0; i < num_loaded_hashes; i++)
                            ~ ^ ~~~~~~~~~~~~~~~~~
<program source>:341:16: warning: comparison of integers of different signs: 'int' and 'unsigned int'
        for (i = 0; i < (len+3)/4; i++)
                    ~ ^ ~~~~~~~~~
<program source>:435:17: warning: comparison of integers of different signs: 'int' and 'uint' (aka 'unsigned int')
                for (i = 0; i < num_loaded_hashes; i++)
                            ~ ^ ~~~~~~~~~~~~~~~~~
<program source>:440:16: warning: comparison of integers of different signs: 'int' and 'unsigned int'
        for (i = 0; i < (len+3)/4; i++)
                    ~ ^ ~~~~~~~~~
<program source>:540:17: warning: comparison of integers of different signs: 'int' and 'uint' (aka 'unsigned int')
                for (i = 0; i < num_loaded_hashes; i++)
                            ~ ^ ~~~~~~~~~~~~~~~~~
<program source>:545:16: warning: comparison of integers of different signs: 'int' and 'unsigned int'
        for (i = 0; i < (len+3)/4; i++)
                    ~ ^ ~~~~~~~~~

Local worksize (LWS) 64, global worksize (GWS) 8388608
Benchmarking: Raw-MD5-opencl [MD5 OpenCL (inefficient, development use only)]... DONE
Raw:	48395K c/s real, 86778K c/s virtual


> form=nt-opencl                    guesses: 1477 0:00:00:00 DONE : Expected count(s) (1478)  [!!!FAILED!!!]
> .pot CHK:nt-opencl                guesses: 1477 0:00:00:00 DONE  [PASSED]
> 
> Is it possible to isolate the test hashes that did not get cracked ?

You can add the -stoponerror TS option. It will stop as soon as a format fails, and leave a tst.pot file so you can investigate.

magnum

Powered by blists - more mailing lists

Your e-mail address:

Powered by Openwall GNU/*/Linux - Powered by OpenVZ