Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Sun, 24 Apr 2016 12:24:58 -0500
From: jfoug <jfoug@...nwall.net>
To: john-users@...ts.openwall.com
Subject: Rules 'C' command, wtf???

         case 'C':
             {
                 int pos = 0;
                 if ((in[0] = conv_tolower[ARCH_INDEX(in[0])]))
                 while (in[++pos])
                     in[pos] =
                         conv_toupper[ARCH_INDEX(in[pos])];
                 in[pos] = 0;
             }
             if (in[0] == 'm' && in[1] == 'C')
                 in[2] = conv_tolower[ARCH_INDEX(in[2])];
             break;

That is straight from core (jumbo is identical).

 From documentation:

c    capitalize
C    lowercase the first character, and uppercase the rest

I do understand the why of the McXyz handling within C but it is not 
documented that way, and there are other cases which would also fall 
into this situation.  I really think this is the wrong place to put this 
and that it would be better handled by a C=0m=1CT2 for this special 
case, vs perverting the behavior of the C rule.  If we have the Mc rule, 
then why note Mac, De, Di ?   I have also seen Aera, Bri and some others 
start doing this common name double capitalizing.  BUT should that be in 
the rule?  I think not.

I did not find this obscure modification to the rule primitive, until I 
started running lots of random rules, looking for duplication.  Well I 
found one which was duplicate, but all of a sudden, I ended up with 
something different, and was I was very surprised.  When I went looking, 
I found this mCX being converted into mCx by the C rule.

-- 
Community volunteer for John the Ripper project.

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.