14
14
15
15
package org .springframework .security .crypto .bcrypt ;
16
16
17
+ import org .junit .BeforeClass ;
17
18
import org .junit .Test ;
18
19
20
+ import java .util .ArrayList ;
19
21
import java .util .Arrays ;
22
+ import java .util .List ;
20
23
21
24
import static org .assertj .core .api .Assertions .assertThat ;
22
25
26
29
*/
27
30
public class BCryptTests {
28
31
32
+ private static class TestObject {
33
+ private final String password ;
34
+ private final String salt ;
35
+ private final String expected ;
36
+
37
+ private TestObject (String password , String salt , String expected ) {
38
+ this .password = password ;
39
+ this .salt = salt ;
40
+ this .expected = expected ;
41
+ }
42
+ }
43
+
29
44
private static void print (String s ) {
30
45
// System.out.print(s);
31
46
}
@@ -34,100 +49,102 @@ private static void println(String s) {
34
49
// System.out.println(s);
35
50
}
36
51
37
- String test_vectors [][] = {
38
- { "" , "$2a$06$DCq7YPn5Rq63x1Lad4cll." ,
39
- "$2a$06$DCq7YPn5Rq63x1Lad4cll.TV4S6ytwfsfvkgY8jIucDrjc8deX1s." },
40
- { "" , "$2a$08$HqWuK6/Ng6sg9gQzbLrgb." ,
41
- "$2a$08$HqWuK6/Ng6sg9gQzbLrgb.Tl.ZHfXLhvt/SgVyWhQqgqcZ7ZuUtye" },
42
- { "" , "$2a$10$k1wbIrmNyFAPwPVPSVa/ze" ,
43
- "$2a$10$k1wbIrmNyFAPwPVPSVa/zecw2BCEnBwVS2GbrmgzxFUOqW9dk4TCW" },
44
- { "" , "$2a$12$k42ZFHFWqBp3vWli.nIn8u" ,
45
- "$2a$12$k42ZFHFWqBp3vWli.nIn8uYyIkbvYRvodzbfbK18SSsY.CsIQPlxO" },
46
- { "" , "$2b$06$8eVN9RiU8Yki430X.wBvN." ,
47
- "$2b$06$8eVN9RiU8Yki430X.wBvN.LWaqh2962emLVSVXVZIXJvDYLsV0oFu" },
48
- { "" , "$2b$06$NlgfNgpIc6GlHciCkMEW8u" ,
49
- "$2b$06$NlgfNgpIc6GlHciCkMEW8uKOBsyvAp7QwlHpysOlKdtyEw50WQua2" },
50
- { "" , "$2y$06$mFDtkz6UN7B3GZ2qi2hhaO" ,
51
- "$2y$06$mFDtkz6UN7B3GZ2qi2hhaO3OFWzNEdcY84ELw6iHCPruuQfSAXBLK" },
52
- { "" , "$2y$06$88kSqVttBx.e9iXTPCLa5u" ,
53
- "$2y$06$88kSqVttBx.e9iXTPCLa5uFPrVFjfLH4D.KcO6pBiAmvUkvdg0EYy" },
54
- { "a" , "$2a$06$m0CrhHm10qJ3lXRY.5zDGO" ,
55
- "$2a$06$m0CrhHm10qJ3lXRY.5zDGO3rS2KdeeWLuGmsfGlMfOxih58VYVfxe" },
56
- { "a" , "$2a$08$cfcvVd2aQ8CMvoMpP2EBfe" ,
57
- "$2a$08$cfcvVd2aQ8CMvoMpP2EBfeodLEkkFJ9umNEfPD18.hUF62qqlC/V." },
58
- { "a" , "$2a$10$k87L/MF28Q673VKh8/cPi." ,
59
- "$2a$10$k87L/MF28Q673VKh8/cPi.SUl7MU/rWuSiIDDFayrKk/1tBsSQu4u" },
60
- { "a" , "$2a$12$8NJH3LsPrANStV6XtBakCe" ,
61
- "$2a$12$8NJH3LsPrANStV6XtBakCez0cKHXVxmvxIlcz785vxAIZrihHZpeS" },
62
- { "a" , "$2b$06$ehKGYiS4wt2HAr7KQXS5z." ,
63
- "$2b$06$ehKGYiS4wt2HAr7KQXS5z.OaRjB4jHO7rBHJKlGXbqEH3QVJfO7iO" },
64
- { "a" , "$2b$06$PWxFFHA3HiCD46TNOZh30e" ,
65
- "$2b$06$PWxFFHA3HiCD46TNOZh30eNto1hg5uM9tHBlI4q/b03SW/gGKUYk6" },
66
- { "a" , "$2y$06$LUdD6/aD0e/UbnxVAVbvGu" ,
67
- "$2y$06$LUdD6/aD0e/UbnxVAVbvGuUmIoJ3l/OK94ThhadpMWwKC34LrGEey" },
68
- { "a" , "$2y$06$eqgY.T2yloESMZxgp76deO" ,
69
- "$2y$06$eqgY.T2yloESMZxgp76deOROa7nzXDxbO0k.PJvuClTa.Vu1AuemG" },
70
- { "abc" , "$2a$06$If6bvum7DFjUnE9p2uDeDu" ,
71
- "$2a$06$If6bvum7DFjUnE9p2uDeDu0YHzrHM6tf.iqN8.yx.jNN1ILEf7h0i" },
72
- { "abc" , "$2a$08$Ro0CUfOqk6cXEKf3dyaM7O" ,
73
- "$2a$08$Ro0CUfOqk6cXEKf3dyaM7OhSCvnwM9s4wIX9JeLapehKK5YdLxKcm" },
74
- { "abc" , "$2a$10$WvvTPHKwdBJ3uk0Z37EMR." ,
75
- "$2a$10$WvvTPHKwdBJ3uk0Z37EMR.hLA2W6N9AEBhEgrAOljy2Ae5MtaSIUi" },
76
- { "abc" , "$2a$12$EXRkfkdmXn2gzds2SSitu." ,
77
- "$2a$12$EXRkfkdmXn2gzds2SSitu.MW9.gAVqa9eLS1//RYtYCmB1eLHg.9q" },
78
- { "abc" , "$2b$06$5FyQoicpbox1xSHFfhhdXu" ,
79
- "$2b$06$5FyQoicpbox1xSHFfhhdXuR2oxLpO1rYsQh5RTkI/9.RIjtoF0/ta" },
80
- { "abc" , "$2b$06$1kJyuho8MCVP3HHsjnRMkO" ,
81
- "$2b$06$1kJyuho8MCVP3HHsjnRMkO1nvCOaKTqLnjG2TX1lyMFbXH/aOkgc." },
82
- { "abc" , "$2y$06$ACfku9dT6.H8VjdKb8nhlu" ,
83
- "$2y$06$ACfku9dT6.H8VjdKb8nhluaoBmhJyK7GfoNScEfOfrJffUxoUeCjK" },
84
- { "abc" , "$2y$06$9JujYcoWPmifvFA3RUP90e" ,
85
- "$2y$06$9JujYcoWPmifvFA3RUP90e5rSEHAb5Ye6iv3.G9ikiHNv5cxjNEse" },
86
- { "abcdefghijklmnopqrstuvwxyz" , "$2a$06$.rCVZVOThsIa97pEDOxvGu" ,
87
- "$2a$06$.rCVZVOThsIa97pEDOxvGuRRgzG64bvtJ0938xuqzv18d3ZpQhstC" },
88
- { "abcdefghijklmnopqrstuvwxyz" , "$2a$08$aTsUwsyowQuzRrDqFflhge" ,
89
- "$2a$08$aTsUwsyowQuzRrDqFflhgekJ8d9/7Z3GV3UcgvzQW3J5zMyrTvlz." },
90
- { "abcdefghijklmnopqrstuvwxyz" , "$2a$10$fVH8e28OQRj9tqiDXs1e1u" ,
91
- "$2a$10$fVH8e28OQRj9tqiDXs1e1uxpsjN0c7II7YPKXua2NAKYvM6iQk7dq" },
92
- { "abcdefghijklmnopqrstuvwxyz" , "$2a$12$D4G5f18o7aMMfwasBL7Gpu" ,
93
- "$2a$12$D4G5f18o7aMMfwasBL7GpuQWuP3pkrZrOAnqP.bmezbMng.QwJ/pG" },
94
- { "abcdefghijklmnopqrstuvwxyz" , "$2b$06$O8E89AQPj1zJQA05YvIAU." ,
95
- "$2b$06$O8E89AQPj1zJQA05YvIAU.hMpj25BXri1bupl/Q7CJMlpLwZDNBoO" },
96
- { "abcdefghijklmnopqrstuvwxyz" , "$2b$06$PDqIWr./o/P3EE/P.Q0A/u" ,
97
- "$2b$06$PDqIWr./o/P3EE/P.Q0A/uFg86WL/PXTbaW267TDALEwDylqk00Z." },
98
- { "abcdefghijklmnopqrstuvwxyz" , "$2y$06$34MG90ZLah8/ZNr3ltlHCu" ,
99
- "$2y$06$34MG90ZLah8/ZNr3ltlHCuz6bachF8/3S5jTuzF1h2qg2cUk11sFW" },
100
- { "abcdefghijklmnopqrstuvwxyz" , "$2y$06$AK.hSLfMyw706iEW24i68u" ,
101
- "$2y$06$AK.hSLfMyw706iEW24i68uKAc2yorPTrB0cimvjJHEBUrPkOq7VvG" },
102
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$06$fPIsBO8qRqkjj273rfaOI." ,
103
- "$2a$06$fPIsBO8qRqkjj273rfaOI.HtSV9jLDpTbZn782DC6/t7qT67P6FfO" },
104
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$08$Eq2r4G/76Wv39MzSX262hu" ,
105
- "$2a$08$Eq2r4G/76Wv39MzSX262huzPz612MZiYHVUJe/OcOql2jo4.9UxTW" },
106
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$10$LgfYWkbzEvQ4JakH7rOvHe" ,
107
- "$2a$10$LgfYWkbzEvQ4JakH7rOvHe0y8pHKF9OaFgwUZ2q7W2FFZmZzJYlfS" },
108
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$12$WApznUOJfkEGSmYRfnkrPO" ,
109
- "$2a$12$WApznUOJfkEGSmYRfnkrPOr466oFDCaj4b6HY3EXGvfxm43seyhgC" },
110
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu" ,
111
- "$2b$06$FGWA8OlY6RtQhXBXuCJ8WusVipRI15cWOgJK8MYpBHEkktMfbHRIG" },
112
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$G6aYU7UhUEUDJBdTgq3CRe" ,
113
- "$2b$06$G6aYU7UhUEUDJBdTgq3CRekiopCN4O4sNitFXrf5NUscsVZj3a2r6" },
114
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$sYDFHqOcXTjBgOsqC0WCKe" ,
115
- "$2y$06$sYDFHqOcXTjBgOsqC0WCKeMd3T1UhHuWQSxncLGtXDLMrcE6vFDti" },
116
- { "~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$6Xm0gCw4g7ZNDCEp4yTise" ,
117
- "$2y$06$6Xm0gCw4g7ZNDCEp4yTisez0kSdpXEl66MvdxGidnmChIe8dFmMnq" } };
52
+ private static List <TestObject > testObjects ;
53
+
54
+ @ BeforeClass
55
+ public static void setupTestObjects () {
56
+ testObjects = new ArrayList <>();
57
+ testObjects .add (new TestObject ("" , "$2a$06$DCq7YPn5Rq63x1Lad4cll." ,
58
+ "$2a$06$DCq7YPn5Rq63x1Lad4cll.TV4S6ytwfsfvkgY8jIucDrjc8deX1s." ));
59
+ testObjects .add (new TestObject ("" , "$2a$08$HqWuK6/Ng6sg9gQzbLrgb." ,
60
+ "$2a$08$HqWuK6/Ng6sg9gQzbLrgb.Tl.ZHfXLhvt/SgVyWhQqgqcZ7ZuUtye" ));
61
+ testObjects .add (new TestObject ("" , "$2a$10$k1wbIrmNyFAPwPVPSVa/ze" ,
62
+ "$2a$10$k1wbIrmNyFAPwPVPSVa/zecw2BCEnBwVS2GbrmgzxFUOqW9dk4TCW" ));
63
+ testObjects .add (new TestObject ("" , "$2a$12$k42ZFHFWqBp3vWli.nIn8u" ,
64
+ "$2a$12$k42ZFHFWqBp3vWli.nIn8uYyIkbvYRvodzbfbK18SSsY.CsIQPlxO" ));
65
+ testObjects .add (new TestObject ("" , "$2b$06$8eVN9RiU8Yki430X.wBvN." ,
66
+ "$2b$06$8eVN9RiU8Yki430X.wBvN.LWaqh2962emLVSVXVZIXJvDYLsV0oFu" ));
67
+ testObjects .add (new TestObject ("" , "$2b$06$NlgfNgpIc6GlHciCkMEW8u" ,
68
+ "$2b$06$NlgfNgpIc6GlHciCkMEW8uKOBsyvAp7QwlHpysOlKdtyEw50WQua2" ));
69
+ testObjects .add (new TestObject ("" , "$2y$06$mFDtkz6UN7B3GZ2qi2hhaO" ,
70
+ "$2y$06$mFDtkz6UN7B3GZ2qi2hhaO3OFWzNEdcY84ELw6iHCPruuQfSAXBLK" ));
71
+ testObjects .add (new TestObject ("" , "$2y$06$88kSqVttBx.e9iXTPCLa5u" ,
72
+ "$2y$06$88kSqVttBx.e9iXTPCLa5uFPrVFjfLH4D.KcO6pBiAmvUkvdg0EYy" ));
73
+ testObjects .add (new TestObject ("a" , "$2a$06$m0CrhHm10qJ3lXRY.5zDGO" ,
74
+ "$2a$06$m0CrhHm10qJ3lXRY.5zDGO3rS2KdeeWLuGmsfGlMfOxih58VYVfxe" ));
75
+ testObjects .add (new TestObject ("a" , "$2a$08$cfcvVd2aQ8CMvoMpP2EBfe" ,
76
+ "$2a$08$cfcvVd2aQ8CMvoMpP2EBfeodLEkkFJ9umNEfPD18.hUF62qqlC/V." ));
77
+ testObjects .add (new TestObject ("a" , "$2a$10$k87L/MF28Q673VKh8/cPi." ,
78
+ "$2a$10$k87L/MF28Q673VKh8/cPi.SUl7MU/rWuSiIDDFayrKk/1tBsSQu4u" ));
79
+ testObjects .add (new TestObject ("a" , "$2a$12$8NJH3LsPrANStV6XtBakCe" ,
80
+ "$2a$12$8NJH3LsPrANStV6XtBakCez0cKHXVxmvxIlcz785vxAIZrihHZpeS" ));
81
+ testObjects .add (new TestObject ("a" , "$2b$06$ehKGYiS4wt2HAr7KQXS5z." ,
82
+ "$2b$06$ehKGYiS4wt2HAr7KQXS5z.OaRjB4jHO7rBHJKlGXbqEH3QVJfO7iO" ));
83
+ testObjects .add (new TestObject ("a" , "$2b$06$PWxFFHA3HiCD46TNOZh30e" ,
84
+ "$2b$06$PWxFFHA3HiCD46TNOZh30eNto1hg5uM9tHBlI4q/b03SW/gGKUYk6" ));
85
+ testObjects .add (new TestObject ("a" , "$2y$06$LUdD6/aD0e/UbnxVAVbvGu" ,
86
+ "$2y$06$LUdD6/aD0e/UbnxVAVbvGuUmIoJ3l/OK94ThhadpMWwKC34LrGEey" ));
87
+ testObjects .add (new TestObject ("a" , "$2y$06$eqgY.T2yloESMZxgp76deO" ,
88
+ "$2y$06$eqgY.T2yloESMZxgp76deOROa7nzXDxbO0k.PJvuClTa.Vu1AuemG" ));
89
+ testObjects .add (new TestObject ("abc" , "$2a$06$If6bvum7DFjUnE9p2uDeDu" ,
90
+ "$2a$06$If6bvum7DFjUnE9p2uDeDu0YHzrHM6tf.iqN8.yx.jNN1ILEf7h0i" ));
91
+ testObjects .add (new TestObject ("abc" , "$2a$08$Ro0CUfOqk6cXEKf3dyaM7O" ,
92
+ "$2a$08$Ro0CUfOqk6cXEKf3dyaM7OhSCvnwM9s4wIX9JeLapehKK5YdLxKcm" ));
93
+ testObjects .add (new TestObject ("abc" , "$2a$10$WvvTPHKwdBJ3uk0Z37EMR." ,
94
+ "$2a$10$WvvTPHKwdBJ3uk0Z37EMR.hLA2W6N9AEBhEgrAOljy2Ae5MtaSIUi" ));
95
+ testObjects .add (new TestObject ("abc" , "$2a$12$EXRkfkdmXn2gzds2SSitu." ,
96
+ "$2a$12$EXRkfkdmXn2gzds2SSitu.MW9.gAVqa9eLS1//RYtYCmB1eLHg.9q" ));
97
+ testObjects .add (new TestObject ("abc" , "$2b$06$5FyQoicpbox1xSHFfhhdXu" ,
98
+ "$2b$06$5FyQoicpbox1xSHFfhhdXuR2oxLpO1rYsQh5RTkI/9.RIjtoF0/ta" ));
99
+ testObjects .add (new TestObject ("abc" , "$2b$06$1kJyuho8MCVP3HHsjnRMkO" ,
100
+ "$2b$06$1kJyuho8MCVP3HHsjnRMkO1nvCOaKTqLnjG2TX1lyMFbXH/aOkgc." ));
101
+ testObjects .add (new TestObject ("abc" , "$2y$06$ACfku9dT6.H8VjdKb8nhlu" ,
102
+ "$2y$06$ACfku9dT6.H8VjdKb8nhluaoBmhJyK7GfoNScEfOfrJffUxoUeCjK" ));
103
+ testObjects .add (new TestObject ("abc" , "$2y$06$9JujYcoWPmifvFA3RUP90e" ,
104
+ "$2y$06$9JujYcoWPmifvFA3RUP90e5rSEHAb5Ye6iv3.G9ikiHNv5cxjNEse" ));
105
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$06$.rCVZVOThsIa97pEDOxvGu" ,
106
+ "$2a$06$.rCVZVOThsIa97pEDOxvGuRRgzG64bvtJ0938xuqzv18d3ZpQhstC" ));
107
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$08$aTsUwsyowQuzRrDqFflhge" ,
108
+ "$2a$08$aTsUwsyowQuzRrDqFflhgekJ8d9/7Z3GV3UcgvzQW3J5zMyrTvlz." ));
109
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$10$fVH8e28OQRj9tqiDXs1e1u" ,
110
+ "$2a$10$fVH8e28OQRj9tqiDXs1e1uxpsjN0c7II7YPKXua2NAKYvM6iQk7dq" ));
111
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$12$D4G5f18o7aMMfwasBL7Gpu" ,
112
+ "$2a$12$D4G5f18o7aMMfwasBL7GpuQWuP3pkrZrOAnqP.bmezbMng.QwJ/pG" ));
113
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2b$06$O8E89AQPj1zJQA05YvIAU." ,
114
+ "$2b$06$O8E89AQPj1zJQA05YvIAU.hMpj25BXri1bupl/Q7CJMlpLwZDNBoO" ));
115
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2b$06$PDqIWr./o/P3EE/P.Q0A/u" ,
116
+ "$2b$06$PDqIWr./o/P3EE/P.Q0A/uFg86WL/PXTbaW267TDALEwDylqk00Z." ));
117
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2y$06$34MG90ZLah8/ZNr3ltlHCu" ,
118
+ "$2y$06$34MG90ZLah8/ZNr3ltlHCuz6bachF8/3S5jTuzF1h2qg2cUk11sFW" ));
119
+ testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2y$06$AK.hSLfMyw706iEW24i68u" ,
120
+ "$2y$06$AK.hSLfMyw706iEW24i68uKAc2yorPTrB0cimvjJHEBUrPkOq7VvG" ));
121
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$06$fPIsBO8qRqkjj273rfaOI." ,
122
+ "$2a$06$fPIsBO8qRqkjj273rfaOI.HtSV9jLDpTbZn782DC6/t7qT67P6FfO" ));
123
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$08$Eq2r4G/76Wv39MzSX262hu" ,
124
+ "$2a$08$Eq2r4G/76Wv39MzSX262huzPz612MZiYHVUJe/OcOql2jo4.9UxTW" ));
125
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$10$LgfYWkbzEvQ4JakH7rOvHe" ,
126
+ "$2a$10$LgfYWkbzEvQ4JakH7rOvHe0y8pHKF9OaFgwUZ2q7W2FFZmZzJYlfS" ));
127
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$12$WApznUOJfkEGSmYRfnkrPO" ,
128
+ "$2a$12$WApznUOJfkEGSmYRfnkrPOr466oFDCaj4b6HY3EXGvfxm43seyhgC" ));
129
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu" ,
130
+ "$2b$06$FGWA8OlY6RtQhXBXuCJ8WusVipRI15cWOgJK8MYpBHEkktMfbHRIG" ));
131
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$G6aYU7UhUEUDJBdTgq3CRe" ,
132
+ "$2b$06$G6aYU7UhUEUDJBdTgq3CRekiopCN4O4sNitFXrf5NUscsVZj3a2r6" ));
133
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$sYDFHqOcXTjBgOsqC0WCKe" ,
134
+ "$2y$06$sYDFHqOcXTjBgOsqC0WCKeMd3T1UhHuWQSxncLGtXDLMrcE6vFDti" ));
135
+ testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$6Xm0gCw4g7ZNDCEp4yTise" ,
136
+ "$2y$06$6Xm0gCw4g7ZNDCEp4yTisez0kSdpXEl66MvdxGidnmChIe8dFmMnq" ));
137
+ }
118
138
119
139
/**
120
140
* Test method for 'BCrypt.hashpw(String, String)'
121
141
*/
122
142
@ Test
123
143
public void testHashpw () {
124
144
print ("BCrypt.hashpw(): " );
125
- for (String [] test_vector : test_vectors ) {
126
- String plain = test_vector [0 ];
127
- String salt = test_vector [1 ];
128
- String expected = test_vector [2 ];
129
- String hashed = BCrypt .hashpw (plain , salt );
130
- assertThat (expected ).isEqualTo (hashed );
145
+ for (TestObject test : testObjects ) {
146
+ String hashed = BCrypt .hashpw (test .password , test .salt );
147
+ assertThat (hashed ).isEqualTo (test .expected );
131
148
print ("." );
132
149
}
133
150
println ("" );
@@ -141,8 +158,8 @@ public void testGensaltInt() {
141
158
print ("BCrypt.gensalt(log_rounds):" );
142
159
for (int i = 4 ; i <= 12 ; i ++) {
143
160
print (" " + Integer .toString (i ) + ":" );
144
- for (int j = 0 ; j < test_vectors . length ; j += 4 ) {
145
- String plain = test_vectors [ j ][ 0 ] ;
161
+ for (int j = 0 ; j < testObjects . size () ; j += 4 ) {
162
+ String plain = testObjects . get ( j ). password ;
146
163
String salt = BCrypt .gensalt (i );
147
164
String hashed1 = BCrypt .hashpw (plain , salt );
148
165
String hashed2 = BCrypt .hashpw (plain , hashed1 );
@@ -159,8 +176,8 @@ public void testGensaltInt() {
159
176
@ Test
160
177
public void testGensalt () {
161
178
print ("BCrypt.gensalt(): " );
162
- for (int i = 0 ; i < test_vectors . length ; i += 4 ) {
163
- String plain = test_vectors [ i ][ 0 ] ;
179
+ for (int i = 0 ; i < testObjects . size () ; i += 4 ) {
180
+ String plain = testObjects . get ( i ). password ;
164
181
String salt = BCrypt .gensalt ();
165
182
String hashed1 = BCrypt .hashpw (plain , salt );
166
183
String hashed2 = BCrypt .hashpw (plain , hashed1 );
@@ -176,10 +193,8 @@ public void testGensalt() {
176
193
@ Test
177
194
public void testCheckpw_success () {
178
195
print ("BCrypt.checkpw w/ good passwords: " );
179
- for (String [] test_vector : test_vectors ) {
180
- String plain = test_vector [0 ];
181
- String expected = test_vector [2 ];
182
- assertThat (BCrypt .checkpw (plain , expected )).isTrue ();
196
+ for (TestObject test : testObjects ) {
197
+ assertThat (BCrypt .checkpw (test .password , test .expected )).isTrue ();
183
198
print ("." );
184
199
}
185
200
println ("" );
@@ -191,10 +206,10 @@ public void testCheckpw_success() {
191
206
@ Test
192
207
public void testCheckpw_failure () {
193
208
print ("BCrypt.checkpw w/ bad passwords: " );
194
- for (int i = 0 ; i < test_vectors . length ; i ++) {
195
- int broken_index = (i + 8 ) % test_vectors . length ;
196
- String plain = test_vectors [ i ][ 0 ] ;
197
- String expected = test_vectors [ broken_index ][ 2 ] ;
209
+ for (int i = 0 ; i < testObjects . size () ; i ++) {
210
+ int broken_index = (i + 8 ) % testObjects . size () ;
211
+ String plain = testObjects . get ( i ). password ;
212
+ String expected = testObjects . get ( broken_index ). expected ;
198
213
assertThat (BCrypt .checkpw (plain , expected )).isFalse ();
199
214
print ("." );
200
215
}
0 commit comments