1*0Sstevel@tonic-gate /* 2*0Sstevel@tonic-gate * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 3*0Sstevel@tonic-gate * Use is subject to license terms. 4*0Sstevel@tonic-gate */ 5*0Sstevel@tonic-gate 6*0Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 7*0Sstevel@tonic-gate 8*0Sstevel@tonic-gate /* 9*0Sstevel@tonic-gate * This program is copyright Alec Muffett 1993. The author disclaims all 10*0Sstevel@tonic-gate * responsibility or liability with respect to it's usage or its effect 11*0Sstevel@tonic-gate * upon hardware or computer systems, and maintains copyright as set out 12*0Sstevel@tonic-gate * in the "LICENCE" document which accompanies distributions of Crack v4.0 13*0Sstevel@tonic-gate * and upwards. 14*0Sstevel@tonic-gate */ 15*0Sstevel@tonic-gate 16*0Sstevel@tonic-gate #include "packer.h" 17*0Sstevel@tonic-gate 18*0Sstevel@tonic-gate 19*0Sstevel@tonic-gate static char *r_destructors[] = { 20*0Sstevel@tonic-gate ":", /* noop - must do this to test raw word. */ 21*0Sstevel@tonic-gate "[", /* trimming leading/trailing junk */ 22*0Sstevel@tonic-gate "]", 23*0Sstevel@tonic-gate "[[", 24*0Sstevel@tonic-gate "]]", 25*0Sstevel@tonic-gate "[[[", 26*0Sstevel@tonic-gate "]]]", 27*0Sstevel@tonic-gate 28*0Sstevel@tonic-gate "/?p@?p", /* purging out punctuation/symbols/junk */ 29*0Sstevel@tonic-gate "/?s@?s", 30*0Sstevel@tonic-gate "/?X@?X", 31*0Sstevel@tonic-gate /* attempt reverse engineering of password strings */ 32*0Sstevel@tonic-gate "/$s$s", 33*0Sstevel@tonic-gate "/$s$s/0s0o", 34*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a", 35*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e", 36*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s", 37*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i", 38*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l", 39*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i/4s4a", 40*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i/4s4h", 41*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l/4s4a", 42*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l/4s4h", 43*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4a", 44*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4h", 45*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4a", 46*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4h", 47*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1i", 48*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1l", 49*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1i/4s4a", 50*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1i/4s4h", 51*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1l/4s4a", 52*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1l/4s4h", 53*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4a", 54*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4h", 55*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4a", 56*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4h", 57*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s", 58*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1i", 59*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1l", 60*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1i/4s4a", 61*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1i/4s4h", 62*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1l/4s4a", 63*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1l/4s4h", 64*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4a", 65*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4h", 66*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4a", 67*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4h", 68*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1i", 69*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1l", 70*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1i/4s4a", 71*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1i/4s4h", 72*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1l/4s4a", 73*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1l/4s4h", 74*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4a", 75*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4h", 76*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4a", 77*0Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4h", 78*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e", 79*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s", 80*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1i", 81*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1l", 82*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1i/4s4a", 83*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1i/4s4h", 84*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1l/4s4a", 85*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1l/4s4h", 86*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4a", 87*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4h", 88*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4a", 89*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4h", 90*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1i", 91*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1l", 92*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1i/4s4a", 93*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1i/4s4h", 94*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1l/4s4a", 95*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1l/4s4h", 96*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4a", 97*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4h", 98*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4a", 99*0Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4h", 100*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s", 101*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1i", 102*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1l", 103*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1i/4s4a", 104*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1i/4s4h", 105*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1l/4s4a", 106*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1l/4s4h", 107*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4a", 108*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4h", 109*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4a", 110*0Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4h", 111*0Sstevel@tonic-gate "/$s$s/0s0o/1s1i", 112*0Sstevel@tonic-gate "/$s$s/0s0o/1s1l", 113*0Sstevel@tonic-gate "/$s$s/0s0o/1s1i/4s4a", 114*0Sstevel@tonic-gate "/$s$s/0s0o/1s1i/4s4h", 115*0Sstevel@tonic-gate "/$s$s/0s0o/1s1l/4s4a", 116*0Sstevel@tonic-gate "/$s$s/0s0o/1s1l/4s4h", 117*0Sstevel@tonic-gate "/$s$s/0s0o/4s4a", 118*0Sstevel@tonic-gate "/$s$s/0s0o/4s4h", 119*0Sstevel@tonic-gate "/$s$s/0s0o/4s4a", 120*0Sstevel@tonic-gate "/$s$s/0s0o/4s4h", 121*0Sstevel@tonic-gate "/$s$s/2s2a", 122*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e", 123*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s", 124*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1i", 125*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1l", 126*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1i/4s4a", 127*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1i/4s4h", 128*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1l/4s4a", 129*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1l/4s4h", 130*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4a", 131*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4h", 132*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4a", 133*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4h", 134*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1i", 135*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1l", 136*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1i/4s4a", 137*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1i/4s4h", 138*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1l/4s4a", 139*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1l/4s4h", 140*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4a", 141*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4h", 142*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4a", 143*0Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4h", 144*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s", 145*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1i", 146*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1l", 147*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1i/4s4a", 148*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1i/4s4h", 149*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1l/4s4a", 150*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1l/4s4h", 151*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4a", 152*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4h", 153*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4a", 154*0Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4h", 155*0Sstevel@tonic-gate "/$s$s/2s2a/1s1i", 156*0Sstevel@tonic-gate "/$s$s/2s2a/1s1l", 157*0Sstevel@tonic-gate "/$s$s/2s2a/1s1i/4s4a", 158*0Sstevel@tonic-gate "/$s$s/2s2a/1s1i/4s4h", 159*0Sstevel@tonic-gate "/$s$s/2s2a/1s1l/4s4a", 160*0Sstevel@tonic-gate "/$s$s/2s2a/1s1l/4s4h", 161*0Sstevel@tonic-gate "/$s$s/2s2a/4s4a", 162*0Sstevel@tonic-gate "/$s$s/2s2a/4s4h", 163*0Sstevel@tonic-gate "/$s$s/2s2a/4s4a", 164*0Sstevel@tonic-gate "/$s$s/2s2a/4s4h", 165*0Sstevel@tonic-gate "/$s$s/3s3e", 166*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s", 167*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1i", 168*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1l", 169*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1i/4s4a", 170*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1i/4s4h", 171*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1l/4s4a", 172*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1l/4s4h", 173*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4a", 174*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4h", 175*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4a", 176*0Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4h", 177*0Sstevel@tonic-gate "/$s$s/3s3e/1s1i", 178*0Sstevel@tonic-gate "/$s$s/3s3e/1s1l", 179*0Sstevel@tonic-gate "/$s$s/3s3e/1s1i/4s4a", 180*0Sstevel@tonic-gate "/$s$s/3s3e/1s1i/4s4h", 181*0Sstevel@tonic-gate "/$s$s/3s3e/1s1l/4s4a", 182*0Sstevel@tonic-gate "/$s$s/3s3e/1s1l/4s4h", 183*0Sstevel@tonic-gate "/$s$s/3s3e/4s4a", 184*0Sstevel@tonic-gate "/$s$s/3s3e/4s4h", 185*0Sstevel@tonic-gate "/$s$s/3s3e/4s4a", 186*0Sstevel@tonic-gate "/$s$s/3s3e/4s4h", 187*0Sstevel@tonic-gate "/$s$s/5s5s", 188*0Sstevel@tonic-gate "/$s$s/5s5s/1s1i", 189*0Sstevel@tonic-gate "/$s$s/5s5s/1s1l", 190*0Sstevel@tonic-gate "/$s$s/5s5s/1s1i/4s4a", 191*0Sstevel@tonic-gate "/$s$s/5s5s/1s1i/4s4h", 192*0Sstevel@tonic-gate "/$s$s/5s5s/1s1l/4s4a", 193*0Sstevel@tonic-gate "/$s$s/5s5s/1s1l/4s4h", 194*0Sstevel@tonic-gate "/$s$s/5s5s/4s4a", 195*0Sstevel@tonic-gate "/$s$s/5s5s/4s4h", 196*0Sstevel@tonic-gate "/$s$s/5s5s/4s4a", 197*0Sstevel@tonic-gate "/$s$s/5s5s/4s4h", 198*0Sstevel@tonic-gate "/$s$s/1s1i", 199*0Sstevel@tonic-gate "/$s$s/1s1l", 200*0Sstevel@tonic-gate "/$s$s/1s1i/4s4a", 201*0Sstevel@tonic-gate "/$s$s/1s1i/4s4h", 202*0Sstevel@tonic-gate "/$s$s/1s1l/4s4a", 203*0Sstevel@tonic-gate "/$s$s/1s1l/4s4h", 204*0Sstevel@tonic-gate "/$s$s/4s4a", 205*0Sstevel@tonic-gate "/$s$s/4s4h", 206*0Sstevel@tonic-gate "/$s$s/4s4a", 207*0Sstevel@tonic-gate "/$s$s/4s4h", 208*0Sstevel@tonic-gate "/0s0o", 209*0Sstevel@tonic-gate "/0s0o/2s2a", 210*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e", 211*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s", 212*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1i", 213*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1l", 214*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1i/4s4a", 215*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1i/4s4h", 216*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1l/4s4a", 217*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1l/4s4h", 218*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4a", 219*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4h", 220*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4a", 221*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4h", 222*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1i", 223*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1l", 224*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1i/4s4a", 225*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1i/4s4h", 226*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1l/4s4a", 227*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1l/4s4h", 228*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4a", 229*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4h", 230*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4a", 231*0Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4h", 232*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s", 233*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1i", 234*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1l", 235*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1i/4s4a", 236*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1i/4s4h", 237*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1l/4s4a", 238*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1l/4s4h", 239*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4a", 240*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4h", 241*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4a", 242*0Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4h", 243*0Sstevel@tonic-gate "/0s0o/2s2a/1s1i", 244*0Sstevel@tonic-gate "/0s0o/2s2a/1s1l", 245*0Sstevel@tonic-gate "/0s0o/2s2a/1s1i/4s4a", 246*0Sstevel@tonic-gate "/0s0o/2s2a/1s1i/4s4h", 247*0Sstevel@tonic-gate "/0s0o/2s2a/1s1l/4s4a", 248*0Sstevel@tonic-gate "/0s0o/2s2a/1s1l/4s4h", 249*0Sstevel@tonic-gate "/0s0o/2s2a/4s4a", 250*0Sstevel@tonic-gate "/0s0o/2s2a/4s4h", 251*0Sstevel@tonic-gate "/0s0o/2s2a/4s4a", 252*0Sstevel@tonic-gate "/0s0o/2s2a/4s4h", 253*0Sstevel@tonic-gate "/0s0o/3s3e", 254*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s", 255*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1i", 256*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1l", 257*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1i/4s4a", 258*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1i/4s4h", 259*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1l/4s4a", 260*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1l/4s4h", 261*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4a", 262*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4h", 263*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4a", 264*0Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4h", 265*0Sstevel@tonic-gate "/0s0o/3s3e/1s1i", 266*0Sstevel@tonic-gate "/0s0o/3s3e/1s1l", 267*0Sstevel@tonic-gate "/0s0o/3s3e/1s1i/4s4a", 268*0Sstevel@tonic-gate "/0s0o/3s3e/1s1i/4s4h", 269*0Sstevel@tonic-gate "/0s0o/3s3e/1s1l/4s4a", 270*0Sstevel@tonic-gate "/0s0o/3s3e/1s1l/4s4h", 271*0Sstevel@tonic-gate "/0s0o/3s3e/4s4a", 272*0Sstevel@tonic-gate "/0s0o/3s3e/4s4h", 273*0Sstevel@tonic-gate "/0s0o/3s3e/4s4a", 274*0Sstevel@tonic-gate "/0s0o/3s3e/4s4h", 275*0Sstevel@tonic-gate "/0s0o/5s5s", 276*0Sstevel@tonic-gate "/0s0o/5s5s/1s1i", 277*0Sstevel@tonic-gate "/0s0o/5s5s/1s1l", 278*0Sstevel@tonic-gate "/0s0o/5s5s/1s1i/4s4a", 279*0Sstevel@tonic-gate "/0s0o/5s5s/1s1i/4s4h", 280*0Sstevel@tonic-gate "/0s0o/5s5s/1s1l/4s4a", 281*0Sstevel@tonic-gate "/0s0o/5s5s/1s1l/4s4h", 282*0Sstevel@tonic-gate "/0s0o/5s5s/4s4a", 283*0Sstevel@tonic-gate "/0s0o/5s5s/4s4h", 284*0Sstevel@tonic-gate "/0s0o/5s5s/4s4a", 285*0Sstevel@tonic-gate "/0s0o/5s5s/4s4h", 286*0Sstevel@tonic-gate "/0s0o/1s1i", 287*0Sstevel@tonic-gate "/0s0o/1s1l", 288*0Sstevel@tonic-gate "/0s0o/1s1i/4s4a", 289*0Sstevel@tonic-gate "/0s0o/1s1i/4s4h", 290*0Sstevel@tonic-gate "/0s0o/1s1l/4s4a", 291*0Sstevel@tonic-gate "/0s0o/1s1l/4s4h", 292*0Sstevel@tonic-gate "/0s0o/4s4a", 293*0Sstevel@tonic-gate "/0s0o/4s4h", 294*0Sstevel@tonic-gate "/0s0o/4s4a", 295*0Sstevel@tonic-gate "/0s0o/4s4h", 296*0Sstevel@tonic-gate "/2s2a", 297*0Sstevel@tonic-gate "/2s2a/3s3e", 298*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s", 299*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1i", 300*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1l", 301*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1i/4s4a", 302*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1i/4s4h", 303*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1l/4s4a", 304*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1l/4s4h", 305*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4a", 306*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4h", 307*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4a", 308*0Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4h", 309*0Sstevel@tonic-gate "/2s2a/3s3e/1s1i", 310*0Sstevel@tonic-gate "/2s2a/3s3e/1s1l", 311*0Sstevel@tonic-gate "/2s2a/3s3e/1s1i/4s4a", 312*0Sstevel@tonic-gate "/2s2a/3s3e/1s1i/4s4h", 313*0Sstevel@tonic-gate "/2s2a/3s3e/1s1l/4s4a", 314*0Sstevel@tonic-gate "/2s2a/3s3e/1s1l/4s4h", 315*0Sstevel@tonic-gate "/2s2a/3s3e/4s4a", 316*0Sstevel@tonic-gate "/2s2a/3s3e/4s4h", 317*0Sstevel@tonic-gate "/2s2a/3s3e/4s4a", 318*0Sstevel@tonic-gate "/2s2a/3s3e/4s4h", 319*0Sstevel@tonic-gate "/2s2a/5s5s", 320*0Sstevel@tonic-gate "/2s2a/5s5s/1s1i", 321*0Sstevel@tonic-gate "/2s2a/5s5s/1s1l", 322*0Sstevel@tonic-gate "/2s2a/5s5s/1s1i/4s4a", 323*0Sstevel@tonic-gate "/2s2a/5s5s/1s1i/4s4h", 324*0Sstevel@tonic-gate "/2s2a/5s5s/1s1l/4s4a", 325*0Sstevel@tonic-gate "/2s2a/5s5s/1s1l/4s4h", 326*0Sstevel@tonic-gate "/2s2a/5s5s/4s4a", 327*0Sstevel@tonic-gate "/2s2a/5s5s/4s4h", 328*0Sstevel@tonic-gate "/2s2a/5s5s/4s4a", 329*0Sstevel@tonic-gate "/2s2a/5s5s/4s4h", 330*0Sstevel@tonic-gate "/2s2a/1s1i", 331*0Sstevel@tonic-gate "/2s2a/1s1l", 332*0Sstevel@tonic-gate "/2s2a/1s1i/4s4a", 333*0Sstevel@tonic-gate "/2s2a/1s1i/4s4h", 334*0Sstevel@tonic-gate "/2s2a/1s1l/4s4a", 335*0Sstevel@tonic-gate "/2s2a/1s1l/4s4h", 336*0Sstevel@tonic-gate "/2s2a/4s4a", 337*0Sstevel@tonic-gate "/2s2a/4s4h", 338*0Sstevel@tonic-gate "/2s2a/4s4a", 339*0Sstevel@tonic-gate "/2s2a/4s4h", 340*0Sstevel@tonic-gate "/3s3e", 341*0Sstevel@tonic-gate "/3s3e/5s5s", 342*0Sstevel@tonic-gate "/3s3e/5s5s/1s1i", 343*0Sstevel@tonic-gate "/3s3e/5s5s/1s1l", 344*0Sstevel@tonic-gate "/3s3e/5s5s/1s1i/4s4a", 345*0Sstevel@tonic-gate "/3s3e/5s5s/1s1i/4s4h", 346*0Sstevel@tonic-gate "/3s3e/5s5s/1s1l/4s4a", 347*0Sstevel@tonic-gate "/3s3e/5s5s/1s1l/4s4h", 348*0Sstevel@tonic-gate "/3s3e/5s5s/4s4a", 349*0Sstevel@tonic-gate "/3s3e/5s5s/4s4h", 350*0Sstevel@tonic-gate "/3s3e/5s5s/4s4a", 351*0Sstevel@tonic-gate "/3s3e/5s5s/4s4h", 352*0Sstevel@tonic-gate "/3s3e/1s1i", 353*0Sstevel@tonic-gate "/3s3e/1s1l", 354*0Sstevel@tonic-gate "/3s3e/1s1i/4s4a", 355*0Sstevel@tonic-gate "/3s3e/1s1i/4s4h", 356*0Sstevel@tonic-gate "/3s3e/1s1l/4s4a", 357*0Sstevel@tonic-gate "/3s3e/1s1l/4s4h", 358*0Sstevel@tonic-gate "/3s3e/4s4a", 359*0Sstevel@tonic-gate "/3s3e/4s4h", 360*0Sstevel@tonic-gate "/3s3e/4s4a", 361*0Sstevel@tonic-gate "/3s3e/4s4h", 362*0Sstevel@tonic-gate "/5s5s", 363*0Sstevel@tonic-gate "/5s5s/1s1i", 364*0Sstevel@tonic-gate "/5s5s/1s1l", 365*0Sstevel@tonic-gate "/5s5s/1s1i/4s4a", 366*0Sstevel@tonic-gate "/5s5s/1s1i/4s4h", 367*0Sstevel@tonic-gate "/5s5s/1s1l/4s4a", 368*0Sstevel@tonic-gate "/5s5s/1s1l/4s4h", 369*0Sstevel@tonic-gate "/5s5s/4s4a", 370*0Sstevel@tonic-gate "/5s5s/4s4h", 371*0Sstevel@tonic-gate "/5s5s/4s4a", 372*0Sstevel@tonic-gate "/5s5s/4s4h", 373*0Sstevel@tonic-gate "/1s1i", 374*0Sstevel@tonic-gate "/1s1l", 375*0Sstevel@tonic-gate "/1s1i/4s4a", 376*0Sstevel@tonic-gate "/1s1i/4s4h", 377*0Sstevel@tonic-gate "/1s1l/4s4a", 378*0Sstevel@tonic-gate "/1s1l/4s4h", 379*0Sstevel@tonic-gate "/4s4a", 380*0Sstevel@tonic-gate "/4s4h", 381*0Sstevel@tonic-gate "/4s4a", 382*0Sstevel@tonic-gate "/4s4h", 383*0Sstevel@tonic-gate /* done */ 384*0Sstevel@tonic-gate (char *)0 385*0Sstevel@tonic-gate }; 386*0Sstevel@tonic-gate 387*0Sstevel@tonic-gate 388*0Sstevel@tonic-gate int 389*0Sstevel@tonic-gate FascistLook(PWDICT *pwp, char *instring) 390*0Sstevel@tonic-gate { 391*0Sstevel@tonic-gate int i; 392*0Sstevel@tonic-gate char *password; 393*0Sstevel@tonic-gate int32 notfound; 394*0Sstevel@tonic-gate char rpassword[PATH_MAX]; 395*0Sstevel@tonic-gate 396*0Sstevel@tonic-gate notfound = PW_WORDS(pwp); 397*0Sstevel@tonic-gate 398*0Sstevel@tonic-gate (void) strlcpy(rpassword, instring, TRUNCSTRINGSIZE); 399*0Sstevel@tonic-gate password = rpassword; 400*0Sstevel@tonic-gate 401*0Sstevel@tonic-gate (void) strcpy(password, Lowercase(password)); 402*0Sstevel@tonic-gate (void) Trim(password); 403*0Sstevel@tonic-gate 404*0Sstevel@tonic-gate /* 405*0Sstevel@tonic-gate * it should be safe to use Mangle with its reliance on PATH_SIZE 406*0Sstevel@tonic-gate * since password cannot be longer than TRUNCSTRINGSIZE; 407*0Sstevel@tonic-gate * nonetheless this is not an elegant solution 408*0Sstevel@tonic-gate */ 409*0Sstevel@tonic-gate 410*0Sstevel@tonic-gate for (i = 0; r_destructors[i]; i++) { 411*0Sstevel@tonic-gate char *a; 412*0Sstevel@tonic-gate 413*0Sstevel@tonic-gate if (!(a = Mangle(password, r_destructors[i]))) { 414*0Sstevel@tonic-gate continue; 415*0Sstevel@tonic-gate } 416*0Sstevel@tonic-gate 417*0Sstevel@tonic-gate if (FindPW(pwp, a) != notfound) { 418*0Sstevel@tonic-gate return (DICTIONARY_WORD); 419*0Sstevel@tonic-gate } 420*0Sstevel@tonic-gate } 421*0Sstevel@tonic-gate 422*0Sstevel@tonic-gate (void) strlcpy(password, Reverse(password), PATH_MAX); 423*0Sstevel@tonic-gate 424*0Sstevel@tonic-gate for (i = 0; r_destructors[i]; i++) { 425*0Sstevel@tonic-gate char *a; 426*0Sstevel@tonic-gate 427*0Sstevel@tonic-gate if (!(a = Mangle(password, r_destructors[i]))) { 428*0Sstevel@tonic-gate continue; 429*0Sstevel@tonic-gate } 430*0Sstevel@tonic-gate if (FindPW(pwp, a) != notfound) { 431*0Sstevel@tonic-gate return (REVERSE_DICTIONARY_WORD); 432*0Sstevel@tonic-gate } 433*0Sstevel@tonic-gate } 434*0Sstevel@tonic-gate 435*0Sstevel@tonic-gate return (0); 436*0Sstevel@tonic-gate } 437*0Sstevel@tonic-gate 438*0Sstevel@tonic-gate int 439*0Sstevel@tonic-gate DictCheck(char *password, char *path) 440*0Sstevel@tonic-gate { 441*0Sstevel@tonic-gate PWDICT *pwp; 442*0Sstevel@tonic-gate int r; 443*0Sstevel@tonic-gate 444*0Sstevel@tonic-gate if ((pwp = PWOpen(path, "r")) == NULL) 445*0Sstevel@tonic-gate return (DATABASE_OPEN_FAIL); 446*0Sstevel@tonic-gate 447*0Sstevel@tonic-gate r = FascistLook(pwp, password); 448*0Sstevel@tonic-gate (void) PWClose(pwp); 449*0Sstevel@tonic-gate return (r); 450*0Sstevel@tonic-gate } 451