29
29
*/
30
30
public class BCryptTests {
31
31
32
- private static class TestObject {
33
- private final String password ;
32
+ private static class TestObject < T > {
33
+ private final T password ;
34
34
private final String salt ;
35
35
private final String expected ;
36
36
37
- private TestObject (String password , String salt , String expected ) {
37
+ private TestObject (T password , String salt , String expected ) {
38
38
this .password = password ;
39
39
this .salt = salt ;
40
40
this .expected = expected ;
@@ -49,91 +49,143 @@ private static void println(String s) {
49
49
// System.out.println(s);
50
50
}
51
51
52
- private static List <TestObject > testObjects ;
52
+ private static List <TestObject <String >> testObjectsString ;
53
+
54
+ private static List <TestObject <byte []>> testObjectsByteArray ;
53
55
54
56
@ BeforeClass
55
57
public static void setupTestObjects () {
56
- testObjects = new ArrayList <>();
57
- testObjects .add (new TestObject ("" , "$2a$06$DCq7YPn5Rq63x1Lad4cll." ,
58
+ testObjectsString = new ArrayList <>();
59
+ testObjectsString .add (new TestObject <> ("" , "$2a$06$DCq7YPn5Rq63x1Lad4cll." ,
58
60
"$2a$06$DCq7YPn5Rq63x1Lad4cll.TV4S6ytwfsfvkgY8jIucDrjc8deX1s." ));
59
- testObjects .add (new TestObject ("" , "$2a$08$HqWuK6/Ng6sg9gQzbLrgb." ,
61
+ testObjectsString .add (new TestObject <> ("" , "$2a$08$HqWuK6/Ng6sg9gQzbLrgb." ,
60
62
"$2a$08$HqWuK6/Ng6sg9gQzbLrgb.Tl.ZHfXLhvt/SgVyWhQqgqcZ7ZuUtye" ));
61
- testObjects .add (new TestObject ("" , "$2a$10$k1wbIrmNyFAPwPVPSVa/ze" ,
63
+ testObjectsString .add (new TestObject <> ("" , "$2a$10$k1wbIrmNyFAPwPVPSVa/ze" ,
62
64
"$2a$10$k1wbIrmNyFAPwPVPSVa/zecw2BCEnBwVS2GbrmgzxFUOqW9dk4TCW" ));
63
- testObjects .add (new TestObject ("" , "$2a$12$k42ZFHFWqBp3vWli.nIn8u" ,
65
+ testObjectsString .add (new TestObject <> ("" , "$2a$12$k42ZFHFWqBp3vWli.nIn8u" ,
64
66
"$2a$12$k42ZFHFWqBp3vWli.nIn8uYyIkbvYRvodzbfbK18SSsY.CsIQPlxO" ));
65
- testObjects .add (new TestObject ("" , "$2b$06$8eVN9RiU8Yki430X.wBvN." ,
67
+ testObjectsString .add (new TestObject <> ("" , "$2b$06$8eVN9RiU8Yki430X.wBvN." ,
66
68
"$2b$06$8eVN9RiU8Yki430X.wBvN.LWaqh2962emLVSVXVZIXJvDYLsV0oFu" ));
67
- testObjects .add (new TestObject ("" , "$2b$06$NlgfNgpIc6GlHciCkMEW8u" ,
69
+ testObjectsString .add (new TestObject <> ("" , "$2b$06$NlgfNgpIc6GlHciCkMEW8u" ,
68
70
"$2b$06$NlgfNgpIc6GlHciCkMEW8uKOBsyvAp7QwlHpysOlKdtyEw50WQua2" ));
69
- testObjects .add (new TestObject ("" , "$2y$06$mFDtkz6UN7B3GZ2qi2hhaO" ,
71
+ testObjectsString .add (new TestObject <> ("" , "$2y$06$mFDtkz6UN7B3GZ2qi2hhaO" ,
70
72
"$2y$06$mFDtkz6UN7B3GZ2qi2hhaO3OFWzNEdcY84ELw6iHCPruuQfSAXBLK" ));
71
- testObjects .add (new TestObject ("" , "$2y$06$88kSqVttBx.e9iXTPCLa5u" ,
73
+ testObjectsString .add (new TestObject <> ("" , "$2y$06$88kSqVttBx.e9iXTPCLa5u" ,
72
74
"$2y$06$88kSqVttBx.e9iXTPCLa5uFPrVFjfLH4D.KcO6pBiAmvUkvdg0EYy" ));
73
- testObjects .add (new TestObject ("a" , "$2a$06$m0CrhHm10qJ3lXRY.5zDGO" ,
75
+ testObjectsString .add (new TestObject <> ("a" , "$2a$06$m0CrhHm10qJ3lXRY.5zDGO" ,
74
76
"$2a$06$m0CrhHm10qJ3lXRY.5zDGO3rS2KdeeWLuGmsfGlMfOxih58VYVfxe" ));
75
- testObjects .add (new TestObject ("a" , "$2a$08$cfcvVd2aQ8CMvoMpP2EBfe" ,
77
+ testObjectsString .add (new TestObject <> ("a" , "$2a$08$cfcvVd2aQ8CMvoMpP2EBfe" ,
76
78
"$2a$08$cfcvVd2aQ8CMvoMpP2EBfeodLEkkFJ9umNEfPD18.hUF62qqlC/V." ));
77
- testObjects .add (new TestObject ("a" , "$2a$10$k87L/MF28Q673VKh8/cPi." ,
79
+ testObjectsString .add (new TestObject <> ("a" , "$2a$10$k87L/MF28Q673VKh8/cPi." ,
78
80
"$2a$10$k87L/MF28Q673VKh8/cPi.SUl7MU/rWuSiIDDFayrKk/1tBsSQu4u" ));
79
- testObjects .add (new TestObject ("a" , "$2a$12$8NJH3LsPrANStV6XtBakCe" ,
81
+ testObjectsString .add (new TestObject <> ("a" , "$2a$12$8NJH3LsPrANStV6XtBakCe" ,
80
82
"$2a$12$8NJH3LsPrANStV6XtBakCez0cKHXVxmvxIlcz785vxAIZrihHZpeS" ));
81
- testObjects .add (new TestObject ("a" , "$2b$06$ehKGYiS4wt2HAr7KQXS5z." ,
83
+ testObjectsString .add (new TestObject <> ("a" , "$2b$06$ehKGYiS4wt2HAr7KQXS5z." ,
82
84
"$2b$06$ehKGYiS4wt2HAr7KQXS5z.OaRjB4jHO7rBHJKlGXbqEH3QVJfO7iO" ));
83
- testObjects .add (new TestObject ("a" , "$2b$06$PWxFFHA3HiCD46TNOZh30e" ,
85
+ testObjectsString .add (new TestObject <> ("a" , "$2b$06$PWxFFHA3HiCD46TNOZh30e" ,
84
86
"$2b$06$PWxFFHA3HiCD46TNOZh30eNto1hg5uM9tHBlI4q/b03SW/gGKUYk6" ));
85
- testObjects .add (new TestObject ("a" , "$2y$06$LUdD6/aD0e/UbnxVAVbvGu" ,
87
+ testObjectsString .add (new TestObject <> ("a" , "$2y$06$LUdD6/aD0e/UbnxVAVbvGu" ,
86
88
"$2y$06$LUdD6/aD0e/UbnxVAVbvGuUmIoJ3l/OK94ThhadpMWwKC34LrGEey" ));
87
- testObjects .add (new TestObject ("a" , "$2y$06$eqgY.T2yloESMZxgp76deO" ,
89
+ testObjectsString .add (new TestObject <> ("a" , "$2y$06$eqgY.T2yloESMZxgp76deO" ,
88
90
"$2y$06$eqgY.T2yloESMZxgp76deOROa7nzXDxbO0k.PJvuClTa.Vu1AuemG" ));
89
- testObjects .add (new TestObject ("abc" , "$2a$06$If6bvum7DFjUnE9p2uDeDu" ,
91
+ testObjectsString .add (new TestObject <> ("abc" , "$2a$06$If6bvum7DFjUnE9p2uDeDu" ,
90
92
"$2a$06$If6bvum7DFjUnE9p2uDeDu0YHzrHM6tf.iqN8.yx.jNN1ILEf7h0i" ));
91
- testObjects .add (new TestObject ("abc" , "$2a$08$Ro0CUfOqk6cXEKf3dyaM7O" ,
93
+ testObjectsString .add (new TestObject <> ("abc" , "$2a$08$Ro0CUfOqk6cXEKf3dyaM7O" ,
92
94
"$2a$08$Ro0CUfOqk6cXEKf3dyaM7OhSCvnwM9s4wIX9JeLapehKK5YdLxKcm" ));
93
- testObjects .add (new TestObject ("abc" , "$2a$10$WvvTPHKwdBJ3uk0Z37EMR." ,
95
+ testObjectsString .add (new TestObject <> ("abc" , "$2a$10$WvvTPHKwdBJ3uk0Z37EMR." ,
94
96
"$2a$10$WvvTPHKwdBJ3uk0Z37EMR.hLA2W6N9AEBhEgrAOljy2Ae5MtaSIUi" ));
95
- testObjects .add (new TestObject ("abc" , "$2a$12$EXRkfkdmXn2gzds2SSitu." ,
97
+ testObjectsString .add (new TestObject <> ("abc" , "$2a$12$EXRkfkdmXn2gzds2SSitu." ,
96
98
"$2a$12$EXRkfkdmXn2gzds2SSitu.MW9.gAVqa9eLS1//RYtYCmB1eLHg.9q" ));
97
- testObjects .add (new TestObject ("abc" , "$2b$06$5FyQoicpbox1xSHFfhhdXu" ,
99
+ testObjectsString .add (new TestObject <> ("abc" , "$2b$06$5FyQoicpbox1xSHFfhhdXu" ,
98
100
"$2b$06$5FyQoicpbox1xSHFfhhdXuR2oxLpO1rYsQh5RTkI/9.RIjtoF0/ta" ));
99
- testObjects .add (new TestObject ("abc" , "$2b$06$1kJyuho8MCVP3HHsjnRMkO" ,
101
+ testObjectsString .add (new TestObject <> ("abc" , "$2b$06$1kJyuho8MCVP3HHsjnRMkO" ,
100
102
"$2b$06$1kJyuho8MCVP3HHsjnRMkO1nvCOaKTqLnjG2TX1lyMFbXH/aOkgc." ));
101
- testObjects .add (new TestObject ("abc" , "$2y$06$ACfku9dT6.H8VjdKb8nhlu" ,
103
+ testObjectsString .add (new TestObject <> ("abc" , "$2y$06$ACfku9dT6.H8VjdKb8nhlu" ,
102
104
"$2y$06$ACfku9dT6.H8VjdKb8nhluaoBmhJyK7GfoNScEfOfrJffUxoUeCjK" ));
103
- testObjects .add (new TestObject ("abc" , "$2y$06$9JujYcoWPmifvFA3RUP90e" ,
105
+ testObjectsString .add (new TestObject <> ("abc" , "$2y$06$9JujYcoWPmifvFA3RUP90e" ,
104
106
"$2y$06$9JujYcoWPmifvFA3RUP90e5rSEHAb5Ye6iv3.G9ikiHNv5cxjNEse" ));
105
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$06$.rCVZVOThsIa97pEDOxvGu" ,
107
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2a$06$.rCVZVOThsIa97pEDOxvGu" ,
106
108
"$2a$06$.rCVZVOThsIa97pEDOxvGuRRgzG64bvtJ0938xuqzv18d3ZpQhstC" ));
107
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$08$aTsUwsyowQuzRrDqFflhge" ,
109
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2a$08$aTsUwsyowQuzRrDqFflhge" ,
108
110
"$2a$08$aTsUwsyowQuzRrDqFflhgekJ8d9/7Z3GV3UcgvzQW3J5zMyrTvlz." ));
109
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$10$fVH8e28OQRj9tqiDXs1e1u" ,
111
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2a$10$fVH8e28OQRj9tqiDXs1e1u" ,
110
112
"$2a$10$fVH8e28OQRj9tqiDXs1e1uxpsjN0c7II7YPKXua2NAKYvM6iQk7dq" ));
111
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2a$12$D4G5f18o7aMMfwasBL7Gpu" ,
113
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2a$12$D4G5f18o7aMMfwasBL7Gpu" ,
112
114
"$2a$12$D4G5f18o7aMMfwasBL7GpuQWuP3pkrZrOAnqP.bmezbMng.QwJ/pG" ));
113
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2b$06$O8E89AQPj1zJQA05YvIAU." ,
115
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2b$06$O8E89AQPj1zJQA05YvIAU." ,
114
116
"$2b$06$O8E89AQPj1zJQA05YvIAU.hMpj25BXri1bupl/Q7CJMlpLwZDNBoO" ));
115
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2b$06$PDqIWr./o/P3EE/P.Q0A/u" ,
117
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2b$06$PDqIWr./o/P3EE/P.Q0A/u" ,
116
118
"$2b$06$PDqIWr./o/P3EE/P.Q0A/uFg86WL/PXTbaW267TDALEwDylqk00Z." ));
117
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2y$06$34MG90ZLah8/ZNr3ltlHCu" ,
119
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2y$06$34MG90ZLah8/ZNr3ltlHCu" ,
118
120
"$2y$06$34MG90ZLah8/ZNr3ltlHCuz6bachF8/3S5jTuzF1h2qg2cUk11sFW" ));
119
- testObjects .add (new TestObject ("abcdefghijklmnopqrstuvwxyz" , "$2y$06$AK.hSLfMyw706iEW24i68u" ,
121
+ testObjectsString .add (new TestObject <> ("abcdefghijklmnopqrstuvwxyz" , "$2y$06$AK.hSLfMyw706iEW24i68u" ,
120
122
"$2y$06$AK.hSLfMyw706iEW24i68uKAc2yorPTrB0cimvjJHEBUrPkOq7VvG" ));
121
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$06$fPIsBO8qRqkjj273rfaOI." ,
123
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$06$fPIsBO8qRqkjj273rfaOI." ,
122
124
"$2a$06$fPIsBO8qRqkjj273rfaOI.HtSV9jLDpTbZn782DC6/t7qT67P6FfO" ));
123
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$08$Eq2r4G/76Wv39MzSX262hu" ,
125
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$08$Eq2r4G/76Wv39MzSX262hu" ,
124
126
"$2a$08$Eq2r4G/76Wv39MzSX262huzPz612MZiYHVUJe/OcOql2jo4.9UxTW" ));
125
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$10$LgfYWkbzEvQ4JakH7rOvHe" ,
127
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$10$LgfYWkbzEvQ4JakH7rOvHe" ,
126
128
"$2a$10$LgfYWkbzEvQ4JakH7rOvHe0y8pHKF9OaFgwUZ2q7W2FFZmZzJYlfS" ));
127
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$12$WApznUOJfkEGSmYRfnkrPO" ,
129
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2a$12$WApznUOJfkEGSmYRfnkrPO" ,
128
130
"$2a$12$WApznUOJfkEGSmYRfnkrPOr466oFDCaj4b6HY3EXGvfxm43seyhgC" ));
129
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu" ,
131
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu" ,
130
132
"$2b$06$FGWA8OlY6RtQhXBXuCJ8WusVipRI15cWOgJK8MYpBHEkktMfbHRIG" ));
131
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$G6aYU7UhUEUDJBdTgq3CRe" ,
133
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2b$06$G6aYU7UhUEUDJBdTgq3CRe" ,
132
134
"$2b$06$G6aYU7UhUEUDJBdTgq3CRekiopCN4O4sNitFXrf5NUscsVZj3a2r6" ));
133
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$sYDFHqOcXTjBgOsqC0WCKe" ,
135
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$sYDFHqOcXTjBgOsqC0WCKe" ,
134
136
"$2y$06$sYDFHqOcXTjBgOsqC0WCKeMd3T1UhHuWQSxncLGtXDLMrcE6vFDti" ));
135
- testObjects .add (new TestObject ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$6Xm0gCw4g7ZNDCEp4yTise" ,
137
+ testObjectsString .add (new TestObject <> ("~!@#$%^&*() ~!@#$%^&*()PNBFRD" , "$2y$06$6Xm0gCw4g7ZNDCEp4yTise" ,
136
138
"$2y$06$6Xm0gCw4g7ZNDCEp4yTisez0kSdpXEl66MvdxGidnmChIe8dFmMnq" ));
139
+
140
+ testObjectsByteArray = new ArrayList <>();
141
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2a$06$fPIsBO8qRqkjj273rfaOI." ,
142
+ "$2a$06$fPIsBO8qRqkjj273rfaOI.uiVGfgi6Z1Iz.vZr11mi/38o09TUVCy" ));
143
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2a$08$Eq2r4G/76Wv39MzSX262hu" ,
144
+ "$2a$08$Eq2r4G/76Wv39MzSX262hu2lrqIItOWKIkPsMMvm5LAFD.iVB7Nmm" ));
145
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2a$10$LgfYWkbzEvQ4JakH7rOvHe" ,
146
+ "$2a$10$LgfYWkbzEvQ4JakH7rOvHeU6pINYiHnazYxe4GikGWx9MaUr27Vpa" ));
147
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2a$12$WApznUOJfkEGSmYRfnkrPO" ,
148
+ "$2a$12$WApznUOJfkEGSmYRfnkrPONS3wcUvmKuh3LpjxSs6g78T77gZta3W" ));
149
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu" ,
150
+ "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu5oPJaT8BeCRmS273I6cpp5RwwjAWn7S" ));
151
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2b$06$G6aYU7UhUEUDJBdTgq3CRe" ,
152
+ "$2b$06$G6aYU7UhUEUDJBdTgq3CRebzUYAyG8MCS3WdBk0CcPb9bfj1.3cSG" ));
153
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2y$06$sYDFHqOcXTjBgOsqC0WCKe" ,
154
+ "$2y$06$sYDFHqOcXTjBgOsqC0WCKeOv88fqPKkuV1yGVh./TROmn1mL8gYh2" ));
155
+ testObjectsByteArray .add (new TestObject <>(new byte [] { }, "$2y$06$6Xm0gCw4g7ZNDCEp4yTise" ,
156
+ "$2y$06$6Xm0gCw4g7ZNDCEp4yTisecBqTHmLJBHxTNZa8w2hupJKsIhPWOgG" ));
157
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2a$06$fPIsBO8qRqkjj273rfaOI." ,
158
+ "$2a$06$fPIsBO8qRqkjj273rfaOI.AyMTPwvUEmZ2EdJM/p0S0eP3UQpBas." ));
159
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2a$08$Eq2r4G/76Wv39MzSX262hu" ,
160
+ "$2a$08$Eq2r4G/76Wv39MzSX262huG.pmfTOWNaSXeVmr8y6qut1BpUiou6m" ));
161
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2a$10$LgfYWkbzEvQ4JakH7rOvHe" ,
162
+ "$2a$10$LgfYWkbzEvQ4JakH7rOvHeNm5INR.iq7bbwMewV0Tydrmqq3mZ5IK" ));
163
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2a$12$WApznUOJfkEGSmYRfnkrPO" ,
164
+ "$2a$12$WApznUOJfkEGSmYRfnkrPOi2qWwoWBJvfFzMrkqJwDedE3poicqwO" ));
165
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu" ,
166
+ "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wuwip8vUd9WHq9onEGUjOS6CBHFkM./IG" ));
167
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2b$06$G6aYU7UhUEUDJBdTgq3CRe" ,
168
+ "$2b$06$G6aYU7UhUEUDJBdTgq3CRe6RQpRSN.PQ28XtDFT7zUVvpXNbg.K4i" ));
169
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2y$06$sYDFHqOcXTjBgOsqC0WCKe" ,
170
+ "$2y$06$sYDFHqOcXTjBgOsqC0WCKeduM9n5k0YfzTlgg69FIgGpw4ChTQNu2" ));
171
+ testObjectsByteArray .add (new TestObject <>(new byte [] { -11 }, "$2y$06$6Xm0gCw4g7ZNDCEp4yTise" ,
172
+ "$2y$06$6Xm0gCw4g7ZNDCEp4yTisetcxOr0uSWmFiVtNpDxjd5iaFWs/tyjG" ));
173
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2a$06$fPIsBO8qRqkjj273rfaOI." ,
174
+ "$2a$06$fPIsBO8qRqkjj273rfaOI.5m8yX4eGfjqx/tyHtmte7/HbWtUS9u." ));
175
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2a$08$Eq2r4G/76Wv39MzSX262hu" ,
176
+ "$2a$08$Eq2r4G/76Wv39MzSX262hu0Vc3YdKF53qtdTtZJKD7uQfsPeGfkP6" ));
177
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2a$10$LgfYWkbzEvQ4JakH7rOvHe" ,
178
+ "$2a$10$LgfYWkbzEvQ4JakH7rOvHeQBR1Mm2USNr//tnItwdVSZFNZfR/L9." ));
179
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2a$12$WApznUOJfkEGSmYRfnkrPO" ,
180
+ "$2a$12$WApznUOJfkEGSmYRfnkrPO2WxEe4rN3gMECOFt21H8ozd661HB8Za" ));
181
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu" ,
182
+ "$2b$06$FGWA8OlY6RtQhXBXuCJ8Wu5SNpYypZvM0j3zTq7vSCtzqOllUArQW" ));
183
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2b$06$G6aYU7UhUEUDJBdTgq3CRe" ,
184
+ "$2b$06$G6aYU7UhUEUDJBdTgq3CRejcZ96XDmofwo2r3O/Lw0hoDHQy/Utxq" ));
185
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2y$06$sYDFHqOcXTjBgOsqC0WCKe" ,
186
+ "$2y$06$sYDFHqOcXTjBgOsqC0WCKej6.o3knVxc7obV8y47GTTFc9uUWC4OO" ));
187
+ testObjectsByteArray .add (new TestObject <>(new byte [] { 76 , -56 , -12 , 9 , -116 }, "$2y$06$6Xm0gCw4g7ZNDCEp4yTise" ,
188
+ "$2y$06$6Xm0gCw4g7ZNDCEp4yTiseKCvXMhtv0IrQPu9d36a893DjJ880Vb6" ));
137
189
}
138
190
139
191
/**
@@ -142,14 +194,25 @@ public static void setupTestObjects() {
142
194
@ Test
143
195
public void testHashpw () {
144
196
print ("BCrypt.hashpw(): " );
145
- for (TestObject test : testObjects ) {
197
+ for (TestObject < String > test : testObjectsString ) {
146
198
String hashed = BCrypt .hashpw (test .password , test .salt );
147
199
assertThat (hashed ).isEqualTo (test .expected );
148
200
print ("." );
149
201
}
150
202
println ("" );
151
203
}
152
204
205
+ /**
206
+ * Test method for 'BCrypt.hashpw(byte[], String)'
207
+ */
208
+ @ Test
209
+ public void testHashpwByteArray () {
210
+ for (TestObject <byte []> test : testObjectsByteArray ) {
211
+ String hashed = BCrypt .hashpw (test .password , test .salt );
212
+ assertThat (hashed ).isEqualTo (test .expected );
213
+ }
214
+ }
215
+
153
216
/**
154
217
* Test method for 'BCrypt.gensalt(int)'
155
218
*/
@@ -158,8 +221,8 @@ public void testGensaltInt() {
158
221
print ("BCrypt.gensalt(log_rounds):" );
159
222
for (int i = 4 ; i <= 12 ; i ++) {
160
223
print (" " + Integer .toString (i ) + ":" );
161
- for (int j = 0 ; j < testObjects .size (); j += 4 ) {
162
- String plain = testObjects .get (j ).password ;
224
+ for (int j = 0 ; j < testObjectsString .size (); j += 4 ) {
225
+ String plain = testObjectsString .get (j ).password ;
163
226
String salt = BCrypt .gensalt (i );
164
227
String hashed1 = BCrypt .hashpw (plain , salt );
165
228
String hashed2 = BCrypt .hashpw (plain , hashed1 );
@@ -176,8 +239,8 @@ public void testGensaltInt() {
176
239
@ Test
177
240
public void testGensalt () {
178
241
print ("BCrypt.gensalt(): " );
179
- for (int i = 0 ; i < testObjects .size (); i += 4 ) {
180
- String plain = testObjects .get (i ).password ;
242
+ for (int i = 0 ; i < testObjectsString .size (); i += 4 ) {
243
+ String plain = testObjectsString .get (i ).password ;
181
244
String salt = BCrypt .gensalt ();
182
245
String hashed1 = BCrypt .hashpw (plain , salt );
183
246
String hashed2 = BCrypt .hashpw (plain , hashed1 );
@@ -193,29 +256,52 @@ public void testGensalt() {
193
256
@ Test
194
257
public void testCheckpw_success () {
195
258
print ("BCrypt.checkpw w/ good passwords: " );
196
- for (TestObject test : testObjects ) {
259
+ for (TestObject < String > test : testObjectsString ) {
197
260
assertThat (BCrypt .checkpw (test .password , test .expected )).isTrue ();
198
261
print ("." );
199
262
}
200
263
println ("" );
201
264
}
202
265
266
+ /**
267
+ * Test method for 'BCrypt.checkpw(byte[], String)' expecting success
268
+ */
269
+ @ Test
270
+ public void testCheckpwByteArray_success () {
271
+ for (TestObject <byte []> test : testObjectsByteArray ) {
272
+ assertThat (BCrypt .checkpw (test .password , test .expected )).isTrue ();
273
+ }
274
+ }
275
+
203
276
/**
204
277
* Test method for 'BCrypt.checkpw(String, String)' expecting failure
205
278
*/
206
279
@ Test
207
280
public void testCheckpw_failure () {
208
281
print ("BCrypt.checkpw w/ bad passwords: " );
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 ;
282
+ for (int i = 0 ; i < testObjectsString .size (); i ++) {
283
+ int broken_index = (i + 8 ) % testObjectsString .size ();
284
+ String plain = testObjectsString .get (i ).password ;
285
+ String expected = testObjectsString .get (broken_index ).expected ;
213
286
assertThat (BCrypt .checkpw (plain , expected )).isFalse ();
214
287
print ("." );
215
288
}
216
289
println ("" );
217
290
}
218
291
292
+ /**
293
+ * Test method for 'BCrypt.checkpw(byte[], String)' expecting failure
294
+ */
295
+ @ Test
296
+ public void testCheckpwByteArray_failure () {
297
+ for (int i = 0 ; i < testObjectsByteArray .size (); i ++) {
298
+ int broken_index = (i + 8 ) % testObjectsByteArray .size ();
299
+ byte [] plain = testObjectsByteArray .get (i ).password ;
300
+ String expected = testObjectsByteArray .get (broken_index ).expected ;
301
+ assertThat (BCrypt .checkpw (plain , expected )).isFalse ();
302
+ }
303
+ }
304
+
219
305
/**
220
306
* Test for correct hashing of non-US-ASCII passwords
221
307
*/
0 commit comments