|
Message-ID: <84fc99dbf937ae21e9b99e083d56c4bf@smtp.hushmail.com> Date: Sun, 17 Jun 2012 17:11:08 +0200 From: magnum <john.magnum@...hmail.com> To: john-dev@...ts.openwall.com Subject: Re: Re: [patch] optional new raw sha1 implemetation It's gone again anyway, Tavis reverted to defining _GNU_SOURCE and using memrchr. Will this work on *BSD? I have no idea. For a Sparc it's no issue since the format won't be included anyway. magnum On 2012-06-17 17:00, jfoug wrote: > Why are we doing a memset here? A simply *ptr=0 is all that is needed. We > simply need to return a ASCIIZ string, changing the 0x80 to 0x00. > > + strrchr((char*)key, 0x80) = 0; > > We are assured that there will be a 0x80 within first 16 bytes, and we have > an array that now is 20 bytes long. > > I also think the key[4] = 0 could be eliminated by doing: static uint32_t > key[5] = {0}; or by using a pointer and calloc(17). > > Jim. > >> @@ -270,7 +270,7 @@ static void sha1_fmt_set_key(char *key, int index) >> >> static char * sha1_fmt_get_key(int index) >> { >> - static uint32_t key[4]; >> + static uint32_t key[5]; >> >> // This function is not hot, we can do this slowly. First, restore >> // endianness. >> @@ -279,6 +279,9 @@ static char * sha1_fmt_get_key(int index) >> key[2] = __builtin_bswap32(M[index][2]); >> key[3] = __builtin_bswap32(M[index][3]); >> >> + // We need a null byte for the strrchr >> + key[4] = 0; >> + >> // Skip backwards until we hit the trailing bit, then remove it. >> memset(strrchr((char*)key, 0x80), 0x00, 1); >> >> >> 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.