Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Thu, 2 Jan 2014 01:50:55 +0100
From: Frank Dittrich <>
Subject: ./john --test=0 --format=crypt --subformat=\? broken

In earlier versions, the following command would print a list of
supported subformats for --format=crypt to stderr:

$ ./john --test=0 --format=crypt --subformat=not_supported > /dev/null
Subformat unkown to John. Currently supported: descrypt, md5crypt,
bcrypt, sha256crypt, sha512crypt

This command is used by john.bash_completion to support completion for
./john --test=0 --format=crypt --subformat=\? 2>&1

This is now broken on linux-x86-native:

$ ./john --test=0 --format=crypt --subformat=xy
xy not supported on this system

So, the list of supported (or, at least, potentially supported)
subformats is not printed anymore.

When the subformat name specified is shorter than 2 characters, the
error differs between linux-x86-native and linux-x86-64.

$ ./john --test=0 --format=crypt --subformat=\?
Segmentation fault (core dumped)

$ ./john --test=0 --format=crypt --subformat=\?
Testing: crypt, generic crypt(3) ? [?/64]... FAILED (prepare)

I bisected this. The following commit made the functionality needed for
run/john.bash_completion disappear:
commit c5280095cc5828249780a545876ed92d689e5817
Author: magnum <>
Date:   Sat Dec 21 12:42:39 2013 +0100

    Generic crypt: Allow setting actual salt with --subformat, and create
    test vectors on the fly.

Checking out d3a0d54868671bcca2c54eeccf813eb0777a521f I verified that
this version still worked as expected.

The segfault on linux-x86-native should definitely be fixed.

It would be nice to write the list of (potentially) supported subformats
to stderr again.
I could of course hard code the same list in my bash completion script.
But then, someone would need to adjust the bash completion script
everytime a new subformat (sunmd5 was the last one) gets added.
Furthermore, different versions of the bash completion script will be
needed for different john versions. (Currently I try to support all
previous core and jumbo versions with the most recent bash completion
script version.)


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.