Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Fri, 01 Mar 2013 09:50:26 -0300
From: Claudio André <claudioandre.br@...il.com>
To: john-dev@...ts.openwall.com
Subject: Re: sizeof(unsigned long)

Em 01-03-2013 06:25, magnum escreveu:
> On 1 Mar, 2013, at 4:03 , Claudio André <claudioandre.br@...il.com> wrote:
>
>> Em 28-02-2013 23:37, magnum escreveu:
>>> Claudio,
>>>
>>> In both opencl_sha256.h and opencl_sha512.h, you define uint64_t like this:
>>>
>>> #define uint64_t unsigned long  //Tip: unsigned long long int failed on compile (AMD).
>>>
>>> Unsigned long will fail on most 32-bit builds and even some 64-bit ones, because it will be just 32-bits. If you need a workaround, this is not sufficient. OTOH if uint32_t is enough, you should obviously use that instead.
>>>
>>> Apparently some people are very fond of 32-bit builds so this must be fixed. Are you sure using long longs caused failures? Sounds weird to me.
>> Well (it should be C99 compliant):
>> Build log: "/tmp/OCLhwRn1e.cl", line 37: error: the type "long long" is nonstandard
>>
>> I care about it only inside OpenCL code. I will try to think about it further.
>>
>> Claudio
>>
> Apparently long long is 128-bit in OpenCL, and long is always 64-bit. I did not know this, I just saw it in the reference. So on GPU side you should keep it as unsigned long but on CPU side it should better be ARCH_WORD_64 (or better, include "stdint.h" for a proper definition of uint64_t)
>
> magnum

I tried this:
https://github.com/claudioandre/JohnTheRipper/commit/94fdc15bf9f92140ee05252b82e2e5fb47e6c0df

Claudio

[ CONTENT OF TYPE text/html SKIPPED ]

Powered by blists - more mailing lists

Your e-mail address:

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