OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/frame/SubresourceIntegrity.h" | 6 #include "core/frame/SubresourceIntegrity.h" |
7 | 7 |
8 #include "core/HTMLNames.h" | 8 #include "core/HTMLNames.h" |
9 #include "core/dom/Document.h" | 9 #include "core/dom/Document.h" |
10 #include "core/html/HTMLScriptElement.h" | 10 #include "core/html/HTMLScriptElement.h" |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 | 128 |
129 RefPtrWillBePersistent<Document> document; | 129 RefPtrWillBePersistent<Document> document; |
130 RefPtrWillBePersistent<HTMLScriptElement> scriptElement; | 130 RefPtrWillBePersistent<HTMLScriptElement> scriptElement; |
131 }; | 131 }; |
132 | 132 |
133 TEST_F(SubresourceIntegrityTest, ParseAlgorithm) | 133 TEST_F(SubresourceIntegrityTest, ParseAlgorithm) |
134 { | 134 { |
135 expectAlgorithm("sha256;", HashAlgorithmSha256); | 135 expectAlgorithm("sha256;", HashAlgorithmSha256); |
136 expectAlgorithm("sha384;", HashAlgorithmSha384); | 136 expectAlgorithm("sha384;", HashAlgorithmSha384); |
137 expectAlgorithm("sha512;", HashAlgorithmSha512); | 137 expectAlgorithm("sha512;", HashAlgorithmSha512); |
| 138 expectAlgorithm("sha-256;", HashAlgorithmSha256); |
| 139 expectAlgorithm("sha-384;", HashAlgorithmSha384); |
| 140 expectAlgorithm("sha-512;", HashAlgorithmSha512); |
138 | 141 |
139 expectAlgorithmFailure("sha1;"); | 142 expectAlgorithmFailure("sha1;"); |
140 expectAlgorithmFailure("sha-1;"); | 143 expectAlgorithmFailure("sha-1;"); |
141 expectAlgorithmFailure("sha-256;"); | |
142 expectAlgorithmFailure("sha-384;"); | |
143 expectAlgorithmFailure("sha-512;"); | |
144 } | 144 } |
145 | 145 |
146 TEST_F(SubresourceIntegrityTest, ParseDigest) | 146 TEST_F(SubresourceIntegrityTest, ParseDigest) |
147 { | 147 { |
148 expectDigest("abcdefg", "abcdefg"); | 148 expectDigest("abcdefg", "abcdefg"); |
149 expectDigest("abcdefg?", "abcdefg"); | 149 expectDigest("abcdefg?", "abcdefg"); |
150 | 150 |
151 expectDigestFailure("?"); | 151 expectDigestFailure("?"); |
152 expectDigestFailure("&&&foobar&&&"); | 152 expectDigestFailure("&&&foobar&&&"); |
153 expectDigestFailure("\x01\x02\x03\x04"); | 153 expectDigestFailure("\x01\x02\x03\x04"); |
(...skipping 12 matching lines...) Expand all Loading... |
166 expectParseFailure("ni:///not-sha256-at-all;abcdefg"); | 166 expectParseFailure("ni:///not-sha256-at-all;abcdefg"); |
167 expectParseFailure("ni:///sha256;&&&foobar&&&"); | 167 expectParseFailure("ni:///sha256;&&&foobar&&&"); |
168 expectParseFailure("ni:///sha256;\x01\x02\x03\x04"); | 168 expectParseFailure("ni:///sha256;\x01\x02\x03\x04"); |
169 | 169 |
170 expectParse( | 170 expectParse( |
171 "ni:///sha256;BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", | 171 "ni:///sha256;BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", |
172 "BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", | 172 "BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", |
173 HashAlgorithmSha256); | 173 HashAlgorithmSha256); |
174 | 174 |
175 expectParse( | 175 expectParse( |
| 176 "ni:///sha-256;BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", |
| 177 "BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", |
| 178 HashAlgorithmSha256); |
| 179 |
| 180 expectParse( |
176 " ni:///sha256;BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE= ", | 181 " ni:///sha256;BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE= ", |
177 "BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", | 182 "BpfBw7ivV8q2jLiT13fxDYAe2tJllusRSZ273h2nFSE=", |
178 HashAlgorithmSha256); | 183 HashAlgorithmSha256); |
179 | 184 |
180 expectParse( | 185 expectParse( |
181 "ni:///sha384;XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/tA
1v5GPr", | 186 "ni:///sha384;XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/tA
1v5GPr", |
182 "XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/tA1v5GPr", | 187 "XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/tA1v5GPr", |
183 HashAlgorithmSha384); | 188 HashAlgorithmSha384); |
184 | 189 |
185 expectParse( | 190 expectParse( |
| 191 "ni:///sha-384;XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/t
A1v5GPr", |
| 192 "XVVXBGoYw6AJOh9J/Z8pBDMVVPfkBpngexkA7JqZu8d5GENND6TEIup/tA1v5GPr", |
| 193 HashAlgorithmSha384); |
| 194 |
| 195 expectParse( |
186 "ni:///sha512;tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK81
ytlg0MPaIrPAjcHqba5csorDWtKg==", | 196 "ni:///sha512;tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK81
ytlg0MPaIrPAjcHqba5csorDWtKg==", |
187 "tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK81ytlg0MPaIrPAj
cHqba5csorDWtKg==", | 197 "tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK81ytlg0MPaIrPAj
cHqba5csorDWtKg==", |
188 HashAlgorithmSha512); | 198 HashAlgorithmSha512); |
| 199 |
| 200 expectParse( |
| 201 "ni:///sha-512;tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK8
1ytlg0MPaIrPAjcHqba5csorDWtKg==", |
| 202 "tbUPioKbVBplr0b1ucnWB57SJWt4x9dOE0Vy2mzCXvH3FepqDZ+07yMK81ytlg0MPaIrPAj
cHqba5csorDWtKg==", |
| 203 HashAlgorithmSha512); |
189 } | 204 } |
190 | 205 |
191 // | 206 // |
192 // End-to-end tests of ::CheckSubresourceIntegrity. | 207 // End-to-end tests of ::CheckSubresourceIntegrity. |
193 // | 208 // |
194 | 209 |
195 TEST_F(SubresourceIntegrityTest, CheckSubresourceIntegrityInSecureOrigin) | 210 TEST_F(SubresourceIntegrityTest, CheckSubresourceIntegrityInSecureOrigin) |
196 { | 211 { |
197 document->updateSecurityOrigin(secureOrigin->isolatedCopy()); | 212 document->updateSecurityOrigin(secureOrigin->isolatedCopy()); |
198 | 213 |
(...skipping 15 matching lines...) Expand all Loading... |
214 document->updateSecurityOrigin(insecureOrigin->isolatedCopy()); | 229 document->updateSecurityOrigin(insecureOrigin->isolatedCopy()); |
215 | 230 |
216 expectIntegrityFailure(kSha256Integrity, kBasicScript, secureURL); | 231 expectIntegrityFailure(kSha256Integrity, kBasicScript, secureURL); |
217 expectIntegrityFailure(kSha384Integrity, kBasicScript, secureURL); | 232 expectIntegrityFailure(kSha384Integrity, kBasicScript, secureURL); |
218 expectIntegrityFailure(kSha512Integrity, kBasicScript, secureURL); | 233 expectIntegrityFailure(kSha512Integrity, kBasicScript, secureURL); |
219 expectIntegrityFailure(kSha384IntegrityLabeledAs256, kBasicScript, secureURL
); | 234 expectIntegrityFailure(kSha384IntegrityLabeledAs256, kBasicScript, secureURL
); |
220 expectIntegrityFailure(kUnsupportedHashFunctionIntegrity, kBasicScript, secu
reURL); | 235 expectIntegrityFailure(kUnsupportedHashFunctionIntegrity, kBasicScript, secu
reURL); |
221 } | 236 } |
222 | 237 |
223 } // namespace blink | 238 } // namespace blink |
OLD | NEW |