17c478bd9Sstevel@tonic-gate /* 2*c7402f07SJoep Vesseur * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 37c478bd9Sstevel@tonic-gate * Use is subject to license terms. 47c478bd9Sstevel@tonic-gate */ 57c478bd9Sstevel@tonic-gate 67c478bd9Sstevel@tonic-gate /* 77c478bd9Sstevel@tonic-gate * This program is copyright Alec Muffett 1993. The author disclaims all 87c478bd9Sstevel@tonic-gate * responsibility or liability with respect to it's usage or its effect 97c478bd9Sstevel@tonic-gate * upon hardware or computer systems, and maintains copyright as set out 107c478bd9Sstevel@tonic-gate * in the "LICENCE" document which accompanies distributions of Crack v4.0 117c478bd9Sstevel@tonic-gate * and upwards. 127c478bd9Sstevel@tonic-gate */ 137c478bd9Sstevel@tonic-gate 147c478bd9Sstevel@tonic-gate #include "packer.h" 157c478bd9Sstevel@tonic-gate 167c478bd9Sstevel@tonic-gate 177c478bd9Sstevel@tonic-gate static char *r_destructors[] = { 187c478bd9Sstevel@tonic-gate ":", /* noop - must do this to test raw word. */ 197c478bd9Sstevel@tonic-gate "[", /* trimming leading/trailing junk */ 207c478bd9Sstevel@tonic-gate "]", 217c478bd9Sstevel@tonic-gate "[[", 227c478bd9Sstevel@tonic-gate "]]", 237c478bd9Sstevel@tonic-gate "[[[", 247c478bd9Sstevel@tonic-gate "]]]", 257c478bd9Sstevel@tonic-gate 267c478bd9Sstevel@tonic-gate "/?p@?p", /* purging out punctuation/symbols/junk */ 277c478bd9Sstevel@tonic-gate "/?s@?s", 287c478bd9Sstevel@tonic-gate "/?X@?X", 297c478bd9Sstevel@tonic-gate /* attempt reverse engineering of password strings */ 307c478bd9Sstevel@tonic-gate "/$s$s", 317c478bd9Sstevel@tonic-gate "/$s$s/0s0o", 327c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a", 337c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e", 347c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s", 357c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i", 367c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l", 377c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i/4s4a", 387c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1i/4s4h", 397c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l/4s4a", 407c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/1s1l/4s4h", 417c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4a", 427c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4h", 437c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4a", 447c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/5s5s/4s4h", 457c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1i", 467c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1l", 477c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1i/4s4a", 487c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1i/4s4h", 497c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1l/4s4a", 507c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/1s1l/4s4h", 517c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4a", 527c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4h", 537c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4a", 547c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/3s3e/4s4h", 557c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s", 567c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1i", 577c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1l", 587c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1i/4s4a", 597c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1i/4s4h", 607c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1l/4s4a", 617c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/1s1l/4s4h", 627c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4a", 637c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4h", 647c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4a", 657c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/5s5s/4s4h", 667c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1i", 677c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1l", 687c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1i/4s4a", 697c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1i/4s4h", 707c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1l/4s4a", 717c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/1s1l/4s4h", 727c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4a", 737c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4h", 747c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4a", 757c478bd9Sstevel@tonic-gate "/$s$s/0s0o/2s2a/4s4h", 767c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e", 777c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s", 787c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1i", 797c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1l", 807c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1i/4s4a", 817c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1i/4s4h", 827c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1l/4s4a", 837c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/1s1l/4s4h", 847c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4a", 857c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4h", 867c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4a", 877c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/5s5s/4s4h", 887c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1i", 897c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1l", 907c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1i/4s4a", 917c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1i/4s4h", 927c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1l/4s4a", 937c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/1s1l/4s4h", 947c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4a", 957c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4h", 967c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4a", 977c478bd9Sstevel@tonic-gate "/$s$s/0s0o/3s3e/4s4h", 987c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s", 997c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1i", 1007c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1l", 1017c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1i/4s4a", 1027c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1i/4s4h", 1037c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1l/4s4a", 1047c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/1s1l/4s4h", 1057c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4a", 1067c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4h", 1077c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4a", 1087c478bd9Sstevel@tonic-gate "/$s$s/0s0o/5s5s/4s4h", 1097c478bd9Sstevel@tonic-gate "/$s$s/0s0o/1s1i", 1107c478bd9Sstevel@tonic-gate "/$s$s/0s0o/1s1l", 1117c478bd9Sstevel@tonic-gate "/$s$s/0s0o/1s1i/4s4a", 1127c478bd9Sstevel@tonic-gate "/$s$s/0s0o/1s1i/4s4h", 1137c478bd9Sstevel@tonic-gate "/$s$s/0s0o/1s1l/4s4a", 1147c478bd9Sstevel@tonic-gate "/$s$s/0s0o/1s1l/4s4h", 1157c478bd9Sstevel@tonic-gate "/$s$s/0s0o/4s4a", 1167c478bd9Sstevel@tonic-gate "/$s$s/0s0o/4s4h", 1177c478bd9Sstevel@tonic-gate "/$s$s/0s0o/4s4a", 1187c478bd9Sstevel@tonic-gate "/$s$s/0s0o/4s4h", 1197c478bd9Sstevel@tonic-gate "/$s$s/2s2a", 1207c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e", 1217c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s", 1227c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1i", 1237c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1l", 1247c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1i/4s4a", 1257c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1i/4s4h", 1267c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1l/4s4a", 1277c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/1s1l/4s4h", 1287c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4a", 1297c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4h", 1307c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4a", 1317c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/5s5s/4s4h", 1327c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1i", 1337c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1l", 1347c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1i/4s4a", 1357c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1i/4s4h", 1367c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1l/4s4a", 1377c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/1s1l/4s4h", 1387c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4a", 1397c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4h", 1407c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4a", 1417c478bd9Sstevel@tonic-gate "/$s$s/2s2a/3s3e/4s4h", 1427c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s", 1437c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1i", 1447c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1l", 1457c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1i/4s4a", 1467c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1i/4s4h", 1477c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1l/4s4a", 1487c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/1s1l/4s4h", 1497c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4a", 1507c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4h", 1517c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4a", 1527c478bd9Sstevel@tonic-gate "/$s$s/2s2a/5s5s/4s4h", 1537c478bd9Sstevel@tonic-gate "/$s$s/2s2a/1s1i", 1547c478bd9Sstevel@tonic-gate "/$s$s/2s2a/1s1l", 1557c478bd9Sstevel@tonic-gate "/$s$s/2s2a/1s1i/4s4a", 1567c478bd9Sstevel@tonic-gate "/$s$s/2s2a/1s1i/4s4h", 1577c478bd9Sstevel@tonic-gate "/$s$s/2s2a/1s1l/4s4a", 1587c478bd9Sstevel@tonic-gate "/$s$s/2s2a/1s1l/4s4h", 1597c478bd9Sstevel@tonic-gate "/$s$s/2s2a/4s4a", 1607c478bd9Sstevel@tonic-gate "/$s$s/2s2a/4s4h", 1617c478bd9Sstevel@tonic-gate "/$s$s/2s2a/4s4a", 1627c478bd9Sstevel@tonic-gate "/$s$s/2s2a/4s4h", 1637c478bd9Sstevel@tonic-gate "/$s$s/3s3e", 1647c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s", 1657c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1i", 1667c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1l", 1677c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1i/4s4a", 1687c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1i/4s4h", 1697c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1l/4s4a", 1707c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/1s1l/4s4h", 1717c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4a", 1727c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4h", 1737c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4a", 1747c478bd9Sstevel@tonic-gate "/$s$s/3s3e/5s5s/4s4h", 1757c478bd9Sstevel@tonic-gate "/$s$s/3s3e/1s1i", 1767c478bd9Sstevel@tonic-gate "/$s$s/3s3e/1s1l", 1777c478bd9Sstevel@tonic-gate "/$s$s/3s3e/1s1i/4s4a", 1787c478bd9Sstevel@tonic-gate "/$s$s/3s3e/1s1i/4s4h", 1797c478bd9Sstevel@tonic-gate "/$s$s/3s3e/1s1l/4s4a", 1807c478bd9Sstevel@tonic-gate "/$s$s/3s3e/1s1l/4s4h", 1817c478bd9Sstevel@tonic-gate "/$s$s/3s3e/4s4a", 1827c478bd9Sstevel@tonic-gate "/$s$s/3s3e/4s4h", 1837c478bd9Sstevel@tonic-gate "/$s$s/3s3e/4s4a", 1847c478bd9Sstevel@tonic-gate "/$s$s/3s3e/4s4h", 1857c478bd9Sstevel@tonic-gate "/$s$s/5s5s", 1867c478bd9Sstevel@tonic-gate "/$s$s/5s5s/1s1i", 1877c478bd9Sstevel@tonic-gate "/$s$s/5s5s/1s1l", 1887c478bd9Sstevel@tonic-gate "/$s$s/5s5s/1s1i/4s4a", 1897c478bd9Sstevel@tonic-gate "/$s$s/5s5s/1s1i/4s4h", 1907c478bd9Sstevel@tonic-gate "/$s$s/5s5s/1s1l/4s4a", 1917c478bd9Sstevel@tonic-gate "/$s$s/5s5s/1s1l/4s4h", 1927c478bd9Sstevel@tonic-gate "/$s$s/5s5s/4s4a", 1937c478bd9Sstevel@tonic-gate "/$s$s/5s5s/4s4h", 1947c478bd9Sstevel@tonic-gate "/$s$s/5s5s/4s4a", 1957c478bd9Sstevel@tonic-gate "/$s$s/5s5s/4s4h", 1967c478bd9Sstevel@tonic-gate "/$s$s/1s1i", 1977c478bd9Sstevel@tonic-gate "/$s$s/1s1l", 1987c478bd9Sstevel@tonic-gate "/$s$s/1s1i/4s4a", 1997c478bd9Sstevel@tonic-gate "/$s$s/1s1i/4s4h", 2007c478bd9Sstevel@tonic-gate "/$s$s/1s1l/4s4a", 2017c478bd9Sstevel@tonic-gate "/$s$s/1s1l/4s4h", 2027c478bd9Sstevel@tonic-gate "/$s$s/4s4a", 2037c478bd9Sstevel@tonic-gate "/$s$s/4s4h", 2047c478bd9Sstevel@tonic-gate "/$s$s/4s4a", 2057c478bd9Sstevel@tonic-gate "/$s$s/4s4h", 2067c478bd9Sstevel@tonic-gate "/0s0o", 2077c478bd9Sstevel@tonic-gate "/0s0o/2s2a", 2087c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e", 2097c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s", 2107c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1i", 2117c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1l", 2127c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1i/4s4a", 2137c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1i/4s4h", 2147c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1l/4s4a", 2157c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/1s1l/4s4h", 2167c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4a", 2177c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4h", 2187c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4a", 2197c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/5s5s/4s4h", 2207c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1i", 2217c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1l", 2227c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1i/4s4a", 2237c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1i/4s4h", 2247c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1l/4s4a", 2257c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/1s1l/4s4h", 2267c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4a", 2277c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4h", 2287c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4a", 2297c478bd9Sstevel@tonic-gate "/0s0o/2s2a/3s3e/4s4h", 2307c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s", 2317c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1i", 2327c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1l", 2337c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1i/4s4a", 2347c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1i/4s4h", 2357c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1l/4s4a", 2367c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/1s1l/4s4h", 2377c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4a", 2387c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4h", 2397c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4a", 2407c478bd9Sstevel@tonic-gate "/0s0o/2s2a/5s5s/4s4h", 2417c478bd9Sstevel@tonic-gate "/0s0o/2s2a/1s1i", 2427c478bd9Sstevel@tonic-gate "/0s0o/2s2a/1s1l", 2437c478bd9Sstevel@tonic-gate "/0s0o/2s2a/1s1i/4s4a", 2447c478bd9Sstevel@tonic-gate "/0s0o/2s2a/1s1i/4s4h", 2457c478bd9Sstevel@tonic-gate "/0s0o/2s2a/1s1l/4s4a", 2467c478bd9Sstevel@tonic-gate "/0s0o/2s2a/1s1l/4s4h", 2477c478bd9Sstevel@tonic-gate "/0s0o/2s2a/4s4a", 2487c478bd9Sstevel@tonic-gate "/0s0o/2s2a/4s4h", 2497c478bd9Sstevel@tonic-gate "/0s0o/2s2a/4s4a", 2507c478bd9Sstevel@tonic-gate "/0s0o/2s2a/4s4h", 2517c478bd9Sstevel@tonic-gate "/0s0o/3s3e", 2527c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s", 2537c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1i", 2547c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1l", 2557c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1i/4s4a", 2567c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1i/4s4h", 2577c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1l/4s4a", 2587c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/1s1l/4s4h", 2597c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4a", 2607c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4h", 2617c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4a", 2627c478bd9Sstevel@tonic-gate "/0s0o/3s3e/5s5s/4s4h", 2637c478bd9Sstevel@tonic-gate "/0s0o/3s3e/1s1i", 2647c478bd9Sstevel@tonic-gate "/0s0o/3s3e/1s1l", 2657c478bd9Sstevel@tonic-gate "/0s0o/3s3e/1s1i/4s4a", 2667c478bd9Sstevel@tonic-gate "/0s0o/3s3e/1s1i/4s4h", 2677c478bd9Sstevel@tonic-gate "/0s0o/3s3e/1s1l/4s4a", 2687c478bd9Sstevel@tonic-gate "/0s0o/3s3e/1s1l/4s4h", 2697c478bd9Sstevel@tonic-gate "/0s0o/3s3e/4s4a", 2707c478bd9Sstevel@tonic-gate "/0s0o/3s3e/4s4h", 2717c478bd9Sstevel@tonic-gate "/0s0o/3s3e/4s4a", 2727c478bd9Sstevel@tonic-gate "/0s0o/3s3e/4s4h", 2737c478bd9Sstevel@tonic-gate "/0s0o/5s5s", 2747c478bd9Sstevel@tonic-gate "/0s0o/5s5s/1s1i", 2757c478bd9Sstevel@tonic-gate "/0s0o/5s5s/1s1l", 2767c478bd9Sstevel@tonic-gate "/0s0o/5s5s/1s1i/4s4a", 2777c478bd9Sstevel@tonic-gate "/0s0o/5s5s/1s1i/4s4h", 2787c478bd9Sstevel@tonic-gate "/0s0o/5s5s/1s1l/4s4a", 2797c478bd9Sstevel@tonic-gate "/0s0o/5s5s/1s1l/4s4h", 2807c478bd9Sstevel@tonic-gate "/0s0o/5s5s/4s4a", 2817c478bd9Sstevel@tonic-gate "/0s0o/5s5s/4s4h", 2827c478bd9Sstevel@tonic-gate "/0s0o/5s5s/4s4a", 2837c478bd9Sstevel@tonic-gate "/0s0o/5s5s/4s4h", 2847c478bd9Sstevel@tonic-gate "/0s0o/1s1i", 2857c478bd9Sstevel@tonic-gate "/0s0o/1s1l", 2867c478bd9Sstevel@tonic-gate "/0s0o/1s1i/4s4a", 2877c478bd9Sstevel@tonic-gate "/0s0o/1s1i/4s4h", 2887c478bd9Sstevel@tonic-gate "/0s0o/1s1l/4s4a", 2897c478bd9Sstevel@tonic-gate "/0s0o/1s1l/4s4h", 2907c478bd9Sstevel@tonic-gate "/0s0o/4s4a", 2917c478bd9Sstevel@tonic-gate "/0s0o/4s4h", 2927c478bd9Sstevel@tonic-gate "/0s0o/4s4a", 2937c478bd9Sstevel@tonic-gate "/0s0o/4s4h", 2947c478bd9Sstevel@tonic-gate "/2s2a", 2957c478bd9Sstevel@tonic-gate "/2s2a/3s3e", 2967c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s", 2977c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1i", 2987c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1l", 2997c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1i/4s4a", 3007c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1i/4s4h", 3017c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1l/4s4a", 3027c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/1s1l/4s4h", 3037c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4a", 3047c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4h", 3057c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4a", 3067c478bd9Sstevel@tonic-gate "/2s2a/3s3e/5s5s/4s4h", 3077c478bd9Sstevel@tonic-gate "/2s2a/3s3e/1s1i", 3087c478bd9Sstevel@tonic-gate "/2s2a/3s3e/1s1l", 3097c478bd9Sstevel@tonic-gate "/2s2a/3s3e/1s1i/4s4a", 3107c478bd9Sstevel@tonic-gate "/2s2a/3s3e/1s1i/4s4h", 3117c478bd9Sstevel@tonic-gate "/2s2a/3s3e/1s1l/4s4a", 3127c478bd9Sstevel@tonic-gate "/2s2a/3s3e/1s1l/4s4h", 3137c478bd9Sstevel@tonic-gate "/2s2a/3s3e/4s4a", 3147c478bd9Sstevel@tonic-gate "/2s2a/3s3e/4s4h", 3157c478bd9Sstevel@tonic-gate "/2s2a/3s3e/4s4a", 3167c478bd9Sstevel@tonic-gate "/2s2a/3s3e/4s4h", 3177c478bd9Sstevel@tonic-gate "/2s2a/5s5s", 3187c478bd9Sstevel@tonic-gate "/2s2a/5s5s/1s1i", 3197c478bd9Sstevel@tonic-gate "/2s2a/5s5s/1s1l", 3207c478bd9Sstevel@tonic-gate "/2s2a/5s5s/1s1i/4s4a", 3217c478bd9Sstevel@tonic-gate "/2s2a/5s5s/1s1i/4s4h", 3227c478bd9Sstevel@tonic-gate "/2s2a/5s5s/1s1l/4s4a", 3237c478bd9Sstevel@tonic-gate "/2s2a/5s5s/1s1l/4s4h", 3247c478bd9Sstevel@tonic-gate "/2s2a/5s5s/4s4a", 3257c478bd9Sstevel@tonic-gate "/2s2a/5s5s/4s4h", 3267c478bd9Sstevel@tonic-gate "/2s2a/5s5s/4s4a", 3277c478bd9Sstevel@tonic-gate "/2s2a/5s5s/4s4h", 3287c478bd9Sstevel@tonic-gate "/2s2a/1s1i", 3297c478bd9Sstevel@tonic-gate "/2s2a/1s1l", 3307c478bd9Sstevel@tonic-gate "/2s2a/1s1i/4s4a", 3317c478bd9Sstevel@tonic-gate "/2s2a/1s1i/4s4h", 3327c478bd9Sstevel@tonic-gate "/2s2a/1s1l/4s4a", 3337c478bd9Sstevel@tonic-gate "/2s2a/1s1l/4s4h", 3347c478bd9Sstevel@tonic-gate "/2s2a/4s4a", 3357c478bd9Sstevel@tonic-gate "/2s2a/4s4h", 3367c478bd9Sstevel@tonic-gate "/2s2a/4s4a", 3377c478bd9Sstevel@tonic-gate "/2s2a/4s4h", 3387c478bd9Sstevel@tonic-gate "/3s3e", 3397c478bd9Sstevel@tonic-gate "/3s3e/5s5s", 3407c478bd9Sstevel@tonic-gate "/3s3e/5s5s/1s1i", 3417c478bd9Sstevel@tonic-gate "/3s3e/5s5s/1s1l", 3427c478bd9Sstevel@tonic-gate "/3s3e/5s5s/1s1i/4s4a", 3437c478bd9Sstevel@tonic-gate "/3s3e/5s5s/1s1i/4s4h", 3447c478bd9Sstevel@tonic-gate "/3s3e/5s5s/1s1l/4s4a", 3457c478bd9Sstevel@tonic-gate "/3s3e/5s5s/1s1l/4s4h", 3467c478bd9Sstevel@tonic-gate "/3s3e/5s5s/4s4a", 3477c478bd9Sstevel@tonic-gate "/3s3e/5s5s/4s4h", 3487c478bd9Sstevel@tonic-gate "/3s3e/5s5s/4s4a", 3497c478bd9Sstevel@tonic-gate "/3s3e/5s5s/4s4h", 3507c478bd9Sstevel@tonic-gate "/3s3e/1s1i", 3517c478bd9Sstevel@tonic-gate "/3s3e/1s1l", 3527c478bd9Sstevel@tonic-gate "/3s3e/1s1i/4s4a", 3537c478bd9Sstevel@tonic-gate "/3s3e/1s1i/4s4h", 3547c478bd9Sstevel@tonic-gate "/3s3e/1s1l/4s4a", 3557c478bd9Sstevel@tonic-gate "/3s3e/1s1l/4s4h", 3567c478bd9Sstevel@tonic-gate "/3s3e/4s4a", 3577c478bd9Sstevel@tonic-gate "/3s3e/4s4h", 3587c478bd9Sstevel@tonic-gate "/3s3e/4s4a", 3597c478bd9Sstevel@tonic-gate "/3s3e/4s4h", 3607c478bd9Sstevel@tonic-gate "/5s5s", 3617c478bd9Sstevel@tonic-gate "/5s5s/1s1i", 3627c478bd9Sstevel@tonic-gate "/5s5s/1s1l", 3637c478bd9Sstevel@tonic-gate "/5s5s/1s1i/4s4a", 3647c478bd9Sstevel@tonic-gate "/5s5s/1s1i/4s4h", 3657c478bd9Sstevel@tonic-gate "/5s5s/1s1l/4s4a", 3667c478bd9Sstevel@tonic-gate "/5s5s/1s1l/4s4h", 3677c478bd9Sstevel@tonic-gate "/5s5s/4s4a", 3687c478bd9Sstevel@tonic-gate "/5s5s/4s4h", 3697c478bd9Sstevel@tonic-gate "/5s5s/4s4a", 3707c478bd9Sstevel@tonic-gate "/5s5s/4s4h", 3717c478bd9Sstevel@tonic-gate "/1s1i", 3727c478bd9Sstevel@tonic-gate "/1s1l", 3737c478bd9Sstevel@tonic-gate "/1s1i/4s4a", 3747c478bd9Sstevel@tonic-gate "/1s1i/4s4h", 3757c478bd9Sstevel@tonic-gate "/1s1l/4s4a", 3767c478bd9Sstevel@tonic-gate "/1s1l/4s4h", 3777c478bd9Sstevel@tonic-gate "/4s4a", 3787c478bd9Sstevel@tonic-gate "/4s4h", 3797c478bd9Sstevel@tonic-gate "/4s4a", 3807c478bd9Sstevel@tonic-gate "/4s4h", 3817c478bd9Sstevel@tonic-gate /* done */ 3827c478bd9Sstevel@tonic-gate (char *)0 3837c478bd9Sstevel@tonic-gate }; 3847c478bd9Sstevel@tonic-gate 3857c478bd9Sstevel@tonic-gate 3867c478bd9Sstevel@tonic-gate int 3877c478bd9Sstevel@tonic-gate FascistLook(PWDICT *pwp, char *instring) 3887c478bd9Sstevel@tonic-gate { 3897c478bd9Sstevel@tonic-gate int i; 3907c478bd9Sstevel@tonic-gate char *password; 391*c7402f07SJoep Vesseur uint32_t notfound; 3927c478bd9Sstevel@tonic-gate char rpassword[PATH_MAX]; 3937c478bd9Sstevel@tonic-gate 3947c478bd9Sstevel@tonic-gate notfound = PW_WORDS(pwp); 3957c478bd9Sstevel@tonic-gate 3967c478bd9Sstevel@tonic-gate (void) strlcpy(rpassword, instring, TRUNCSTRINGSIZE); 3977c478bd9Sstevel@tonic-gate password = rpassword; 3987c478bd9Sstevel@tonic-gate 3997c478bd9Sstevel@tonic-gate (void) strcpy(password, Lowercase(password)); 4007c478bd9Sstevel@tonic-gate (void) Trim(password); 4017c478bd9Sstevel@tonic-gate 4027c478bd9Sstevel@tonic-gate /* 4037c478bd9Sstevel@tonic-gate * it should be safe to use Mangle with its reliance on PATH_SIZE 4047c478bd9Sstevel@tonic-gate * since password cannot be longer than TRUNCSTRINGSIZE; 4057c478bd9Sstevel@tonic-gate * nonetheless this is not an elegant solution 4067c478bd9Sstevel@tonic-gate */ 4077c478bd9Sstevel@tonic-gate 4087c478bd9Sstevel@tonic-gate for (i = 0; r_destructors[i]; i++) { 4097c478bd9Sstevel@tonic-gate char *a; 4107c478bd9Sstevel@tonic-gate 4117c478bd9Sstevel@tonic-gate if (!(a = Mangle(password, r_destructors[i]))) { 4127c478bd9Sstevel@tonic-gate continue; 4137c478bd9Sstevel@tonic-gate } 4147c478bd9Sstevel@tonic-gate 4157c478bd9Sstevel@tonic-gate if (FindPW(pwp, a) != notfound) { 4167c478bd9Sstevel@tonic-gate return (DICTIONARY_WORD); 4177c478bd9Sstevel@tonic-gate } 4187c478bd9Sstevel@tonic-gate } 4197c478bd9Sstevel@tonic-gate 4207c478bd9Sstevel@tonic-gate (void) strlcpy(password, Reverse(password), PATH_MAX); 4217c478bd9Sstevel@tonic-gate 4227c478bd9Sstevel@tonic-gate for (i = 0; r_destructors[i]; i++) { 4237c478bd9Sstevel@tonic-gate char *a; 4247c478bd9Sstevel@tonic-gate 4257c478bd9Sstevel@tonic-gate if (!(a = Mangle(password, r_destructors[i]))) { 4267c478bd9Sstevel@tonic-gate continue; 4277c478bd9Sstevel@tonic-gate } 4287c478bd9Sstevel@tonic-gate if (FindPW(pwp, a) != notfound) { 4297c478bd9Sstevel@tonic-gate return (REVERSE_DICTIONARY_WORD); 4307c478bd9Sstevel@tonic-gate } 4317c478bd9Sstevel@tonic-gate } 4327c478bd9Sstevel@tonic-gate 4337c478bd9Sstevel@tonic-gate return (0); 4347c478bd9Sstevel@tonic-gate } 4357c478bd9Sstevel@tonic-gate 4367c478bd9Sstevel@tonic-gate int 4377c478bd9Sstevel@tonic-gate DictCheck(char *password, char *path) 4387c478bd9Sstevel@tonic-gate { 4397c478bd9Sstevel@tonic-gate PWDICT *pwp; 4407c478bd9Sstevel@tonic-gate int r; 4417c478bd9Sstevel@tonic-gate 442004388ebScasper if ((pwp = PWOpen(path, "rF")) == NULL) 4437c478bd9Sstevel@tonic-gate return (DATABASE_OPEN_FAIL); 4447c478bd9Sstevel@tonic-gate 4457c478bd9Sstevel@tonic-gate r = FascistLook(pwp, password); 4467c478bd9Sstevel@tonic-gate (void) PWClose(pwp); 4477c478bd9Sstevel@tonic-gate return (r); 4487c478bd9Sstevel@tonic-gate } 449