1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
<?php
class PasswordHashTest extends PHPUnit_Framework_TestCase {
public function testFuncExists() {
$this->assertTrue(function_exists('password_hash'));
}
public function testStringLength() {
$this->assertEquals(60, strlen(password_hash('foo', PASSWORD_BCRYPT)));
}
public function testHash() {
$hash = password_hash('foo', PASSWORD_BCRYPT);
$this->assertEquals($hash, crypt('foo', $hash));
}
public function testKnownSalt() {
$hash = password_hash("rasmuslerdorf", PASSWORD_BCRYPT, array("cost" => 7, "salt" => "usesomesillystringforsalt"));
$this->assertEquals('$2y$07$usesomesillystringfore2uDLvp1Ii2e./U9C8sBjqp8I90dH6hi', $hash);
}
public function testRawSalt() {
$hash = password_hash("test", PASSWORD_BCRYPT, array("salt" => "123456789012345678901" . chr(0)));
$this->assertEquals('$2y$10$MTIzNDU2Nzg5MDEyMzQ1Nej0NmcAWSLR.oP7XOR9HD/vjUuOj100y', $hash);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidAlgo() {
password_hash('foo', array());
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidAlgo2() {
password_hash('foo', 2);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidPassword() {
password_hash(array(), 1);
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidSalt() {
password_hash('foo', PASSWORD_BCRYPT, array('salt' => array()));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidBcryptCostLow() {
password_hash('foo', PASSWORD_BCRYPT, array('cost' => 3));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidBcryptCostHigh() {
password_hash('foo', PASSWORD_BCRYPT, array('cost' => 32));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidBcryptCostInvalid() {
password_hash('foo', PASSWORD_BCRYPT, array('cost' => 'foo'));
}
/**
* @expectedException PHPUnit_Framework_Error
*/
public function testInvalidBcryptSaltShort() {
password_hash('foo', PASSWORD_BCRYPT, array('salt' => 'abc'));
}
}
|