Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(917)

Side by Side Diff: content/renderer/webcrypto/webcrypto_impl_unittest.cc

Issue 24276011: WebCrypto: Implement importKey(), sign(), and verify() for HMAC in OpenSSL (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 7 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/renderer/webcrypto/webcrypto_impl_openssl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "webcrypto_impl.h" 5 #include "webcrypto_impl.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/strings/string_number_conversions.h" 10 #include "base/strings/string_number_conversions.h"
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
173 const std::vector<uint8>& data, 173 const std::vector<uint8>& data,
174 WebKit::WebArrayBuffer* buffer) { 174 WebKit::WebArrayBuffer* buffer) {
175 return crypto_.DecryptInternal( 175 return crypto_.DecryptInternal(
176 algorithm, key, Start(data), data.size(), buffer); 176 algorithm, key, Start(data), data.size(), buffer);
177 } 177 }
178 178
179 private: 179 private:
180 WebCryptoImpl crypto_; 180 WebCryptoImpl crypto_;
181 }; 181 };
182 182
183 // TODO(padolph) Enable these tests for OpenSSL once matching impl is available
184 #if !defined(USE_OPENSSL)
185
183 TEST_F(WebCryptoImplTest, DigestSampleSets) { 186 TEST_F(WebCryptoImplTest, DigestSampleSets) {
184 // The results are stored here in hex format for readability. 187 // The results are stored here in hex format for readability.
185 // 188 //
186 // TODO(bryaneyler): Eventually, all these sample test sets should be replaced 189 // TODO(bryaneyler): Eventually, all these sample test sets should be replaced
187 // with the sets here: http://csrc.nist.gov/groups/STM/cavp/index.html#03 190 // with the sets here: http://csrc.nist.gov/groups/STM/cavp/index.html#03
188 // 191 //
189 // Results were generated using the command sha{1,224,256,384,512}sum. 192 // Results were generated using the command sha{1,224,256,384,512}sum.
190 struct TestCase { 193 struct TestCase {
191 WebKit::WebCryptoAlgorithmId algorithm; 194 WebKit::WebCryptoAlgorithmId algorithm;
192 const std::string hex_input; 195 const std::string hex_input;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 257
255 WebKit::WebCryptoAlgorithm algorithm = CreateAlgorithm(test.algorithm); 258 WebKit::WebCryptoAlgorithm algorithm = CreateAlgorithm(test.algorithm);
256 std::vector<uint8> input = HexStringToBytes(test.hex_input); 259 std::vector<uint8> input = HexStringToBytes(test.hex_input);
257 260
258 WebKit::WebArrayBuffer output; 261 WebKit::WebArrayBuffer output;
259 ASSERT_TRUE(DigestInternal(algorithm, input, &output)); 262 ASSERT_TRUE(DigestInternal(algorithm, input, &output));
260 ExpectArrayBufferMatchesHex(test.hex_result, output); 263 ExpectArrayBufferMatchesHex(test.hex_result, output);
261 } 264 }
262 } 265 }
263 266
267 #endif // #if !defined(USE_OPENSSL)
268
264 TEST_F(WebCryptoImplTest, HMACSampleSets) { 269 TEST_F(WebCryptoImplTest, HMACSampleSets) {
265 struct TestCase { 270 struct TestCase {
266 WebKit::WebCryptoAlgorithmId algorithm; 271 WebKit::WebCryptoAlgorithmId algorithm;
267 const char* key; 272 const char* key;
268 const char* message; 273 const char* message;
269 const char* mac; 274 const char* mac;
270 }; 275 };
271 276
272 const TestCase kTests[] = { 277 const TestCase kTests[] = {
273 // Empty sets. Result generated via OpenSSL commandline tool. These 278 // Empty sets. Result generated via OpenSSL commandline tool. These
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 algorithm, 398 algorithm,
394 key, 399 key,
395 kLongSignature, 400 kLongSignature,
396 sizeof(kLongSignature), 401 sizeof(kLongSignature),
397 message_raw, 402 message_raw,
398 &signature_match)); 403 &signature_match));
399 EXPECT_FALSE(signature_match); 404 EXPECT_FALSE(signature_match);
400 } 405 }
401 } 406 }
402 407
408 // TODO(padolph) Enable these tests for OpenSSL once matching impl is available
409 #if !defined(USE_OPENSSL)
410
403 TEST_F(WebCryptoImplTest, AesCbcFailures) { 411 TEST_F(WebCryptoImplTest, AesCbcFailures) {
404 WebKit::WebCryptoKey key = ImportSecretKeyFromRawHexString( 412 WebKit::WebCryptoKey key = ImportSecretKeyFromRawHexString(
405 "2b7e151628aed2a6abf7158809cf4f3c", 413 "2b7e151628aed2a6abf7158809cf4f3c",
406 CreateAlgorithm(WebKit::WebCryptoAlgorithmIdAesCbc), 414 CreateAlgorithm(WebKit::WebCryptoAlgorithmIdAesCbc),
407 WebKit::WebCryptoKeyUsageEncrypt | WebKit::WebCryptoKeyUsageDecrypt); 415 WebKit::WebCryptoKeyUsageEncrypt | WebKit::WebCryptoKeyUsageDecrypt);
408 416
409 WebKit::WebArrayBuffer output; 417 WebKit::WebArrayBuffer output;
410 418
411 // Use an invalid |iv| (fewer than 16 bytes) 419 // Use an invalid |iv| (fewer than 16 bytes)
412 { 420 {
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
586 if (cipher_text.size() > 3) { 594 if (cipher_text.size() > 3) {
587 EXPECT_FALSE(DecryptInternal(CreateAesCbcAlgorithm(iv), 595 EXPECT_FALSE(DecryptInternal(CreateAesCbcAlgorithm(iv),
588 key, 596 key,
589 &cipher_text[0], 597 &cipher_text[0],
590 cipher_text.size() - 3, 598 cipher_text.size() - 3,
591 &output)); 599 &output));
592 } 600 }
593 } 601 }
594 } 602 }
595 603
604 #endif // !defined(USE_OPENSSL)
605
596 } // namespace content 606 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/webcrypto/webcrypto_impl_openssl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698