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 <string> | 5 #include <string> |
6 | 6 |
7 #include "crypto/hmac.h" | 7 #include "crypto/hmac.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 static const size_t kSHA1DigestSize = 20; | 10 static const size_t kSHA1DigestSize = 20; |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 ASSERT_TRUE(hmac.Init(kKnownSecretKey, kKnownSecretKeySize)); | 214 ASSERT_TRUE(hmac.Init(kKnownSecretKey, kKnownSecretKeySize)); |
215 unsigned char calculated_hmac[kSHA1DigestSize]; | 215 unsigned char calculated_hmac[kSHA1DigestSize]; |
216 | 216 |
217 EXPECT_EQ(kSHA1DigestSize, hmac.DigestLength()); | 217 EXPECT_EQ(kSHA1DigestSize, hmac.DigestLength()); |
218 EXPECT_TRUE(hmac.Sign(message_data, calculated_hmac, kSHA1DigestSize)); | 218 EXPECT_TRUE(hmac.Sign(message_data, calculated_hmac, kSHA1DigestSize)); |
219 EXPECT_EQ(0, memcmp(kKnownHMACSHA1, calculated_hmac, kSHA1DigestSize)); | 219 EXPECT_EQ(0, memcmp(kKnownHMACSHA1, calculated_hmac, kSHA1DigestSize)); |
220 EXPECT_TRUE(hmac.Verify( | 220 EXPECT_TRUE(hmac.Verify( |
221 message_data, | 221 message_data, |
222 base::StringPiece(reinterpret_cast<const char*>(kKnownHMACSHA1), | 222 base::StringPiece(reinterpret_cast<const char*>(kKnownHMACSHA1), |
223 kSHA1DigestSize))); | 223 kSHA1DigestSize))); |
| 224 EXPECT_TRUE(hmac.VerifyTruncated( |
| 225 message_data, |
| 226 base::StringPiece(reinterpret_cast<const char*>(kKnownHMACSHA1), |
| 227 kSHA1DigestSize / 2))); |
224 | 228 |
225 crypto::HMAC hmac2(crypto::HMAC::SHA256); | 229 crypto::HMAC hmac2(crypto::HMAC::SHA256); |
226 ASSERT_TRUE(hmac2.Init(kKnownSecretKey, kKnownSecretKeySize)); | 230 ASSERT_TRUE(hmac2.Init(kKnownSecretKey, kKnownSecretKeySize)); |
227 unsigned char calculated_hmac2[kSHA256DigestSize]; | 231 unsigned char calculated_hmac2[kSHA256DigestSize]; |
228 | 232 |
229 EXPECT_TRUE(hmac2.Sign(message_data, calculated_hmac2, kSHA256DigestSize)); | 233 EXPECT_TRUE(hmac2.Sign(message_data, calculated_hmac2, kSHA256DigestSize)); |
230 EXPECT_EQ(0, memcmp(kKnownHMACSHA256, calculated_hmac2, kSHA256DigestSize)); | 234 EXPECT_EQ(0, memcmp(kKnownHMACSHA256, calculated_hmac2, kSHA256DigestSize)); |
231 } | 235 } |
232 | 236 |
233 TEST(HMACTest, HMACObjectReuse) { | 237 TEST(HMACTest, HMACObjectReuse) { |
(...skipping 30 matching lines...) Expand all Loading... |
264 base::StringPiece(kSimpleHmacCases[i].data, | 268 base::StringPiece(kSimpleHmacCases[i].data, |
265 kSimpleHmacCases[i].data_len))); | 269 kSimpleHmacCases[i].data_len))); |
266 | 270 |
267 // Expected size, mismatched data | 271 // Expected size, mismatched data |
268 EXPECT_FALSE(hmac.Verify( | 272 EXPECT_FALSE(hmac.Verify( |
269 base::StringPiece(kSimpleHmacCases[i].data, | 273 base::StringPiece(kSimpleHmacCases[i].data, |
270 kSimpleHmacCases[i].data_len), | 274 kSimpleHmacCases[i].data_len), |
271 base::StringPiece(empty_digest, kSHA1DigestSize))); | 275 base::StringPiece(empty_digest, kSHA1DigestSize))); |
272 } | 276 } |
273 } | 277 } |
OLD | NEW |