13 if( !$Config{d_crypt} ) {
14 skip_all("crypt unimplemented");
21 # Can't assume too much about the string returned by crypt(),
22 # and about how many bytes of the encrypted (really, hashed)
25 # HISTORICALLY the results started with the first two bytes of the salt,
26 # followed by 11 bytes from the set [./0-9A-Za-z], and only the first
27 # eight characters mattered, but those are probably no more safe
28 # bets, given alternative encryption/hashing schemes like MD5,
29 # C2 (or higher) security schemes, and non-UNIX platforms.
32 skip ("VOS crypt ignores salt.", 1) if ($^O eq 'vos');
33 ok(substr(crypt("ab", "cd"), 2) ne substr(crypt("ab", "ce"), 2), "salt makes a difference");
38 eval {$b = crypt($a, "cd")};
39 like($@, qr/Wide character in crypt/, "wide characters ungood");
41 chop $a; # throw away the wide character
43 eval {$b = crypt($a, "cd")};
44 is($@, '', "downgrade to eight bit characters");
45 is($b, crypt("a\xFF", "cd"), "downgrade results agree");