2013-07-31 05:11:18 +00:00
< ? php
/**
* @ group large
*/
2016-02-22 17:46:57 +00:00
class BcryptPasswordTest extends PasswordTestCase {
2013-07-31 05:11:18 +00:00
protected function getTypeConfigs () {
2016-02-17 09:09:32 +00:00
return [ 'bcrypt' => [
2013-07-31 05:11:18 +00:00
'class' => 'BcryptPassword' ,
'cost' => 9 ,
2016-02-17 09:09:32 +00:00
] ];
2013-07-31 05:11:18 +00:00
}
2014-09-18 01:28:26 +00:00
public static function providePasswordTests () {
2015-09-30 06:35:02 +00:00
// @codingStandardsIgnoreStart Generic.Files.LineLength
2016-03-19 01:05:19 +00:00
return [
2013-07-31 05:11:18 +00:00
// Tests from glibc bcrypt implementation
2016-03-19 01:05:19 +00:00
[ true , ':bcrypt:5$CCCCCCCCCCCCCCCCCCCCC.$E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW' , " U*U " ],
[ true , ':bcrypt:5$CCCCCCCCCCCCCCCCCCCCC.$VGOzA784oUp/Z0DY336zx7pLYAy0lwK' , " U*U* " ],
[ true , ':bcrypt:5$XXXXXXXXXXXXXXXXXXXXXO$AcXxm9kjPGEMsLznoKqmqw7tc8WCx4a' , " U*U*U " ],
[ true , ':bcrypt:5$abcdefghijklmnopqrstuu$5s2v8.iXieOjg/.AySBTTZIIVFJeBui' , " 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789chars after 72 are ignored " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$CE5elHaaO4EbggVDjb8P19RukzXSM3e' , " \xff \xff \xa3 " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq' , " \xa3 " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$Sa7shbm4.OzKpvFnX1pQLmQW96oUlCq' , " \xa3 " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$o./n25XVfn6oAPaUvHe.Csk4zRfsYPi' , " \xff \xa3 34 \xff \xff \xff \xa3 345 " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$nRht2l/HRhr6zmCp9vYUvvsqynflf9e' , " \xff \xa3 345 " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$nRht2l/HRhr6zmCp9vYUvvsqynflf9e' , " \xff \xa3 345 " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$6IflQkJytoRVc1yuaNtHfiuq.FRlSIS' , " \xa3 ab " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$6IflQkJytoRVc1yuaNtHfiuq.FRlSIS' , " \xa3 ab " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$swQOIzjOiJ9GHEPuhEkvqrUyvWhEMx6' , " \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa \xaa chars after 72 are ignored as usual " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$R9xrDjiycxMbQE2bp.vgqlYpW5wx2yy' , " \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 \xaa \x55 " ],
[ true , ':bcrypt:5$/OK.fbVrR/bpIqNJ5ianF.$9tQZzcJfm3uj2NvJ/n5xkhpqLrMpWCe' , " \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff \x55 \xaa \xff " ],
[ true , ':bcrypt:5$CCCCCCCCCCCCCCCCCCCCC.$7uG0VCzI2bS7j6ymqJi9CdcdxiRTWNy' , " " ],
2013-07-31 05:11:18 +00:00
// One or two false sanity tests
2016-03-19 01:05:19 +00:00
[ false , ':bcrypt:5$CCCCCCCCCCCCCCCCCCCCC.$E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW' , " UXU " ],
[ false , ':bcrypt:5$CCCCCCCCCCCCCCCCCCCCC.$E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW' , " " ],
];
2015-09-30 06:35:02 +00:00
// @codingStandardsIgnoreEnd
2013-07-31 05:11:18 +00:00
}
}