Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Tue, 8 Jan 2013 10:11:59 +0400
From: Solar Designer <>
Subject: Re: faster fgets implementation by atom

On Tue, Jan 08, 2013 at 10:48:12AM +0530, Dhiru Kholia wrote:
> atom has released source code for a faster fgets implementation named
> "fgets-sse2" (See
> Does it look like something we could re-use in JtR?

I think we should rewrite/cleanup wordlist.c, and use our own large
buffer there.  Right now, we use a large buffer when the wordlist is
loaded entirely into memory, but not for reads from a file when the
wordlist does not fit in the memory buffer.  And our code is dirty.

Once we're properly using a buffer of our own in both cases, it's a
separate question whether we also add SIMD code for locating the '\n'
or/and use memchr() (and hope that it has SIMD code in it?)

We should also add a mode where rules are iterated for each word (rather
than the other way around, like it's done now).  This will reduce the
number of wordlist reads.

Finally, there are some uses of fgets() other than in wordlist mode -
for reading of password files, in the unique program.  I doubt we care
about optimizing these much, although we could.

As to atom's specific implementation, we could use it.  I'd be happier
if it were under a more relaxed license than GPLv2+, though - but GPLv2+
is the minimum that is acceptable for jumbo.


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.