OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "crypto/symmetric_key.h" | 5 #include "crypto/symmetric_key.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/string_number_conversions.h" | 10 #include "base/string_number_conversions.h" |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 unsigned int key_size_in_bits; | 73 unsigned int key_size_in_bits; |
74 const char* expected; // ASCII encoded hex bytes | 74 const char* expected; // ASCII encoded hex bytes |
75 }; | 75 }; |
76 | 76 |
77 class SymmetricKeyDeriveKeyFromPasswordTest | 77 class SymmetricKeyDeriveKeyFromPasswordTest |
78 : public testing::TestWithParam<PBKDF2TestVector> { | 78 : public testing::TestWithParam<PBKDF2TestVector> { |
79 }; | 79 }; |
80 | 80 |
81 TEST_P(SymmetricKeyDeriveKeyFromPasswordTest, DeriveKeyFromPassword) { | 81 TEST_P(SymmetricKeyDeriveKeyFromPasswordTest, DeriveKeyFromPassword) { |
82 PBKDF2TestVector test_data(GetParam()); | 82 PBKDF2TestVector test_data(GetParam()); |
83 #if defined(OS_MACOSX) | 83 #if defined(OS_MACOSX) && !defined(OS_IOS) |
84 // The OS X crypto libraries have minimum salt and iteration requirements | 84 // The OS X crypto libraries have minimum salt and iteration requirements |
85 // so some of the tests below will cause them to barf. Skip these. | 85 // so some of the tests below will cause them to barf. Skip these. |
86 if (strlen(test_data.salt) < 8 || test_data.rounds < 1000) { | 86 if (strlen(test_data.salt) < 8 || test_data.rounds < 1000) { |
87 VLOG(1) << "Skipped test vector for " << test_data.expected; | 87 VLOG(1) << "Skipped test vector for " << test_data.expected; |
88 return; | 88 return; |
89 } | 89 } |
90 #endif // OS_MACOSX | 90 #endif // OS_MACOSX |
91 | 91 |
92 scoped_ptr<crypto::SymmetricKey> key( | 92 scoped_ptr<crypto::SymmetricKey> key( |
93 crypto::SymmetricKey::DeriveKeyFromPassword( | 93 crypto::SymmetricKey::DeriveKeyFromPassword( |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", | 216 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", |
217 "pass phrase exceeds block size", | 217 "pass phrase exceeds block size", |
218 20, | 218 20, |
219 256, | 219 256, |
220 "e0739745dc28b8721ba402e05214d2ac1eab54cf72bee1fba388297a09eb493c", | 220 "e0739745dc28b8721ba402e05214d2ac1eab54cf72bee1fba388297a09eb493c", |
221 }, | 221 }, |
222 }; | 222 }; |
223 | 223 |
224 INSTANTIATE_TEST_CASE_P(, SymmetricKeyDeriveKeyFromPasswordTest, | 224 INSTANTIATE_TEST_CASE_P(, SymmetricKeyDeriveKeyFromPasswordTest, |
225 testing::ValuesIn(kTestVectors)); | 225 testing::ValuesIn(kTestVectors)); |
OLD | NEW |